United States Environmental Protection Agency Environmental Research Laboratory Athens GA 306O5 EPA 600 3-79-028 March 1979 Research and Development SEPA Watershed Erosion and Sediment Transport Model ------- RESEARCH REPORTING SERIES Research reports of the Office of Research and Development, U.S. Environmental Protection Agency, have been grouped into nine series. These nine broad cate- gories were established to facilitate further development and application of en- vironmental technology. Elimination of traditional grouping was consciously planned to foster technology transfer and a maximum interface in related fields. The nine series are: 1. Environmental Health Effects Research 2. Environmental Protection Technology 3. Ecological Research 4. Environmental Monitoring 5. Socioeconomic Environmental Studies 6. Scientific and Technical Assessment Reports (STAR) 7. Interagency Energy-Environment Research and Development 8. "Special" Reports 9. Miscellaneous Reports This report has been assigned to the ECOLOGICAL RESEARCH series. This series describes research on the effects of pollution on humans, plant and animal spe- cies, and materials. Problems are assessed for their long- and short-term influ- ences. Investigations include formation, transport, and pathway studies to deter- mine the fate of pollutants and their effects. This work provides the technical basis for setting standards to minimize undesirable changes in living organisms in the aquatic, terrestrial, and atmospheric environments. This document is available to the public through the National Technical Informa- tion Service, Springfield, Virginia 22161. ------- EPA-600/3-79-028 March 1979 WATERSHED EROSION AND SEDIMENT TRANSPORT MODEL by K. M. Leytham R. C. Johanson Hydrocomp Inc. 1502 Page Mill Road Palo Alto, California 94304 Grant No. R803726-01-0 Project Officer Lee A. Mulkey Technology Development and Applications Branch Environmental Research Laboratory Athens, Georgia 30605 ENVIRONMENTAL RESEARCH LABORATORY OFFICE OF RESEARCH AND DEVELOPMENT U.S. ENVIRONMENTAL PROTECTION AGENCY ATHENS, GEORGIA 30605 ------- DISCLAIMER This report has been reviewed by the Environmental Research Laboratory, U.S. Environmental Protection Agency, Athens, Georgia and approved for publication. Approval does not signify that the contents necessarily reflect the views and policies of the U.S. Environmental Protection Agency, nor does mention of trade names or commercial products constitute endorsement or recommendation for use. ii ------- FOREWORD As environmental controls become more costly to implement and the penalties of judgment errors become more severe, environmental quality management requires more efficient analytical tools based on greater knowledge of the environmental phenomena to be managed. As part of this Laboratory's research on the occurrence, movement, transformation, impact, and control of environmental contaminants, the Technology Development and Applications Branch develops management or engineering tools to help pollution control officials achieve water quality goals through watershed management. The development of mathematical models for simulating the effects of nonpoint source pollutants on water quality has increased dramatically in recent years. Research sponsored by this Laboratory has included techniques to estimate water, sediment, pesticide, and nutrient inputs to a stream from small areas having uniform land use. This report extends these earlier studies by describing a method for simulating instream water quality and sediment movement and determining the ultimate fate of nonpoint source pollutants. David W. Duttweiler Director Environmental Research Laboratory Athens, Georgia iii ------- ABSTRACT This report describes the development and initial testing of the Watershed Erosion and Sediment Transport (WEST) Model. It is a deterministic conceptual model which operates in two phases. In the first one, hydrological and erosion processes associated with the land surfaces of a watershed are simulated, using the Agricultural Runoff Management (ARM) Model. The research work in this project centered on the second phase, in which the movement of water and sediment through a channel system is simulated using the CHANL Model. In the CHANL model the channels of a watershed are represented by a network of reaches. Hydraulic routing is performed using the kinematic wave approximation. The results are fed to the sediment algorithms which explicitly represent the processes of deposition, scour, armoring, and advection. The model is designed to handle any mixture of cohesive and cohesionless sediment. The model has been tested on laboratory data and on data from the East Fork River, Wyoming. Results from these tests were satisfactory. The model was also tested on data recorded on Four Mile Creek, Iowa. In this test, inadequate data made it impossible to draw any definite conclusions regarding model performance. Recommendations are made for further data collection and development and testing of the model. The work is part of the effort by the U.S. Environmental Protection Agency to develop tools for predicting the movement of agricultural chemicals through the hydrological cycle. This report was submitted to the EPA in fulfillment of Grant No. R803726-01-0 by Hydrocomp, Inc. This report dovers the period July 1975 to August 1977, and work was completed as of August 1977. iv ------- CONTENTS Page Foreword ill Abstract iv Acknowledgments xi Symbols xii Section 1 Introduction 1 1.1 Basin Scale Modeling 1 1.2 Use of This Report 2 2 Conclusions 3 3 Recommendations 5 4 Sediment and Its Role in Pollutant Transport 7 4.1 The Nature of Sediment 7 4.2 Sediment Transport Processes 9 4.3 Influences of Chemical Pollutants on Sediment Modeling ... 12 5 The Watershed Erosion and Sediment Transport (WEST) Model .... 14 5.1 Modeling Philosophy 14 5.2 Modeling Approach 16 5.3 Land Phase Simulation i6 5.4 Channel Phase Simulation . I8 5.4.1 Basic Procedure i8 5.4.2 Basic Assumptions i9 5.5 Data Communication 20 6 CHANL Model: Theoretical Foundations 22 6.1 Introduction 22 6.2 Hydraulic Routing Algorithms '. 22 6.3 Sediment Transport Algorithms 27 6.3.1 General Approach 27 6.3.2 Representation of the Physical System 28 6.3.3 Derivation of the Continuity Equation 32 6.3.4 Bed-Flow Interactions . 34 6.3.5 Transport Concentrations for Cohesionless Material . . 42 6.3.6 Armoring 44 6.3.7 Deposition and Scour of Cohesive Material ^5 6.3-8 Solutions of the Continuity Equation 49 6.3.9 Concluding Remarks 49 ------- 7 CHANL Model: Computational Aspects and Computer Code 50 7.1 Software and Hardware Requirements 50 7.2 Simulation Management 52 7.3 Computer Code 54 7.3.1 Overview 54 7.3.2 MA-IN Program 61 7.3.3 Subroutines: Principal Functions and Features ... 68 7.4 Data Files 82 8 Ancillary Programs 86 9 CHANL Model Users Guide 88 9.1 Introduction 88 9.2 System Limits 88 9.3 Modes of Operation 90 9.4 Preparation of the Input Sequence • 91 9.4.1 Example Input Sequence 91 9.4.2 Units 91 9.4.3 File Numbering and Input/Output Considerations ... 92 9.4.4 Choice of Modeling Interval 92 9.4.5 Channel Characteristics 92 9.4.6 Sediment Characteristics 95 9.4.7 Choice of Parameter Values 95 9.5 Interpretation and Control of Output 114 9.6 Model Application 115 10 Model Testing 128 10.1 Armoring Study, Georgia Institute of Technology 130 10.1.1 Run 4-1 132 10.1.2 Run 5-4 133 10.1.3 Run 6-1 133 10.1.4 Sensitivity Tests 136 10.2 East Fork River, Wyoming 142 10.2.1 Introduction 142 10.2.2 Data Preparation 145 10.2.3 Results 146 10.3 Four Mile Creek, Iowa 157 10.3.1 General Description 157 10.3-2 Topography 159 10.3.3 Soils 159 10.3.4 Groundwater Flow Systems 159 10.3.5 Land Use and Sediment Regime 159 10.3.6 Hydrometeorological Data 162 10.3.7 Documents 163 10.3.8 Hydrologic Calibration 164 10.3.9 Calibration of Land Surface Soil Loss 174 10.3.10 Application of the CHANL Model ... 174 vi ------- 11 Discussion and Conclusions 180 11.1 Advantages and Shortcomings of Deterministic Modeling . . . 180 11.1.1 Advantages 180 11.1.2 Shortcomings 180 11.2 Discussion of Results 182 11.3 Recommendations . , 183 11.3.1 Land Process Simulation: ARM Model 183 11.3-2 Channel Process Simulation: CHANL Model 184 12 References 187 Appendix A: Subdivision of Total Land Surface Erosion into Particle Size Fractions 191 Appendix B: Catalog of Watersheds with Data on Sediment Yield . . . 194 Appendix C: Glossary of Principal Variables 215 Appendix D: Source Code 233 vii ------- FIGURES Figure Page 1. WEST Model Organization 15 2. Division of Watershed into Land Segments and Channel Reaches . • 17 3. Organization of CHANL Model 23 U. Grid for Finite Difference Scheme 24 5, Graphical Representation of the Equations Used in Kinematic Routing ..... 26 6. Processes Simulated in a Reach 28 7. Sequence of Sediment Transport Calculations 29 8. Finite Difference Grid for Sediment Modeling ..... 33 9. Bed Form Chart for RG = 1.5 ......... 35 10. Bed Form Chart for RG = 10.0 T 35 11. Bed Form Chart for RG = 16.0 ....... 36 12. Bed Form Chart for RG = 25.0 . 36 13. Bed Form Chart for RG = 10.0 37 11. Bed Form Chart for RG = 80.0 . . . , 37 15. Relative Roughness vs. Slope from Jopling (1965) 39 16. Relative Roughness vs. Froude Number 39 17. Section Through Cohesionless Bed .... 41 18. Section Through Mixed Cohesionless/Cohesive Bed 42 19. Reduction of Scour by Armoring 45 20. Deposition Curves for Clay and Silt 46 21. Correction Factors for Scour of Cohesive Materials ....... 48 22. Reduction of Scour of Cohesive Materials by an Overlying Cohesionless Layer ..... 48 23. Organization of CHANL Model 51 24. Representation of the Watercourses in a Watershed 52 25. Subroutine Structure of the CHANL Model 56 26. Flowchart of MAIN Program 62 27. Typical Column of Array TVEC , . 67 28. Simplified Flowchart for Subroutine ACTIV 69 29. Structure of Vector BEDMAP . 71 30. Use of Directories to Access BEDMAP , , 71 31. Storage of Diffuse Loading Information ... 73 32. Association of Segment Number with Diffuse Loading Data 73 33- Sketch Showing how Properties of a Reach Are Represented in the Program. . 75 34. Structure of Vector TABLE 77 35. Structure of Vector STORP , 78 36. Storage of Point Load Information ..... 79 37. Structure of Vector STOR . 80 38. Format of Compressed Record f , 34 39. Use of the CHANL Model as a Stand Alone Program .... 90 viii ------- 40. Example of Reach Corss Section Description ..... 94 41. Example Input Sequence 110 42. Printout of Hydraulic Routing Results , 126 43. Printout of Sediment Transport Results 127 44. Cumulative Sediment Transport for Georgia Institute of Technology, Run 4-1 132 45. Effect of Manning's n on Sediment Transport for Georgia Institute of Technology, Run 4-1 133 46. Cumulative Sediment Transport for Georgia Institute of Technology, Run 5-4 134 47. Cumulative Sediment Transport for Georgia Institute of Technology, Run 6-1 for First 1800 Minutes 135 48. Cumulative Sediment Transport for Georgia Institute of Technology, Run 6-1 • 135 49. Sensitivity of Sediment Transport to Channel Roughness 137 50. Sensitivity of Sediment Transport to Flow Rate 138 51. Sensitivity of Sediment Transport to Water Temperature 140 52. Effect of Parameter ARMF on Sediment Transport 141 53- Effect of Parameter PROTCT on Sediment Transport ... 141 54. East Fork River Watershed and Study Reach 143 55. Study Reach Showing Location of Gaging Stations and Reach Numbers Used in Simulation ......,....,•••• 144 56. Comparison of Simulated and Recorded Flows, East Fork River ... 147 57. Comparison of Simulated and Recorded Sediment Transport Rates for 0.125 mm Size Fraction, East Fork River 149 58. Comparison of Simulated and Recorded Sediment Transport Rates for 0.25 mm Size Fraction, East Fork River 150 59. Comparison of Simulated and Recorded Sediment Transport Rates for 0.5 mm Size Fraction, East Fork River , 151 60. Comparison of Simulated and Recorded Sediment Transport Rates for 1.00 mm Size Fraction, East Fork River, • 152 61. Comparison of Simulated and Recorded Sediment Transport Rates for 2.0 mm Size Fraction, East Fork River 152 62. Comparison of Simulated and Recorded Sediment Transport Rates for 4.0 mm Size Fraction, East Fork River 154 63, Comparison of Simulated and Recorded Sediment Transport Rates for 8.0 mm Size Fraction, East Fork River ......... 155 6^. Comparison of simulated and Recorded Total Sediment Transport Rates. East Fork River. . . . . . ..... 155 65. Hydrometeorological Stations in and Near Four Mile Creek, Iowa. . 155 66. Topography of Four Mile Creek Basin » • 160 67. Geology of Four Mile Creek Basin -,Frora Knunkle (1968) 161 68. Segment and Channel Reach Layout for Four Mile Creek, Iowa. , . . 165 69. Comparison of Recorded and Simulated Daily Flows for Water Year 1969 169 70. Comparison of Recorded and Simulated Daily Flows For Water Year 1971 . . ... . .. 171 71. Comparison of Recorded and Simulated Daily Sediment Loads .... 175 72. Recorded and Simulated Yield for Four Mile Creek, Iowa. , . . . . 178 73. Sediment Transport in Four Mile Creek, Iowa - May 1970. , . . , . 179 ix ------- TABLES Table Page 1, Extensions to ANSI Fortran 50 2. Alphabetical List of Subroutines 55 3. Cross Reference Table for Subroutine Calls 60 1. File Label Format 83 5. Configuration of CHANL Model 89 6. Input Summary for CHANL Model 98 7. Error Messages for the CHANL Model 116 8. Hydraulic Properties (Georgia Institute of Technology Armoring Study 130 9. Original Bed Particle Size Distributions (Georgia Institute of Technology Armoring Study 131 10. Definition of Particle Size Fractions and Initial Bed Composition for Modeling 131 11. Sediment Parameters Used with Georgia Institute of Technology Data 131 12. Sediment Parameters for East Fork River 148 13- Parameters Used in ARM Calibration Run . 166 14. Summary of ARM Calibration Run 173 ------- ACKNOWLEDGMENTS This work was sponsored by the EPA Environmental Research Laboratory, Athens, Georgia (Athens-ERL). Mr. Lee A. Mulkey was project officer. At Hydrocomp, Dr. Norman H. Crawford was Principal Investigator, Dr. Robert C. Johanson was Project Coordinator, and Mr. K. Malcolm Leytham was Project Manager. Other personnel involved in the project were Mr. Kevin Gartner who prepared and tested the data on the East Fork River and Mr. Stanley Praisewater who prepared the data and performed the initial calibration for Four Mile Creek. The authors express appreciation to Ms. Donna Mitchell, Ms. Diana Allred and Ms. Kathy Francies who prepared the final report. Mr. Guy Funabiki is responsible for the art work and drafting. Hydrocomp appreciated the cooperation for Drs. Carl Nordin and Paul Mayer in the data collection phase of the proj.ect. Data for the East Fork River were provided by Dr. Nordin of the U.S. Geological Survey, Denver. Dr. Mayer provided experimental data from the Georgia Institute of Technology. Researchers in the Department of Agricultural Engineering at Iowa State University are currently conducting an intensive monitoring program on Four Mile Creek under Athens-ERL sponsorship. Their cooperation in providing data on Four Mile Creek and their readiness to coordinate that program with this one are much appreciated. xi ------- SYMBOLS Symbols A(x,t) Definition Cross-sectional area at point x and time t Dimension ,2 ACTIVE ADEPTH ARMD ARMF ARMOR BEDSHR BIND C(x,t) C(Xi,t) CRTSHR DEPTH Calibration coefficients used in the sediment transport function of Ackers and White Potential active layer thickness Active layer thickness after correction for presence of immobile material Depth of scour required to leave an armoring layer ARMOR thick Value of the ratio (thickness of armoring layer/median particle size of immobile material) at which armoring prevents further scour Thickness of armoring layer which prevents further scour Bed shear stress Percentage of cohesive material which will just start to hinder the movement of sand particles from the bed Sediment transport concentration at point x and time t as parts by mass of water Spatially averaged sediment transport concentration for the reach upstream of point Xi at time t Critical shear stress for the scour of cohesive material Mean flow depth at the end of the reach at end of time interval L L ML '1 - ML ,-V2 xii ------- DIA(I) DGR DUNE D50 D50A FOR RD DF FR FR FR FR max G(x,t) g(x,t) I GGR GRAY Hd H KINVIS Ld Diameter of particle size fraction I L Dimensionless grain size used in the sediment transport function of Ackers and White Maximum value of the ratio (dune height/mean flow depth) Median size of mobile sand fractions L Median size of immobile sand fractions L Dimensionless sediment mobility number used in the sediment transport function of Ackers and White Froude number = V/\/GRAV*DEPTH Froude number at ripple/dune transition Froude number at dune/flat transition Froude number at maximum dune height Sediment discharge at point x and time t MT Lateral sediment inflow per unit length ML of channel at point x and time t Lateral sediment inflow per unit length of channel averaged over the length of the reach and over the modeling interval Diraensionless sediment transport rate used in the sediment transport function of Ackers and White Acceleration due to gravity LT Dune height L Ripple height L Rate of inflow of water to a reach summed L; over all sources and averaged over the modeling interval f Kinematic viscosity L' Dune length L Ripple length L ~1 '1 '2 xiii ------- M(x,t) M(Xi,t) n NUM P(t) PC(I) PCIMO PR(x,t) PROTCT PS(t) q------- SCRCON SCREXP SETVEL(l) SG SHEARV SLOPE T. J TOP(x,t) V(x,t) YD50 P 0, At x Constant used in determining scour rate of cohesive material Exponent used in determining scour rate of cohesive material Settling velocity of particle size fraction I Specific gravity of sediment material Shear velocity = V GRAV*DEPTH*SLOPE Bottom slope of reach Time at time line j. T denotes the start of a time interval, T. denotes the end of a time interval ^+ Topwidth at point x and time t Mean flow velocity at point x and time t Station or chainage at space line i. X^ denotes the upstream end of a reach, xi+l denotes the downstream end of a reach Ratio of flow depth to median size of mobile bed material = DEPTH/050 Correction coefficients for the presence of sand. Used when scouring cohesive bed layers Mass density of water Weighting parameter for integration over space Weighting parameter for integration over time Modeling interval Reach length LT -1 LT L LT L ML -3 T L xv ------- CHAPTER 1 INTRODUCTION In the past decade, the engineering and scientific community has devoted much effort to the development of mathematical models for simulating the impact of nonpoint source pollutants on water quality. The work was given considerable impetus by the passage of the Federal Water Pollution Control Act Amendments of 1972 which specifically require that nonpoint sources be considered when planning for water quality improvements. The modeling effort described in this report began in 1971 when the EPA, through the Environmental Research Laboratory in Athens, Georgia, sponsored the development and testing of the Pesticide Transport and Runoff (PTR) Model (Crawford and Donigian 1973). It simulated the hydrologic and sediment production processes and certain pesticide reactions on an area having uniform land use. It has since been refined, tested, and expanded to handle nutrient transformations on and under the land surface and has been renamed the Agricultural Runoff Management (ARM) Model (Donigian and Crawford 1976a; Donigian, et al. 1977). The ARM Model is limited to small areas having uniform land use. It may be used to estimate the water, sediment, pesticide, and nutrient inputs to a stream, but it does not simulate the channel processes that occur after the water and pollutants are in the stream. To simulate instream water quality and sediment movement and determine the ultimate fate of pollutants such as pesticides and nutrients, the ARM Model must be interfaced with a stream simulation model that evaluates the impact of the channel processes. Many pollutants, including pesticides and nutrients, move along a stream in both the dissolved state and adsorbed on moving sediment particles. Sediment is itself frequently a pollutant. Thus, the development of algorithms to simulate water and sediment movement through a stream system is the first step in the development of a more general in-stream pollutant transport model. 1.1 Basin Scale Modeling The objective of the present study was the development of the Watershed Erosion and Sediment Transport (WEST) Model for simulating sediment and water movement from the land surface and through the stream system of a ------- watershed. This objective was achieved by developing a channel process model, CHANL, for water and sediment, and linking this with the existing ARM Model, thus allowing simulation on a basin scale. The development and testing of the ARM Model has been documented extensively by Donigian and Crawford (1976a) and Donigian et al. (1977). This report concerns the development of the remaining components of the WEST Model, that is the channel process model, CHANL, and the linkage between the ARM and CHANL Models. The report also presents the results of preliminary tests on the CHANL Model both by itself for channel process simulation and as a component of the WEST Model for basin scale simulation. 1.2 Use of This Report Sediment processes and sediment-pollutant interactions are discussed in Chapter 4. This chapter is intended to give the uninitiated layman a glimpse of the complexities of sediment and pollutant transport processes in the real world. The chapter also expands on some of the reasons for the current interest in this topic. Chapter 5 gives an overview of the WEST Model and describes the approach and assumptions adopted for basin scale modeling. This chapter would enable a potential user to decide whether the model should be used on his or her particular problem. The theoretical aspects of the CHANL Model are discussed in Chapter 6 and the computational aspects in Chapter 7. These chapters are intended for those diehards interested in the detailed aspects of the model or assigned the task of refining and maintaining it. Chapter 8 discusses the ancillary programs that would be required in applications of the model to a particular problem or study, and Chapter 9 gives the detailed information required to use the model. Finally, some preliminary tests are described in Chapter 10. ------- CHAPTER 2 CONCLUSIONS (1) A functioning computer model, the Watershed Erosion and Sediment Transport (WEST) Model, has been developed to simulate the movement of water and sediment through the land and channel phases of the hydrologic cycle. The model is coded in Fortran and was developed and tested on an HP3000 Series II machine. Preliminary tests have been made. (2) The WEST Model is composed of two separate models, the ARM Model and the CHANL Model, which are linked by a simple data management system. The ARM Model (Donigian and Crawford 1976a; Donigian, et al. 1977) simulates the land phase processes and the CHANL Model, a new model developed under this grant, simulates the in-stream or channel processes. (3) The CHANL Model is a one-dimensional model for simulating the movement of water and sediment through the stream network. Hydraulic routing is performed by using a kinematic wave approximation of water flows. Sediment routing is performed by explicitly modeling the component processes such as scour, deposition and armoring. This was done to keep the range of application of the model as wide as possible and to facilitate its extension to cover other processes dependent on sediment movement, such as those affecting nutrients and pesticides. (4) The CHANL Model gave promising results when tested on laboratory data from the Georgia Institute of Technology and field data collected by the U.S. Geological Survey on the East Fork River, Wyoming. These tests tend to confirm that the model adequately simulates the transport of cohesionless materials, including the effects of armoring. (5) Tests involving Four Mile Creek, Iowa, were hampered by problems with data. Hourly precipitation data, which constitute the primary input to the model, had to be tranposed from a station 15 km away from the oentroid of the watershed. Errors caused by the use of unrepresentative input were so large as to prevent definite conclusions being reached regarding the performance of the model. Significant improvement in the calibration will be possible when more representative date are available. ------- Data presently being collected by Iowa State University (Johnson 1977) should remedy this situation. (6) Adequate verification of the model will require many data which are not usually included in sediment data collection programs. For example, hydrographs of sediment discharge from small areas within the watershed, together with data on the concurrent variation in the composition of sediment runoff, are needed to further develop and calibrate the ARM Model. Similarly detailed information on processes which occur in channels is required to test and calibrate the CHANL Model (Section 11.3). Looking ahead, it seems that a major obstacle in applying the model to a variety of watersheds as part of a wider research or regulatory program will be the lack of adequate data (Section 11.1). ------- CHAPTER 3 RECOMMENDATIONS (1) The development of the ARM Model, which is used to simulate the processes occurring in the land phase of the hydrologic cycle, has been described in other reports to the U.S. Environmental Protection Agency, Athens, Georgia (Donigian and Crawford 1976a; Donigian, et al. 1977) Recommendations for further testing and refinements were made in those publications. Based on experience on the present project, further suggestions are offered: (a) Simulation of the effects of frozen ground on the hydrological cycle could be improved. (b) At present the sediment production algorithms in the ARM Model do not explicitly indicate the size distribution of the sediment runoff. The channel model requires this information because particles of various sizes behave differently as they are washed through the system. At present, the subdivision is performed somewhat arbitrarily, based on the rate of washoff and user-supplied parameters. Further testing may indicate that this technique should be abandoned in favor of one in which both the quantity and composition of sediment are accounted for in the sediment production algorithms of the ARM Model. (c) In the present version of the ARM Model, overland flow can only transport fines which have already been detached by rainfall. To make it more generally applicable, algorithms which provide for detachment of soil fines by overland flow could be added. These would handle the simulation of rill and gully erosion. (d) Allowance could be made for the reduction in detached soil fines which results from soil compaction. Some qualitative field observations from Four Mile Creek would be helpful in selecting and in confirming the validity of the algorithms. (2) The principal need in the development of the CHANL Model is further testing. Tests should be carried out in a variety of situations with special emphasis on the scour, deposition, and transport of cohesive materials. The recommended tests are: ------- (a) Tests using hypothetical situations: These would probably reveal further shortcomings in the model and facilitate their correction. Ultimately, the tests should confirm that the model does respond in a realistic manner. (b) Tests using laboratory data: Many investigators have used flumes in the laboratory to study sediment transport phenomena. Data from such work are usually accurate and comprehensive and approach an ideal test situation. They could be used to test details of the behavior of the model, e.g., scour and armoring, which are important in nature but almost impossible to test with available data from natural streams. (c) Tests on data from Four Mile Creek: The current project on Four Mile Creek by Iowa State University (Johnson 1977) is designed, among other things, to supply data suitable for further testing of the WEST Model. Testing should be resumed, in cooperation with ISU personnel, when a usable quantity of data has been collected. (d) Data from other natural streams should also be used to test and further develop the model. The use of information from widely different streams would be useful in testing and demonstrating the applicability of the sediment transport algorithms under a wide range of conditions. (3) To assess the benefits provided by the substantial detail incorporated in the CHANL model, it is recommended that parallel tests be run on a simpler model. The channel routing algorithms of Negev (1967) or David and Beer (1974) could be used for this purpose. (4) Future development work in the CHANL Model should include the following tasks: (a) Modify the sediment algorithms to improve the way in which non-rectangular channels are handled. (b) Improve the one-dimensional representation of hydraulic conditions for use in the sediment transport calculations by separating flows in the incised channel from flows over the flood plain. (c) Allow the user to input detailed water temperature data when these are available. (d) Incorporate limited feedback from sediment processes to hydraulic processes by adjusting bed slope for scour and deposition. ------- CHAPTER I SEDIMENT AND ITS ROLE IN POLLUTANT TRANSPORT 4.1 The Nature of Sediment In the following discussions, the term "sediment" is used to refer to any particulate matter which can be moved by water across the land surface and into or through the waterways of a river basin. Thus, sediment may include such diverse materials as dust or grit on streets or sidewalks, soil and organic materials on agricultural lands, or clays and sands in a stream bed. Most sediments fall into one of two broad categories according to origin: •Organic matter: usually the products of varying degrees of decomposition of animal and plant material ranging in size from colloidal humus (0.1 * 10~^ m diameter) to very large chunks of material. •Mineral particles: sediments ranging in size from clay particles of colloidal or near colloidal size, through silts and sands to large boulders. The movement of sediment may cause problems for numerous reasons. From the traditional river mechanics point of view, for example, scour in a river channel may affect the stability of adjacent structures such as water intakes or bridge piers. In this study, however, the topic of concern is the role of sediment as a pollutant and carrier of pollutants. Sediment often acts as a pollutant in its own right, and numerous cases may be cited. Increased suspended sediment loads in rivers, for example, will reduce light penetration and so affect aquatic organisms, and deposition of fine material has been known to destroy the spawning beds of fish. However, a more insidious aspect of sediment movement is its ability to transport other pollutants, primarily the fertilizers, herbicides, and pesticides used on agricultural lands. Moving sediment particles can transport chemical pollutants because of the combined processes of surface adsorption and absorption, usually referred to collectively as sorption. In this respect, colloidal mineral or organic materials are extremely active, but larger particles are practically inert. However, this neat division is sometimes complicated when, for example, sand particles become coated with very active fine organic matter. The sand then ------- becomes an indirect carrier of the pollutants. Because of the important role played by colloidal materials in transporting pollutants, some comments will be made concerning their structure and behavior. As with other sediments, colloids may be divided into two groups: clay and organic. Clay particles are usually colloidal or near colloidal in size (0.2*10 to 4*10~6 m) and are made up of laminated plates or rods of alumina and silica. Because of their construction, the specific area of particles (ratio of internal and external surface areas to mass) is huge. Their structure is such that each surface contains thousands of negative charges and so a particle will attract and adsorb cations present in the surrounding water. In general, many different types of cations will be adsorbed on a single particle, and these will readily exchange with others in the surrounding fluid. If the ionic composition of the surrounding fluid changes, a corresponding change occurs in the number of adsorbed cations. The adsorption-desorption process attempts to establish an equilibrium between adsorbed and dissolved cations. Thus, if the concentration in the solution increases, more cations will be adsorbed on the particle surfaces. Adsorbed cations include not only naturally occurring ions such as Al''', Vig++, Ca"1"4", and Na+, but also the cationic pesticide and herbicide radicals introduced by man. The sorption processes take place both on the land surface where the chemicals are usually applied and also in the watercourses where bottom muds, bank material, and suspended particles may all adsorb some of the cations in the surrounding water. A more comprehensive treatment of surface chemistry and adsorption processes may be found in standard references such as Taylor and Ashcroft (1972) or Buckman and Brady (1969). The surface chemistry of clay colloids affects not only their ability to transport pollutants, but it also affects the behavior of suspended particles in rivers or estuaries. As the concentration of cations in solution increases, more cations are adsorbed on the particle surfaces. This tends to neutralize the negative charge on the particles and the associated mutually repulsive forces which tend to keep suspended particles dispersed. If the cation concentration in the water is high enough, the repulsive forces will be reduced to the point where they are outweighed by Van der Waals forces. There will then be a net attractive force between particles. Under these circumstances, colliding particles will tend to join together to form aggregates, a process termed "flocculation." This process generally occurs in saline waters, such as estuaries, with cation concentrations (Na+) as low as 50 ppm. The aggregates formed by flocculation exhibit much higher settling velocities than the individual particles and so, as would be expected, their behavior in suspension is quite different. The behavior of clays in estuarine environments is discussed in detail by Krone (1962). The structure of organic colloids is more complex and more variable than that of clays. The nuclei consist of various compounds composed of mostly C and H, which can be oxidized to inorganic material. So, unlike clays, they are not conservative substances. However, they are similar to clays in that the nuclei Have a strong negative charge and attract and adsorb cations. In ------- fact, the cation exchange capacity of organic colloids far exceeds that of even the most active clays. Hence, organic colloids will be more active carriers of pollutants and their tendency to flocculate will be stronger. 4.2 Sediment Transport Processes On a basin scale, sediment transport processes may be neatly split into two groups: processes occurring on the land surface and those occurring in the watercourses (Bennett 1974). On the land surface, aggregates or individual particles of material are detached from the soil mass by raindrop Impact and overland flow. The detached material may then be moved across the land surface by raindrop splash and overland flow. The natural microtopography of the area will tend to concentrate the overland flow resulting in rill and possibly gully erosion. Changes in land slope, continued infiltration and obstructions may all reduce the velocity, and hence, the transport capacity of the overland flow resulting in redeposition of all or part of the sediment load. The detailed picture is extremely complex. Ultimately, overland flow and its load of sediment, together with adsorbed pollutants, may enter a stream system to be routed further through the river basin. The principal aim of this research has been to study the transport of sediment in and through the channel system. The sources of sediment include not only the inflow from the tributary land surfaces but also the banks and bed of the river channel. To remove material from a streambed, flow generated forces must overcome stabilizing forces. In the case of cohesionless sediments, such as sand, this happens when the lift and drag produced by turbulent velocity fluctuations near the bed overcome the stabilizing forces generated by the immersed weight of the particle. Einstein (1950) used this criterion as a starting point in his classic work on bed load transport. In the case of cohesive sediments, such as clays and colloidal organic particles, the major stabilizing force is the attraction between the particles and particle aggregates which make up the bed surface. This cohesion makes the bed far more resistant to scour than would be the case if submerged weight were the only stabilizing force. Cohesive beds may be visualized as consisting of several layers, each with its own shear strength. Significant scour will only take place if the shear force exerted on the bed by the flowing water exceeds the shear strength of the weakest layer. The properties of cohesive beds have been extensively investigated by Krone (1963) and Partheniades and Paaswell (1970). We now consider the behavior of sediment particles suspended in the stream. If the water were absolutely still, all sediment would settle to the bottom. Settling velocity (Vs) is strongly dependent on particle size; sand settles quickly, whereas clay particles settle very slowly. In moving water, turbulence will be present to some degree. For the purpose of this dis- cussion we may view turbulence as superimposing a randomly fluctuating vertical component on the velocity of a settling particle. The shear ------- velocity (V ) is a measure of this component. The effect of turbulence is that, even in a steady flow, the water will never completely clarify. Sediment particles will be lifted off the bed and projected upwards into the flow at a rate which eventually balances the rate of deposition due to settling. (The exceptions are situations in which sediment is too coarse to be scoured or the bed is cohesive and is not eroding.) Rouse (1937) derived a formula for the equilibrium concentration profile for cohesionless sediments; the dimensionless ration (V0/Vj.) is a crucial factor. o W The behavior of suspended cohesive sediments is complicated by the possibility of flocculation. If colloidal sediments are suspended in water with low salinity, they will remain dispersed and the settling velocity will be very small. If, however, the salinity rises above a certain critical level, the particles will be able to flocculate. The resulting aggregates will settle much faster than primary particles. This is what happens in an estuary. Note that there is usually a maximum size (or order) of particle aggregate because large aggregates are relatively weak and are easily broken by shear in the flow. These processes are usually dynamic. Aggregates may simultaneously be growing in one portion of the flow profile and breaking in another. Sediment transport involves the motion of a multitude of individual particles, each with its own trajectory. Some particles may be depositing on the bed while others are being scoured away. The difference between these rates determines whether there is net deposition or scour. An equilibrium situation is actually the average of many unsteady movement/rest/movement trajectories. Because there is a constant interchange between suspended sediment and sediment on the bed, any contaminated material which enters a reach will soon appear in the surface region of the bed. To predict the effect one would need a model which realistically simulates the way in which the bed composition changes over time. It would have to predict factors such as the relative quantity of contaminated material in the surface (mixing) zone, the thickness of this zone, and the variation of these quantities with time. Prediction of the mixing zone thickness requires a distinction between cohesive and cohesionless beds. Cohesive beds are flat or almost flat and there is very little, if any, vertical mixing of sediment in them. The mixing zone is very thin. In cohesionless beds, the mixing zone depends on particle size. Materials finer or coarser than sand will usually form flat beds. The mixing zone will again be quite thin. The vast majority of streambeds, however, consist of sandy material of intermediate size. The flowing water causes the sand surface to deform into a wavy pattern or bed form in much the same way that the wind molds a sandy surface. The geometry of the bed form determines the thickness of the mixing zone. A variety of characteristic bed forms have been distinguished. This subject is discussed in texts such as the manual published by the American Society of Civil Engineers (Vanoni 1975). The type of bed form depends on the flow conditions and the bed material, and in turn, the type and amplitude of bed form affects flow conditions. Thus, there is a complex feedback between bed forms and flow conditions involving mechanisms which are not yet fully 10 ------- understood. Simons and Richardson (1966) and Vanoni (1974) have developed criteria for predicting the occurrence and type of bed form given the hydraulic conditions. The most common bed forms are ripples and dunes. They travel slowly in the direction of flow and mix all the sand which they contain. Under these conditions the mixing zone is approximately equivalent to a smooth layer with thickness one-half the mean amplitude of the waves. Where the bed contains a mixture of sediments of differing sizes, it is possible that armoring will occur. Under some flow conditions, the coarser material in the bed may be immobile. The flow washes finer materials out of the bed surface leaving an armor coat of the coarser material. This protects underlying material from scour. To model the armoring process, it seems that we must subdivide the bed into layers so that the variability of particle size distribution with depth can be described. The conditions affecting sediment transport in a stream vary both in space and time. As a flood passes a given point, the bed might be scoured as the flow rises and then refilled as it recedes. Material buried for some time will be removed and replaced with other sediment. If one simultaneously monitors the event at several points in the reach, a highly variable picture can be expected. At some points there might be a lot of scour and refilling; at others there might be little or none. Some sand or gravel bars may disappear; others may be created. Vanoni (1974) points out that the bed form of a stream may vary with lateral position in the bed and that different bed forms may occur simultaneously within a given reach. Vanoni concludes that "the implication of this (variability) is disconcerting in that it illustrates the complexity of a natural stream and dims the hope of predicting with confidence the behavior of such streams." There is also variability which is more systematic. For example, the velocity and depth of flow near the edges of a channel are less than velocity and depth near the center. This can result in relatively coarse material being moved down the mainstream while fine material is being deposited near the banks. Unfortunately, practical considerations almost always force us to use one dimensional models to represent stream channel processes. As a result, much of the spatial variability discussed above cannot be explicitly represented. We must model the "average" situation in a reach or, possibly, subdivide it into midchannel and side channel subsections. Some streams are characterized by migrating meanders. Material is eroded along some portions of the meander and deposited on others, resulting in a net downstream movement of the sinuous stream channel. Sediment deposited on the bank may remain there for decades or even centuries before being re-exposed when the next meander arrives. In such a case, the stream is reworking material in the entire meander belt, not only in the mixing layer on the bed, as is the case with fixed channels. This does have implications for pollutant transport modeling. If contaminated sediment is involved in meander deposition and scour, particles deposited in the meander belt might remain stationary for many years, and the adsorbed pollutants would be subject to processes such as degradation. However, if the belt only contains coarse sediments and the contamination is confined to fine material 11 ------- which travels as wash load, meander migration will have a minor effect on pollutant movement. In all, sediment transport is a most complex topic, and any attempt at modeling must include some sweeping assumptions and idealizations. These and corresponding limitations to the model will be discussed in Chapters 5 and 6. 4.3 Influence of Chemical Pollutants on Sediment Modeling The purpose of this section is to indicate some of the requirements that chemical pollutants impose on a sediment-pollutant model. Most chemical pollutants travel in solution or adsorbed on colloidal material. Many can exist in significant concentrations in both forms. If there is an imbalance, ions will tend to migrate so as to restore equilibrium between the adsorbed and dissolved states. Some other processes which influence pollutants are: volatilization, oxidation, biological reactions, and other chemical reactions. It seems that the main implication for sediment modeling is that we must track the movement of colloidal material, both from the land surface and through the stream system. If a stream transports large quantities of coarse material but, at the same time, deposits silt and clay along its banks or flood plain, the latter process will probably be more important to us. By contrast, an engineer concerned purely with the quantities of sediment transported would justifiably neglect the silt and clay. It will probably be necessary to represent a streambed with several layers in order to estimate the concentration of chemicals in it. Consider, for example, a bed on which contaminated sediment is depositing. Even if the sediment composition is uniform throughout the bed profile, the chemical composition may vary because the material in lower layers has had more time to react or degrade than the overlying material. Sediment age is therefore a consideration. The importance of coarser sediments is not clear. Although they are relatively inert, sand particles can be covered by colloidal matter, in which case they probably behave as cohesive sediments by harboring chemicals. It is not clear what effect a mobile sand bed has directly on finer sediments flowing in the overlying stream and indirectly on pollutant transport. Most streambeds consist of relatively clean sand which is formed into traveling ripples or dunes. In this case, colloidal material is probably scrubbed off the sand particles. Thus, the mobile sand bed prevents fine material from becoming a significant bed constituent and, indirectly, keeps contaminants out of the bed. On the other hand, for flow over a coarse, immobile bed, experiments by Einstein (1968) have shown that fine material is deposited in the interstices between gravel particles. This takes place to some extent irrespective of stream turbulence and is one mechanism whereby fine material and associated pollutants can be retained in a streambed. Fish spawning areas are sometimes spoiled in this way. 12 ------- In view of the uncertainty regarding the role of cohesionless sediment, it- would seem wise to include all sizes of material in a sediment pollutant model. After all, sediment itself is often a pollutant. 13 ------- CHAPTER 5 THE WATERSHED EROSION AND SEDIMENT TRANSPORT (WEST) MODEL The Watershed Erosion and Sediment Transport (WEST) Model is a continuous simulation model that represents the movement of sediment and water from the land surface and through the stream systems of a river basin. The organization of the WEST Model is shown in Figure 1. As can be seen from the figure, the WEST Model is in fact made up of two separate models, the ARM Model and the CHANL Model which are linked by a simple data management system. The ARM Model continuously simulates hydrologic processes (surface and subsurface), snow accumulation and melt, and sediment generation on the land surface. The CHANL Model simulates the in-stream processes of water movement and sediment transport. Development of the WEST Model is the first step in developing a predictive model for studying the movement of pesticides, herbicides and nutrients on a basin scale. Ultimately, it is hoped that the model will be useful in assessing the impact on water quality of existing and proposed land use and management techniques. 5.1 Modeling Philosophy The principle underlying mathematical models is that processes which occur in the real world can be represented by appropriately linked mathematical expressions. Many different models have been used to study hydrologic systems. Clarke (1973) has grouped mathematical models into various categories and described the underlying principles and uses of each type. The model detailed in this report may be described as "deterministic conceptual." It is deterministic because given sets of input data will always produce the same output. It is conceptual because the relations and parameters incorporated in it are based on the actual physical processes which take place in nature. By using known physical processes, the predictive capabilities of a model for land use planning or management are considerably enhanced. In theory, the conceptual model enables one to study the impact of proposed changes in land use or farming methods. In practice, however, many problems must be resolved before these predictive capabilities can be fully utilized. Much of our knowledge of sediment transport processes is only qualitative in nature; that is, we know how or why a process occurs, but definitive figures on rates or quantities are lacking. The step of moving from the partially 14 ------- Hydrometeorologic data Land surface runoff (LSRO) and erosion (EROS) parameters ARM MODEL Simulation of land surface hydrology and soil washoff LAND PHASE Point load files (sediment and water! Channel network description Hydraulic and sediment routing parameters CHANLMODEL Simulation of hydraulic routing and sediment transport Line printer (spool 1) Output flow hydrograph CHANNEL PHASE Line printer (spool 2) Output sediment transport rates Disk output (flow rates and sediment transport rates) KEY CARD INPUT DISK FILES MODEL COMPONENT PRINTED OUTPUT Figure 1. WEST Model organization 15 ------- understood physical world to its mathematical representation requires a number of assumptions and simplifications. The next step from the mathematical representation to the implementable computer code is yet another step from reality, and it is important that we detail our assumptions and simplifications so that the performance of a mathematical model can be adequately evaluated. This chapter will describe the general organization used in basin scale modeling and point out the assumptions which determine the applicability of a model to a particular system. 5.2 Modeling Approach A fundamental principle underlying the WEST Model is that simulation of the processes in a watershed can be performed in two distinct phases: a land phase and a channel phase (Figure 1). The land phase includes all algorithms which have to do with processes which occur on and under the land surfaces. Output from the land phase enters the channel phase which simulates the movement of water and sediment through the natural channels down to the watershed outlet. It is assumed that the channel processes have ,no influence on the land processes; i.e., there is no feedback to the land phase. In practice, a certain amount of feedback may occur: for example, the bank storage of water in times of high stream flows (Todd 1964). 5.3 Land Phase Simulation Considerable effort has already been put into the simulation of land surface processes. In particular, research efforts sponsored by the Environmental Research Laboratory in Athens, Georgia (Athens-ERL) have led to the development of the Agricultural Runoff Management (ARM) Model (Donigian and Crawford 19?6a; Donigian, et al. 1977). The ARM Model considers an area of uniform land use and simulates the following process: •surface and subsurface hydrology •sediment production and removal from the land surface by overland flow •adsorption/desorption and degradation processes for pesticides •pesticide removal from the land both in solution and adsorbed on sediment •nutrient plant uptake and the major nutrient transformations •nutrient removal from the land both in solution and adsorbed on sediment The output from the ARM Model includes both the runoff and sediment contributions to the stream channels which are used as input to the channel phase simulation. In the WEST Model, the land phase is simulated by dividing the watershed into "segments" (Figure 2) and applying the ARM Model to each segment separately. Segments are visualized as areas of land (not necessarily contiguous) with uniform meteorologic and physical properties; for example, uniform rainfall, infiltration, surface slope, soil type, and land use. Input to the ARM Model consists of various hydrometeorologic data (rainfall, 16 ------- evaporation) and parameters describing the system being simulated. The ARM algorithms operate in terms of a unit area of land and produce land surface runoff rates as inches within a modeling interval or land surface erosion rates as tons per acre within the modeling interval. Thus, the areal extent of the segment does not enter the computations except as a final multiplier on the response from the unit area. The ARM Model can therefore be applied to a large segment in exactly the same way as a small field. Segment Boundary Watershed boundary KEY LAND SEGMENT NUMBER CHANNEL REACH NUMBER Figure 2. Division channel of watershed reaches into land segments and Figure 1 shows the flow of information involved in the land phase simulation. Inputs of hydrometeorologie data are transformed by the ARM Model to time series outputs of land surface runoff (LSRO) and land surface erosion (EROS). LSRO is the depth of runoff, both surface and subsurface, flowing into the stream system in each modeling interval for a particular segment. EROS is the mass sediment washoff per unit area reaching the stream system in each modeling interval. Both LSRO and EROS, representing the response from a unit area, are written to disk in specially formatted data files for use as input to the CHANL Model. For the sake of clarity, xFigure 1 only shows one LSRO and one EROS file. In practice, for a vfetershed divided into a number of segments, one LSRO file and one EROS file would be produced for each segment. One drawback of the present version of the ARM Model is that the sediment algorithms only estimate the total mass of sediment washed from the land surface in each modeling interval. No indication is given of the particle size distribution of the sediment. The transport algorithms in the channel phase of the WEST Model, however, treat each particle size fraction 17 ------- individually. It was therefore necessary to either modify the sediment production algorithms in the ARM Model to produce output by particle size fraction, or include a procedure in CHANL to estimate the breakdown. The former option was rejected because there appeared to be little available theoretical work on which to draw. It was thought inadvisable to devote considerable time and funds to the topic because the major thrust of the present project was the modeling of processes in channels. We therefore decided to perform the subdivision in the CHANL Model. This approach has the additional advantage that data transfers between the land and channel phases are reduced; one file of data containing total washoff is used instead of a file for each particle size fraction. The basis for subdivision, described in Appendix A, should be regarded as a temporary measure since there have been no tests or comparisons with field data. The EPA (Athens-ERL) is currently studying the problem of predicting particle size distributions of eroded sediment, and results of future research may be used to replace or improve the existing algorithms. For full details of the ARM Model, the reader is referred to the following publications: Crawford and Donigian (1973); Donigian and Crawford (1976a); Donigian, et al. (1977). A review of the ARM Model is given in Donigian and Crawford (1976b). 5.4 Channel Phase Simulation The main thrust of the research was the channel phase simulation. This work resulted in the development of the CHANL Model for simulating sediment and water movement through the stream channel system. 5.4.1 Basic Procedure The channel phase is modeled using a tree-like structure of "reaches" (Figure 2) which represents the principal watercourses in the basin. The CHANL model is able to take both point loads and diffuse loads (output from the ARM Model) and route water and sediment through the stream system to complete the basin scale simulation (Figure 1). When modeling large systems it is frequently desirable to divide the system into parts. In Figure 2 we might first simulate the reach system 4, 5, and 6 down to point A, and then go on to simulate reaches 1, 2, 3, and 7 incorporating a point load input at A obtained from the previous simulation. Alternatively, records of sediment transport rates and flow discharge may exist at point A which could be used as a point input to the rest of the system. Thus, allowance for both point and diffuse loads increases the flexibility of the model. The CHANL Model operates on the inputs to give flow discharge and sediment transport rates at the required points in the system. The outflow from each reach is computed for every time interval and becomes the inflow to the channel immediately downstream. The algorithms which handle the flow of water are based on those used in Hydrocomp Simulation Programming (HSP) (Hydrocorap 1976) and are relatively straightforward. The simulation of 18 ------- sediment movement is much more complicated and required the development of a new set of algorithms. 5.4.2 Basic Assumptions Before going on to discuss the detailed theoretical aspects of the CHANL Model in Chapter 6, it is important that the user completely understand the basic assumptions used in the model development. These underlying and elemental assumptions fix the area of applicability of the model and have considerable impact on the model's development and implementation as a whole. The CHANL Model addresses the time variant problem of one-dimensional water and sediment routing in natural channel systems. The one-dimensional assumption is of great significance. In particular it means that flow velocity and depth within a reach are represented by average values over the cross section. Lateral variations of depth and lateral and vertical variations in flow velocity are all ignored. Since sediment transport rates are very sensitive to flow velocity, varying approximately as the fifth power of velocity, transport rates and the mobility of coarser particles may be underestimated in some situations. In many natural streams it will be observed that the coarser materials are moved down the center of the stream channel where velocities are greatest; whereas, closer to the banks only finer materials are in motion. Such lateral variations cannot be handled in a one-dimensional model. The CHANL Model assumes that transported material is uniformly mixed within the flow. One approach to overcome these problems is to use a two-dimensional model. Unfortunately, the computational complexities and difficulties in practical application are such that multidimensional models are rarely warranted in this type of work. An alternative which may prove worthwhile and which warrants further study is use of a pseudo one-dimensional model. Each reach is split laterally into a number of sections in which velocity and depth are relatively uniform. Sediment and water are routed through each section separately, using the one-dimensional assumption. The velocities and transport rates in each section represent the lateral variation over the cross section. The principal variables that have to be considered for sediment routing are the hydraulic parameters (flow discharge, depth of flow, cross-sectional area, and energy slope), sediment transport concentrations, and channel bed composition. The hydraulic parameters are the driving functions for sediment transport, and in this version of the model they are provided by a kinematic wave representation of channel flows. Kinematic routing restricts the use of the model to stream systems without bifurcations and in which backwater effects are minimal. However, the sediment algorithms have been designed so that substitution of more sophisticated hydraulic routing algorithms may be made easily. Since the model will be used initially on upland catchments, more sophisticated routing algorithms are not warranted at present. Past experience with kinematic algorithms has shown them to be accurate and quite efficient in terms of computational effort. 19 ------- Another major assumption is that there is no feedback from the sediment processes to the hydraulic processes. In fact, such feedback occurs in a number of ways. Firstly, scour or deposition of sediment may alter both the channel cross-sectional geometry and its bottom slope, and these in turn affect the conveyance properties of the channel. Secondly, for flow over cohesionless beds, the hydraulic conditions, water temperature, and bed composition control the geometry and type of bed forms (ripples, dunes, or anti-dunes), and these in turn affect the roughness and hence conveyance of the channel. The effect of degradation on channel slope has been discussed by Gessler (1971), and Simons and Richardson (1965) cite several examples of the interaction of bed form and hydraulic conditions. In certain cases, these interactions are undoubtedly important, however, their inclusion in the present model is not warranted because of the additional computational complexities and the uncertainties in quantifying the interactions. Ignoring feedback has an attractive computational feature; that is, the governing equations for water movement can be solved independently of the continuity equation for sediment transport. The sediment algorithms simulate the scour, deposition, and advection of both cohesive and cohesionless mineral particles (clays, silts, and sands) in freshwater stream systems. The algorithms do not allow for flocculation of fine materials, and so would not be applicable in saline waters, nor do they consider organic material. In the present version of the model, the sediment algorithms cannot operate in situations with flow reversals or bifurcations, although unidirectional flow with backwater effects could be simulated with appropriate hydraulic routing algorithms. Finally, the algorithms are only valid for Froude numbers less than 0.8. 5.5 Data Communication Continuous simulation involves the use of a vast amount of data. As an example, consider a run of the WEST Model in which one segment only is used. If we wish to run the model for one year using a 15-rain time step, then the LSRO and EROS files output by the ARM Model would each contain 35040 data items. The management of such large amounts of data poses real problems. Not only does data have to be transferred between the ARM Model and the CHANL Model but consideration has to be given to the handling of point loads and the output of data from the CHANL Model for plotting or further analysis. The data handling problems become even more acute as more constituents are modeled. At present, the ARM Model outputs two files, LSRO and EROS. Ultimately, in modeling pesticide movement through the stream system, we might require an LSRO file, several EROS files (one for each particle size fraction being modeled), and several files containing masses or concentrations of pesticides in solution and adsorbed on the sediment. There is a clear need for some sort of data management system to enable convenient and efficient use of basin scale modeling. The data management system for WEST is based upon a series of sequential access disk files, with one file for each time series of data to be used. Use of disk Tiles places a hardware restriction on model users. However, since the model may have to access a large number of files at one time, use 20 ------- of disk, rather than tape storage, is the only realistic solution. As far as possible, the model was written in ANSI Fortran so as to be useable on a wide range of computers. This restriction effectively eliminated the possiblility of using the more sophisticated direct-access methods at this stage in the model development. The format, creation and access of the data files is discussed in detail in Section 7.3. Briefly, the system was designed with: •a minimum quantity of disk storage •labeled files to aid in identifying data •fast transfer of data to and from disk •infrequent disk input-output operations •relatively simple file formats so that users may write their own ancillary programs for the display, generation, or analysis of data. Although the original purpose of the data management system was the transfer of data from the ARM Model to the CHANL Model, it quickly expanded to include the input of point loads and the display of results. These functions required the development of an assortment of ancillary programs to assist in the generation of data files, plotting of results and so on. Unfortunately, there is no generally recognized machine-readable format for sediment data and so the user is urged to develop his own ancillary programs to meet his particular requirements. Ancillary programs are discussed in Chapter 8. As more constituents and more complex systems are modeled, it is likely that a more sophisticated data management system will be required. The development of such a system is currently in progress as part of grant number R804971-01-1 from Athens-ERL, entitled "Comprehensive Package for Simulation of Watershed Hydrology and Water Quality." 21 ------- CHAPTER 6 CHANL MODEL: THEORETICAL FOUNDATIONS 6.1 Introduction Chapter 5 outlined the general approach to basin scale simulation and discussed the basic assumptions used in the development of the CHANL Model. One of the central features introduced in the chapter was the simulation of land and channel phases as two separate steps. This approach was possible because of the assumed absence of feedback from the channel to land phase. By neglecting the feedback from sediment processes to hydraulic processes, the hydraulic routing and sediment transport may be treated in a similar manner, i.e. simulation may be dene in two separate steps; first hydraulic routing and then sediment transport. The general organization of CHANL is shown in Figure 3. The period for simulation is divided into a number of "time blocks," the length of a time block being a fixed multiple of the modeling interval chosen. The "time block" concept is discussed in detail in Chapter 7. Processes in a reach are simulated for a complete time block before moving on to the next reach in the system. Hydraulic routing and sediment transport calculations are performed in sequence for each interval within the time block. Output from the hydraulic routing are used as the driving functions for sediment transport calculations. Details of the computational features of the model are presented in Chapter 7. We will now discuss the theoretical basis for hydraulic routing and sediment transport. 6.2 Hydraulic Routing Algorithms The kinematic routing method uses the continuity equation for water and a storage-discharge relationship for each reach. The continuity equation in integral form is: X X T T /i+i r i+i r j+i r j+i A(x'Vi)dx ~ / AT.)dx = / Q(xi,t)dt - / Q(xi+1,t)dt J J Z •' /•Vi rx±+i /-TJ+I -I I q(x,t)dxdt + I P(t)dt (1) •T 22 ------- c START Initialize for run. I Time block loop I Get "time block" of all LSRO& EROS data I Reach loop I Get "time block" of all POINT loads for this reach T -*• Interval loop I Hydraulic routing Sediment routing C END Figure 3. Organization of CHANL Model 23 ------- The symbols are defined at the beginning of this report; see pages xii-xv. The finite difference representation of the equation is based on a four point explicit scheme (Figure 4). The following approximations are made: . + 1 (2) I /• Q(Xi>t)dt = T. J (3) with similar expressions for the remaining terms in Equation 1. The weighting parameters 0j and 0. control the stability and accuracy of the finite difference scheme. Values of 0 must satisfy 0 < 0 < 1. T:j 0 X- y x u Ai xj+1 x Figure 4. Grid for finite difference scheme Introducing the approximations into Equation 1 and rearranging; Ax(l - 0,) = At + Ax At q + 0.5 At /P(T.) + P(T .)l It is assumed that conditions along time line j and space line i are known and that we are presently stepping along time line j+1. Unknowns in Equation 4 are thus A(Xi+i, Tj+1) and Q(Xi+i, Tj+i). The point load P(t) and lateral inflows q represent boundary values supplied by the user. 24 ------- For the kinematic routing, outflow from a reach is assumed to be a function of storage in the reach, and channel reaches are simply storage elements. In the approach adopted here channel reaches are assumed to be prismatic. Hence, although continuity of flow is maintained across reach boundaries, there is no continuity of cross-sectional area. These considerations, and consideration of numerical stability led to a choice of Q± = 0. For accurate time integration, a value 62 = 0.5 is assumed. Substituting 0 = 0, 0 = 0.5 in Equation 4 gives: 2 0.5 At {Q(X1+1,Tj+1) + Q(X.+1,T.)} + A* { A(X.+1,T.+1) - ACX^.T. = 0.5 ^{QO^.T.^) + Q(X1,T.)| + Ax Atq -I- 0.5 At |P(T.) + P(T )} (5) The other basic equation involved in the hydraulic calculations is: S(t) - f [Q(X,t)] (6) This function implies a fixed relationship between storage and discharge which again is an approximation. Manning's equation is used to evaluate this relationship giving: [A(X t) I ^^ pra^J *SLOPEl/2 and, with the assumption of prismatic cross sections, storage is: S(t) = Ax*A(Xi+1,t) (8) Flow routing involves the simultaneous solution of Equation 5 and 7 to find the unknowns A(XI+I, Tj+1) and Q(X1+1,T.+, ) . Figure 5 illustrates how this is done. Using Equation 7, the cross-sectional area of flow and the corresponding discharge are found for several different water levels. Intermediate values are found by linear interpolation. Equation 7 then graphs as a series of straight line segments in Figure 5. Equation 5 expresses a linear relationship between storage and discharge and plots as a straight line. The routing procedure involves finding the intersection of the two graphs (point B) . If the graph for Equation 5 passes below the origin there is no solution. The main program checks for this condition by finding the intercept on the Q axis: _ QINT = 2*=*A(XfT ) - Q(X,T ) + 2*1 25 ------- where I is the rate of inflow to the reach from all sources, i.e. diffuse loads, point loads and inflow from upstream channels. A negative value of QINT is interpreted as meaning that the channel has gone dry during the interval under consideration. If this happens, the standard routing algorithms are bypassed and Q(Xi+i, Tj.fi) and S(T^+i) are set to zero. If QINT is positive, subroutine ROUTE is called to solve the equations. It does this by finding the intersection of curve 5 and the segment of curve 7 on which point A is situated, or the linear extension of that segment. This is labeled point E in Figure 5. If Ej is outside the segment of curve 7 which contains A, the program selects the adjacent segment, moving in the direction of Ej, and again solves the equations (point £2). The process is repeated until the true point of intersection B is located. This becomes the starting point for calculations in the next time step. Q DISCHARGE Figure 5. Graphical representation of the equations used in kinematic routing Point B provides values for the unknown discharge Q(X^+i, Tj+i) and storage S(Tj+i). The cross-sectional area is then obtained through "Equation 8 and knowledge of the cross-sectional geometry enables calculation of the depth of flow. The point values of area, discharge, and depth obtained are passed to the sediment algorithms. The stability and accuracy of the finite difference scheme is affected not only by the form of the numerical approximations, but also by the value of 26 ------- the mesh ratio Ax/At. However in this model the sediment algorithms provide a more stringent restriction on the mesh size, namely £>2 <«> That is, the flow time through the reach should be greater than the modeling interval. This restriction is intended to prevent complete flushing of a reach in the time interval. 6.3 Sediment Transport Algorithms 6.3.1 General Approach Depth of flow, cross-sectional area, and discharge are the principal variables passed from the hydraulic calculations to the sediment algorithms. These provide the "driving force" for routing sediment through the channel system. In any one reach, the sources of sediment are: •inflows from adjacent upstream reaches • point inflows •diffuse or local inflow (sediment washoff from the land surface) •scour from the channel bed Initial sediment transport concentrations in the reach and initial bed composition are necessary to describe the system for the start of simulation. The major processes to be modeled are advection of sediment and scour and deposition of both cohesive and cohesionless material (Figure 6). Modeling scour and deposition requires consideration of other processes, namely armoring and the development of bed forms, both of which are dependent on the bed composition. The principal output from the calculations is the sediment outflow from the reach. However, the algorithms are also required to recompute sediment transport concentrations and bed composition which, together with the hydraulic variables, completely describe the state of the system. The routing calculations are based on solution of the mass continuity equation for sediment movement. The general sequence of computations involved in the solution scheme is shown in Figure 7. There are two unknowns in the continuity equation: the sediment transport concentrations at the end of the modeling interval and the net scour or deposition of material. The method of solution of the continuity equation depends on the type of material being considered. For cohesionless material, the sediment transport concentrations may be found by using one of the many transport equations available. Substitution of this value in the continuity equation then gives the net scour from the channel bed. For cohesive materials, the scour rate may be related to the flow rate by an empirical equation. Consideration of hydraulic conditions and particle settling velocity gives the deposition rate, and hence the net scour over the modeling interval. This may then be substituted in the continuity equation to give the unknown sediment transport concentration. Note that the continuity equation must be solved in a different manner for cohesive and cohesionless materials. 27 ------- POINT WATER AND SEDIMENT INFLOW WATER AND SEDIMENT INFLOW FROM UPSTREAM 0 Figure- LOCAL WATER AND SEDIMENT INFLOW CHANGE IN WATER LEVEL DEPOSITION OF SEDIMENT SCOUR OF SEDIMENT WATER AND SEDIMENT OUTFLOW UJQ ocm rocesses simulated in a reach The remainder of this section describes the detailed aspects of the sediment routing calculations. The reader should refer frequently to Figure 7 to maintain an overall picture of the solution scheme. 6.3.2 Representation of the Physical System Two topics of concern in simulating the physical system are the representation of graded material and representation of the channel bed. Sediments of different particle sizes are transported differently, have different scour and deposition characteristics and have different affinities for chemical pollutants. Also, the gradation of material is instrumental in the development of araoring. It is important then that a model be able to represent the movement of the range of particle sizes found in a channel system. The model represents a graded material as a number of discrete particle size fractions. The following fractions are used: • one clay fraction; diameter <0.002 mm As a cohesive material, clay shows very different scour properties from those of sand. Once in suspension, clay is considered to form the wash load; that is, most particles will remain in suspension and be washed through the channel system. •one silt fraction: 0.002 mm ------- Find depth area & discharge from hydrauliccalcs. Find sediment inflow by particle size fraction. Check the mobility of & find the ultimate transport cones, for sand fractions using Ackers & White transport eqn. Determine type of bedform and thickness of active layer if any. No active layer forms if top layer is cohesive. YES Scour from .cohesive layer?, NO Compute the mass of clay & silt scoured from the cohesive layer. Determine mass of sand released by scour of cohesive material & add to active layer. Mass of clay & silt removed. Mass available in active layer (corrected for armoring). Figure 7. Sequence of sediment transport calculations 29 ------- 0 Correct sand transport concns. for the proportion of each size fraction in the active layer & for presence of immobile material (armoring). For sand fractions use Continuity Eqn. & known transport concns. to determine net scour. Is rMass scoured iMass available/ for scour NO YES For sand fractions use Continuity Eqn. & mass available for scour to determine actual transport concns. Correct mass of clay & si It scoured for deposition to determine net scour. Figure 7. Sequence of sediment transport calculations (Continued) 30 ------- © For clay & silt fractions use Continuity Eqn. & mass scoured to determine transport concns. Update bed composition for net scour/deposition of all fractions for next time step. Figure 7. Sequence of sediment transport calculations (Continued) •one or more sand fractions; 0.05 ram < diameter The number of sand fractions should be such that armoring of the bed may adequately be represented. The model has been tested with as many as seven sand fractions. In a natural channel, especially in the upper reaches of a system, there is usually a wide gradation of material. The discrete size fractions chosen for use in a given application should obviously represent actual gradation. Some problems arise in this representation. Discretization of sediment sizes causes some discontinuity in computed results. For example, as flow increases, formerly immobile material will become mobile in steps instead of following a smooth transition. The effects of this assumption can only be evaluated after experience has been gained in using the model. The bed is described in each channel reach by a number of bed layers; the composition within each one is assumed to be homogeneous. The initial thickness of the bed layers and their composition by particle size fraction are input by the user. The composition of a channel bed is usually quite variable and the conceptualization of the bed as a number of homogeneous layers is necessarily far from reality. However, this approach does allow the inclusion of those gross bed features which affect sediment transport rates. Such features include layers of coarser material which may provide armoring, lenses or layers of dense clays and so on. The model allows for the creation and destruction of these bed layers to enable both the direct simulation of the creation or break down of armoring layers and the ability to keep account of material availability for each particle size fraction. 31 ------- 6.3-3 Derivation of the Continuity Equation The continuity equation for sediment transport may be written in integral form as (the symbols are defined at the beginning of the report): T T T X j + 1 f j + 1 /.j + 1 r i+1 / + f j G(X.,t)dt + J P g(x,t)dx dt T. J /*i /M(x (11) 1 l i Numerical approximation of the integrals in the above equation requires careful consideration. Bella and Dobbins (1968) studied the numerical problems associated with the modeling of stream pollution and some of their recommendations have been implemented here. The potential use of the model with "full-equation" hydraulic routing dictates the use of flow rates and other hydraulic variables as point values in space and time. It was for this reason that the kinematic routing in the previous section was expressed in terms of point flow values, not mean values as is the usual practice. Sediment transport concentrations cannot, however, be satisfactorily treated as point values in time and space. The principal problem that arises is in determining concentrations at the upstream and downstream boundaries of the system. For this reason sediment transport concentrations are taken as spatially averaged concentrations at points in time. Figure 8 summarizes the finite difference scheme; hydraulic parameters are determined at points in time and space (points 1, 2, 3, 4, ...), sediment transport concentrations and other sediment related parameters are determined as spatially averaged values at points in time (points A, B, C, ...). Defining (XX.^, TJ) as the average sediment transport concentration for the reach upstream of point X. at time T., the following approximations may be made: /i+1 / C(x,T.) A(x,T.)p dx = Ax |oiP C(X1+1,T_.) A(XI>TJ) -1 -4- fl _ O ^n rf-V T } A^V T ^l (12) T (i — U,;p ^>\A..,ti..J "vA. ,,l,;> 1 i+1 j i+1 j J 32 ------- x4 Figure 8. Finite difference grid for sediment modeling and assuming: G(X ,T ) = p Q(X ,T ) C(X ,T ) then: J i J J f / G(X1,t)dt Lj ) Q(Xi,Tj) (13) (14) Similar approximations may be made for the other terms in Equation 11. The weighting parameters ©i and 02 may again be used to control the stability and accuracy of the scheme. Values of 0 must satisfy 0 <_ 0 <_ 1. Introducing these approximations into Equation 11 and rearranging: p 1 * 02) At Ax T.) A(Xi,Tj) - PAtQ2C(Xi+1,T..) Q(Xi+1,T..) + g Ax At + 0.5 At JPS(T.) + PS(T. )1 (15) 33 ------- For consistency with the kinematic routing presented in Section 6.2, a value 0} = 0 Ls used in the sediment algorithms. Also, for accurate time integration, a value 02 = 0.5 is used. Substituting QI = 0 and 02 = 0.5 in Equation 15 gives: Ax = 0.5 pA I 1 J -1- J -I- pAxC(X. , ,T.) A(X. n ,T.) + g Ax At + 0.5 At ------- 34 6 8 ,n3 34 6 8 ,«4 YD50= DEPTH/050 are 9. Bed form chart tor Rf, = 102 346 81Q3 34 6 8 10 YD50 = DEPTH/050 Figure 10. Bed form chart for RG = 1D.O 35 ------- 6 8 io3 YD50= DEPTH/050 ftirm chart for Kt; = lh.0 34 6 8 1Q4 ., 0 .04 YD50- DEPTH/050 12. Hc-d I'dnn ch.-irl t'cr R(l =• 2ri.O ------- II • I : ; > • Q 34 68 ,«3 .06 .04 56 8 02 2 345 YD50= DEPTH/050 figure- I 'i. lii-d form rh.-irl lor k(l = 40.0 34 6 8 1()2 YD50 = DEPTH/050 l/i. Bed lorm cliarl for RC •-•• KO.O 6 8|03 '/ ------- found in a reach depends on a combination of three parameters. These parameters are: (1) Froude number FR FR = v(xi+1, T.+I)/YGRAV*DEPTH d?) (2) Grain Reynolds number RG RG = D50*-y/GRAV*D50 / KINVIS (18) (3) The ratio flow depth/median size of bed sediment YD50 = DEPTH/050 (19) where DEPTH is defined as the average flow depth over the cross section: DEPTH = A(X1+1, Tj+1)/TOP(X1+1, Tj+1) (20) The charts cover a range of values of grain Reynolds number, RG, from 1.5 to 80.0, and are valid for Froude numbers up to 0.81. Use of the charts proceeds as follows: (1) Determine the median size of mobile sand fractions in the top bed layer (particle mobility is discussed in Section 6.3.5). (2) Determine values for YD50, RG, and FR. (3) Interpolate between charts to find the bed form corresponding to the computed values of YD50, RG, and FR. After the type of bed form is defined, the next step is to find the height or amplitude of the bed form. Yalin (1961, 1976) presents both a theoretical analysis and experimental data for estimating the height of ripples and dunes. The geometry of ripples is solely a function of particle size; it is independent of flow depth. Yalin (1976) gives ripple length: L x 1000*050 (21) and maximum steepness: H Lr~3 (22) Hence, the maximum height of fully-developed ripples is: Hr x 200*050 (23) Within the model ripple height is given as: H = RIPPLE*D50 (2U) where RIPPLE is a user-defined parameter with a suggested value of about 100. 38 ------- The geometry of dunes is more complex and appears to be a function of both flow conditions and particle size. For fully-developed dunes, Yalin (1976) gives dune length: L » 2»Tr«DEPTH d and maximum steepness: H. - » 0.06 (25) Hence, the maximum height of fully-developed dunes is: H. » 0.38*DEPTH d (26) (27) Nordin and Algert (1965) point out that the average maximum amplitude of dunes is about 0.33*DEPTH, while Jopling (1965) cites several cases of dune amplitudes of 0.5«DEPTH. Within the model, maximum dune height is given as: Hd = DUNE«DEPTH (2g) where DUNE is a user defined parameter with a suggested value of about 0.4. To show the variation of dune amplitude with flow conditions, Jopling (1965) plotted the relative dune height (Hd/DEPTH) against bottom slope resulting in a series of graphs idealized in Figure 15. For uniform flow, slope can be related to Froude number through Mannings equation, giving: log(SLOPE) = K + 2*log(FR) where K is a constant. (29) .0001 .0002 002 Dl .0005 .001 SLOPE Figure 15. Relative roughness vs. slope from Jopling (1965) ' ------- This allows Figure 15 to be transformed to a plot of relative roughness vs. Froude number as depioted in Figure 16. Values on the abscissa of Figure 16 are not important; the intention here is to just show the general relationship. Returning to Vanoni's bed form charts, Figure 10 for example, may be entered with a value of YD50 = 5000. This gives a transition from ripple to dune at a Froude number, FRRD = 0.105 and a transition from dune to flat at a Froude number FRop = 0.3. Using the form of relationship in Figure 16, the maximum dune height is assumed to occur at a Froude number: log(FR max (30) Suppose the actual Froude number is FR, then using logarithmic interpolation, the actual dune height is: H, = DUNE* d |log(FR ) • log(FR) max log(FR ) - max *DEPTH (3D FROUDE NUMBER Figure 16. Relative roughness vs. Froude number For both ripples and dunes, the active layer is represented as a smooth layer with a potential thickness ACTIVE equal to one half the height of the bed form (Figure 17). Because of lack of data, flat bed forms are assumed to produce an active layer with the same thickness as that produced by ripples. The full development of the active layer may be affected by the presence of immobile particles and by underlying cohesive layers (percentage of clay and silt exceeds BIND). . ------- Undisturbed bed layers Equivalent active depth ADEPTH Immobile material drops to bottom of active layer ire 17. Si-rt ion through colics i on 1 rss bed As the bed forms move downstream, immobile material will drop to the bottom of the active layer (Figure 17). An equilibrium depth is defined as the depth of mobile bed material which must be scoured away to leave an immobile armoring layer sufficiently thick to prevent further scour. The thickness of the armoring layers which will prevent all scour is : ARMOR = ARMF*D50A where D50A = the median diameter of immobile material ARMF = a user supplied parameter (32) In theory, ARMF need only be 1.0 to prevent scour. However, in practice a value closer to 1.5 or 2.0 is used to account for spatial variability. A complete discussion of armoring appears in Section 6.3-6. The depth of scour required to produce an armoring layer ARMOR thick is: ARMOR ARMD s (33) We note that the armoring layer prevents disturbance of underlying material; hence, by definition, the actual depth of the active layer is: ADEPTH = MIN (ACTIVE, ARMD) (31) Formation of the full active layer may also be restricted by underlying layers of cohesive materials. The cohesionless material above the cohesive layer becomes completely mixed, but there is no mixing with material from the cohesive layer, nor is there any mixing within cohesive layers (Figure 18). Note that because the active layer is not fully developed, the underlying cohesive layer may be subject to scour. Cohesive materials are discussed in detail in Section 6.3-7. The importance of developing information on the "active layer" for cohesionless materials lies in obtaining representative estimates of the ------- Partially developed active layer (cohesionless material) Figure 18. Section Cohesive bed layers Undisturbed cohesionless layer ixi-d c-ohos ion less/cones ive bed particle size distribution within the surface zone of the bed. It is this material which is immediately available for transport by the stream flow and whose availability controls transport rates of the individual size fractions. 6.3.5 Transport Concentrations for Cohesionless Material There are many methods currently available for estimating the transport rates of sediment in uniform flow over a cohesionless bed. The technique developed by Ackers and White (1973) was chosen for use in this work, for the following reasons: (1) The method predicts total transport rates; the usually arbitrary distinction between bed load and suspended load is avoided. (2) The theoretical basis of the method is understandable and assumptions and restrictions are well documented (White 1972). (3) The method has been extensively tested on both field and laboratory data and its performance compared favorably with that of other techniques (White, Milli, and Crabbe 1973a, 1973b, 1975). (M) The method is relatively easy to implement on a computer. (5) The method may be used with graded materials. The most serious restriction of the technique for use in this worlc, and one which applies to all other known techniques, is that testing on graded materials has been limited. Where tests have been made, no attempt has been made to predict the transport rates for individual particle size fractions. The transport rates are given for some median particle size. , ------- To compute the transport rate for a uniform sediment, the following properties of the system must be known: particle diameter, DIA specific gravity of the sediment, SG mean flow velocity, V sheer velocity, SHEARV depth of flow, DEPTH kinematic viscosity of the water (implying knowledge of water temperature), KINVIS The calculations are carried out as follows: (1) Determine the dimensionless grain size, DGR, from the relationship 1/3 DGR = DIA* [GRAV*(SG - 1.0)1 KINVIS2 J (2) Determine the following calibration coefficients for particles with 1 < DGR < 60: AN - 1.00 - 0.56 log DGR (37) log1QAC = 2.86 log1QDGR - (log^DGR)2 - 3.53 (39) for particles with DGR>60: AA = 0.17 (40) AN = 0.0 (41) AM = 1.5 (42) AC = 0.025 (43) 43 ------- (3) calculate the particle mobility, FGR: SHI'ARV r Y I I/(;RAV*DTA*(SG - i) Lj/32 * log (IO*DEPTH/DIA-| (l-AN) . A (44) (4) Compute the dimensionless sediment transport rate GCK: G(;K = AC * -rf-" - 1 AA I FGR |_AA AM (45) For FGR < AA the particle is immobile and the value of GGR zero. (5) Convert GGR to a sediment transport concentration CP as parts by mass of water flux. GGR*SG*D1A — — — .— — 7 DKITH AN SHKARV (46) The transport concentration CP obtained in Equation 46 is a potential or ultimate concentration; it is the concentration of sediment of diameter DIA in steady uniform flow over a bed completely composed of cohesionless particles of diameter DIA. The computations outlined in Equations 35 to 46 above are done for each particle size fraction. Then the actual transport concentration for sand size fraction I is assumed to be: 'CMO (47) where PC(I) = percentage of material of size fraction I in the active layer PCMO = percentage of mobile sand in the active layer When using any sediment transport function, it is important to have some feeling for the accuracy that may be expected. White, Milli and Crabbe (1975) show that for tests of Ackers and White's method on field and laboratory data the ratio of computed to observed sediment transport concentrations lay between one half and two for 68 percent of the data. In other words, predicted transport rates which are double the observed rates are well within the expected accuracy of the method. To those unfamilar with sediment transport, it is worth pointing out that few available methods are better than the method developed by Ackers and White. 6.3-6 Armoring The transport concentrations obtained from the Ackers and White method may be affected by the presence of immobile material. Immobile material tends to shelter potentially mobile particles and prevent, or at least hinder, their movement. Gessler (1971) shows that under steady flow, ------- degradation with protection by armoring is an asymptotic process. The rate of scour decreases at an exponential rate as the thickness of the immobile armoring layer increases. This effect is incorporated by using the relationship shown in Figure 19. SCOUR REDUCTION FACTOR (FACT) PROTCT 100 PERCENTAGE IMMOBILE MATERIAL INACTIVE LAYER Figure 19. Reduction of scour by armoring The user supplied parameter PROTCT is the percentage of immobile sand in the active layer which will just start to protect finer material from scour. The concentrations given by Ackers and White are multiplied by the scour reduction factor to give the unknown transport concentrations required for the solution of the continuity Equation 16. 6.3-7 Deposition and Scour of Cohesive Material Flowing water has a definite upper limit on its capacity to transport cohesionless sand particles. The ability to transport fine cohesive materials such as clay and silt is, however, essentially unlimited. The flowing water will usually carry whatever cohesive particles are freely available or can be detached from cohesive banks or bed layers. Prediction of the transport of cohesive materials is therefore based largely on the consideration of material availabe and the ability of the flow to detach the material from cohesive layers. By predicting the net mass of material removed from or added to the channel bed, the continuity Equation 16 may be solved for the cohesive clay and silt fractions. As with cohesionless fractions, the transport of cohesive materials represents the average of many individual particle trajectories involving both deposition and scour or uplift. This has been demonstrated by Einstein (1968) who showed that cohesive particles may be deposited in the interstices of immobile gravel beds where they are protected from resuspension. A 5 ------- Deposition of clay and silt fractions is estimated using the relationship of Figure 20. It is based on curves presented by Brown (1967), which he derived from work by Camp (1943). To facilitate implementation in the model, the curves have been modified using work by Einstein (1968) and Owen (1969). Figure 20 is entered with the value of (SETVEL/SHEARV) which is an inverse measure of relative turbulence. The proportion of suspended material deposited in the time interval At is given by the ordinate. Hence, the mass of clay and silt deposited in a time interval may be found. 1.0 - FRACTION OF SUSPENDED MATERIAL DEPOSITED IN TIME INTERVAL SETVEL SHEARV (LOG SCALE) Figure 20. Deposition curves for clay and silt One problem with the current algorithm is that its effects vary with the time interval At. Note that the term (1 - e~z) tends to Z as time interval At tends to zero. This means that for the same period of simulation, when the time step At is small, an increase in At will increase the predicted mass of material deposited. This effect requires further investigation. The scour of cohesive materials is controlled both by material availability and by the ability of the flow to detach material from the bed. Two distinct situations can be envisaged. Firstly, in the situation depicted in Figure 17, the bed is cohesionless (percentage of clay and silt less then BIND). The total mass of clay and silt in the active layer is assumed to be immediately available for transport. The only factor which may prevent removal of this fine material is protection by immobile material. The mass of cohesive material actually put into suspension is the mass available multiplied by the scour reduction factor from Figure 19. 46 ------- The second and more complex situation concerns the scour of cohesive layers in which the percentage of clay and silt lies somewhere between BIND and 100 percent. The cohesive layer may be a surface layer, or as a more general case, it may be overlain by a thin layer of cohesionless material as depicted in Figure 18. In the latter case, the layer of overlying sand is not thick enough to form a full active layer and so completely protect the cohesive layer from scour. However, the overlying sand layer is presumed to reduce scour rates. Clay and silt tends to bind bed material and prevent the formation of an active layer. The clay and silt thus have a profound effect on the transport of sand fractions present in a cohesive layer. The detachment of clay or silt is assumed to "release" sand fractions from the cohesive bed. The released material may form a new temporary cohesionless layer or be mixed with material in an overlying layer. This cohesionless material is then available for transport as described in Section 6.3.5. Krone (1963) and Partheniades (1970) describe some of the factors and material properties which control erosion of cohesive materials. In the model, scour rates for cohesive fractions in cohesive layers have the following form: SCOUR = a*SGRCON*(BEDSHR - S*CRTSHR)SCREXP (48) where symbols are defined on pages xii-xv. The constants a and 8 are correction coefficients for the presence of sand, their values may be found from the relationships in Figure 21. Only limited data have been found to verify these relationships. Smeardon and Beasley (1961) present data which shows that the critical shear stress of soils decreases as the percentage of sand increases. The relationship for B in Figure 21 exhibits the same qualitative behavior. Equation 48 has the following properties: (1) When the bed is composed of 100 percent silt or clay, the relationship becomes the traditional equation for scour based on excess shear stress: opppyp SCOUR = SCRCON*(BEDSHR - CRTSHR) (49) (2) Clay or silt loses its cohesive properties entirely when the percentage is less than BIND. This handles the transition from a cohesionless to pure cohesive bed. (3) As the proportion of clay/silt decreases, a increases; hence, the scour rate increases. 47 ------- ABIND 1.0 '0 BIND 100 PERCENT CLAY OR SILT (p) 0 BIND 100 PERCENT CLAY OR SI LT (p) Figure 21. Correct ion factors for scour of cohesive materials The mass scour rate given by Equation 48 is computed for both the silt fraction and the clay fraction. Knowledge of the composition of the cohesive layer allows this rate to be converted to a depth rate of scour. The depth rate of scour in a layer composed of both silt and clay is taken to be the minimum depth rate of scour for the two size fractions. As with cohesionless materials, a number of factors may reduce or limit the depth rate of scour computed above. Firstly, the depth rate of scour will be reduced if the cohesive layer is overlain by cohesionless material. A scour reduction factor, REDCT1, is obtained from Figure 22. ADEPTH represents the depth of material required to form a fully developed active layer. (Recall that, by definition, no disturbance takes place below the active layer). 1.0 SCOUR REDUCTION FACTOR "0 ADEPTH DEPTH OF OVERLYING COHESIONLESS MATERIAL Figure 22. Keduct ion of scour of cohesive material by an overlying colies ion less layer Secondly, the presence of immobile cohesionless particles in any overlying layer shelters cohesive materials and inhibits detachment. A second scour reduction factor REDCT2 is obtained from Figure 19. The depth rate of scour 48 ------- derived from Equation 48 is multiplied by the minimum of REDCT1 and REDCT2. A final computation converts this rate to the depth of scour in the time interval and thence to the mass of clay and silt scoured from the bed. Both deposition and scour have now been computed. This net scour gives one of the unknowns required for solution of continuity Equation 16. 6.3.8 Solution of the Continuity Equation The derivation of the continuity Equation 16 was given in Section 6.3-3. Equation 16 contains two unknowns; the transport concentration at the end of the time interval and the net scour/deposition of material on the bed. Sections 6.3-4 to 6.3-7 have shown how one of the unknowns may be found for each size fraction. Net scour/deposition for clay and silt fractions was determined in Section 6.3-7, and transport concentrations for sand fractions was determined in Sections 6.3.4 to 6.3-6. The solution of Equation 16 for clay and silt fractions is straightforward and simply involves the substitution of net scour/deposition to determine the transport concentrations for each fraction. For sands, the solution of Equation 16 is more complex. Substitution of the transport concentrations enables us to calculate the net scour/deposition in the time interval. However, actual scour is subject to material availability. Scour of cohesionless material always takes place from the active layer. The mass of material available in the active layer is computed. If the mass required for scour is greater than this, then the mass actually scoured is taken to be the mass available. The mass actually scoured is then again substituted in Equation 16 to recompute the correct sediment transport concentrations. 6.3-9 Concluding Remarks A final step in the sediment algorithms is to update the state of the system. The composition of bed layers is recomputed to account for the scour of material. If in fact net deposition took place in the time interval, material deposited is assumed to form a new surface bed layer. The formation of new layers in this manner allows the model to keep track of armoring layers as they are formed and as they become overlain by subsequent deposition. It also gives a mechanism for keeping track of sediment age. This concludes an outline of the computations necessary to estimate sediment transport rates and changes in bed composition and suspended sediment concentrations for one time interval. These calculations are carried out for each time interval for every reach in the system. The implementation of this model on the digital computer is described in Chapter 7- ------- CHAPTER 7 CHANL MODEL: COMPUTATIONAL ASPECTS AND COMPUTER CODE 7.1 Software and Hardware Requirements The CHANL Model, in general, is coded in ANSI Fortran, though for convenience a number of extensions have been adopted (Table 1). These extensions are supported by most major software suppliers. Use of ANSI Fortran, rather than a more sophisticated version of the language, will improve or ease the transfer of the program from one computer system to another. Table 1. EXTENSIONS TO ANSI FORTRAN 1. The T (tabulate) format code is used. 2. Literal data in format statements are enclosed in apostrophes instead of being preceded by the H format code. 3. Mixed mode arithmetic is permitted. It is not possible to specify exactly what demands this program will place on a computer system because machines vary in architecture and operating systems. Different compilers handle the same Fortran program in different ways. We developed and tested the program on a Hewlett Packard 3000 Series II machine which separates core usage into two categories: code (unmodifiable instructions) and data (core locations with modifiable contents). The code required a total of 30 K (decimal) words, but using virtual memory, this was reduced to 7 K words and could have been reduced even further. The HP 3000 uses the "stack" principle to store data, which requires 27 K (decimal) words. On the HP 3000, a word occupies two bytes. It is unlikely that the program could be made to occupy less than 60 K bytes unless the dimensions of some arrays are reduced. On most operating systems, the minimum core requirement might be around 80 K bytes. One additional hardware requinnent is that the program be able to "open" and access multiple files. This requirement effectively precludes use of the program on systems which do not have disk storage. 50 ------- c START Initialize for run. Read "time block" of all LSRO & EROS data i loop Read "time block" of all POINT loads for this reach il loop Hydraulic routing Sediment routing c END Figure 23. Organization of CHANL Model 51 ------- 7.2 Simulation Management Efficient use of computer core and fast execution time are important considerations in the design of most simulation programs. This is particularly true in simulating complex hydrologic and transport processes such as those in CHANL. The management of simulation and the sequence of operations both have a great effect on the efficiency of simulation. The overall organization of CHANL is shown in Figure 23. Two important concepts have been incorporated: the use of "time blocks," and the optimal ordering of reaches. The natural watercourses in a watershed are represented by a network of reaches (Figure 24). Inflow of water or materials to a reach may come from the local tributary land surface and from immediate upstream tributary reaches. Within a reach, simulation calculations produce values for flow rates, flow depths, cross-sectional area, sediment transport rates, and a number of other variables. In continuous simulation these quantities must be computed for every reach in the system for each time interval in the simulation period. The computations must start at a headwater reach where there is no inflow from upstream reaches. Figure 24. Representation of the watercourses in a watershed There are various ways in which a model designed to simulate a reach network can be organized. In building the CHANL Model a compromise was made between two extremes. It could have been constructed so that the entire reach network is processed for one time interval before moving to the next interval. The advantage of this arrangement is that backwater conditions, in which the flow in a reach affects conditions in upstream reaches, can be accomodated to a certain extent. However, execution time is slow because of the constant switching from reach to reach. Since execution time was judged to be the more important factor for CHANL, this organization was rejected. 52 ------- The opposite organization is that in which one reach is processed through the entire simulation period before the next one is handled. This expedites execution. The drawbacks are that backwater effects cannot be accomodated and that a large amount of temporary storage is required to retain output from one or more reaches until the data are used as inputs to downstream reaches. The storage problem can be overcome by writing output to disk and reading it back into core when required. This, however, is counterproductive because disk input-output (1-0) is slow. The organization adopted for CHANL is like that just described, except that a fixed number of time intervals, called a "time block," are handled in sequence instead of the entire simulation period (Figure 23). Temporary storage is in core, which avoids the use of many slow disk 1-0 operations. The "time block" concept also has implications for the design of the disk files used in input and output. The record length for the files is chosen so that each record contains a complete time block of information. This method together with the use of unformatted read and writes is an efficient way to transfer information to or from the external storage device. The design of disk files is discussed in detail in Section 7.4. The optimal time block size depends on such factors as cost of core storage, cost of cpu time, cost of disk storage, and 1-0 operations. The choice of time block size is dependent on the operating environment; so no definitive statement on the "best" value may be made. A time block size of 128 was used on the HP 3000. This value minimized the amount of disk storage required for diffuse and point load files, but we made no attempt to optimize cost for core usage and execution time. Another question relating to simulation management concerns the exact order in which the reaches are simulated. With a tree shaped reach structure the output from some reaches must be retained in core, while other reaches are processed until the junction is reached where the stored flows combine. The space used to store the data may then be released and used again, if required. Obviously, the program must be told when and how to do this. In general, the order in which the reaches are handled affects the maximum number of sets of output which have to be held in core at the same time, and hence, the core required by the program. This can be illustrated from the network in Figure 24. If the order of computation were 9, 7, 5, 3» 1» 2, 4, 6, 8, 10, 11, the output from reaches 9, 7, 5, 3, and 1 would need to be in storage by the time reach 2 was worked on. From that point on, the space required would decrease. On the other hand, if the order were 1, 2, 3i 4, 5, 6, 7, 8, 9, 10, 11 only one storage vector would be needed. Selection of the sequence which minimizes temporary storage is not always easy. For this reason, and to simplify the input required from the user, a special subroutine (RSORT) was included in the model. It analyses the reach network, determines the optimum execution sequence, and directs the main program to the appropriate vector for the input and output for each reach. It also directs the main program when to combine the contents of vectors, as confluences are reached. The technique used has been documented by Heler (1975). 53 ------- 7.3 Computer Code 7.3.1 Overview A listing of the computer code for CHANL is given in Appendix D. The program is modularized. It consists of a main program which controls the overall sequence of computations and UO subroutines. Each subroutine has a specific task. This approach to the design is intended to (1) facilitate maintenance and improvement of the model, (2) facilitate implementation of the model on a variety of computer systems, (3) ease the problems of debugging and program development. Table 2 contains an alphabetic list of the subroutines making up the model. The subroutine structure is shown in Figure 25, and Table 3 is a cross reference table for checking the calling sequence of subroutines. Both the main program and all the subroutines contain extensive comments, and the program should be self-explanatory to a large degree. A glossary defining the principal variables in the program is given in Appendix C. This is a useful aid in understanding the detailed organization of the program. Some comments about the programming style may be instructive. The following points should be noted: (1) Communication between subroutines is through argument lists in the calling statements. No common blocks are used. (2) All variables are declared in "type" statements (REAL, INTEGER). No DIMENSION statements are used. (3) The program was developed on an HP 3000-11 computer. In HP Fortran the integer is a two-byte word by default, hence, the occurrence of INTEGER**! declarations for certain variables. (This feature should not affect transfer of the program between different computers.) (4) All arrays with variable dimensions are declared at the head of the MAIN program. Although this is not conducive to the most efficient use of core, it is extremely valuable when the system configuration has to be changed to model a larger system. The main program is used to control the sequence of operations performed by the model. An understanding of the main program is crucial to an understanding of the model as a whole and is described in detail in Section 7-3-2. The remainder of this chapter describes the function and major features of the subroutines. ------- Table 2. ALPHABETICAL LIST OF SUBROUTINES Number Name 1 ACTIV 2 ADDTIM 3 BEDFRM 4 BLEND 5 CLEAN 6 COHESV 7 DIAM50 8 DIFFLD 9 FILEIN 10 GETSON 11 HDPRNT 12 HYPROP 13 INFO 14 INITFL 15 INTERP 16 KILL 17 LOADIN 18 LUKUP 19 MAIN 20 OFFST 21 PLOAD 22 PNTLD 23 POPOUT 24 PSHDON 25 PSHDWN 26 RCHIN 27 REFIL1 28 REFIL2 29 REFIL3 30 ROUTE 31 RSORT 32 SDLOAD 33 SDPRNT 34 SDROUT 35 SEDINF 36 SEDPRT 37 SPLIT 38 STORGE 39 TBOX 40 ULTMT 41 VISCHG 55 ------- MAIN TBOX Ui KILL o KILL HYPROP STORGE PSHDON GETSON PSHDWN Figure 25. Subroutine structure of the CHANL Model ------- SEDINF LOADIN FILEIN REFIL1 KILL REFIL2 PLOAD DIFFLD INITFL KILL OFFST REFIL3 Figure 25. Subroutine structure of the CHANL Model (Continued) ------- 0 ROUTE HDPRNT Ul oo ------- 0 ACTIV CLEAN BEDFRM DIAM50 BLEND INTERP COHESV DIAM50 SDPRNT SEDPRT Figure 25. Subroutine structure of the CHANL Model (Continued) ------- Table 3. CROSS REFERENCE TABLE FOR SUBROUTINE CALLS CALLING ROUTINE I /'CALLED L/ ROUTINE MAIN ACTIV ADDTIM BEDFRM BLEND CLEAN COHESV DIAM50 DIFFLD FILEIN GETSON HDPRNT HYPROP INFO INITFL INTERP KILL LOADIN LUKUP OFFST PLOAD PNTLD POPOUT PSHDON PSHDWN RCHIN REFIL1 REFIL2 REFIL3 ROUTE RSORT SDLOAD SDPRNT SDROUT SEDINF SEDPRT SPLIT STORGE TBOX ULTMT VISCHG z 5 >| ACTIV w •| ADDTIM V | BEDFRM ^ | BLEND £ l| CLEAN V H COHESV V | DIAM50 t £ 9 Q u. LL 5 • M FILEIN V | GETSON n )| HDPRNT w | HYPROP 0 o IL Z LL h; Z • | INTERP £ 4 0 d| di • 0 H LOADIN V | LUKUP n I] OFFST w • )| PLOAD w | PNTLD • | POPOUT • | PSHDON • | PSHDWN t || RCHIN w V || REFIL2 w LL Ul OC 0 l)| ROUTE w | RSORT 6 H SDLOAD H SDPRNT n SDROUT H SEDINF | SEDPRT ^ • H Q. CO d^ M STORGE dt X O OQ II ULTMT t\ VISCHG . 60 ------- 7.3.2 Main Program The sequence of operations performed by the main program is shown in Figure 26. The description that follows is intended to amplify the legend in that figure. To assist cross referencing, the comments below are labeled with numbers which are referenced by notes on the figures. (1) The transfer vector TVEC stores point flow and sediment outflow rates from the current reach for a complete time block. These values are later used in computing the total input to the reach immediately downstream. TVEC has dimensions (MTVEC, MORDR) where MTVEC is (MNPSF+1)*(TBLKSZ+1); MNPSF is the maximum number of particle size fractions supported by the program; TBLKSZ is the number of intervals in a time block; and MORDR is the maximum stream order supported by the program. Figure 27 shows the manner in which data are stored in each column of TVEC. Subroutine RSORT analyses the reach network to determine the optimal sequence of calculations. In doing this, RSORT also sets up a vector VECNO which specifies the column in TVEC that will contain the input to each reach. The output from that reach is subsequently placed in the same column. When a confluence is reached in the stream network, the outflow from the upstream reaches must be combined to produce the inflow to the downstream reach. This effect is achieved by summing appropriate columns in TVEC. Subroutine RSORT creates a second vector REL which specifies for each reach whether its output is to be combined with that from another reach, and if so, which columns of TVEC are to be combined. (2) As explained in Section 7.2 the efficiency of the program is greatly affected by the sequence in which reaches are simulated. Subroutine RSORT analyses the system to determine the optimal sequence. The information produced is stored in an array SEQ which contains the reach numbers in the order in which they are to be simulated. (3) Total inflow of both sediment and water consists of diffuse inflow, point load inflows, and inflows from upstream reaches. Computation of active layer thickness is a slow operation and need not be done every time interval. The active layer characteristics are recomputed only if one of the following events has taken place: (a) The flow rate has changed by 10 percent or more since the last active layer computations. (b) The flow depth has changed by 10 percent or more since the last active layer computations. 61 ------- FLOWCHART SUBROUTINE CALLED, OR COMMENTS START Declarations Set maximum system size I Write title box TBOX Read basic information & options to INFO be used in this run. Read reach network description, com- pute hydraulic properties & analyse reach network for optimal sequence RCHIN of computations. Compute initial hy- draulic conditions. NO Sediment \ simulation? / / YES Read sediment parameters and related information. Read initial sediment concentrations and bed composition. Read information for point & diffuse loading. Initialize all loading files. Read information on data to be writ- ten to disk. Initialize all output files. , • • ,- I Initialize counters, set some arrays to zero, prelim, calcs. for constants. I Determine no. of time blocks in the simulation period, & length of last time block. SEDIIMF LOADIN FILEIN OFFST Figure 26. Flowchart of MAIN program 62 ------- FLOWCHART SUBROUTINE CALLED, OR COMMENTS TIME BLOCK LOOP STARTS -»-DONTBLK = NTBLKS= # of time blocks Q. O o o O _j CO LU NO Diffuse loads? YES Fill array STOR with LSRO values from all LSRO files for this time block. NO Sediment \ simulation? / YES Fill array STORE with EROS values from all EROS files for this time block. Set transfer vector TVEC to zero. REFIL1 REFIL2 See note 1 REACH LOOP STARTS NREA = # of reaches See note 2 a. O O I O < 111 cc NO Point loads? YES Fill array STORP with point flow & sediment discharge values for this time block and this reach. PLOAD Figure 26. Flowchart of MAIN program (Continued) 63 ------- FLOWCHART SUBROUTINE CALLED, OR COMMENTS Q_ O o _J ^ 0 O _j CO 111 a. O O I CJ < 111 cc a. O O < > QC Fetch hydraulic parameters & print in- formation for this reach. Fetch initial discharge rate Q2S for start of time block for this reach. Compute initial storage SS, depth Y2S and area A2S. NO Sediment \ simulation? / YES Fetch initial sediment concns. CS and bed composition for start of time block for this reach. INTERVAL LOOP STARTS INTV= 1,NINTS Find calendar time at end of this interval. i Find total inflow of water to this reach in this time interval. I Perform hydraulic routing to find dis- charge Q2E, depth Y2E, area A2E at the end of this interval. Print out for hydraulics if required. Write hydraulic results to array DSKDAT for ultimate output to disk if required. STORGE NINTS = # of intervals in this time block ADDTIM See note 3 ROUTE See Section 6.2 HDPRNT Sediment \ simulation? / YES Figure 26. Flowchart of MAIN program (Continued) 64 ------- FLOWCHART SUBROUTINE CALLED, OR COMMENTS Q. O o DC LJJ to O s h- 2 LU S Q HI U3 0. * CO a. O O O o _J CQ Q- o O I O < LU DC Find total inflow of sediment to this reach in this interval. NO First interval \ i of new month?/ YES Find kinematic viscosity for this month & recompute those variables dependent on viscosity. Compute potential transport concns. for sand fractions using Ackers & Whites formulae. Recompute active layer characteristics (thickness & composition) & find lay- ers from which scour may occur. NO Scour from cohesive layer? YES Compute mass of clay & silt scoured from the cohesive layer. Find mass of sand released & form new top layer available for scour. Correct sand transport concns. for armoring. Compute deposition of silt/ clay fractions. Solve continuity eqn. for all fractions to give concns. at the end of the interval. Update bed com- position. I Print out sediment results if required. SDLOAD See note 3 See note 5 VISCHG ULTMT ACTIV & CLEAN See note 4 COHESV SDROUT See Section 6.3 SDPRNT Figure 26. Flowchart of MAIN program (Continued) 65 ------- FLOWCHART SUBROUTINE CALLED, OR COMMENTS VIE BLOCK LOOP JZ REACH LOOP INTERVAL LOOP CO u -i Write sediment 2 DSKDAT for ulti l_ if required. H Set up sediment — in next interval. UJ w Write sediment inf ^ vector TV EC f or r w » Set up hydraulic interval. Write hydraulic in vector TV EC for r — FlVin IMTFF ^ CINLJ 1 IN 1 C 1 Store hydraulic & for this reach for block. Combine values results to array mate output to disk information needed ormation to transfer >ext reach. nfo. needed in next ormation to transfer iext reach. tVAL LOOP sediment conditions start of next time in transfer vector TVEC at reach confluence. Write output to di! for this reach, if n * riv.innr.fl Find star next ti * PMHTIMP R :k for this time block squired. CH LOOP ting time of me block. i nr.K i nnp STOP See note 1 See note 1 See note 1 ADDTIM Figure 26. Flowchart of MAIN program (Continued) 66 ------- Beginning of first interval in the time block Beginning of last interval in the time block End of last interval in the time block Beginning of second interval •< in the time block ^ z Q G(1) G(2) 7 * G(NPSF) Q G(1) 7 * G(NPSF) 7 7 Z Z Q Q(1) 7 Z G(NPSF) Q G(1) 7 z1 G(NPSF) 7 7 Q = f low rate (L3T1) G(l) = mass sediment transport rate for size fraction I (MT1) NPSF = no. of particle size fractions in this run Figure 27. Typical column of array TVEC ------- (c) The viscosity has changed. (d) The number of mobile sand fractions has changed. (e) The thickness of the active layer has changed by 50 percent or more since the last active layer computations. (f) The median diameter of mobile sand fractions in the active layer has changed by 10 percent or more since the last active layer computations. If active layer characteristics are to be recomputed, a flag RECOMP is set to one within the program. (5) Kinematic viscosity is given as twelve mean monthly values. Variables dependent on viscosity are therefore recomputed at the beginning of each month. 7.3.3 Subroutines: Principal Functions and Features ACTIV Determines the thickness and composition of the active layer. The theory pertaining to active layer characteristics is discussed in Section 6.3.4. A simplified flow chart of the subroutine ACTIV is given in Figure 28. The principal complications that arise in estimating the active layer thickness are: (1) handling beds made up of a number of layers of differing composition; whole or part layers may be mixed by the development of the active layer (2) allowing for the possibility of armoring limiting the development of the active layer (3) allowing for the possibility of cohesive layers limiting the development of the active layer The active layer thickness is returned to the main program in the variable ACTIVE. ADDTJM Adds a specified number of seconds to a given date and time and returns a new date and time. Date and time are measured on a full calendar basis, i.e., variable number of days per month and full allowance for leap years. BEDFRM Predicts type and amplitude of bedforms. The method of prediction is based on the work by Vanoni (1974), Yalin (1976), and Jopling (1965) described in Section 6.3.4. Vanoni's charts (Figures 9-14) are represented as a series of straight line segments on a log-log scale. Co-ordinates of the break points in the charts are stored 38 10810 values ln vect°r BEDMAP. The structure of the vector is shown In Figure 29. 68 ------- FLOWCHART SUBROUTINE CALLED, OR COMMENT START I ACT1(*)=0 ACT2(*} = 0 NEWLY = NLAY NLAY = top layer number D- O O _i cc LU Mix layer NEWLY with overlying layers & store resulting thickness & composition in ACT2. (Characteristics of overlying layer are stored in ACT1) Find median diameter of mobile material for mixed layers in ACT2 Find active layer thickness THK for material in ACT2 YES ;THK NO Need to include next layer NEWLY = NEWLY-1 Transfer ACT2 into ACT1 I DIAM50 BEDFRM ACT20) = thickness of mixed layers. I THK1=ACT1(1) THK2 = ACT2(1) CL o O cc LU True active layer thickness bounded byTHK! and THK2 Form new top layer of thickness: 0.5MTHKH-THK2) & store thickness & composition in ACTNEW. This is a new estimate of the active layer characteristics Figure 28. Simplified flowchart for subroutine ACTIV 69 ------- FLOWCHART SUBROUTINE CALLED, OR COMMENT CL O O DC LU h- Find median diameter of mobile material in ACTNEW Find active layer thickness THK for material in ACTNEW Check for convergence of THK and ACTNEWd). I Convergence met? NO / THK< \, ACTNEW(I)? YES NO THK1 = ACTNEWd) Transfer ACTNEW into ACT1 I THK2 = ACTNEWd) Transfer ACTNEW into ACT2 I ACTIVE = ACTNEWd) I RETURN DIAM50 BEDFRM ACTNEWd ) = thickness of layer ACTIVE = estimate of active layer thickness Figure 28. Simplified flowchart for subroutine ACTIV (Continued) 70 ------- CHART 1 CHART 2 A X- A YD1 RD1 DF, YD2 RD2 DF2 V A. 999. < -\ A YD, RD., I/ /I. YDj = (flow depth/median particle size) for break-point i RD (Froude no. at the ripple/dune transition) for break point i DFj = logiQ (Froude no. at the dune/flat transition) for brea The value 999. is used as a flag to signify the end of a chart. Figure 29. Structure of vector BEDMAP 1 4.5 1 1 J 1 \ ' 0 i 1 X A •" I A 3 1 3 X /• 6 D X 4 2 5! 5 I 1 5 4 7 2 D 1 1 6 81 8 3 3 4 1 RGDIR MAPDIR 4 1 V 1 BEDMAP t first entry of bed-form chart for RG = 10.0 Figure 30. Use of directories to. access BEDMAP 71 ------- Subroutine BEDFRM is entered with values of FR, RG, and YD50. Each chart in BEDMAP refers to a specific value of RG. Two vectors RGDIR and MAPDIR are directories which are used to point into BEDMAP. The method of accessing BEDMAP is best illustrated by the example in Figure 30. Suppose RG equals 10.0. In vector RGDIR, the value 10.0 occupies the second element. There is a one to one correspondence between the elements of RGDIR and MAPDIR, The second element of MAPDIR, MAPDIR(2) contains the value 11. This is a direct pointer into BEDMAP; BEDMAP(11) is the first break point in the bedform chart corresponding to RG = 10.0. The type of bedform is found by interpolation between Vanoni's charts. The subroutine returns the effective thickness of the bedform for use in determining active layer characteristics. BLEND The CHANL Model handles a maximum number of bed layers MLAY in each reach. If during execution there are MLAY layers in the current reach and an attempt is made to create another layer, then subroutine BLEND will combine two layers. The rule for combining layers is that the thinnest bed layer, excluding the top layer, will be merged into the layer above it. CLEAN After the computation of active layer characteristics, subroutine ACTIV returns to the MAIN program a variable ACTIVE which is the thickness of the new active layer. The arrays LAYCOM and LAYTHK, containing the composition and thickness of bed layers, respectively, are not updated to account for the new active layer until the subroutine CLEAN is accessed. CLEAN forms a new top layer of thickness ACTIVE and updates LAYCOM and LAYTHK to account for the destruction or creation of bed layers. COHESV Estimates the mass of each size fraction scoured from a cohesive bed layer in the modeling interval. The theory pertaining to the scour of cohesive bedlayers was given in Section 6.3-7. DIAM50 Computes the median particle diameter (diameter of material with 50 percent by weight finer) for the range of particle size fractions from LOW to HIGH in the current active layer. The active layer thickness and composition by particle size fraction are stored in the array ACT2. The first element of ACT2 contains the layer thickness and the remaining elements contain the proportion of each particle size fraction in the layer, from the finest to coarsest. DIFFLD Reads information pertaining to the diffuse loads to be input to the channel network. The land surface area of a watershed is split into numbered segments over which hydrology, land use, soil type, etc., are uniform. Up to five segments may be tributary in whole or part to any one reach. The diffuse loading information 72 ------- (segment numbers and tributary areas) for each reach is stored in vector RCHTRB and is associated with a particular reach through the pointer vector TRBVEC. The organization of the two vectors is shown in Figure 31. 1 1 NR A NREA IBAS V /( / v A IBAS V A N SEG 1 AREA 1 K I V SEG N A V TRBVEC xl V AREA N yl I/ RCHTRB N = number of segments tributary to reach NR Figure- '\\ . Storage- of diffuse loncling informal ion For reach NR, TRBVEC/(NR) gives the base address IBAS of diffuse loading information in vector RCHTRB. RCHTRBX(IBAS) contains the number of segments N tributary to reach NR. There then follows a sequence of values of segment number and tributary area for the N tributary segments. The segment's diffuse loading data are stored in LSRO and EROS files. Each segment is associated with its appropriate file numbers in the array DD (Figure 32). Segment number File number LSRO EROS 123 A NSEG V A V A. Figure '52. Assor f;it f on of segment number with dilTnse lo.-uling tlntn 73 ------- FILEIN This routine reads and processes information on those variables to be written to disk. A file is initialized for every output time series required. Initialization consists of opening the appropriate files and writing a header label on each file. Flow rates, flow depths, sediment discharge rates by particle size fraction and total sediment discharge rate can all be written to disk. The principal output from FILEIN is the array FTN which contains the Fortran file numbers for those time series to be written to disk. GETSON Routine used by subroutine RSORT in determining the optimal order in which reaches are to be simulated. HDPRNT Prints out results of hydraulic calculations. The output is routed to Fortran file 6 (IOUT=6) thus separating hydraulic results from sediment results which are routed to file 7. HYPROP Uses the cross-sectional geometry, slope, and roughness of each reach to produce a table of hydraulic properties which can be used by the hydraulic routing algorithms in subroutine ROUTE. The cross section of a reach is represented by a series of "break points" connected by straight line segments called "elements" (Figure 33). If the hydraulic roughness of the section varies appreciably, it can be split into "subsections," each with its own value of Manning's n. Subsection boundaries must coincide with element boundaries (Figure 33). Subroutine RCHIN reads the values of Manning's n for each subsection and the x and y coordinates of each break point together with the subsection number for the element immediately following the point. Subroutine HYPROP is then called and proceeds to calculate the hydraulic properties of the section. It does this by computing depth, topwidth, cross-sectional area and discharge for a set of water levels which correspond to the elevations of the various break points. Where two break points have the same elevation, only one calculation is made. In the example shown in Figure 33 there are 10 break points but only 9 water levels. In each case, the water surface might extend over several subsections. Also, obstructions in the channel might cause the flow to be split between several "subchannels." When this happens it is assumed that the subchannels are hydraulically connected so that the water surface elevations are the same. For each water surface elevation the topwidth, depth, cross-sectional area and discharge are found and stored in a table. The discharge is found by applying Manning's formula: SSECS Q= NUM n .67 .5 )S (50) 74 ------- SUBCHANNELS Figure 33. Sketch showing how properties of a reach are represented in the program ------- where Q SSECS NUM n± Ai Hi S = total discharge from the reach number of subsections 1.0 in SI system and 1.49 in FPS system Manning's roughness parameter for subsection i cross-sectional area for subsection i hydraulic radius for subsection i (area/wetted perimeter) gradient of the reach Subroutine ROUTE uses this generated information to perform hydraulic routing. Because ROUTE interpolates linearly between data computed for successive levels, it is important that the number of break points used be sufficient to keep the interpolation error within acceptable limits. The generated data for all reaches are stored in the vector TABLE as shown in Figure 34. Sets of values of depth, topwidth, area of cross section, and discharge for a given reach and water level are stored in adjacent locations. Data for the first level (bottom) of the first reach are stored first, followed by data for succeeding levels, until the last one has been dealt with. The sequence is repeated with data from the next reach, until all reaches have been processed. To facilitate the retrieval of data from TABLE, keying information is stored in two small arrays. BASE(NR) is the element number in TABLE at which information for reach NR starts. NLEVS(NR) is the number of levels in reach NR for which section properties were calculated. INFO Routine to read and check basic information about the simulation period, options to be used and system size. INITFL Routine to initialize those files to be read by the program. Initialization consists of reading and echoing the file header, checking that the period covered by the file is compatible with the simulation period and positioning the file for the start of simulation. Sets up two vectors, CURSOR and KEYS, which are used to locate the first value to be read from each file for the first time block of simulation. Further descriptions of these vectors may be found under subroutines REFIL1 and REFIL2. INTERP Interpolation routine used by subroutine BEDFRM to find the Froude numbers at which the ripple/dune and dune/flat transitions occur for a given bed form chart and given value of YD50 (depth/median particle size). KILL This is a general error reporting routine and is called by a large number of subroutines to report a variety of errors discovered in the user's input sequence. LUKUP A look-up routine for single valued, two-dimensional functions. The function is represented by a series of straight line segments whose coordinates are stored in the array CURVE. Both the abscissa value ABSC and CURVE are passed by the calling routine. 76 ------- ^ DATA FOR FIRST REACH 3 1 1 D 2 T 3 A 4567 Q NLEV= 1 D T A 8 9 Q NLEV = 2 D c/» 3» ijj ^ t T 4 D T A Q NLEV = NLEVS(1) CM LtJ CO CD t D DATA FOR SECOND REACH PM LU t T A Q NLEV = 1 D T A Q NLEV = 2 — *v— D i •\r- D = DEPTH T=TOPWIDTH A=AREA Q= DISCHARGE Figure 34. Structure of vector TABLE ------- LUKUP returns the value of the ordinate ORD. The look-up of two types of functions are supported: ITYPE=1 abscissa linear, ordinate linear ITYPE=2 abscissa logarithmic, ordinate linear OFFST Routine to find the number of hours ISTART between two dates. LOADIN Routine to control the input of diffuse and point load information and the initialization of diffuse and point load files. PLOAD This routine controls the reading of all point load files for the current reach. The actual reading of data is done in subroutine REFIL3. On return from PLOAD, vector STORP contains accumulated data from all point loads for a complete time block. The organization of STORP is shown in Figure 35. Note that as we are concerned with point values in time, simulation of a time block (TBLKSZ time intervals) requires (TBLKSZ+1) point values. Also, for point flow values for example, the (TBLKSZ+1) point value for one time block becomes the first point value for the next time block. Thus in the first call to PLOAD for the current reach subroutine REFIL3 is forced to transfer (TBLKSZ+1) values into STORP from each point load file. The last value in the time block is also stored in the array INITPT. On subsequent calls to PLOAD for this reach, the first value of the time block is taken from INITPT, and REFIL3 reads the remaining TBLKSZ values from disk. TBLKSZ + 1 (TBLKSZ+1 lvalues * of point flows ^ (TBLKSZ+1) values of sediment transport rates for size fraction 1 Sediment transport •*— rates for size -»• fraction 2 etc Figure 35. Structure of vector STORP PNTLD Reads information pertaining to the point loads to be input to the channel network. The point load data may consist of point flow rates and sediment discharge rates for each particle size fraction. Point load data are stored on disk files, and the Fortran file numbers are associated with the receiving reach through the use of the vectors PTVEC, RCHPT, and PTDD. For a particular reach NR, PTVEC points into the vector RCHPT (Figure 36). RCHPT gives the number of point loads applied to reach NR and provides a pointer for each point load into array PTDD. The Fortran file numbers for point loads are stored in PTDD (Figure 36). 78 ------- IB AS / v~ -A PTVEC 1 A "BAS * K -A N ROW! ROW2 V^ A . ROWN # of point loads for reach N R /// RCHPT ROW- Fortran file numbers PTDD Figure 36. Storage of point load information 79 ------- POPOUT Routine used by subroutine RSORT in determining the optimal order in which reaches are to be simulated. PSHDON Routine used by subroutine RSORT in determining the optimal order in which reaches are to be simulated. PSHDWN Routine used by subroutine RSORT in determining the optimal order in which reaches are to be simulated. RCHIN This routine reads in the reach network description and channel cross-sectional geometry and calls subroutines HYPROP and STORGE which compute the hydraulic properties of each reach. RCHIN also calls subroutine RSORT which analyses the whole reach network for optimal reach order. Further information on the cross section representation of reaches may be found in the description of subroutine HYPROP. REFIL1 Reads a complete time block of uncompressed LSRO data from a disk file into a buffer RBUFF. The data is then transferred to a vector STOR in the form required for simulation, if necessary accumulating successive values so that the data in STOR are at the correct time interval for simulation. Accumulation or aggregation of values may require that RBUFF is refilled a number of times before STOR contains a full-time time block of data at the correct time interval. To insure that the data is correctly Justified in calendar time, a vector CURSOR is used to store the displacement in file time intervals between the start of a record and the start of a new simulation time block. Thus for file I, data is initially read from the CURSOR(I) element of the buffer RBUFF. Called from the main program once for each segment in the run. After the last call, the vector STOR contains a time block of LSRO data for every segment. The structure of STOR is shown in Figure 37. REFIL2 Has an identical function to REFIL1 except that it reads compressed EROS data from disk and the ultimate objective is to fill a vector STORE with correctly justified and aggregated EROS data for a complete time block for each segment. The structure of store is similar to that of STOR in Figure 37. TBLKSZ LSRO data for ------- Use of compressed data makes the interpretation of the record more complex. The format of both compressed and uncompressed records is described in Section 7.1. Two vectors CURSOR and KEYS are used to maintain the correct justification of data in calendar time. For file I, CURSOR (I) is the displacement in file time intervals between the start of the file and the start of the simulation. KEY(I) is a value passed from previous calls of the routine or, for the first call, from subroutine INITFL. If positive KEY(I) indicates that the last value processed from the compressed file was positive, and the value in KEY(I) is the position it occupied in RBUFF. If negative, the value in KEY(I) is the last value read from RBUFF. This negative value is a header indicating the time of the next non-zero value of EROS. REFIL3 Reads point values from file into vector STORP. It operates in a similar manner to REFIL1 except that successive calls to REFIL3 are used to sum all point loads tributary to the current reach. The structure of vector STORP was discussed under subroutine PLOAD. ROUTE This routine routes flow through a reach for one time interval using a kinematic wave approximation. The theoretical aspects of the method were explained in Section 6.2. The hydraulic properties of each reach are stored in the vector TABLE whose creation was discussed under subroutine HYPROP. RSORT Determines the optimal order in which reaches should be simulated, as discussed in Section 7.2. RSORT returns the stream order ORDR and vectors VECNO, REL, and SEQ whose contents determine both the sequence of simulation and the control of transfer vector TVEC in the MAIN program. Further comments on VECNO, REL, and SEQ are to be found in notes 1 and 2 of Section 7.3.2. SDLOAD Computes the total sediment load input to any one reach. Sediment input may come from diffuse loads, point loads and inflow from upstream reaches. Point loads are taken from vector STORP discussed under subroutine PLOAD. Diffuse loads are obtained from vector STORE discussed under subroutine REFIL2. Pointers into the appropriate sections of STORE are taken from vectors RCHTRB whose structure was discussed under subroutine DIFFLD. Finally, input from upstream reaches is obtained from the transfer vector TVEC discussed in Section 7.3.2. SDPRNT Controls the print out of sediment transport rates. The mass transport rate for each particle size and the total transport rate are printed. SDROUT Performs sediment routing by solution of the mass continuity equation. The theoretical aspects of the method are discussed in Section 6.3. Principal outputs returned from the routine are sediment transport concentrations and bed composition at the end of the current time step. 81 ------- SEDINF Reads and checks Information needed solely for sediment routing. SEDPRT Prints out the thickness and composition of each bed layer in the current reach. Output is routed to Fortran file 7 (SOUT=7), so separating sediment related output from hydraulic results which are routed to file 6. SPLIT Subdivides the total land surface erosion rate SED into individual particle size fractions. SPLIT may be called by SDLOAD several times; one call for each segment tributary to the current reach. After the final call, SHEET(I) contains the total mass of sediment of size fraction I entering the reach in the time interval. The theoretical basis for SPLIT is described in Appendix A. STORGE Computes the volumetric storage and flow depth in the current reach for a given value of flow rate. Hydraulic properties for the reach are stored in a vector TABLE whose structure was discussed under subroutine HYPROP. TBOX Produces a title box at the head of printed output. ULTMT Computes the potential sediment transport concentration for each cohesionless fraction using the method of Ackers and White. In performing this function, the routine also finds the coarsest mobile fraction IM02. VISCHG Recomputes the values of variables which are affected by change in kinematic viscosity. These variables include settling velocity SETVEL, the diraensionless grain size DGR used by Ackers and White, and the calibration parameters AA, AC, AM, AN, used by Ackers and White (Section 6.3-5). VISCHG is called at the start of the run and at the beginning of every calendar month thereafter. Kinematic viscosity is given as a monthly average value based on average monthly water temperature. 7.M Data Files Three types of data files are currently accessed or created by the CHANL (1) uncompressed diffuse load files (LSRO data), (2) compressed diffuse load files (EROS data), and (3) uncompressed point load files (flow discharge, flow depth, and sediment discharge data). All files have the following characteristics: (1) Fixed length records: Each record contains TBLKSZ data items. (TBLKSZ is the number of simulation intervals in a time block See the discussion in Section 7.2.) Note that idiosyncrasies on IBM machines require unformatted files to be treated as having varible length, blocked, spanned (VBS) records. 82 ------- (2) Binary files: The data is transferred to and from disk in binary form without format control. This obviates the usual conversion of data from character (ASCII or EBCDIC) form on the disk files to binary form in core, or visa versa, thus expediting data transfer. (3) Sequential access. The first record on each file is a label which is written by the creating program before any data is transferred. The format and contents of the label are shown in Table U. Whenever a file is read, the contents of the label are printed out, so that the user can check that the correct data set has been accessed. The records following the label contain the data themselves which may be stored in either "uncompressed" or "compressed" format. Table U. FILE LABEL FORMAT Element No. 1-20 Contents Descriptive title for contents of the file. of up to 80 alpha-numeric characters. Title may consist 21 Starting hour of the file. (File starts with the first interval of this hour.) 22 Starting day of the file 23 Starting month of the file 24 Starting year of the file 25 Ending hour of the file. (File ends with the last interval of this hour.) 26 Ending day of the file 27 Ending month of the file 28 Ending year of the file 29 File time interval in seconds 30 File type = 1 uncompressed diffuse load file (LSRO) File type = 2 compressed diffuse load file (EROS) File type = 3 uncompressed point load file 31-TBLKSZ Not used 83 ------- With the uncompressed format, data are stored in a purely sequential form. Successive items in the record contain data from successive simulation time intervals. Compressed records were developed to save space when storing data for processes which occur intermittently. They are useful, for example, in storing information on simulated land surface erosion; a process which occurs only when overland flow takes place. The idea is to eliminate the large number of zeros which would otherwise appear in the file. This is achieved as follows: the program keeps track of the number of data intervals which have elapsed since the start of the file. When filling the buffer array in core, prior to writing to the file, nothing is stored until a non-zero value is encountered. A negative number is then written. The negative sign indicates that the number is a header or displacement indicator, and the absolute value is the displacement (in data intervals) since the start of the file. Data are then stored in succeeding elements of the array in the conventional manner, until another zero is encountered. The above procedure is repeated, the next item being another header, which indicates the interval number at which data again become non-zero. As soon as the array is full it is transferred to disk as a single record, whereupon the buffer array starts to fill again. A typical compressed file is shown in Figure 38. Label * ( -20. 4 4.5 V Record TBLKSZ values -35. 9.2 ) * 8.7 etc. Record (TBLKSZ values) 9.0 7.0 -100. 2. etc. ^ / — ' \ >— Header -' ^- Data Item Figure 38. Format of compressed record The compressed format has been used to store erosion data simulated for Four Mile Creek, Iowa. The files occupy only 5 percent of the disk space which equivalent files in uncompressed format would require. In general, the degree of compression achieved will depend on how intermittent the process is. In creating and accessing files, a distinction must be made between point and average values. The diffuse load files contain values averaged in time. For example, LSRO is stored as the total depth of land surface runoff occurring in the file interval. Thus for diffuse loads, n values are required to define the input for n time intervals. Point load files, on the other hand, contain values at points in time, for example, a flow rate at specific points in time. In this case (n+1) values are required to define the input over n time intervals. ------- Approximately 65 percent of the code in the CHANL Model relates to data management. This reflects the importance of efficient data manipulation. 85 ------- CHAPTER 8 ANCILLARY PROGRAMS Users of CHANL may need to develop ancillary programs to provide several support functions: •creation of point load files from recorded data •dumping or printing of disk files •statistical analysis of data written to disk •plotting of data for comparison of simulated and recorded values. These tasks fit into one of two groups, both of which provide major problems when using continuous simulation models. These are: (1) preparation of input data and (2) presentation and interpretation of the output. Most of the input to and output from these models are time series, such as flow rates, flow depths, and sediment concentrations. Input time series may come from a number of sources: (1) diffuse loading data (land surface runoff and erosion) generated by the ARM Model and stored in disk files (2) point load data (flow rates and sediment discharge rates) generated by earlier runs of the CHANL Model and stored in disk files (3) point load data taken from recorded measurements. Preparation of data from sources (1) and (2) is usually straightforward since the data on disk is in the form required by CHANL. Recorded flow and sediment discharge rates, however, would not usually be in the required form. Depending on the sources of data, sediment discharge data, for example, may consist of a total mass discharge rate measured at nonuniform intervals in time, together with a particle size analysis for each sample. This data must be transformed to mass discharge rates for each particle size fraction at uniform intervals in time. Data for each size fraction must then be written to disk files in the format required by CHANL (Section 7.M). Unfortunately, there is no generally accepted method of measuring and storing sediment discharge data. This means that most ancillary programs written to express recorded data in the form required by the model, must be specific to a particular source of data. In general, the user will have to develop new ancillary programs for data preparation for each study. 86 ------- Presentation and interpretation of output poses similar problems. The first step in using CHANL will usually be a calibration against existing recorded data. The CHANL Model may be used to write flow rates, flow depths and sediment transport rates for each size fraction to disk. Both simulated and recorded data may then require further manipulation so that a direct comparison is possible. The processing required in this step will again depend on the nature of the available recorded data and will usually be specific to each data source or study. The comparison may take the form of a direct plot of simulated against recorded data or it may consist of a comparison of the statistics of the time series, depending on the aim of the study. A number of ancillary programs were developed specifically for the model testing described in Chapter 10 of this report. Further details of these support programs may be obtained from the authors. 87 ------- CHAPTER 9 CHANL MODEL USERS GUIDE 9.1 Introduction This chapter is intended to provide the potential user with the detailed information required to run the CHANL Model. Before any attempt is made to apply the model, the user should be familiar with the contents of Chapters 5 to 8. In particular, the user should understand the limitations of the model. The material in Section 5.4.2 will enable the user to decide whether the model is applicable to a particular system or problem. The potential user will also wish to study the hardware and software requirements of the model. These aspects are discussed in Section 7.1. 9.2 System Limits Unlike the more sophisticated programming languages, such as PL/1, Fortran does not support the dynamic allocation of storage. The arrays declared in CHANL thus have fixed dimensions for the simulation of systems up to a certain maximum size. The program listed in Appendix D is set up to handle systems which conform to the configuration described in Table 5. The variables in Table 5 represent those array dimensions which vary with system size. All arrays whose dimensions depend on the system configuration are declared at the head of the MAIN program and are passed to the appropriate subroutines through argument lists. Within the subroutines, these arrays are given variable dimensions. Hence, modification of array dimensions to meet a certain system configuration need only be made in the MAIN program. The only exception to this statement is modification of the maximum number of reaches in the system, MREA. In this case one must adjust dimensions both in the MAIN program and in the equivalenced arrays ORD and POT in subroutines GETSON and RSORT. The format of the declarations in the MAIN program and reference to Table 5 will indicate where and how array dimensions should be adjusted. As an example, suppose we wish to track the movement of 10 particle size fractions through the system. Reference to Table 5 will show that the current organization only permits simulation of nine (MNPSF) size fractions. The following changes would have to be made: 88 ------- Table 5. CONFIGURATION OF CHANL MODEL Variable TBLKSZ MREA MAXRCH MORDR MSECS MPTS MCROS MTAD MSEGS MSTOR MLAY MNPSF MNPS1 MNPS2 MNPSF3 MTVEC MSTORP MNPTLD MAXPT MAXTRB MFILE Desoription Value time block size 128 maximum number of reaohes 15 maximum user defined reach number 50 maximum stream order 4 maximum number of subsections used 5 to define any one cross section maximum number of points used to 25 define any one cross section maximum number of points at which water 10 surface and channel sides meet for any non-zero water depth maximum number of elements in the vector 1000 TABLE of hydraulic properties (see subroutine fttPROP in Section 7-3-3) maximum number of land segments 2 maximum length of vectors STOR and STORE 256 (MSEGS»TBLKSZ) maximum number of bed layers in any 5 one reach maximum number of particle size fractions 9 simulated MNPSF +1 10 MNPSF +2 11 MNPSF +3 12 Maximum number of rows in the transfer 1290 vector TVEC (TBLKSZ + 1)*MNPS1 maximum length of vector STORP 1290 (TBLKSZ + 1)*MNPS1 maximum number of point loads (one point 4 load may consist of one flow file and up to MNPSF associated sediment discharge files) maximum length of vector RCHPT 10 (> MNPTLD + number of reaches with point loads) maximum length of vector RCHTRB (see 150 description in Appendix C) maximum Fortran file number 40 89 ------- MNPSF MNPS1 MNPS2 MNPS3 MTVEC MSTORP = 10 11 12 13 1419 1419 Reference to the MAIN program shows which array declarations are affected by changes to these variables. These array dimensions and the declaration of the system size in lines 284/304 of the MAIN program should be changed. In the preceeding discussion, array dimensions were increased to simulate larger systems. Similar changes may be made to reduce array dimensions for simulation of smaller systems. Reducing array dimensions does of course reduce the core requirements of the model, often quite dramatically, and may be the only feasible option for running the model on small computers. 9.3 Modes of Operation The CHANL module can be operated in one of two basic modes: (1) in conjunction with the ARM Model for simulation of sediment movement on a basin scale. (2) as a stand alone program for studying the in-stream sediment transport processes in a relatively small section of a channel network or in a laboratory flume. The principal difference between the two modes lies in the method of creating the files containing the input time series data. Use of CHANL in conjuction with the ARM Model was discussed in Chapter 5. The ARM Model is used to create time series files of land surface runoff data (LSRO) and land surface erosion data (EROS). These files may be accessed directly by the CHANL Model. Use of CHANL as a stand alone program requires the user to create his own time series files for data input. Suppose the user wishes to model the four reach system depicted in Figure 39. If lateral or diffuse inflows to these four reaches are negligible, then CHANL may be used in the stand-alone mode. The user must create point load input files for reaches 1 and 2. Each point load is described by a time series of flow discharge rates and a time series of mass sediment transport rates for each particle size fraction. The use of ancillary programs to create the time series files for point loads was discussed in Chapter 8. Point load #2 Point load #1 Figure 39. Use of the CHANL Model, as a stand alone program 90 ------- 9.4 Preparation of the Input Sequence The input sequence for running CHANL is summarized in Table 6 at the end of this section. The input has been designed to be self-documenting and extensive use is made of labels and headings. Although the labels and headings are required parts of the input sequence, they are not explicitly required by the program to control any aspect of simulation; they are simply echoed or skipped over entirely. The character strings assigned to labels or headers in Table 6 are suggested values which provide adequate documentation for the input sequence. The user may, in fact, leave labels and headers blank or expand on the information they contain as long as the correct format is followed. The formats for input are all in ANSI Fortran and the potential user should be fully conversant with their use and meaning. An example input sequence is shown in Figure 41 at the end of this section. The value of self-documenting input is immediately apparent; instead of being confronted with a mass of meaningless figures as in a normal input sequence, the user can immediately see what values have been assigned to each variable. The additional effort involved in preparing the input sequence is offset by the ease with which the input sequence can be interpreted and the ease with which errors may be spotted. A number of questions which arise in relation to input preparation and sources of data are discussed in the following sections. The input sequence of Figure 41 is discussed in some detail in Section 9.4.1 and is used as an example in the remaining parts of this section. 9.4.1 Example Input Sequence Figure 41 at the end of this section is an actual input sequence used for testing the model in its stand alone mode on data from the East Fork River, Wyoming (Section 10.2). The reach network being modeled is shown in Figure 39. It consists of four reaches with point loads being input to reaches 1 and 2. There are no diffuse loads. The sediment regime is modeled by using nine particle size fractions (see discussion in Section 9.4.6). Point load number 1, input to reach 1 is specified by a total of 8 files. File 15 contains flow discharge rates (L T"1) and files 1, 2, 3, 4, 8, 9, and 10 contain mass sediment discharge rates (MT"1) for size fractions 3 through 9, respectively. Note that since there is no input of sediment for size fractions 1 and 2, their corresponding file numbers are zero. The point load to reach 2 is specified in a similar manner, with file 16 for flows and files 11 through 18 for sediment transport rates. Note that the output from reach 4 is to be written to disk. 9.4.2 Units The CHANL Model algorithms were designed to be dimensionally homogeneous. This means that if all input data is provided in a consistent set of units, then output will be produced in the same set of units. In Figure 41, all input is in the metric meter/kilogram/second (m/kg/s) system; channel lengths and elevations are given in meters, sediment density is kg nf?, kinematic viscosity is in m2s~1 and so on. The output is produced in the same system; for example, sediment transport rates are in kg s"1, flow discharges are in ra^s-l. 91 ------- To implement this system and increase its flexibility, a number of conversion factors are incorporated. A conversion factor NUM is used in Manning's equation (the only equation which is not dimensionally homogeneous). It may take on the following values: NUM =1.0 for the meter/kilogram/second system NUM = 1.49 for the foot/pound/second system Of the remaining conversion factors, FACTER, FACTLS, FACTFL, and FACTSD are used to convert time series input data into the desired units, and OUTFAC converts sediment transport rates into the desired units for printed output. In Figure 41, for example, the point load files contain flow rates in ft^s"1 The conversion factor FACTFL = 0.0283 converts these figures to the required metric equivalent in nrs . 9.4.3 File Numbering and Input/Output Considerations As can be seen from Table 5, the model is currently configured to handle a maximum Fortran file number of 40. Of these, file number 5 is reserved for input from a card reader, or other designated device, and files 6 and 7 are reserved for printed output. Two separate output spools must be defined; one for file 6 which contains the echoed input information and the results of hydraulic calculations, and one for file 7 which contains the results of sediment transport calculations. Printed output is split in this fashion so that hydraulic results and sediment results are not interleaved. 9.4.4 Choice of Modeling Interval The choice of a suitable modeling interval is intimately connected with the choice of reach length and the data interval of ARM files (LSRO and EROS). For accuracy of results and numerical stability, the flow time through a reach must not be less than the modeling interval. The user must determine the maximum expected flow velocity in the reach and divide reach length by velocity to determine flow time. If necessary, the reach boundaries and modeling intervals must be adjusted to meet this requirement. The other consideration is that the modeling interval must be greater than or equal to the time interval of data on LSRO and EROS files. This restriction does not apply to data in point load files. 9.4.5 Channel Characteristics The CHANL Model requires the following channel characteristics for simulation: •reach length •bottom elevations at upstream and downstream ends of the reach, for determining channel slope . Across sectional geometry •estimates of Manning's n Reach lengths and bottom elevations can usually be determined adequately from topographic maps (USGS 7 1/2' series or better), whereas channel cross 92 ------- sections are best determined by field surveys. Although cross sections are highly variable in natural streams, they do reflect the flow rates that the streams can carry and the mean or average cross-sectional geometry is needed for each reach. Mean cross-sectional geometry and roughness allow simulation to reproduce the storage-velocity-discharge relationships that control hydrograph shape in all but the smallest streams. Channel roughness is expressed as Manning's n. Typical values are as follows: clean, straight channels 0.03 winding channels with pools and shoals 0.04 winding channels congested with rocks and weeds, etc. 0.05-0.1 flood plain 0.1-0.25 Additional values may be obtained from Chow (1959). Values of n should be checked by noting the flow velocity simulated in each reach. Unreasonable velocities indicate that n should be changed. Manning's n is a calibration parameter. Within CHANL, the cross section of a reach is represented by a series of "break points" connected by straight line segments called "elements." Figure 40 shows the cross section idealization for reach 1 of Figure 41. Here, eight break points are used to describe the cross section. Except at the bottom of the channel, adjacent break points must be at different elevations. The hydraulic properties of the reach are computed for a set of water levels which correspond to the elevations of the various break points. Hydraulic properties at intermediate levels are found by linear interpolation, so it is important that the number of break points used be sufficient to keep the interpolation error within acceptable limits. Further discussion of these considerations may be found in Section 7-3-3 under subroutine HYPROP. If the hydraulic roughness of the section varies appreciably, it can be split into "subsections", each with its own value of Manning's n. Subsection boundaries must coincide with element boundaries. The cross section in Figure 40 is split into two subsections. Subsection 1 is used to define a flood plain with Manning's roughness 0.1, and Subsection 2 defines the much smoother incised channel with Manning's n of 0.025. The reach and its cross section description are associated through the use of table numbers. Each reach in the network is assigned a unique table number (NTAB in Figure 41). Thus the cross section description of reach 1 in Figure 41 is stored under table number 1. Within each table, the user must specify the number of break points, the number of subsections, and Manning's roughness for each subsection. The actual cross section description is then given by specifying the x and y coordinates of each break point and the subsection numbers of the elements between adjacent break points (Figures 40 and 41). 93 ------- Y (m.) 1 1 1.5 + SUBSECTION 1 SUBSECTION 2 -20 SUBSECTION 1. n=0.1 X(m.) -1.0t Figure 40. Example of reach cross section description ------- 9.4.6 Sediment Characteristics The CHANL Model treats graded material by simulating the movement of a number of different particle size fractions. The model operates on a minimum of three particle size fractions and a current maximum of nine (Table 5). Size fraction 1 must always be clay and fraction 2 must be silt even if the system does not contain these materials. The remaining fractions are sand and must be ordered from finest to coarsest, with fraction 3 being the finest. Each size fraction is described by a median particle diameter (DIA). Where possible it is recommended that these particle sizes conform to the grade scale proposed by the American Geophysical Union (Lane 19^7) or some aggregation of that scale. To simulate sediment movement, the following additional information must be given for each particle size fraction: •composition of land surface (only if DIFFUS=YES) •initial sediment transport concentrations in each reach •initial bed composition for each reach The composition of the land surface by particle size fraction is only required if the CHANL Model is used in conjunction with the ARM Model. The data should be obtained from field survey and should represent an average over the whole watershed. The initial sediment transport concentrations for each size fraction should be obtained from recorded data. Frequently the required data are not available and the user must develop his own initial conditions based on his knowledge of the system. In this case, the user should be aware that the first few time periods of simulation may be in error. The bed composition in each reach is described by a number of homogeneous bed layers. The thickness and composition of each layer at the beginning of simulation must be input by the user. Because of the great natural variability in bed composition, the input data must necessarily represent the mean or average conditions over the reach. It is important that the upper zone of the bed be realistically described since the material available in the surface zone of the bed may control the amount of sediment movement. Data for determining the bed composition should be obtained from field surveys. 9.4.7 Choice of Parameter Values Only limited experience has been gained in working with the sediment algorithms in CHANL. Consequently any recommendations made here should be regarded as guidelines, not as fast rules. TBLKSZ Time block size. Must be 128 for the present version of the model. f) DENS Density of sediment material, usually about 2650 kg m~J for sand. 95 ------- BULKD BEDKNT EPSBED BIND ABIND Dry bulk density of bed material, 2000 kg m~3 for sand beds. usually about Maximum number of iterations to be performed in computing bed form thickness. A value no higher than 30 should suffice in all cases. Convergence tolerance for computing bedform thickness. A fairly coarse tolerance of about 0.05 is recommended. Percentage of cohesive material (clay and silt) which will just start to hinder the movement of sand particles from the bed. A value from 15 to 25 is recommended. Factor controlling the scour of clay and silt (see Figure 21). A value of about 5 is recommended. PROTCT ARMF DUNE RIPPLE SCRCONd) SCRCON(2) Percentage of immobile sand which will just start to protect finer material from scour. A value from 10 to 30 is recommended. Value of the ratio (depth of armoring material/median diameter of armoring material) at which armoring prevents further scour. A value between 1.0 and 2.0 is recommended. Value of the ratio (maximum dune height/ depth of flow). A value close to 0.1 is recommended. Value of the ratio (mean ripple height/ median diameter of mobile sand) . A value around 100 is recommended. Constant controlling the scour of clay. The limited data available indicates a range of values from 0.1*10"^ for dense clays to 2*10"^ for a loosely flocculated bed. Units are in the m/kg/s system. Constant controlling the scour of silts. Values may range form the m/kg/s system. to 2*10~6 in ------- CRTSHR(I) Critical shear stress for the scour of olays. Values vary from 0.05 N«m for loosely flocculated clays to 75 N.m~^ for dense clay beds. CRTSHR(2) Critical shear stress for the scour of silts. Limited data suggests that values may vary from 0.05 N.nf^ to 1 N.m~ . SCREXPd) Exponent controlling the scour of clays. Limited data suggests a value close to 2. SCREXP(2) Exponent controlling the scour of silts. Limited data suggests a value close to 2. 97 ------- Table 6. INPUT SUMMARY FOR CHANL MODEL oo CARD NO. 1 2 3 4 5 6 7 8 9 10 11 12 13 CARD COLUMN 1-80 1-80 1-6 7-11 1-7 b-12 1-7 b-12 1-6 7-11 1-6 7-11 1-7 b-12 1-7 b-12 1-6 7-11 1-67 ti-11 1-7 8-12 1-5 6-10 VARIABLE NAME BASIN (*) RUNINF(*) BGNHR BGNDAY BGNMON BGNYR ENDHR EWDDAY ENDMON ENDYR TIMINT TBLKSZ UREA FORMAT 20A4 20A4 6X 15 7X 15 7X 15 6X 15 6X 15 7X 15 7X 15 6X 15 7x F10.0 7X 15 5X 15 STRING - - BGNHR= BGNDAY= BGSMON= BGNYR= ENDHR= ENDDAY= EHX»- £NDYR= TIMINT= TBLKSZ= NREA= DESCRIPTION User label Name of watershed or study area User label Run information, purpose of run, etc. User label Beginning hour for simulation (Simulation starts with the first time interval in this hour.) User label Beginning day for simulation User label Beginning month for simulation User label Beginning year for simulation User label Ending hour for simulation {Simulation finishes after the last time interval in this hour.) User label Ending day for simulation User label Ending month for simulation User label Ending year for simulation User label Modeling interval (seconds) User label Modeling time block size (intervals) User label Number of reaches in stream system ------- CARD NO. 14 15 16 17 18 VO 20 CARD COLUMN 1-6 7-11 1-4 5-14 1-7 8-11 VARIABLE NAME NSEGS MUM PTLOAD 1-7 8-11 1-6 7-10 DIFFUS SECMT 19 1-5 6-9 DISK 21 1-5 6-9 1-7 8-12 WARN HDPOOT FORMAT 6X 15 4x F10.0 7X A4 7X A4 6X A4 5X A4 5X A4 7X 15 STRING NSEGS= NUM= PTLQAD= DIFFUS= SEEMT= DISK= WARN= HDPOOT= DESCRIPTION User label Number of land segments in system User label Conversion factor for Manning's equation User label PTLQAD=bYES if point loads are to be used in this run. PTIflAD=bbNO if there are no point loads. Note: The option YES or NO should be right adjusted in the A4 field. User label DIFFUS=bYES if diffuse loads are included in this run. DIFFUS=bbNO if there are no diffuse loads. User label SEDMT=bYES if sediment calculations are to be performed in this run. SEDKT=bbNO if only the hydraulic calculations are to be done. User label DISK=bYES if hydraulic and sediment results from one or more reaches are to be written to disk. DISK=bbNO if no information is to be written to disk for this run. User label WARN=bYES if warning messages are to be suppressed after the first five occurrences. WARN=bbNO if these messages are to be printed out every time they occur. User label Option to control printout of results of hydraulic calculations =0 no printout =1 printout values of depth, area, and discharge averaged over the print interval =2 printout point values of depth, area, and discharge at the end of the print interval =3 printout both mean and point values ------- CARD NO. 22 23 24 o o 25 26 27 CARD COLUMN 1-7 l-bo 3-5 7-10 15-20 27-30 37-40 42-45 4ti-bO 55-61' 1-5 6-10 11-20 21-30 31-40 VARIABLE NAME KLINES 1-7 8-12 PRFREQ FORMAT 7X 15 7X 15 STRING MLINES= PBFREQ 1-7 8-12 DIAGNS 7X 15 HEAD(*) Head{*) 20A4 20A4 BCH TRIB LENGTH ELUP ELON NTAB PRT QSTAKT RCH TRIB LEN ELOP ELDN 15 15 F10.0 F10.0 F10.0 DESCRIPTION User label Maximum number of lines per page of hydraulic or sediment printout User label Controls frequency of printout <0 monthly output =0 no output >0 value is the number of simulation intervals (of length TIMINT) in a print interval User label Controls printout of additional diagnostic information =0 no diagnostic output =1 not for general use =2 diagnostic output from subroutine INI'fFL =3 diagnostic output from subroutine HYPFGP =4 diagnostic output from subroutine RSOKT =5 diagnostic output from subroutine REFIL1 =6 diagnostic output from subroutine REFIL2 =7 diagnostic output from subroutine REFIL3 =8 not for general use =9 not for general use =10 diagnostic output from all subroutines above User label Heading for reach network description User label, headings Reach number Number of reach to which RCH is tributary; negative value signals the most downstream reach Reach length Bed elevation at upstream end of reach Bed elevation at downstream end of reach ------- CARD NO. Note: 28 29 30 31 32 CARD COLUMN 41-45 46-50 51-60 Card 27 is defined on 1-80 1-7 8-12 1-5 6-10 1-6 7-11 1-9 10-14 VARIABI£ NAME NTAB PftOUT QSTAKT repeated for Card 13. HEAD(*) _ TABN _ NPTS _ SSECS _ NSSEC(I) FORMAT STRING 15 15 FlO.O each reach in the system. 20A4 7X 3ffll£*= 15 5X NPTS= 15 6X SSECS= 15 9X NSSBC(I)= 15 DESCRIPTION Number of the table giving the geometric cross section properties for this reach Printout option =0 no output to be printed for this reach =1 printed output to be given for this reach Initial discharge from this reach The system must be made up of NREA reaches, as User label Heading for tables of cross section information User label Table number (should correspond with table number NTAB given on card 27) Negative table number denotes the end of the cross section tables. User label Number of points used to define the shape of this cross section User label Number of subsections in the cross section User label Manning's roughness coefficient "n" for subsection I of this cross section Note: Card 32 is repeated for each subsection in this cross section (1=1,...,SSECS). ------- o to CARD fro. 33 34 35 Note: Note: Note: 36 37 38 39 40 41 42 CARD VARIABLE FORMAT COLUMN NAME HEAD(*) 20A4 10 20 22-25 1-10 X(I) FlO.O 11-20 Y(I) FlO.O 1-20 - 20x 21-25 SSEC(I) 15 The sequence of cards 34-35 is when card 35 is omitted (1=1,.. STRING X Y SSEC - DESCRIPTION User label Heading Horizontal co-ordinate of cross section point Vertical co-ordinate of cross section point I I Subsection number for the elenent of the cross section between point I and (1+1) repeated for each ., NETS). point on this cross section except for the last point The sequence of cards 29-35 is repeated for each table of cross section information. A negative table number on card 29 denotes the end of this section of input. If SEDMT=NO then cards 36-76 roust be omitted. 1-80 HEAD(*) 20A4 1-5 - 5X 6-15 GRAV P10.0 1-5 - 5X 6-15 DENW FlO.O 1-5 - 5X 6-15 DENS FlO.O 1-6 - 6X 7-16 BULKD FlO.O 1-7 - 7X 8-12 BEDKNT 15 1-7 - 7X 8-17 EPSBED FlO.O - GRAV= DENW= DENS= BULKD= BEDKNT= EPSBED= User label Heading for sediment transport information User label Acceleration due to gravity User label Mass density of water User label Mass density of sediment material User label Dry bulk density of sediment User label Maximum number of iterations for bedform thickness calculations User label Convergence tolerance for computing bedform thickness ------- CARD NO. 43 CARD COLUMN 1-7 8-12 VARIABLE NAME SDPOOT FORMAT 7X 15 STRING SDPOOT= 44 1-7 8-12 SDEBUG 7X 15 SDEBUG= o CO 45 46 47 46 49 50 1-7 8-17 OOTFAC 1-BO HEAD(*) 7X F10.0 20A4 OUTFAO 1-60 KINVIS(I) 6B10.3 (1=1,...,6) 1-60 1-5 6-10 1-13 25 35 45 55 65 KINVIS (I) 6E10.3 (I = 7,...,12) NPSF HEAD(*) 5X 15 20A4 NPSF= SIZE_FRACTION 1 2 3 4 5 DESCRIPTION User label Option to control printout of results of sediment calculations = 0 no printout = 1 printout sediment outflow rates averaged over the print interval = 2 printout point values of sediment outflow rates at the end of the print interval = 3 print both mean and point values User label Controls print out of additional and diagnostic information for sediment calculations = 0 no additional output = 1 print out bed composition at the end of print interval = 2 print out bed composition and additional infonaatory messages. = 3 output detailed log of sediment calculations User label Multiplication factor to convert sediment transport rates from internal units to the units required on output User label Heading for kinematic viscosity data Average monthly values of kinematic viscosity for months 1 through 6 (January to June inclusive) Average monthly values of kinematic viscosity for months 7 through 12 (July to December inclusive) User label Number of particle size fractions User label Heading for size fraction properties ------- CARD NO. 51 CARD COLUMN 1-15 16-65 VARIABLE NAME FORMAT HEAD(*) 3A4,A3 DIA(I) 5E10.2 (I=1,...,NPSF) STRING DIAMETER DESCRIPTION User label Mean particle diameter for each of NPSF particle size fractions. Diameters must be entered in order of increasing size. This card should be repeated if more than 5 size fractions are being modeled. Note: If DIFFUS = NO then cards 52-53 must be omitted. 52 1-15 HEAD(*) 3A4.A3 COMIiTO 16-65 COMIflDtl) 5E10.2 (I=1,..,NPSF) 53 1-15 HEAD(*) 3A4,A3 16-65 THSESH(I) 5E10.2 (1=2,...,NPSF) STEADY 54 55 56 57 58 1-80 HEAD(*) 1-5 6-15 BIND 1-6 7-16 ABIND 1-7 8-17 1-5 6-15 PROTCT NMF 20A4 5X F10.0 6X F10.0 7X F10.0 5X F10.0 THRESH BIND= ABIND= PBOTCT= ARMF* User label Composition of the land surface given as the percentage by weight for each particle size fraction. This card should be repeated if more than 5 size fractions are being modeled. User label Threshold value of land surface erosion input, above which size fraction I is present Value of land surface erosion input above which the composition of the eroded material is the same as that of the land surface {COMUEX*) in card 52). This card should be repeated if more than 5 size fractions are being modeled. User label Heading for sediment parameters. User label Percentage of cohesive material (clay + silt) which will just start to hinder the movement of sand particles from a bed. User label Factor controlling the scour of clay and silt (see Figure 21). User label Percentage of immobile sand which will start to protect finer material frora scour User label Value of the ratio (depth of armoring material/ median diameter of armoring material) at which pcevents turthet scoot. ------- CARD CARD VARIABLE NO. COLUMN NAME FOBMAT STRING DESCRIPTION 59 60 61 62 63 64 65 66 67 68 69 70 71 1-5 6-15 1-7 8-17 1-80 1-7 8-17 1-7 8-17 1-7 8-17 1-80 1-7 8-17 1-7 8-17 1-7 8-17 1-80 1-6 7-11 1-5 6-10 DUNE RIPPLE HEAD(*) SCFCCN(l) CRTSHR(l) SCREXP(l) HEAD(*) SCRCON(2) CRTSHR(2) SCREXP(2) HEAD(*) REACH NLAY 5X F10.0 7X F10.0 2QA4 7X F10.0 7X F10.0 7X F10.0 20A4 7X F10.0 7X F10.0 7X F10.0 20A4 6X 15 5X 15 DUNE= RI?PLE= - SCKCCN= CRTSHR= SCREXP= - SCRCCN= CRTSHR= SCREXP= - REACH= NIAY- User label Maximum value of the ratio (dune height/depth of flow) User label Value of the ratio (ripple height/ median diameter of mobile sands) User label Heading for parameters for scour of clay User label Factor controlling the scour of clay (see Section 6.3.7). User label Critical shear stress for scour of clays User label Exponent controlling the scour of clay (see Section 6.3.7) User label Heading for parameters for scour of silt User label Factor controlling the scour of silt see Section 6.3.7) User label Critical shear stress for scour of silt User label Exponent controlling the scour of silt (see Section 6.3.7) User label Heading for initial sediment conditions User label Reach number User label Number of bed layers in reach REACH at tl start of the run ------- CARD CARD ' NO. COLUMN 72 1-13 25 35 45 55 65 73 1-15 16-65 74 1-12 75 1-5 H- 7-15 0 38-4b VARIABLE FORMAT NAME HEAD{*) 20A4 HEAD(*) 3A4,A3 CSTAKT(NR,I) 5E10.2 (I=1,NPSF) HEAD(*) 20A4 HEAD(*) 20A4 STRING SIZE FRACTION 1 2 3 4 5 CSTART BED_MATERIAL LAYER THICKNESS COMPOSITION 76 1-5 NLY 15 6-15 THKLAY F10.0 (NR,NLY) 16-65 COMLAY 5F10. NR,NLY,I) (I=1,...,NP3F) DESCRIPTION User label Heading for size fractions Note: Card 76 is repeated for each layer in the reach, Note: The sequence of cards 70-76 is repeated for each Note: If DIFFUS=NO then cards 77-83 must be omitted. User label Initial sediment transport concentrations for each of NPSF particle size fractions as an average over reach REACH. This card should be repeated if more than 5 size fractions are being modeled. User label User label for bed composition Bed layer number Bed layers must be numbered from 1 for the bottom or lowest layer to NLAY for the top layer. Thickness of layer NLY in reach REACH at the start of the run Composition of bed layer NLY in reach REACH. given as the percentage by weight for each particle size fraction Columns 16-65 may be repeated on subsequent cards if more than 5 size fractions are being modeled. as defined by NLAY on card 71. reach in the systen, as defined by NREA on card 13. ------- CARD NO. 77 78 80 M O 81 Note: 82 CARD COLUMN VARIABLE NAME 1-80 HEAD(*) 1-7 8-17 FACTLS FORMAT 20A4 7X F10.0 STRING FACTIS= Note: If SEDMT^ then card 79 roust be omitted. FACTER= 79 1-7 8-17 FACTER 3-5 7-10 17-20 22-25 32-35 1-5 HEAD{*) 7X F10.0 20A4 FCH SEGN AREA SEGN AREA BEACH 6-10 SEGNU) 11-20 21-25 26-35 36-40 41-50 51-55 56-65 66-70 71-80 AREAU) SECT (2) AREA{2) SEGN (3) AREA{3) SEGN(4) AREA(4) SEGN(5) AREA(5) 15 15 F10.0 15 F10.0 15 F10.0 15 F10.0 15 F10.0 DESCRIPTION User label Heading for diffuse loading information User label Multiplication factor for converting LSEO input into internal units User label Multiplication factor for converting EROS input into internal units User label Headings for tributary area information The headings in columns 7-20 are repeated across the card as needed for each additional contributing segment. Reach number with diffuse loading A negative number is used to terminate input of tributary area information. Segment number for first segment tributary to this reach Tributary area associated with segment SEGN(l) Segment number for second segment tributary to this reach if any. Tributary area associated with segment SEGN (2) Card SI is repeated for each reach that has a diffuse load input {LSRO or EROS). Input of the tributary area information is terminated by giving a negative reach number. 2-5 7-10 12-15 HEAD(*) 20A4 NSEG LSRO EROS User label Headings for Fortran file numbers ------- o co CARD NO. »3 Note: Note: 64 85 Note: 8& 87 88 CARD COLUMN 1-5 6-10 11-15 Card 63 on Card VARIABLE NAME NS D01 DD2 is repeated for 14. If PTLOAD=NO then cards 1-60 1-7 8-17 HEAD(*) FACTFL FORMAT 15 15 15 each segment 84-88 must be 20A4 7X F10.0 STRING in the system omitted . - FACTFL= If SF.DMT=NO then card 8 6 must be omitted. 1-7 tt-17 3-5 7-10 13-15 17-20 1-5 fa-10 11-15 FACTSD KEAD(*) REACH FLNUM FLN 7X F10.0 20A4 15 15 15 FACTSD= RCH FLNM FLN SEDN — 16-80 SEDNM(I) 1315 (I=1,...,NPSF) DESCRIPTION Segment number Fortran file number for LSRO input for segment NS Fortran file number for EROS input for segment NS (may be omitted if SEDMT=NO) The system must have NSEGS segments as defined User label Heading for point load information User label Multiplication factor for converting point flow input into internal units. User label Multiplication factor for converting point sediment discharge input into internal units User label Heading for point flow file numbers Reach number Fortran file number for point flows. Flag to denote units for point sediment discharges =0 sediment discharges are in mass units >0 sediment discharges are in concentration units. Flow rates from file FLNUM will be used to convert from concentration to mass units. Fortran file numbers for point sediment discharges. If SEDWT=WO, or if there are no point sediment inputs, the FLN and SEDNM(*} may be omitted. Note: Note: Card 88 is repeated for each reach that has a point load input. Input of point loading information is terminated by giving a negative reach number. If DISK = NO then cards 89-91 must be omitted. ------- CARD NO. 89 90 91 CARD COLUMN 1-80 3-5 7-10 1-5 6-10 11-15 16-80 VARIABLE NAME HEAD(*) HEAD(*) PEACH FUM(l) FLNM(2) FLNM(I) (I=3,NPSF+3) FORM 20A4 20A4 15 15 15 1315 STRING Note: RCH FUM DESCRIPTION User label, for output to disk User label, headings Reach number Fortran file number for writing point flow rates. Fortran file number for writing flow depths. Fortran file numbers for writing each of the NPSF point sediment discharge rates; FUM(NPSF+3) is the Fortran file number for writing the total sediment discharge rate. If SECKT=NO, then FLNM(3) through FLNM(SPSF+3) may be omitted. If any item is given a value of zero, then there will be no output for the corresponding variable. Card 91 is repeated for each reach for which output to disk is required. giving a negative reach number. Input is terminated by ------- 5 4 5 b 7 8 9 10 11 12 13 ia 15 16 17 1« 19 20 21 22 23 34 25 26 27 2» 29 30 33 44 35 36 31 3B 39 40 41 42 43 aa 45 46 47 46 49 50 51 52 53 54 55 ENDDAY= TDLKSZ= EAST FORK RIVER, WYOMING CALIBRATION OF HYDROLOGY AND SEDIMENT TRANSPORT (BEOLOAO ONLY) 11 04 BCiNMONs 6 75 14 11 6 75 300. 128 4 1 1.0 PTLOADs YES DIFFUSs NO SEUMls YES UISKs YES WARNS YES Hl)POUT = MLINESs PRFR£U= UlAGNSs REACH Nt RCH 3 75 36 0 TRIH 1 3 2 3 3 4 4 -2 X-SECTIGn TAbLfcS TAflLEfts: 1 NPTSs 8 SSfcCS= 2 NSSEC(1)= 0.1 IMSbfcC(2)= 0.025 X DESCRIPTION LENGTH «47. 626. 1619. 2496. (IN fcLUP ELDN MAB PRT -15 0 2 15, 16, 45, TA8LE»= SSECSs ,00 ,44 ,0b ,14 ,24 ,31 Y 22 78 0.30 -0 -0 27 61 0.06 0.46 1.22 2158.45 2159.60 2157.59 2157.17 METERS) 2157.59 2157.59 2157.17 2154.86 1 2 3 4 OSTART 1.79 0.37 1.87 2.05 SSEC 1 2 2 2 2 2 Figure 41. Example input sequence 110 ------- 56 57 58 59 SO 61 63 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 06 87 88 89 90 91 9,2 93 94 95 96 97 98 99 100 101 102 103 104 lOb 106 107 108 109 110 111 NSSEC(1)= 0.1 NSStC(e>)= 0.035 X -30.48 0.61 1.22 I.b2 7.31 7.92 8.23 14.32 TA8LE#= 3 S(PTS= 14 SSEC8= 2 NSSEC(1)= 0.1 N3SEC(2)= 0.025 X •30.48 1.22 1.83 4.27 4.88 6.10 9.14 12.19 15.24 19.51 20.12 20.73 22.55 45.72 TABLE»= 4 NPTS= U SSECS= 2 NSSECm = 0.1 V 1.52 0.84 0.65 -0.15 -0.15 0.00 0.70 1.52 Y 1.37 1.04 0.70 0.00 -0.43 -0.55 -0.46 -0.43 -0.37 -0.24 0.15 o.ro 0.94 1.37 SSEC 1 2 2 2 2 2 1 S3EC 1 2 2 2 2 2 2 2 2 2 2 1 1 NSSEC(2)= 0.025 Figure 41. Example input sequence (Continued) 111 ------- X -6.10 -1.07 0.00 1.83 2.44 3.05 4.27 6.71 14.63 18.29 20.73 24.99 25.45 45.72 Y 1.52 1.04 0.79 0.55 -0.24 -0.46 -0.55 -0.37 -0.30 -0.37 0.00 0.18 0.79 1.52 8SEC 1 2 2 2 2 2 2 2 2 2 2 2 1 114 115 lib 117 lia 123 lr>4 125 126 127 128 129 130 131 132 133 134 135 136 137 13ft 139 140 TA8LE«= -1 141 SEOIMKNT TRANSPORT INFORMATION 142 GHAV=9.81 143 OENttslOOO. 144 UENS=2650. 14b BULKO=2000. 146 8Et)KNT= 30 147 EPSBEO=0.075 148 SDPOUTs 3 149 SDEt3UG = 0 150 OUTFAC=1.0 151 KINEMATIC VISCOSITY DATA (MEAN JUNE WATER TEMP. = 5.0 OEG-C) 152 1.5E-06 1.5E-06 l.SE-06 1.5b-0b I.5E-06 1.5E-06 153 l.'oE-Ub 1.5E-06 1.5E-06 1.5E-06 l.SE-Ofe 1.5E-06 154 NHSKs 9 155 SIZE FRACTION 1 2 3 4 5 156 0.001E-03 0.004E-03 0.125E-03 0.250E-03 0.500E-03 157 l.OOOE-03 2.000E-03 4.000E-03 fl.OOOE-03 15H SEDIMENT PAHAMETEkS 159 BINO=20. 160 AdlND=5. Ibl PMOTCI=20. 162 ARMF=1.05 163 DUNE=0.4 164 RIPPLE=75. 165 PAKAMETEWS FOR SCOUR OF CLAY (LESS THAN E.*10**-6 M) 16b SCKCOU=0. 0000005 167 CHTSH^=30.0 Figure 4V- Example input sequence (Continued) 112 ------- 168 169 170 171 172 173 174 175 176 1 // 17 '5 1 7 * 160 trtl Irt2 IBS 1 rt j 166 1 8 / 1 88 Irt^ 190 191 192 19.\$ 144 195 196 1S7 19ri 199 200 201 202 203 204 205 206 207 20« 209 210 an 212 213 214 215 216 217 218 219 220 SCREXP=2.0 PARAMETERS FOR SCOUR OF SCKCONsO. 0000015 CRTSHRsl.O SCREXP=2.0 INITIAL SEDIMENT CONOIT KEACH5 1 NLAY= 1 SUSPhNUtl) SIZE FRACTION cs r AW r t------- 9.5 Interpretation and Control of Output Printed output is directed to two separate files. Echoed input information and results of hydraulic calculations are directed to file 6 and results of sediment transport calculations are directed to file 7. This use of two separate output spools avoids the interleaving of hydraulic and sediment transport results. At the start of execution, the program reads in, echos, and checks all the input information from file 5. The checking of data may result in a wide variety of error conditions. Similarly, error conditions may arise during the actual hydraulic and sediment routing calculations. Each error message has a unique error number assigned to it for cross reference with the explanatory messages given in Table 7 at the end of this section. Two types of error conditions may arise: fatal errors and warnings. Fatal errors (designated by the type E in Table 7) are those which at some stage or other will cause termination of the program. After encountering a fatal error, a message will be printed but the program will continue execution, reading in, and checking data, for example, until execution can proceed no further. The second type of message is a warning (designated by the type W in Table 7). Warnings are not fatal but the user should insure that the warning condition is not one which may result in erroneous results. Various levels of output are available depending on the output options requested. Four input variables HDPOUT, DIAGNS, SDPOUT, and SDEBUG control the type of output to be printed. The values to be assigned to these variables and their use are summarized in Table 6. HDPOUT and SDPOUT control the printout of the essential hydraulic and sediment routing results. DIAGNS and SDEBUG control the printout of additional information primarily for use in debugging the program. The debug output tends to become voluminous and should not generally be used. For example, when SDEBUG = 1 the lowest level of debug output for sediment calculations, one page of printed output is produced in every modeling interval. When SDEBUG = 3 the amount of output is even greater and may amount to two or more page* of printed output per modeling interval. For production runs, SDEBUG and DIAGNS should be set to zero. A typical sample of production output from hydraulics results (file 6) is shown in Figure ^2 and output from sediment results (file 7) is shown in Figure 43- These results were obtained by running the input sequence of Figure M1. 114 ------- Interpretation of hydraulic results is self-explanatory. The sediment output consists of the mass transport rate for each particle size fraction (kg s"1 in Figure 43), the total mass transport rate (i.e. summation of the transport rates for each size fraction), and the cumulative mass outflow from the reach since the start of simulation. Printed output is quite often not amenable to detailed analysis and the option exists to write output to disk files for plotting and further analysis, as discussed in Chapter 8. The following variables may be written to disk: flow rate (L^ T"1), mean depth of flow (L), mass sediment transport rate for each size fraction (MT"1), and the total mass sediment transport rate (MT~*). The units of disk output are the same as the internal units used in the model. No facility exists within CHANL for converting them to other sets of units. 9.6 Model Application The following sequence of tasks is recommended when applying the model. (1) Create diffuse loading files by running the ARM model. (2) Create point loading files by using ancillary programs or by using prior runs of CHANL. (3) Prepare input sequence and run CHANL for hydraulics only. (4) Adjust Manning's n to obtain the best possible agreement between simulated and recorded flow discharge rates and velocities. Note that sediment transport rates are very sensitive to flow velocities and hence simulated velocities should agree with recorded velocities as closely as possible. (5) When simulation of hydraulics is satisfactory, prepare the input sequence for simulation of both hydraulics and sediment transport. (6) Run CHANL for both hydraulics and sediment transport and compare simulated and recorded transport rates. Both total mass transport rates and rates for each size fraction should be compared wherever possible. (7) Adjust the various sediment parameters (BIND, ABIND, PROTCT, ARMF, DUNE, RIPPLE, SCRCON(»), CRTSHR(«), and SCREXP(*)) until simulated and recorded transport rates agree as closely as possible. (8) Attempt to explain discrepancies between simulated and recorded values. This step may suggest, for example, that particle size fractions be redefined, or it may point to deficiencies in model or data. 115 ------- Table 7. ERHDR MESSAGES FOR TOE CHANL MDDEL NO. TYPE MESSA3E SUBROUTINE 001 E RUN ABANDONED BECAUSE OF PRIOR MAIN ERRORS 002 W FLOW ROOTING CONTINUITY ERROR MAIN IN REACH aa IS > (l.OE-05*INFLOW); CONTINUITY ERROR IS bb ACTION/EXPLANATION Messages appearing earlier in the output should give details of errors. The flow routing continuity error provides a check on errors arising from numerical roundoff during routing computation. If the continuity error is excessive, there are probably errors in either (1) the code used for flow routing computations or (2) the code used to compute the continuity error. 003 E VECTOR JUST FILLED (aa) AND THAT SPECIFIED FOR RELEASE (bb) ARE DISSIMILAR MAIN The vectors which control manipulation of the transfer vector TVEC contain invalid infor- mation. Probable error in code used in manip- ulation of TVEC or in setting up vectors REL or VECNO in subroutine RSORT. 004 005 W Oil FROUDE NUMBER EXCEEDS 0.8; FROUDE = aa IN REACH aa FD3H TIME bb IS LEF3 THAN MODELING INTERVAL TIME BLOCK SPECIFIED aa; SYSTEM REQUIRES bb MAIN The sediment algorithms in this model are only applicable for flow rates up to a Froude number of 0.8. In particular, the Ackers and White transport algorithm is not applicable for Froude numbers greater than 0.8, and the bedform charts developed by Vanoni only covers Froude numbers up to 0.84. MAIN This implies that the reach is being com- pletely flushed in the time interval, a condition which may lead to instabilities, or result in negative constituent concen- trations. KILL The time block size specified TBLKSZ (aa) and (INTO) the system block size ATBLSZ (bb), as defined in the main program, should be equal. Alter ATBLSZ and associated array dimensions in the main program and recompile. ------- NO. TYPE MESSAGE SUBROUTINE ACTION/EXPLANATION 012 E NO. BEACHES SPECIFIED aa; SYSTEM KILL MAXIMUM bb (INFO) 013 E NO. SEGMENTS SPECIFIED aa; SYSTEM KILL MAXIMUM bb (INFO) 014 E NO. OF X-SECTION POINTS SPECIFIED KILL aa; SYSTEM MAXIMUM bb (RCHIN) 015 E NO. OF SUB-SECTIONS SPECIFIED KILL aa; SYSTEM MAXIMUM bb (RCHIN) 016 E TABLE LENGTH COMPUTED aa; SYSTEM KILL MAXIMUM bb (RCHIN) 017 E NO. OF CROSSINGS CPOSNO IS aa; KILL SYSTEM MAXIMUM bb (HYPROP) 018 E LENGTH OF VECTOR RCHTRIB EXCEEDS KILL SYSTEM MAXIMUM, MAXTRIB bb (DIFFLD) The number of reaches specified NREA (aa) is greater than the system maximum MREA (bb) defined in the main program. Alter MPEA and associated array dimensions in the main program and adjust dimensions of the equivalenced arrays ORD and POT in subroutines RSORT and GETSON. The number of segments specified NSEGS (aa) is greater than the system maximum MSEGS (bb) de- fined in the main program. Alter K5EGS and associated array dimensions in the main program. The number of points used to describe the cross section geometry for any one reach NPTS (aa) exceeds the system maximum MPTS (bb). Alter MPTS and associated array dimensions in the main program. The number of subsections making up any cross section SSECS (aa) exceeds the system maximum MSECS (bb). Alter MSECS and associated array dimensions in the main program. The space required to store cross section hydraulic properties in vector TABLE (aa) exceeds the system maximum KTAD (bb). Alter MTAD and associated array dimensions in the main program. The number of points (aa) at which water surface and channel sides intersect for any non-zero water elevation exceeds the system maximum MCROS (bb). Alter MCROS and associated array dimensions in the main program. Length of vector RCHTRIB used to store diffuse loading data exceeds the system maximum MAXTRIB (bb). Recommended values of MAXTRIB may be found by referring to KAXTRIB in Appendix E. Alter MAXTRIB and associated array dimensions in the main program. ------- NO. TOPE MESSAGE SUBROUTINE ACTION/EXPLANATION 019 E LENGTH OF VECTOR KCHPT EXCEEDS SYSi'EM MAXIMUM, MAXPT bb c» 020 E NO. OF POINT LOADS SPECIFIED aa; SYSTEM MAXIMUM bb 021 E FILEf SPECIFIED aa; SYSTEM MAXIMUM bb 022 E REACH* SPECIFIED aa; SYSTEM MAXIMUM bb 023 E SEGf SPECIFIED aa; SYSTEM MAXIMUM bb 024 E LENGTH OF TVEC aa; SYSTEM MAXIMUM bb 025 E ILLEGAL PRINT OUT OPTION FOR HYDRAULICS aa 026 E ILLEGAL PRINT OUT OPTION FOR SEDIMENT aa 027 E ILLEGAL DEBUG OPTION FOR SEDIMENT KILL Length of vector RCHPr used to store point (PNTLD) load information exceeds the system maximum MAXPT (bb). Recounended values of MAXPT may be found by referring to MAXPT in Appendix E, Alter MAXPT and associated array dimensions in the main program. KILL The number of point loads specified NPTLD (PNTLD) (bb) exceeds the system maximum MNPTLD (bb). Alter MAXPT and associated array dimensions in the main program, KILL The file number specified for a diffuse or (DIFFLD point load exceeds the system maximum or MFILE (bb). Renumber files or alter MFILE PNTLD) and associated array dimensions in the main program. KILL The user-defined reach number (aa) exceeds (RCHIN) the system maximum MAXSCH (bb). Renumber the reach network or alter MAXRCH and associated array dimensions in the main program. KILL The user-defined segment number in the (DIFFLD) diffuse loading descriptions is greater than the number of segments specified (NSEGS) in subroutine INFO. Segments should be numbered consecutively starting from 1. KILL Length of vector TVEC used to transfer flow (MAIN) and sediment data from reach to reach exceeds the system maximum MTVEC (bb). Reco.Tir.ended values of MTVEC may be found by referring to MTVEC in Appendix E. Alter I-TTVEC and associated array dimensions in the main program. KILL The print out option for hydraulic results (INFO) HDPOUT can only take on the values 0, 1, 2, or 3. KILL The print out option for sediment results can (SEDINF) only take on values 0, 1, 2, or 3. KILL The debug option for sediment calculations can ISED1NF) only take on values 0, 1, 2, or 3. ------- HO. TYPE MESSAGE SUBROUTINE ACTION/EXPLANATION 02B E REACH aa NOT GIVEN IN NETWORK DESCRIPTION 029 E NO. OF SIZE FRACTIONS SPECIFIED aa; SYSTEM MAXIMUM bb 030 E NO. OF BED LAYERS SPECIFIED aa; SYSTEM MAXIMUM bb 031 E MODEL REQUIRES A MINIMUM OF 3 PARTICLE SIZE FRACTIONS; aa FRACTIONS SPECIFIED 051 E ILLEGAL OPTION FOR PTLCAD aa 052 E ILLEGAL OPTION FOR DIFFUS aa 053 E ILLEGAL OPTION FOR SEDMT aa 054 E TIME INTERVAL MUST BE AN EXACT DIVISOR OF ONE DAY; TIMINT=aa 055 E ILLEGAL OPTION FOR DISK aa 056 E ILLEGAL OPTION FOR WARN aa 061 E REACH aa SLOPE IS bb; TOO SMALL FOR KINEMATIC ROUTING KILL Reaches for which initial sediment conditions (SEDINF) are given must also appear in the network description. KILL The number of particle size fractions speci- (SEDINF) fied NPSF (aa) exceeds the system maximum MNPSF (bb). Alter MNPSF, MNPS1, MNPS2, MNPSF3, and associated array dimensions in the main program. KILL The number of bed layers specified (aa) exceeds (SEDINF) the system maximum MLAY (bb). Alter MIAY and associated array dimensions in the main program. KILL The model is designed to handle a minimum of 3 (SEDINF) particle size fractions: one clay, silt, and at least one sand fraction. Size fraction 1 is clay, size fraction 2 is silt, and fractions 3 through NPSF are sands with fraction 3 the finest and NPSF the coarsest. INFO Valid options for PTLOAD are ' YES1 and ' NO1. The option should be right adjusted in the appropriate format field. INFO Valid options for DIFFUS are ' YES1 and ' NO1. The option should be right adjusted in the appropriate format field. INFO Valid options for SEDMT are ' YES1 and ' NO1. The option should be right adjusted in the appropriate format field. INFO A one day simulation period ff.ust contain an exact number of modeling intervals. INFO Valid options for DIS are 'bYes1 and 'bbNO1. The option should be right adjusted in the appropriate format field. INFO Valid options for WARN are 'bYES1 and 1bbIG1. The option should be right adjusted in the appropriate format field. RCHIN This model employs a kinematic wave technique for routing water through the stream network. For bottom slopes less than 0.0001 a kinematic method will probably give erroneous results. Check reach network description for reach aa; the model may not be suitable for your system. ------- NO. TYPE MESSAGE SUBROUTINE 062 E ROOT OF NETWORK NOT DEFINED. RCHIN DOWNSTREAM REACH SHOULD BE TRIBUTARY TO -VE REACH! 063 E TABLEjf aa IS REFERRED TO BY MORE RCHIN THAN 1 REACH Ot>4 E NO REACH ASSOCIATED WITH TABLES aa; SLOPE MISSING RCHIN 065 E TABLE! aa IS MISSING FOR REACH bb RCHIN ACTION/EXPLANATION The downstream terminus of the stream network is identified by the reach having a negative value for TRIB. Correct input and rerun the program. Each reach must have a unique table to describe its cross section geometry. Each cross section geometry table must be associated with a reach. The cross section geometry table referred to in the reach network description is missing. NJ O 081 E 091 E 101 W 102 E 111 E 121 E 122 E STORAGE REOD BY SYSTEM IS GREATER RSORT THAN ALLOWED (aa) WE NEED aa FLOW STORAGES-TOO PSHEWN MANY SECTION EXTRAPOLATED IN REACH aa STORGE LEV=bb NO CONVERGENCE AFTER 100 ITERATIONS STORGE IN SUBROUTINE STORGE REACH* MUST BE IN ASCENDING ORDER PNTLD FILE NO. aa ENDS SOONER THAN INITFL REQUESTED ENDING DATE FOR SIMULATION THE SIMULATION TIME INTERVAL IS NOT A MULTIPLE OF THE TIME INTERVAL ON FILE NO. aa INITFL The order of the stream being simulated is greater than MORDR defined in the main program. Actual stream order is aa. Alter MORDR and associated array dimensions and recompile. Flow rate in reach aa is greater than the maximum flow rate stored in TABLE for aa; values of area, depth, top-width found by extrapolation. The cross section for reach aa should be defined for a greater water depth. Given flow-rate, depth is computed using a Newton-Raphson iterative technique. A limit of 100 iterations is allowed for convergence to within 1 percent of the true solution. If the iteration limit is exceeded, there is probably an error in the cross section description. Discharge, area, and top width must increase monotonically with depth for this solution technique. Reach numbers roust be given in ascending order in the table of point load file numbers. Check simulation dates. necessary. Recreate file aa if Alter simulation time interval or recreate file aa. ------- NO. TYPE 123 E 124 W 125 B 126 E 131 E 141 142 MESSAGE SUBROUTINE £ HEADER INDICATING ZERO INITFL DISPLACEMENT HAS BEEN FOUND IN BEADING FILE NO. aa END OF FILE ENCOUNTERED WHEN INITFL INITIALIZING FILE aa. DATA FROM HERE ON ARE ASSUMED ZERO FILE INTERVAL AND SIMULATION START TIKE ARE NOT COMPATIBLE INITFL FILE TYPE FOUND IS aa FILE TYPE EXPECTED IS bb INITFL END OF FILE ENCOUNTERED ON UNIT* aa REFILl A HEADER INDICATING ZERO BEFIL2 DISPLACEMENT HAS BEEN FOUND IN READING FILE NO. aa KEY WITH VALUE aa WAS NOT FOUND REFIL2 FOR FILE NO. bb ACTION/EXPLANATION Probable error in code used to generate compressed files. Applies to compressed files only. The period of time from the start of a file to the start of the requested simulation period must contain an exact number of modeling intervals. This requirement enables correct synchronization of timing for data input and simulation. The type of data input file is identified by the following codes: 1- uncompressed ARM file usually containing diffuse land surface runoff (LSRO) data 2— compressed ARM file usually containing diffuse land surface erosion (EROS) data 3- point load file of flow or sediment discharge data. The file type, as recorded on the header label of the file, must agree with the function for which the file is to be used (point load, diffuse LSRD loading, etc.) Refers to an uncompressed ARM-type file. This message suggests that insufficient data exist on file (aa) to complete the simulation. Check the header information and recreate file aa if necessary. In particular, file aa must be an uncompressed ARM-type file and the number of data items and the data interval must be compatible with the begin and end dates on the header record. Refers to a compressed ARM-type file. Probable error in the code used to generate compressed file aa. Refers to a compressed ARM-type file. Probable error in the code used to read compressed file aa. ------- NO. TYPE MESSAGE SUBROUTINE 143 W END OF FILE ENCOUNTERED ON UNIT aa REFIL2 DATA FOR REMAINING TIME IS ASSUMED ZERO 151 E CONCENTRATION UNITS NOT YET PLOAD SUPPORTED FOR SEDIMENT 161 E END OF FILE ENCOUNTERED ON UNIT aa REFIL3 171 W CHANNEL HAS GONE DRY IN TIME INTERVAL aa PROBABLE LOSS OF CONTINUITY to 172 W 173 E ROUTE SECTION EXTRAPOLATED IN REACH aa LEV=bb ROUTE NO CONVERGENCE AFTER 100 ITERATIONS ROUTE IN SUBROUTINE ROUTE ACTION/EXPLANATION Refers to a compressed ARM-type file only. Point loads for sediment roust be given in mass units for the present version of the model. Refers to a point load file. This message suggests that insufficient data exist on file aa to complete the simulation. Check the header information and recreate file aa if necessary. In particular the file must be a point load file and the number of data items and the data interval must be compatible with the begin and end dates on the header record. When a reach goes dry in a time interval, the outflow from the reach is assumed to decrease linearly over the interval with outflow zero at the end of the interval. This assumption can lead to a slight continuity error. The flow rate in reach aa is greater than the maximum flow rate stored in TABLE for aa; values of area, depth, and top width found by extrapolation. The cross section for reach aa should be defined for a greater water depth. Given flow rate, depth is computed using a Newton-Raphson iterative technique. A limit of 100 iterations is allowed for convergence to within 1 percent of the true solution. If the iteration limit is exceeded, there is probably an error in the cross section description. Discharge, area, and top width raust all increase monotonically with depth for this solution technique. ------- NO. TYPE 174 to Ui 501 E 502 E 503 E 511 E 521 E MESSAGE LEVEL PASSED OUTSIDE PERMISSIBLE RANGE FOR THIS REACH. LAST=aa NLEV=bb DISPLACEMENT BETWEEN DATES IS NEGATIVE - SUBROUTINE OFFST LAND SURFACE COMPOSITION (COMLND) DOES NOT SUN TO 100. BED COMPOSITION FOR LAYER aa DOES NOT SUM TO 100. INITIAL SEDIMENT CONDITIONS NOT NOT GIVEN FOR REACH aa CONTINUITY ERROR IN SPLITTING EROSION INTO PARTICLE SIZE FRACTIONS DIHENSIONLESS GRAIN SIZE OUTSIDE RANGE FOR SAND FRACTION aa; DGR=bb SUBROUTINE ACTION/EXPLANATION RDOTE Hydraulic properties of a cross section (top width, depth, cross sectional area and discharge) are given at a number of water surface elevations (NLEV). In routing cal- culations, interpolation between values at successive levels is used. The level at which a search for hydraulic properties is to start (LAST) is passed from the calling program. A value of LAST greater than NLEV or less than one indicates an error in the code used for addressing hydraulic properties. OFFST (1) An input file starts after the requested start date for simulation, or (2) the start date for simulation is given as being after the end date for simulation. Check simulation dates and recreate file if necessary. SEDINF Correct input sequence. SEDINF Correct input sequence. SEDINF Initial conditions for in-stream sediment con- centrations and bed composition must be given for every reach mentioned in the network description. SPLIT Probable error in code used to subdivide values of total lard surface erosion into individual particle size fractions. VTSCHG The model can handle NPSF particle size fractions. Of these, size fractions 1 and 2 are reserved for clay and silt respectively. The remaining fractions, 3 through NPSF, are assumed to be sands, with fraction 3 the finest and fraction NPSF the coarsest. The Ackers and Vfliite transport algorithms make use of a dimensionless grain size, DGR, which must be greater than 1.0 for sand fractions. Check the diameters given for sand fractions and redefine if necessary. Also check values assigned to kinematic viscosity, density of sediment material, density of water, and gravi- tational acceleration. All these variables affect the dimensionless grain size. ------- NO. TYPE 522 MESSAGE DIMENSIONLESS GRAIN SIZE OUTSIDE RANGE FOR CLAY/SILT FRACTION aa; DGR=bb 531 W 532 E BOTTOM OF DEFINED BED REACHED IN COMPUTING ACTIVE IAYER THICKNESS ITERATION COUNT EXCEEDED aa IN BEDFORM CALCS to -e- SUBROUTINE ACTION/EXPLANATION VISCHG See explanatory notes for error message 521. The dimensionless grain size for clay or silt fractions must be less than 1.0. Check the diameters assigned to the clay and silt fractions and redefine if necessary. Also check kine.Tiatic viscosity, density of sediment material, density of water and gravitational acceleration. ACTIV Execution continues, toterial below the defined bed is assumed to be completely immobile. ACTIV Bedforra calculations use an iterative procedure to arrive at the thickness of the active layer. The user specifies EPSSED, a convergence criterion giving the relative accuracy to which the bedform thickness is to be computed, and BEDKNT, the maximum number of iterations to be used in trying to achieve the required accuracy. If debug output shows that uniform convergence is taking place b-jt the required accuracy has not been achieved, the number of iterations BEDKNT may be increased, or alternatively, the target accuracy EPSBED may be relaxed. If no pattern of convergence is obvious, the code should be inspected for errors or invalid assumptions. 541 W 1C BEYOND RANGE OF AVAILABLE DATA; RG=aa SSI W Y/DSO BEYOND RANGE OF AVAILABLE DATA Y/DbO=aa; BEDMAP BASE ADDRESS=bb BEDFBH The bedform charts used in the model cover a range of values of EG from 0.1 to 200.0. When values of RG less than 0.1 or greater than 200.0 are encountered, RG is reset to 0.1 or 200.0, respectively, and execution is continued. RG is a function of median particle diameter, kinematic viscosity, and gravitational acceleration. The values assigned to these variables should be checked. INTERP When Y/D50 is either above or below the range of data available in a particular bedform chart, it is reset to the highest or lowest value represented in that chart, and execution is continued. Values of water depth and median particle diameters should be checked. The range of data currently available can be found from the DATA statements in subroutine fiEDFJW. ------- NO. TXPE MESSAGE SUBROUTINE ACTION/EXPLANATION 561 E ABSCISSA BELOW RANGE IN TABLE LCOK UP; ABSC=aa 562 E ABSCISSA ABOVE RANGE IN TABLE LOOK UP; ABSC=aa 563 E ILLEGAL TABLE TYPE SPECIFIED; mPE=bb 571 E NEGATIVE CONCN. COMPUTED LUKUP (SDRDUT) LUKUP (SDBOUT) LUKUP (SDFOOT) SDROOT Check that the value of the abscissa is realistic. If necessary, extend the range of the table. LUKUP handles tables which are defined through DATA statements and assign- ments in the calling routine. Probable error in code. Table type bb has not .been implemented for look-ups in subroutine LUKUP. This condition usually arises when the flow time through the reach is less than the modeling interval. When a negative concentration is encountered, the program will print out hydraulic and sediment results for the current reach and time step and then stop. The flow time and modeling interval should be compared and reach characteristics or modeling interval adjusted where necessary. ro ------- WtSULTS UF MYDKAUUiC ACH U. 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3 3 4 4 {j « 41 4 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 4 4 4 4 4 4 YtAK 75 /5 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 7b 75 75 75 Ti 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 Ml) h b b b b b fa b b b b b b b b b b b b b b b b b b b 6 b b b b b b b b b b b b 6 b (, o b b b b b b b b b b b OA 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 14 5 5 5 5 5 5 4 4 5 5 5 5 5 5 4 4 5 5 5 5 5 5 4 4 5 5 5 5 HK WIN SEC 14 14 17 17 20 20 14 14 I/ 17 20 20 14 14 17 17 20 20 14 14 17 17 20 20 23 23 2 2 5 5 a a 23 23 ^ 2 b 5 a & 23 23 ^ 2 5 5 8 H 23 23 2 a b 5 0 0 0 u 0 0 0 u 0 0 0 0 u 0 0 0 0 0 0 u 0 0 0 0 0 0 0 u 0 u 0 0 0 0 0 0 0 0 0 0 0 0 0 u u 0 0 0 0 u 0 u 0 0 0 0 0 u u 0 0 u 0 0 0 0 u 0 0 0 0 0 0 0 0 0 u 0 u 0 0 0 0 0 0 0 0 0 0 u u 0 u 0 0 0 0 0 u 0 u u 0 0 0 0 u 0 DEPTH .972ttOO ,998ttOO ,994ttOO ,9fl9h+OU .990E+00 .992EtOO ,«59t-01 .9l3t-01 .9521-01 .990E-01 . 104EtOO ,107EtOO .982E+00 .112E+01 ,112tt01 .112E+01 ,112tt0 1 .935E+01 ,93bEtul . ') 4 0 E » U 1 ,5l4t+00 .547E+UO ,571t*UO ,595t+00 .b27t*00 ,b44E*00 .135f>02 . 159E + 02 ,lbUtt02 . 150E*02 • 1 59t *0£ . 1 59E+ d2 .B30E+01 . 1 Ibfctu2 . 1 17E*02 . 1 1HE+U2 .1 17E*02 1 1 17Et(/2 ,963fc*01 ,994fc*01 . 1 U3t*D2 . 1 U V l£ + U £ .Illbt02 . 1 13b + 02 .H3E*02 . 1 13E*02 ,b47ttOO .obOttl/U ,fafc4E+00 ,b77EtOO ,67«E*UU .b7ttttOO ,b7Hb*UO ,b7«EtUO .162L+02 ,167b+02 ,!73tt02 . ItiOt t02 . 1 85E+02 , 1 fltiE + 02 .190E+02 . 1 89Et02 .119bt02 • 121Et02 1 124b+02 . 126E + 02 .131Et02 .134E+02 10P 1 .141tt02 .141E+02 .141E+02 .620Et01 ,623Et01 ,b27Et01 . 183E+02 .183E+02 ,183Lt02 ,230Et02 .230Et02 ,230Et02 .144E+02 . 153t + 02 ,173E*02 .173bt02 ,62Bttol ,b29Ei-Ol ,b29E+Ol ,b29EtOi .185E+02 .I89tt02 . I92t»02 .I92tt02 .230E+02 .231E+02 .231E+02 UiSCH I .H72E+U1 ,9l5t tO I . 9 0 7 1 1 1) I .898E+01 ,099EtOl .9U4fc*Ol .328EtOO ,349ttOO ,3fa5ttOO . 3BOE tOO .401E+00 .4 I IttOO .750E+01 ,943E*Ol ,944t*0l .939E+01 ,939Et01 ,943t*0l ,57bt»0 I .9l5btOl ,940btOl ,94lEtOl .939E»Ol ,94lEtOl .935btoi .977E*Ol .103E+02 .lOHt+02 .H2£t02 .H5b»02 .Ilbkt02 .H5E + 02 ,4l3btOO .421EtOO .424ttOO ,432E»00 ,433EtOO .4336*00 .433E+00 . «J3EtOO .96bEtOl .I00tt02 . I05tt02 . I I0£*o2 ,l!5tt02 ,U8Et02 .I2utt02 . I I9£f02 .950E+01 ,967EtOl . 104E + 02 , 109E + 02 . I !4Et02 .Il6fct02 U J = H I'l P M P M P M P M P M P M P H P M P M f M P M P M P M P M P M P M P M P M P M P K, H M P M P M P M P M V M P :. AN Figure 42. Printout of hydraulic routing results 126 ------- RESULTS OF SEDIMENT TRANSPORT CALCS REACH YEAK MO DA Hft M1N SEC TYPE NO.. M=MEAN SEDIMENT OUTFLOW RAT ES (MA5S*OUTf- AC/ T 1231 IMtJ UY PAI b P=POINT 2 2 2 2 2 2 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75 b b b b b b b b 6 b b b b b b b b b b b b 5 5 5 5 5 5 4 4 5 5 5 5 5 5 4 4 5 5 5 5 b 2 2 5 5 8 a 23 23 2 2 5 5 8 8 23 23 2 2 5 5 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 M H H p M p M P M P H P M P H P H P M P M .OOOE+00 .453E-02 .OOOE+00 .496E-02 .OOOE+00 .152E-01 .OOOE+00 .ISbE-01 .OOOE+00 .ISbE-01 .OOOE+00 .157E-01 .OOOE+00 .3a7E-03 .OOOE+00 .370E-03 .OOOE+00 .373E-03 .OOOE+00 .3726-03 .OOOE+00 .224E-03 .OOOE+00 .870E-04 .OOOE+00 .653E-04 .OOOE+00 .94bE-04 .OOOE+00 .778E-03 .OOOE+00 .783E-03 .OOOE+00 .787E-03 .OOOE+00 .7S9E-03 .OOOE+00 ,3b4E-02 .OOOE+00 .3I2E-02 .OOOE+00 .275E-02 .OOOE+00 .415E-03 .OOOE+00 .449E-03 .OOOfc+00 .912E-03 .OOOE+00 .955E-03 .OOOE+00 .9falE-03 .OOOE+00 .967E-03 .OOOE+00 .OOOE+00 .OOOE+00 .OOOE+00 .OOOE+00 .OOOE+00 .OOOE+00 .OOOE+00 .OOOE+00 .445E-09 .OOOE+00 .120E-07 .OOOE+00 .12l£-0fa .OOOE+00 .960E-07 .OOOE+00 .246E-03 .OOOE+00 .252E-03 .OOOE+00 .2blE-03 .OOOE+00 .269E-03 .OOOE+00 .729E-03 .OOOE+00 .737E-03 .OOOE+00 .701E-03 .503E-01 .529E-05 .415E-01 .S40E-05 .109E-01 .954E-05 .551E-03 .100E-04 .551E-03 .102E-04 .553E-03 .103E-04 .194E-01 .OOOE+00 ,3b2E-01 .OOOE+00 .449E-01 .OOOE+00 .biaE-01 .OOOE+00 .2bOE+01 .OOOE+00 .594E+01 .OOOE+00 ,b09E+01 .OOBE+00 .605E+01 .OOOE+00 .241E-01 .174E-04 .372E-01 .216E-04 .410E-01 .28faE-04 .529E-01 .354E-04 .141E+01 .943E-04 .45SE+01 .105E-03 .57U + 01 .105E-03 .954E+00 .OOOE+00 .962E+00 .OOOE+00 .234E+00 .OOOE+00 .173E-01 .OOOE+00 .173E-01 .OOOE+UO .173E-01 .OOOE+00 .5B7E+00 .OOOE+00 .61 1E+00 .OOOE+00 ,b71E+00 .OOOE+00 .714E+00 .OOOE+00 .388E+00 .OuOE+oO .410E-03 .OOOC+00 ,b95E-03 .OOOE+00 .105E-02 .OOOE+00 .B58E+01 .OOOE+00 .910E+01 .OOOE+00 .100E+02 .OOOE+00 .109E+02 .OOOE+00 .451E+01 .OOUE+OO .518E+00 .OOOE+00 ,1 J4E + 00 .OOOE+00 .244t-0l .270E-01 .359E+OU .530E+OU .530E+00 .^29E+00 .lUbE-02 .189E-02 .IB3E-02 .17faE-02 .997E-03 .255E-03 .252E-03 .2U3E-03 .272E-02 .273E-02 .273E-02 .272E-02 •244E+00 ,b!9E+00 .^15t+00 TOTAL .10JE+01 CUfiL ,5b4E+00 ,b09E+00 .718E+00 .299E+01 .b09E+Ul .fiblE+01 .101E+02 .bl6E+01 .bOoE+01 4VOt+05 793E+05 faidt+Ob ,b94E+06 Figure 43. Printout of sediment transport results ------- CHAPTER 10 MODEL TESTING As pointed out in previous chapters, the WEST Model is actually composed of two models, the ARM Model and the CHANL Model, linked by a simple data data managment system. The ARM Model has already been extensively tested and results are presented by Donigian and Crawford (1976a) and Donigian, et al. (1977). The main thrust of model testing in this study has thus been to prove the CHANL Model, although there has also been limited testing of the WEST Model as a whole. Testing of the CHANL Model has been done in three basic stages: (1) Testing on hypothetical situations. A variety of tests were made on realistic hypothetical situations. The purpose of these tests was to ensure, as far as possible, that the model algorithms behaved as intended. The tests were also designed to uncover some of the errors which are invariably present in newly developed programs, before testing on experimental and field data was begun. Much of the hypothetical testing was done as part of the process of developing and debugging the program and results are not presented here. (2) Testing on laboratory data. An extensive body of laboratory data exists pertaining to the sediment transport field. We wished to find data for testing those algorithms which govern basic processes such as armoring or the scour of cohesive materials. Laboratory data are especially useful for this purpose since experiments may be performed under strictly controlled conditions and the resulting data is usually more accurate than that obtained in the field. On the other hand, laboratory data do not, of course, replicate the conditions in the field, and care must be taken in interpreting the results. Almost all laboratory experiments have been carried out in rectangular recirculating flumes, and unfortunately, most experiments have been concerned with steady uniform flow over a cohesionless bed of uniform material. The use of results from such experiments would simply add a further check to the sediment transport algorithms of Ackers and White. Since these algorithms have already been extensively tested (White, Milli, and Crabbe 1973b) this hardly seemed worthwhile. 128 ------- One very useful set of laboratory data was found, however. These data were collected at the Georgia Institute of Technology by Little and Mayer (1972). They performed a series of experiments to study the effects of sediment gradation on channel armoring. The data obtained enabled us to test those algorithms which govern the effect of armoring on the transport of cohensionless material. These tests are discussed in Section 10.1. (3) Testing on field data. The CHANL Model was tested using data collected by the USGS on a section of the East Fork River, Wyoming (Mahoney, et al. 1976). The purpose of these tests was to check the performance of the model algorithms on a natural system under conditions of unsteady flow. To be of value in such a test, the data have to be sufficiently detailed and reliable so that deficiencies in the data and the model can be identified and separated. The major problem is finding data which accurately define both the boundary conditions and initial conditions of the 'system being studied and provide sufficient information for a comparison of simulated and recorded results. The Geological Survey study area on the East Fork River appears to be one of the few cases in which sufficient detailed data exists for realistic assessment of the CHANL Model performance. These tests are discussed in Section 10.2. The test program adopted for the CHANL Model was intended to check the ability of the model to represent instream processes. The tests have been quite limited. In particular, the tests have been restricted to the transport of cohesionless materials. No data have been found for testing the ability of the model to simulate the scour, deposition, and transport of cohesive materials. Further testing of the CHANL Model algorithms is clearly needed. The final test of the CHANL Model was made in conjunction with the ARM Model and consisted of simulating sediment movement on a basin scale, through the Four Mile Creek watershed in east central Iowa (Section 10.3). The Four Mile Creek watershed was chosen for the study because comparatively good data were available for that basin, and because a related project was under way in the same area, also under Athens-ERL sponsorship. However, to be useful in practice, it must be demonstrated that the WEST Model satisfactorily reproduces the behavior of a variety of natural basins. With this in mind, Hydrocomp prepared an inventory of basins which might be useful for that purpose. The catalog is listed in Appendix B and covers the U8 conterminous states. The catalog was intended to be exhaustive. However, considering the great variety of organizations active in data collection, there must be some omissions. Nevertheless, it could prove useful in selecting basins for future model testing. 129 ------- 10.1 Armoring Study, Georgia Institute of Technology An extensive series of experiments were performed at the Georgia Institute of Technology to study the effects of sediment gradation on channel armoring. Several mixtures of crushed quartz were obtained each with a geometric mean particle diameter of 1.00 mm but with geometric standard deviations varying from 1.12 to 3-00. These sediment mixtures were placed in a rectangular recirculating flume 0.6 m wide with a sediment bed 12.2 ra long and 0.045 ra deep. The bed slope was set at 0.002. In each experiment, a steady uniform flow was passed over the sediment bed. The hydraulic conditions were chosen to purposely induce armoring. Sediment transport rates at the outlet from the flume were measured periodically to obtain a full record of their variation over time. The experiments and their results are discussed in detail by Little and Mayer (1972). Data from three of the experiments were chosen to check the performance of the CHANL Model in simulating the transport of cohesionless materials and the effects of armoring. The experiments used were Little and Mayer's runs 4-1, 5-1, and 6-1. The hydraulic conditions used for each run are given in Table 8. Manning's n for each run was calculated from the known hydraulic conditions so that the simulation exactly duplicated the measured f ] DW rates and depths. Table 8. HYDRAULIC PROPERTIES (GEORGIA TECH. ARMORING STUDY) Run Flow Flow Bed Kinematic Manning's Rate Depth Slope Viscosity n m^s"*- m m s~i 4-1 0.00623 0.037 0.0019 0.89E-06 0.0157 5-4 0.0128 0.051 0.002 1.00E-06 0.0131 6-1 0.0127 0.056 0.002 1.00E-06 0.0155 In running the CHANL Model, the flume was represented by a single reach with a point inflow of water at the upstream end. A modeling interval of 30 seconds was used in all runs to satisfy the restriction that modeling interval be less than the flow time through the reach. The original particle size distribution of the bed material for each run is given in Table 9. In simulating sediment transport, the graded material was represented by a small number of discrete particle size fractions. The particle size fractions and idealized initial bed composition used for each run are listed in Table 10. The values of those sediment parameters relevant to the transport of cohesionless material used in each run are listed in Table 11. 130 ------- Table 9- ORIGINAL BED PARTICLE SIZE DISTRIBUTIONS (GEORGIA TECH. ARMORING STUDY) Sieve Opening ram 8.000 667 000 830 000 414 000 0,707 0.500 0.354 0.250 0.177 0.125 Run 4- 100.00 99.64 96.27 80.86 49.95 20.57 4.14 0.54 0.13 Original size distribution (%) Run 5-4 100.00 95.49 50.23 3-91 0.23 0.05 Run 6-1 96.99 93.73 89.50 82.43 73.02 61.75 50.05 38.31 26.98 17.54 10.54 6.07 3.00 Table 10. DEFINITION OF PARTICLE SIZE FRACTIONS AND INITIAL BED COMPOSITION FOR MODELING Median Diameter mm 0.25 0.5 1.0 2.0 4.0 Run 4-1 20.57 60.29 18.78 0.36 Initial Bed Composition (5O Run 5-4 3.9 91.6 4.5 Run 6-1 17.54 20.77 23.44 20.68 17.57 Table 11. SEDIMENT PARAMETERS USED WITH GEORGIA TECH. DATA Value Sediment Parameter PROTCT ARMF DUNE RIPPLE Run 4-1 10.0 1.0 4.0 75.0 Run 5-4 0.0 1.0 4.0 75.0 Run 6-1 45.0 1.05 4.0 75.0 131 ------- 10.1.1 Run 4-1 The hydraulic conditions and sediment regime used in simulating Run 4-1 are presented in Tables 8 and 10. Note that the graded sediment was represented by four sand fractions of diameters 0.5, 1.0, 2.0, and 4.0 ram. Simulation was done at a 30 sec time step for a period of 1800 min. A comparison of simulated and recorded cumulative sediment transport is given in Figure 44. The relevant sediment parameters used in simulation are listed in Table 11. The simulated result in Figure 44 is obviously poor. The run was repeated several times with various parameter values but no substantial improvements were achieved. Inspection of the output from the sediment transport simulation showed that only the finest sand fraction (0.5 mm diameter) was predicted as being in motion. The remaining fractions, making up about 80 percent of the bed, were immobile. The recorded data, however, indicated that both the 0.5 ram material and 1.00 mm material were in motion and that only about 20 percent of the bed material was immobile. A check of the data indicated that no reasonable change in the definition of particle size fractions could improve the situation. However, a 20 percent change in Manning's n from 0.0157 to 0.0126 dramatically improved simulation. The results are shown in Figure 45. The change in Manning's n increased the flow velocity and reduced the flow depth from the recorded value of 0.037 m to 0.030 m. These changes in simulated hydraulic conditions caused the 1.00 mm particle size fraction to become mobile, reduced the effect of armoring and hence greatly increased the sediment transport rate. Thus, the reason for the poor simulation in Figure 44 is simply that the model predicted the 1.00 ram size fraction to be immobile, whereas in fact it was mobile. This problem is not surprising when one considers that flow conditions are at the threshold of movement for the 1.00 mm size fraction. RECORDED SIMULATED 800 1200 TIME, minutes 1600 2000 Figure 44. Cumulative snl imriit transport tor Ceoi lust it ut c dl Technology, run 4-1 132 ------- The algorithm developed by Ackers and White for predicting the mobility of particles is similar to the familiar Shields curve. It was derived by fitting a curve to laboratory and field observations of the initiation of particle movement. The actual data points show a certain amount of scatter about the best fit curve and so the threshold of movement for a particular situation cannot be predicted with certainty. 10.1.2 Run 5-4 The hydraulic conditions and sediment regime used in simulating Run 5-4 are shown in Tables 8 and 10, and the relevant sediment parameters in Table 11. The graded sediment was represented by three sand fraction with diameters 0.5, 1.0, and 2.0 mm. Simulation was done at a 30-sec time step for a period of 75 rain. A comparison of simulated and recorded cumulative sediment transport is shown in Figure 46. Because of the small amount of immobile material in the bed, armoring did not have any effect over the period of this run. The experiment essentially studijed the transport of uniform cohensionless material by steady uniform flow. Figure 46 shows close agreement between simulated and recorded results which provides an additional check on the adequacy of Ackers and White's sediment transport algorithms. 10.1.3 Run 6-1 The hydraulic conditions and sediment regime used in simulating Run 6-1 are shown in Tables 8 and 10, and the relevant sediment parameters of the best simulation results are shown in Table 11. The graded sediment was represented by five sand fractions with diameters 0.25, 0.5, 1.0, 2.0, and 4.0 mm. Simulation was done at a 30-sec time step for a period of 8500 min. RECORDED SIMULATED 800 1200 TIME, minutes 1600 2000 Figure 45. Effect of Manning's n on sediment transport for Georgia Institute of Technology, run 4-1 133 ------- Comparisons of simulated and recorded cumulative sediment transport are shown in Figure 4? and 48. Figures H7 and 48 show that sediment is transported at a relatively high and -form rate for the first 100 min of recorded data. However, as an armoring layer of immobile material builds up, transport rates are rapidly After about 3000 min, the transport rates are less than 5 percent of the initial recorded values. ! Q ) - ! I . • 3 4 : i i RECORDED SIMULATED 20 40 TIME, minutes BO Figure 46. Cumulative sediment transport for Georgia Institute of Technology, run 5-4 134 ------- RECORDED SIMULATED 800 1200 TIME, minutes 1600 2000 Figure 47. Cumulative sediment transport for Georgia Institute of Technology, run 6-1 for first 1800 minutes RECORDED SIMULATED 2000 4000 6000 TIME, minutes 8000 10000 Figure 48. Cumulative sediment transport for Georgia Institute of Technology, run 6-1 135 ------- It can be seen from Figure 47 that the initial sediment transport rates before armoring begins to take effect are underestimated by about 40 percent. However, as noted in Section 6.3-5, this is well within the expected accuracy of the sediment transport algorithms. The simulated cumulative sediment transport reaches a value of about 49 kg after 1600 min. After 1600 min, simulated sediment transport virtually stops because of the effects of armoring. However, the recorded data (Figure 48) shows that sediment transport does continue at a low rate even with a substanial armoring layer. Nevertheless, the model adequately reproduces the effects of armoring. The armoring algorithm (Figure 19) could be altered to improve simulation, but this is not warranted solely on the basis of the present limited testing. Calibration of the model to simulate armoring is done by adjusting the sediment parameters ARMF and PROTCT. ARMF controls the total quantity of mobile material available for transport when an armor bed is formed, and PROTCT controls the rate at which armoring reduces the sediment transport rates. The effects of changes in ARMF and PROTCT are discussed in Section 10.1.4. 10.1.4 Sensitivity Tests The Georgia Institute of Technology data were used to perform several sensitivity tests. Data from Run 5-4 were used to demonstrate the sensitivity of sediment transport to changes in hydraulic conditions, and data from Run 6-1 were used to demonstrate the sensitivity of results to changes in various sediment parameters. The simulation results presented for Run 5-4 in Section 10.1.2 and for Run 6-1 in Section 10.1.3 were used as a basis for comparison. Figure 49 shows the effect of changes in roughness on sediment discharge with the flow rate and all sediment parameters held constant. The line corresponding to a Manning's n of 0.0131 is that based on the laboratory measurements. The remaining curves correspond to +10 percent changes in values of n. The effect of a decrease in roughness for a constant flow rate is a decrease in flow depth and an increase in velocity. In this case, a 10 percent reduction in n reduced the depth of flow by approximately 10 percent and increased flow rates by approximately 10 percent. The net result was a 125 percent increase in the sediment transport rate. Although the effect of changes in hydraulic variables is dependent on the geometry and slope of the channnel and on the sediment characteristics, sediment transport is generally very sensitive to change in flow velocity. This means that in simulation, it is most important to accurately reproduce the measured flow velocity and stage as well as the discharge rate. Manning's roughness is a most important calibration parameter for this purpose. Figure 50 shows the effect of changes in flow rate on sediment discharge with Manning's n and the sediment parameters held constant. The line corresponding to a flow rate of 0.0128 m3s-1 is based on the laboratory measurements. The remaining lines correspond to ±10 percent changes in flow rates. For this particular test, a 10 percent change in flow rate increased the flow depth by 6 percent and the flow velocity by 4 percent. The net 136 ------- a: O a t/3 Z Q 111 M •r o RECORDED SIMULATED 20 40 TIME, minutes Figure 49. Sensitivity of sediment transport to channel roughness 137 ------- RECORDED SIMULATED 40 TIME, minutes Figure 50. Sensitivity of sediment transport to flow rate 138 ------- effect was a 35 percent increase in the sediment discharge rate. The increase in flow rate has a two-fold effect. Firstly it increases flow velocity, which, as we have seen, has a great effect on sediment transport rates. Secondly, the simple fact that the volumetric flow rate is greater, results in an increased mass transport rate. Thus, as noted earlier, it is important that simulation accurately reproduce both flow rates and velocities. The effect of change in water temperature on sediment discharge, with all other variables constant, is illustrated in Figure 51. Water temperature affects kinematic viscosity which in turn is one variable governing the sediment transport rate. As can be seen from Figure 51, the effect of change in water temperature becomes more pronounced as the temperature falls, or alternatively, as kinematic viscosity increases. In this example, a drop in temperature of 10 °C caused a 10 percent drop in the sediment discharge rate. The present version of the model uses an average monthly value for kinematic viscosity. In most rivers, the change in temperature within a month may be quite large, and on small streams even the diurnal temperature change may be substantial. One important improvement to the model should be to allow the input of more detailed water temperature or kinematic viscosity data. The effect of sediment parameter changes on the simulation of armoring is shown in Figures 52 and 53. The parameters used for calibration of the armoring process are ARMF and PROTCT. ARMF controls the total quantity of mobile material available for transport from the armor bed. PROTCT controls both the time at which armoring starts to have an effect and the rate at which sediment transport is reduced. The best fit curves in Figures 52 and 53 correspond to the simulation results obtained for run 6-1 in Section 10.1.3. The hydraulic conditions and sediment parameters used in this run are shown in Tables 8 and 11 respectively. Figure 52 shows the effect of an increase in the value of ARMF with all other variables constant. ARMF is the value of the ratio (depth of armoring material/ median diameter of armoring material) at which armoring prevents further scour. The principal point to note in Figure 52 is the way in which the asymptotic cumulative transport rate is increased, representing a thicker armor layer and a greater quantity of mobile material available for transport. Figure 53 shows the effect of reduction in the value of PROTCT from 45 to 10. PROTCT is the percentage of immobile material in the active layer which will start to protect finer material from scour. With a lower value of PROTCT, armoring starts to take effect earlier but the armoring process takes longer to completely stop scour. 139 ------- T = 20°C 20 40 60 TIME, minutes Figure 51. Sensitivity of sediment transport to water temperature 140 ------- : 11 o ! . /) 1 1 LLI : - Q LU C/3 LLI 1 ; •1 I ) : - D i ' ARMF = 1.2 _- RECORDED SIMULATED PROTCT = 45 I 800 1200 TIME, minutes 1600 2000 Figure 52. Effect of parameter ARMF on sediment transport RECORDED — SIMULATED ARMF = 1.05 800 1200 TIME, minutes 1600 2000 Figure 53. Effect of parameter PROTCT on sediment transport 141 ------- 10.2 East Fork River, Wyoming 10.2.1 Introduction The tests described in this section are based on data collected by the U.S. Geological Survey during May and June 1975 on a reach of the East Fork River in western Wyoming (Mahoney, et al. 1976). The study reach is approximately 5000 m in length and has a tributary area of about 470 km2. The location of the watershed and study area are shown in Figure 54, A more detailed map of the study reach showing the position of the principal gaging stations, is given in Figure 55- Within the study reach, the river flows over a sand bed with material in the East Fork ranging in size from fine sand of diameter less than 0.06 mm to coarse gravel of diameter 60 mm or more. The bed of Muddy Creek is also sand but it is considerably finer than the material in the East Fork, ranging in diameter from 0.06 mm to 8 mm. The study covered the beginning of the spring snowmelt season and detailed data was collected for the period of May 28th to June 18th. The data presented by the Geological Survey (Mahoney, et al. 1976) for the study period include: •cross section measurements at several sections at regular intervals throughout the study period. •staff gage readings at half-hour intervals for sections B1, MC, and B17 •rating curves (stage-discharge relations) for sections B1, MC, and B17 •summary of instantaneous water temperature observation in the East Fork and Muddy Creek •sunmary of suspended sediment concentrations in the East Fork and Muddy Creek •particle-size distribution of bed material on May 28 at various sections in the East Fork and Muddy Creek •summary of total bed load transport rates at sections B1, MC, and B17 •particle-size distribution of bed load sediment at sections B1, MC, and B17 142 ------- 42°45' 421301 110030' KEY . Flow & sediment gaging station B17 noV DRAINAGE BOUNDARY i 15km Figure 54. East Fork Kivi>r watershed and study reach 143 ------- KEY A Flow & sediment gaging station l) Reach number MUDDY CREEK MC Figure 55. Study reach showing location of gaging stations and reach numbers used in simulation 144 ------- The data collected represents one of the most detailed sediment transport studies to be undertaken. Note that the upstream boundary conditions are specified by gaging stations at sections B1 and MC (Muddy Creek), and outflow from the reach is specified by a gaging station at section B17. The gaging stations at sections B1, MC, and B17 completely specify both input to and output from the study reach; lateral inflows are negligible. Another point to note is that the sediment transport data include bed load measurements, particle-size distributions for the bed load sediment, and measurements of suspended sediment concentrations. No particle-size data is presented for the suspended material, and unfortunately, only a few suspended sediment measurements were taken. As the study was principally a bed load investigation, the lack of emphasis on the suspended material is not suprising. However, the sediment transport algorithms of Ackers and White are used to predict the total sediment transport load; no separation is made between bed load and suspended load. This makes the interpretation of the sediment simulation rather difficult. The coarse particle sizes might be expected to move completely as bed load. In that case the total load and bed load are directly comparable and interpretation of results present no difficulty. However, intermediate and fine sand sizes will move partially as bed load and partially as suspended load. The finer the material the less the bed load contribution and the greater the amount in suspension. Since it is not possible to estimate the particle size distribution of the suspended material, no comparison can be made between simulated and recorded transport rates for the fine sand fractions. 10.2.2 Data Preparation For modeling purposes, the study area was split into four reaches as shown in Figure 55. A mean or average cross section was obtained from field measurements for each reach. The assumed reach lengths, slope, and cross section geometry are given in Figure 41. The figure is an input sequence used in actually running the CHANL model on the East Fork data. Study of reach lengths and maximum flow velocity indicated a modeling interval of 5 min. After studying the particle-size distribution of the bed material we decided to model sediment movement using a total of seven sand fractions with diameters 0.125, 0.25, 0.5, 1.0, 2.0, 4.0, and 8.0 ram. The assumed initial bed compositions are given in Figure 41. Input to the system was provided by point loads at sections B1 and MC (Figure 55). Creation of the point load files required analysis and manipulation of the basic data. The half-hourly stage readings were converted to flow rates through the use of the rating curves. Linear interpolation was used to create flow rates at 5 min intervals (the modeling interval) and the data was then written to disk in the format required by the CHANL Model (Section 7.4). The sediment transport data consisted of total bed load measurements and corresponding particle-size analysis taken at irregular intervals throughout the study period. This data was converted to sediment transport rates for each particle size fraction. Linear interpolation was then used to create 145 ------- data at the required 5 min interval and the data was written to disk in the required format. The point load input to reaches 1 and 2 thus consisted of a flow file and seven sediment transport files, one for each sand fraction being modeled, to give a total of 16 data files. The sediment files were based solely on the bed load data. No attempt was made to adjust the data for the fine material in suspension. The input data for the fine particle-sizes was thus less than the true values. This would certainly affect simulation of the finer particle-sizes, but it was thought to have only a minor impact on simulation of the movement of coarser fractions. Similar analysis and manipulation was performed for the flow and sediment data collected at Section B1?. These data were to be used in comparing simulated and recorded flow and sediment discharges from the study area. Analysis and preparation of data produced sufficient detailed information to allow continuous simulation at a 5 min time step for a total of just over 7 days. This was the period of time for which complete flow and sediment data existed at Sections B1, MC, and B17. Simulation could have proceeded for a longer period of time by filling in or making assumptions about various missing data. We did not consider this approach to be advisable because of the difficulty of separating the effect of data errors from inadequacies in the model. 10.2.3 Results The first step in modeling the East Fork River was the calibration of the hydraulics. This was straightforward since the reach lengths were quite short and there was little or no attenuation or alteration of the flow hydrograph from input at B1 and MC to output at B17. In fact the situation is such that output should be almost equal to the input in each time step. A Manning's n of 0.025 was used for the incised channel of all four reaches (Figure 41). A comparison of simulated and recorded flow values at B17 is shown in Figure 56. Agreement is satisfactory but not as good as we had hoped considering the short reach lengths, lack of lateral inflow, and obvious substantial effort in the data collection. Low flow agreement is good but at high flows, the simulated values are about 15 percent lower than recorded values. The reason for this discrepancy appears to be an inconsistency in the rating curve at one or more of the gaging sites. The problem may be caused by scour of the channel at high flow periods. The next step after obtaining satisfactory hydraulic results was simulation of sediment transport. The simulation was performed a number of times adjusting the relevant sediment parameters to obtain the best agreement between simulated and recorded results. The final sediment parameters are listed in Table 12. Only the changes to the parameter PROTCT seemed to noticeably improve the simulation results. 146 ------- 1500.0 1200.0 £ lif cc M O 900.0 600.0 300.0 0.0 SIMULATED RECORDED T 1 T EAST FORK RIVER, WYOMING 11:0024:00 24:00 24:00 24:00 24:00 24:00 24-00 15-00 JUNE 4 JUNE 5 JUNE 6 JUNE 7 JUNES JUNE 9 JUNE 10 JUNE 11 TIME Figure 56. Comparison of simulated and recorded flows, East Fork River ------- Table 12. SEDIMENT PARAMETERS FOR EAST FORK RIVER BIND not applicable* ABIND not applicable* PROTCT 20.0 ARMF 1.05 DUNE 0.4 RIPPLE 75.0 *BIND and ABIND are used in simulating the transport of cohesive materials. Simulated sediment transport rates were written to disk for each particle size fraction being modeled and for the total mass transport rate. Comparison of simulated and recorded transport rates are shown in Figures 57-64. Figures 57-63 refer to the transport of individual size fractions from 0.125 mm to 8 mm in diameter. Figure 64 is a comparison of the total simulated sediment transport rate against the recorded bed load transport. Some comments will be made about the simulation results. The simulation results for the finest sand fraction (0.125 mm diameter) show poor agreement with the recorded data, which is almost zero for the whole simulation period. The reason for the discrepancy is that the recorded results are for bed load only and it appears that all of the fine material is actually carried in suspension, and hence not measured. The input to the system at B1 and MC is based solely on bed load so the input of fine material would probably also be in error. The discontinuities in simulated transport rates, such as that at about 22:00 on June 8, are caused by recomputation of the active layer thickness and the consequent sudden increase in the amount of fine material available for transport. These spikes could be smoothed by increasing the frequency at which active layer characteristics are recalculated (Section 6.3.4). The sudden rise in sediment transport rates at the beginning of simulation is caused by the choice of initial conditions (Figure 41). The simulation for the 0.25 and 0.5 mm fractions (Figure 58 and 59 respectively) show similar results to those obtained for the 0.125 fraction (Figure 57). Again it seems that most material travels in suspension and is not measured and agreement between simulated and recorded results is poor. Note that compared to Figure 57 many of the discontinuities in transport rates have vanished. However, discontinuities still occur at 03:00 on June 7, and again at 24:00 on June 9. The first discontinuity coincides with the times at which the coarsest size fraction becomes mobile and the second discontinuity occurs when the coarsest fraction becomes immobile again. The reason for the discontinuity is that a sudden change in the number of mobile fractions alters the way in which the transporting capacity of the flow is 148 ------- 25.0 VO SIMULATED • RECORDED PARTICLE SIZE FRACTION 0.125 mm (range 0.00 mm -0.18 mm) 11:00 24:00 24:00 24:00 24:00 24:00 24:00 24:00 15:00 JUNE 4 JUNE 5 JUNE 6 JUNE 7 JUNE 8 JUNE 9 JUNE 10 JUNE 11 TIME Figure 57. Comparison of simulated and recorded sediment transport rates 0.125 mm size fraction, East Fork River ------- 25.0 20.0- o £15.0 O a. 10.0 111 §5.0 LLJ 05 0.0 T SIMULATED > RECORDED PARTICLE SIZE FRACTION 0.25 mm (range 0.18 mm - 0.35 mm) 11:00 24:00 24:00 24:00 24:00 24:00 24:00 24:00 15:00 JUNE 4 JUNE 5 JUNE 6 JUNE 7 JUNES JUNES JUNE 10 JUNE 11 TIME Figure 58. Comparison of simulated and recorded sediment, transport rates for 0.25 mm sized fraction, East Fork River ------- 25.0 8 U) OS u! < QC I- QC O Q_ C/J 20.0 15.0 10.0 LU 1" 0.0 T - SIMULATED • RECORDED PARTICLE SIZE FRACTION 0.5 mm (range 0.35 mm - 0.71 mm) 11:00 24:00 24:00 24:00 24:00 24:00 24:00 24:00 15:00 JUNE 4 JUNE 5 JUNE 6 JUNE 7 JUNES JUNE 9 JUNE 10 JUNE 11 TIME Figure 59. Comparison of simulated and recorded sediment transport rates for 0.5 mm size fraction, East Fork River ------- Ol N> U 0> en ~ UJ DC O Q_ 1.5 1.2 - 0.9 - pc 0.6 - m I 0.3 UJ C/5 0.0 SIMULATED 'RECORDED PARTICLE SIZE FRACTION 1.00 mm (range 0.71 mm - 1.40 mm) 11:00 24:00 24:00 24:00 24:00 24:00 24:00 24:00 15:00 JUNE 4 JUNE 5 JUNE 6 JUNE 7 JUNES JUNE 9 JUNE 10 JUNE 11 TIME Figure 60. Comparison of simulated and recorded sediment transport rates for 1.00 mm size fraction, East Fork River ------- tn LO £ ------- en .£> U (U tn LU 1.5 1.2 - I— Q9- CE u-" • O Q_ C/3 0.6 LLI I 0.3 LU CO 0.0 -SIMULATED •RECORDED PARTICLE SIZE FRACTION 4.0 mm (range 2.80 mm - 5.70 mm) "11:00 24:00 24:00 24:00 24:00 24:00 24:00 24:00 15:00 JUNE 4 JUNE 5 JUNE 6 JUNE 7 JUNES JUNE 9 JUNE 10 JUNE 11 TIME Figure 62. Comparison of simulated and recorded sediment, transport rates for 4.0 mm size fraction, East Fork River ------- Cn CO O> u I- \- cc o Q. en tr. l- h- 2 m tu tn 1.5 1.2 - 0.9 0.6 0.0 T - SIMULATED • RECORDED T \ 1 PARTICLE SIZE FRACTION 8.0 mm (range 5.70 mm - 64.0 mm) 11:0024:00 24:00 24:00 24:00 24:00 24:00 24:00 15:00 JUNE 4 JUNE 5 JUNE 6 JUNE 7 JUNES JUNE 9 JUNE 10 JUNE 11 TIME Figure 63. Comparison of simulated and recorded sediment transport rates for 8.0 mm size fraction, East Fork River ------- 25.0 I 1 Total Transport Rate SIMULATED RECORDED "11-00 24:00 24:00 24:00 24:00 24:00 24:00 24:00 15:00 JUNE 4 JUNE 5 JUNE 6 JUNE 7 JUNES JUNE 9 JUNE 10 JUNE 11 TIME Figure 64. Comparison of simulated and recorded total sediment transport rates, East Fork River ------- proportioned amongst the individual size fractions. This phenomenon is unavoidable with the current organization of the model and will be noticed on comparisons for all the remaining size ractions. Comparisons of simulated and recorded results for the 1.0, 2.0, and 4.0 mm size fractions are shown in Figures 60, 61, and 62 respectively. The recorded point values are generally scattered on either side of the line representing the simulated values, and in view of the usual accuracy of sediment simulation, we consider the results to be quite satisfactory. There is, however, a tendency for simulated results to be too high toward the end of the simulation period for the 1.0 mm and 2.0 mm size fractions. This may be due to an underestimate in the proportion of coarse material in the bed when preparing data for the input sequence. This hypotheses requires further investigation. Figure 63 shows a comparison of simulated against recorded values for the coarsest size fraction (8 mm diameter). This particular plot is rather interesting in that it illustrates a number of the problems associated with sediment modeling. Note that the simulation results only predict the 8 mm particles to be mobile over the period from 03:00 on June 7 to 24:00 on June 9 when simulated (and recorded) flows are at their height. The recorded values, however, indicate some mobility throughout the time span. There could be several reasons for this discrepancy. First, simulated flow rates may be lower than recorded rates. We already know from Figure 56 that there are inconsistencies in the recorded flow data, either at B1, MC, or B17, and we cannot be certain of the correct recorded flow rate. Second, this sand fraction is on the threshold of motion and, as pointed out in Section 10.1.1, the model algorithm may be underestimating the true mobility. Finally, as pointed out in Section 5.4.2, the one-dimensional representation operates in terms of average flow depths and velocities. In the natural situation, coarse material may be moving down the center of the stream channel where velocities and depths are greatest. Figure 64 has been included for completeness of the record. It shows a comparison of total simulated and recorded transport rates. The simulation is again poor but simply reflects the preponderance of fine material in suspension which cannot be measured as part of the bed load. 10.3 Four Mile Creek, Iowa 10.3.1 General Description Four Mile Creek is situated in northwest Tama County in east central Iowa (Figure 65). The basin is approximately 50 sq km in extent and its centroid is located at approximately latitude 426 15', longitude 92° 40'. A short description of the topography, soils, geohydrology and land use will be given. More detailed information can be obtained from reports by Kunkle (1968), Rune and Vreeken (1969), Vreeken (1972), and Aandahl and Simonson (1950). 157 ------- - KEY TO KYDROMETEOROL06ICAL STATIONS • HOURLY PRECIPITATION O DAILY PRECIPITATION O DAILY PRECIP. PLUS TEMPERATURE 0 DAILYPRECIP. PLUS EVAPORATION ©1ST ORDER WEATHER STATION ASTREAMFLOW PLUS SEDIMENT GRUNDY CENTER FOURMILE CREEK MARSHALLTOWN 5 10 15 20km Figure 65. Hydrometeorological stations in and near Four Mile Creek, Iowa ------- 10.3-2 Topography The basin is relatively long and narrow (Figure 66) with Four Mile Creek flowing down a centrally situated alluvial valley approximately 400 m wide. The land surface rises in a series of steps on either side of the valley. Near the divide the terrain is relatively flat. These flat areas are particularly extensive near the upstream (northwest) end of the basin. Total relief is 40 m. 10.3-3 Soils The soils in the basin are principally loess derived silt loams. The loess varies in thickness from 1.3 m on the valley sides to over 10 m near the divides. The valley floor is alluvium. Approximately 4 m of clay and silt overlies 5 m of sand. The incised channel is about 2 m deep with a predominantly sandy bed. A detailed description and a map of the soils of Tama County have been published by the Soil Conservation Service of the U.S. Department of Agriculture (Aandahl and Simonson 1950). 10.3.4 Groundwater Flow Systems The groundwater system is quite complicated and has been investigated in detail by Kunkle (1968). There are two principal reservoirs. One is situated in the loess near the hilltops and the other in the alluvial sand under the valley (Figure 67). Both rest on the till and its associated paleosols, which form an aquitard. Leakage passes through the till to aquifers in the underlying limestone. In this way approximately 45 mm of water is exported annually from the basin. Both groundwater reservoirs discharge some water to Four Mile Creek or its tributaries. In addition, there is subsurface leakage from the upper reservoir to the lower one. The lower reservoir provides bank storage for the stream, temporarily storing water as the stage rises and releasing it later as the stream level falls. This process contributes to the attenuation of flood hydrographs in Four Mile Creek. 10.3.5 Land Use and Sediment Regime The basin is extensively farmed. The land use is approximately as follows: Crop use Percentage of area Corn40 Soybeans 20 Pasture 20 Alfalfa 20 Crop rotation is practiced over much of the basin. A typical sequence is corn-corn-soybeans-meadow. However, on many fields on the more level ground only row crops are grown. The steep slopes are predominantly meadow or pasture. Approximate dates for field operations are: Plowing Fall October 1-December Spring April 1-May 1 Planting Corn April 20-May 20 Soybeans May 5-June 1 Cultivating Corn May 20-July Soybeans May 30-July 10 159 ------- 3 - A USGS STREAMFLOW & SEDIMENT GAGING STATION A1 FOUR MILE CREEK NEARTRAER A? FOUR MILE CREEK NEAR LINCOLN A3 HALF MILE CREEK NEAR GLADBROOK — STREAMS 1050 TOPOGRAPHIC CONTOURS-FEET ABOVE SEA LEVEL Figure 66. Topography of Four Mile Creek basin ------- 1100 n GUMBOTIL 1000 - STRATIGRAPHIC BREAK, AGE UNKNOWN LATE-SANGAMON PALEOSOL ALLUVIUM m»Mmwm ££&uLQi&£ VS«> A'- V W- •'! tx ------- In the past, poor farming practices led to greatly accelerated erosion in the basin, particularly on the steeper slopes. Some of the eroded material was deposited before leaving the basin. According to Kunkle (1968) approximately two feet of material has been deposited on the alluvial flood plain since farming began in the 1860's. In recent times erosion diminished as improved farming practices were adopted. According to Soil Conservation Service personnel, gully formation has been almost completely eliminated. Nevertheless, soil erosion is still a problem in the area. It seems that the pressure to produce as much as possible from the land militates against the adoption of better erosion control methods. There is also the effect of the usual lag between the introduction of new techniques and their widespread adoption. At the present time most of the sediment supplied to Four Mile Creek comes from sheet erosion on slopes, headward erosion of tributaries and mass wasting of the banks of the mainstream. Some eroded sediment is trapped before it reaches the stream. This happens behind culverts, fences, and in grassed waterways, etc. 10.3-6 Hydrometeorological Data Stations for which hydrometeorological data were available at the start of this project are shown in Figure 65. The following data were obtained for the purpose of model testing: (1) hourly precipitation at Traer - October 1962-Deceraber 1973 (2) hourly precipitation at Marshalltown - October 1967-December 1973 (3) daily temperature, evaporation, precipitation, and wind at Ames - January 1962-Deceraber 1973 (4) daily temperature and precipitation at Grundy Center - January 1962-December 1973 (5) daily temperature, precipitation, wind, and evaporation at Iowa City - January 1962-December 1973 (6) daily temperature and precipitation at Marshalltown - January 1962-December 1973 (7) daily temperature and precipitation at Toledo - January 1962- December 1973 (8) daily temperature and precipitation at Vinton - January 1962- December 1973 (9) daily solar radiation at Ames - January 1962-August 1972 (10) detailed surface meteorological observations (hourly and three-hourly) at Waterloo - October 1962-December 1971* 162 ------- (11) mean daily streamflow in Four Mile Creek near Lincoln - October 1962-September 1967, October 1969-September 1974 (12) mean daily sediment concentration and discharge in Four Mile Creek near Lincoln - October 1969-September 1970, October 1971- September 1974 (13) mean daily streamflow in Half Mile Creek near Gladbrook - October 1962-September 1967, October 1969-September 1974 (14) mean daily sediment concentration and discharge in Half Mile Creek near Gladbrook - October 1969-September 1974 (15) mean daily streamflow in Four Mile Creek near Traer - October 1962-September 1966, October 1967-September 1974 (16) mean daily sediment concentration and discharge in Four Mile Creek near Traer - October 1969-September 1974 (17) detailed hydrographs of selected floods recorded at the stations near Traer, Lincoln, and Gladbrook Not all of the above data were used in the calibration of Four Mile Creek. For example, precipitation data from only Traer and MarshalItown were used. However, the surplus was useful for filling gaps in records and for resolving occasional questions regarding the validity of data. 10.3-7 Documents The following documents containing information concerning the test basin were obtained: (1) topographic maps with scales of 1:24,000 and 1:250,000 (2) "Soil Survey of Tama County, Iowa," published by the Soil Conserva- tion Service (Aandahl and Simonson 1950), contains a soils map (3) LANDSAT image. Color composite of MSS bands 5 and 7 taken May 9, 1973- Scale 1:3,300,000 (4) photo index, black and white, dated April 11, 1967. Scale approximately 1:62,500 (5) "A hydrological study of the ground water reservoirs contributing base runoff to Four Mile Creek, East-Central Iowa," by George R. Kunkle. USGS Water Supply Paper No. 1839-0. 1968 (6) "Geomorphic Regimen of Small Watersheds in Loess, Tama County, Iowa," by W.J. Vreeken. Ph.D. dissertation. Department of Geology, Iowa State University, 1972. (7) preliminary and approximate data on land use and tillage practices from Prof. Howard P. Johnson, Iowa State University 163 ------- (8) "Hydrologio System Related to Geology and Soils, Four Mile Creek Area, Tama County, Iowa," by R.V. Ruhe and W.J. Vreeken. Department of Agronomy, Iowa State University. Completion report of project no. A-014-IA (9) aerial photographs, black and white photography on April 11, 1967, scale 1:20,000, stereo coverage (10) NASA high altitude color infrared imagery, scale 1:120,000, partial coverage. 10.3-8 Hydrologic Calibration Having collected and assessed all necessary basic data, the next step was calibration of the ARM Model to allow reproduction of the hydrologic processes in the watershed. Because of the sensitivity of sediment transport rates to flow rate and flow velocity, ability to adequately reproduce the hydrologic events is essential. Full details of the calibration process are given in the interim report prepared for this project (Johanson and Crawford 1976). The following discussion includes brief details of the method adopted for calibration together with the final, or best fit, calibration results. In applying ARM to Four Mile Creek, data from the following stations (Figure 65) were used: (1) hourly precipitation: Traer (2) daily pan evaporation: Records at Ames and Iowa City were averaged. For periods when no records were available (usually winter), evaporation was estimated from other meteorological data. (3) daily max and min temperature: Grundy Center, Marshalltown (4) daily mean dewpoint: Waterloo (5) daily wind movement: Waterloo (6) daily solar radiation: Ames (7) daily observed streamflow: Four Mile Creek at Traer, Four Mile Creek at Lincoln, Half Mile Creek at Gladbrook Given the data available at the time of this study, the Four Mile Creek basin would normally have been treated as one homogeneous segment for hydrologic simulation. However, for more accurate simulation of soil loss, the watershed was split into three segments (Figure 68). Segment 1 represented the alluvial valley, segment 2 the hill slopes, and segment 3 the relatively flat hilltops. Since overland flow and hence erosion rates are strongly dependant on land surface slope, the segment boundaries were determined by the topography and information on soil erodibility as reported by Aandahl and Simonson (1950). The segments all used precipitation input data from the gage at Traer. The period covered by calibration was October 1967 to September 1973. The final set of parameters for both hydrology and soil loss simulation are given in Table 13. Simulated land surface runoff (LSRO) from all three 164 ------- KEY SHADING SEGMENT AREA (km)2 3 11.2 2 27.7 11.6 100 REACH NUMBER I 1 REACH 2km Figure 68. Segment and channel reach layer for Four Mile Creek ------- Table 13 PARAMETERS USED IN ARM CALIBRATION RUN (English Units) Parametera A EPXM UZSN LZSN K3 K24L K24EL IflFIL INTER L SS NN IRC KK24 KV RADCON CCFAC EVAPSN MELEV ELDIF TSNOW MPACK DGM WC IDNS SCF PETMAX PETMIN PETMUL WMUL RMUL F KUGI COVPMO TIMTIL Segment 1 .003 .100 1.0 8.5 .2 .2 .2 .2 .3 .5 .7 .8 .6 .5 .4 .3 .4 0. .04 3.5 600. .025 .25 .40 .98 1.0 1.0 1.0 .05 1000. 0.0 32. 2.0 .0001 .03 .18 1.4 40. 35. .93 1.0 1.0 .005 5.0 .30 .30 .30 .30 .35 .40 .60 .80 .80 .60 .50 .40 100 100 100 100 100 100 100 100 100 100 100 100 Value Segment .005 .08 .5 7.0 .3 .3 .3 .4 .6 .6 .5 .3 .3 0. .03 3.5 350. .08 .2 .20 .96 1.0 1.0 1.0 .05 1020. 0.0 32. 2.0 .0001 .03 .18 1.4 40. 35. .93 1.0 1.0 .005 5.0 .70 .70 .70 .70 .80 .80 .70 .70 0 0 0 0 0 0 0 0 2 .3 .5 .6 .3 .70 .80 .80 .70 0 0 0 0 _SjKjment .003 .10 .9 8.0 .2 .2 .2 .3 .7 .8 .5 .4 .35 0. .035 3.5 600. .03 .25 .40 .97 1.0 1.0 1.0 .05 1050. 0.0 32. 2.0 .0001 .03 .18 1.4 40. 35. .93 1.0 1.0 .005 5.0 .30 .30 .30 .35 .60 .80 .60 .50 100 100 100 100 100 100 100 100 ^ .2 .5 .6 .3 .30 .40 .80 .40 100 100 100 100 166 ------- Table 13(continued). PARAMETERS USED IN ARM CALIBRATION RUN (English Units) Parameter Segment 1 Value Segment 2 Segment 3 YRTIL SRERTL JRER KRER JSER KSER SRERI 68 69 70 71 72 73 000 000 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2.2 .40 1.8 .70 1.0 000 000 000 000 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 2.2 .55 1.8 1.5 0.0 68 69 70 71 72 73 000 000 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2.2 .35 1.8 .60 1.0 aThe parameters are defined in a report by Donigian and Crawford (1976a). 167 ------- segments was summed over each day to produce the daily inflow of water to the stream system. Because attenuation of the daily flow hydrograph through the channel system is small, these figures could be compared directly with the recorded daily flow data at the USGS station near Traer. Figures 69 and 70 show the mean daily simulated and recorded flows for the water years 1969 and 1971 respectively. The quality of the results shown in the figures is typical of those obtained over the whole run. Table 14 summarizes the results obtained over the entire simulation period. The principal reason for the substantial discrepancies between simulated and measured runoff is that the precipitation recorded at Traer is not always representative of rainfall in the basin. The gage is about 15 km from the basin centroid and lies well outside of it (Figure 65). The data from Traer is clearly not representative of conditions within the Four Mile Creek basin. The climatic regime at Traer is similar to that of the basin, but the magnitude and time distribution of precipitation in any given storm can vary widely over the gage and the basin. The variation depends, to a large extent, on the type of storm. Summer thunderstorms are particularly troublesome in this regard. Where they account for a substantial portion of the total runoff, the only way to obtain calibration results suitable for research use is to employ data from several pages situated within the basin. This factor is even more critical when it comes to the simulation of erosion, which is very sensitive to the high intensity precipitation that characterizes thunderstorms. The question of the adequacy of available data has been discussed with staff of Athens-ERL. The results obtained so far confirm our opinion that the data available for Four Mile Creek at the start of this study was not satisfactory for model testing and evaluation. A second problem encountered in the calibration is also illustrated by the plots in Figures 69 and 70. It concerns the accuracy with which the processes of snow accumulation and melt are simulated. Again, inadequate input data caused problems. Radiation, temperature, dewpoint, and wind data had to be transposed from Ames, Grundy Center, and Waterloo. This was bound to cause some errors in calibrating snow simulation. We also thought that the model might not be handling the occurrence and effects of frozen ground conditions correctly. It will probably be necessary to have more representative snow simulation data (radiation, temperature, dew-point, wind) before we can decide what, if any, improvements are needed to the frozen ground simulation algorithms. It is important that snow accumulation and melt be simulated as accurately as possible because snowmelt floods in this basin are often large and account for a significant proportion of the total sediment yield. Since these tests were made, collaborating researchers at Iowa State University have installed five recording rain gages within the basin and another gage just outside the watershed boundary. They have also installed two snow gages and have begun operation of a weather station collecting temperature, humidity, evaporation, and radiation data in 168 ------- - 15 14 13 12 11 10 9 8 7 S 5 4 3 2 1 0 "i—i—i—i—i—i—r RECORDED SIMULATED I I I I I I—I—I—i—I—I—i—i—i—i—i—i—i—i—i 25 5 1968 15 JAN 25 5 1969 Figure 69. Comparison of recorded and simulated daily flows for water year 1969 ------- 1988 20.84 I I I I 1—I 1 1969 Figure 69. Comparison of recorded and simulated daily flows for water year 1969 (Continued) ------- 18.0 16.0 14.0 12.0 80 e.o 4.0 2.0 -i—i—i—i—i—i—i—i—i—i—i—i—i—i—i—i—i—i—i—i—i—r~i—i—i—i—i i i i i i i r RECORDED SIMULATED n L 0 0 5 15 OCT 25 15 NOV 25 ! DEC , . JAN 1970 25 5 1971 - FEB 25 5 15 MAR 25 Figure 70. Comparison of recorded and simulated daily flows for water year 1971 ------- - 18.0 16.0 14.0 12.0 10.0 8.0 6.0 4.0 2.0 - RECORDED •SIMULATED 15 JUN 15 AUG Figure 70. Comparison of recorded and simulated daily flows for water year 1971 (Continued) 25 5 15 SEP 25 ------- Table 14. SUMMARY OF ARM CALIBRATION RUN Water Year 1968 1969 1970 1971 1972 1973 Mean ------- addition to precipitation measurements. The Iowa State research effort is described in detail by Johnson (1977). The resulting records should provide representative input and permit the model to be tested more rigorously. Unfortunately this data was not available for the present project. 10.3.9 Calibration of Land Surface Soil Loss Despite the problems encountered in the hydrologic calibration, an attempt was made to calibrate simulated soil loss against sediment discharge at Traer. The calibration parameters used are shown in Table 13 and the results are shown in Figure 71 and Table 14. The agreement between simulated and observed daily values is even poorer than that for runoff. While this was not at all encouraging it was expected. Erosion only takes place when overland flow occurs and is simulated using power functions of precipitation and overland flow rate. It follows that erosion is very sensitive to errors in the simulation of the occurrence and intensity of precipitation and overland flow. There is no way to avoid this sensitivity because it is present in the natural processes. Hence, errors in simulation of sediment yield will invariably exceed the corresponding errors for runoff. The calibration of the sediment component of a land surface simulation model is further complicated if there is appreciable scour or deposition in the ditches and channels of the system. It is not strictly valid to compare sediment discharge recorded in the stream with simulated erosion from the land surface, as was done in Figure 71 and Table 14. In the case of Four Mile Creek, it is known that depositon of sediment does occur upstream of fences and small culverts and that bank caving occurs on the main stream. An attempt was made to estimate the latter component. Ruhe and Vreeken (1968) measured the cross section of the main stream at several points near the basin outlet and repeated the process 3 years later. The mean rate of increase in cross sectional area for the two cases reported was 0.16 m2 /year. Depending on how this figure is extrapolated across the entire basin, the contribution of bank caving to the total yield of sediment from the basin is estimated as between 20 percent and 85 percent. There is clearly a need to improve this estimate for any future work on this basin. In calibrating the sediment response of the ARM Model some allowance was made for the effect of bank caving. This can be seen in Table 14 which shows that the simulated annual yield of sediment was, on average, approximately 45 percent less than the measured sediment load. The problems discussed above and in Section 10.3.8 highlight the necessity for improved data, if satisfactory simulation work is to be done on Four Mile Creek. Testing of the model on this basin has been suspended for the duration of the present project. This work could probably resume in the summer of 1978, by which time a useful period of data should be available from the Iowa State University project on Four Mile Creek. 10.3110 Application of the CHANL Model The CHANL model is designed to simulate the movement of water and sediment through a network of open channels. It explicitly accounts for processes such as deposition, scour, and armoring and is therefore quite complicated. 174 ------- - 1800 1600 1400 M i 5 1200 a o ^ 1000 1*1 £ 800 2 600 400 200 0 I 1 1 1 1 I 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 i i I i i i 1 ' - RECORDED SUSPENDED LOAD SIMULATED EROSION FROM THE LAND SURFACES - _ i • n " 1 ': fl " ( L KJ \L/ 1 ij S-«l —f4- 41 ^ |S~4' ' 1 Jl««>^.' - - — - - - _ i i 05 15 15 25 5 15 25 5 15 25 5 15 25 OCT NOV DEC JAN FEB MAR 1970 1971 Figure 71. Comparison of recorded and simulated daily sediment loads ------- 2077 -.. - M MB 1 __ ^ s s 5 c= i_t_i M >- ~ — 1800 1600 1400 1200 1000 800 600 400 200 l i i IITI Iljllll ( f i i i H 'I i" ll il 'I l ,1 RECORDED SUSPENDED LOAD SIMULATED EROSION FROM THE LAND SURFACE ! ' ~- _ i > i i i i i i i ^i_J V, 051 25 5 15 25 APR MAY ll it M 1 1 II i 1 ~ '1 li i I ' ra ' A | 5 15 25 5 15 25 5 15 25 15 25 JUN JUL AUG SEP 1971 Figure 71. Comparison of recorded and simulated daily sediment loads (Continued) ------- To test and verify this model adequately, the inflows of water and sediment to the channels must be known accurately and various other data must be measured in the channels themselves. As the testing of the land phase simulation progressed, it became increasingly obvious that the available data from Four Mile Creek would be inadequate for application of the CHANL Model. Nevertheless, it was decided to perform a short test run. Because of the preliminary and approximate nature of the test only 3 reaches were used to define the channel system (Figure 68). The month of May 1970 was simulated, using a time step of 1 hour. The results are shown in Figures 72 and 73. Only qualitative and tentative deductions can be made from the results of this run. The comparison of simulated results with measured data is interesting in that it again highlights the problems caused by such factors as the use of precipitation data from a single gage situated outside of the basin. The comparison of simulated land surface erosion and simulated sediment flow in the channel (Figure 73) shows how the channel routing process attenuates the sediment hydrograph. 177 ------- 1000 - s 800 - 600 - 400 - 200 - RECORDED SUSPENDED LOAD - SIMULATED LOAD IN CHANNEL SIMULATED EROSION FROM THE LAND SURFACE 11 12 13 14 15 16 17 18 19 MAY 1970 20 . Figure 72. Recorded and simulated yield for Four Mile Creek, Iowa ------- 10000 1000 - SIMULATED SEDIMENT FLOW IN CHANNEL,AT BASIN OUTLET 10 24 TIME, hours Figure 73. Sediment transport in Four Mile Creek, To - May 1970 179 ------- CHAPTER 11 DISCUSSION AND CONCLUSIONS 11.1 Advantages and Shortcomings of Deterministic Modeling 11.1.1 Advantages The principal advantages of deterministic conceptual (DC) models derive from the fact that the major physical processes in the system are explicitly represented. The interrelationships between component processes can be studied and the relative importance of each one assessed. In a research environment this capability can be helpful in identifying areas where additional work is needed. DC models are also useful for studying the effects of contemplated changes to a system, provided the necessary detail exists in the model. For example, one might wish to assess the effects on runoff and sediment yield of terraces on agricultural land. This could be done with a model which specifically accounts for the slope and length of overland flow. It would also be necessary to account for the effect of grassed waterways, if they are used to convey runoff in one case but not in the other. The CHANL Model has been designed to maximize benefit from the DC approach. Component processes have been explicitly represented where possible so that the model will be applicable to the widest range of conditions. Purely empirical equations have been avoided where possible. 11.1.2 Shortcomings DC simulation models improve our understanding of systems, but we have to pay for this information with more input data. These models require continuous time series for input. A sophisticated model such as WEST, usually requires several input data sets. Consequently, data reduction and manipulation often account for much of the effort involved in applying a simulation model. The problem can be minimized by including an efficient data management system in the model. Data collection can also pose a serious problem in the testing and application of simulation models. If the data required for testing do not exist, a special effort must be made to collect the information. In the present project this has proved to be the case (Section 10.3) and Iowa State University has embarked on an intensive program of data collection. Looking ahead, one wonders how data problems will affect future use of the model as a research and regulatory tool. If every application requires a data collection program similar in scope to that under way in Four Mile Creek, 180 ------- then either a large investment will be required, or the number of applications will have to be small. Hopefully, as the model is tested and improved, it will be possible to dispense with some of the data presently required. However, this point will probably not be reached for some time. In fact, in the initial stages of model development and testing, more questions are usually raised than answered. A further topic worthy of discussion is the relationship between system complexity and the potential accuracy of simulation. An important part of the art of modeling is the identification of those component processes which should be represented and the decision of how this should be done, that is algorithm design. Every algorithm is an idealization and therefore involves some error. The various errors carry over into the final output where they are observed as discrepancies between observed and simulated values. Errors introduced by the omission of processes are a related problem. The overall effect is that simulated and observed events differ. If the model and data are good these differences are small and random. Large, systematic errors indicate that the model is inadequate. Such results are not acceptable unless it can be established that the errors have little effect on the overall outcome of the study. It can be hypothesized that the more complex a natural system is and the less that is known about the component processes, the greater will be the problems involved in calibrating the associated model. For example, the simulation of hydrological processes is now a routine task and can be done with acceptable accuracy, provided adequate precipitation data are available. Extension of such a model to handle sediment, pesticides, and nutrients requires that many additional component processes be represented, some of which are ill defined. This amounts to an extrapolation of the original model in which streamflow was the final output. Inevitably, errors will compound and the calibration for sediment, etc. will be worse than that for strearaflow. It seems that, under these conditions, one should expect substantial discrepancies between observed and simulated events and not try to calibrate on individual events. Rather, a long sequence should be simulated and the calibration based on the overall performance of the model. One should examine discrepancies, on a statistical basis and try to eliminate any systematic component as well as minimizing the random component. In summary, the major problems involved in building a DC simulation model concern the question of model approximations. A model builder must decide how detailed his representation of the real world is going to be. The inclusion of successively greater detail is usually subject to the law of diminishing returns. If one sets out to expand a very crude model, initial gains in accuracy are relatively high. However, as the model becomes more detailed, the payoff reduces because one is attempting to explicitly represent an ever more complex set of processes, some of which are usually ill-defined. Under these conditions, the errors associated with the new algorithms tend to offset the potential improvement in performance, so that there may be very little net gain in accuracy. Futhermore, the costs of developing, 181 ------- running, and maintaining the model increase rapidly, as does the quantity and variety of data required. In every modeling effort there must be an optimum stage in this process at which the maximum net benefit is obtained. Although it is impossible to determine exactly when this point has been reached, the principle should be held in mind. This was done in designing the WEST Model. However, we are still not certain whether or not it embodies the optimum level of detail. On the one hand, certain omissions, gross approximations, and shortcomings are very apparent (Section 11.3). But on the other hand, the model is already quite complex and requires very detailed data for its verification. There is a danger that further details will make it even more difficult to apply, without significantly increasing its accuracy. It would therefore seem that in future test work its performance should be compared with that of a much simpler model, such as Negev's (196?) or David's (WO. This would be helpful in assessing the benefits derived from detail. To be fair, however, the comparison would have to take account of the relative potentials of the models for extension to handle pesticides and nutrients. 11.2 Discussion of Results The results of the individual tests performed on the CHANL and WEST Models were discussed in Chapter 10. It is worth summarizing the results to give an overall picture of the model performance and the problems encountered. Tests on laboratory data were limited to the armoring study carried out at the Georgia Institute of Technology (Section 10.1). The laboratory data was undoubtedly accurate yet simulation results were mixed. In two of the three tests performed (runs 5-4 and 6-1) results were satisfactory; however, in a third test (run 4-1) the model failed to correctly predict particle mobility, and results were poor. The conditions in run 4-1 were threshold conditions which are difficult to predict and testing on laboratory data was limited to only three sets of runs. Yet the question still arises of what accuracy can be expected of sediment transport simulation. Given that simulation may be poor even when using data from laboratory experiments where conditions are rigorously controlled and boundary conditions accurately defined, what results can we expect from the simulation of natural systems where conditions are highly variable, boundary conditions usually ill-defined and sediment transport data difficult to measure accurately? The principal test of the model in field conditions was made on data from a short section of the East Fork River (Section 10.2). There we faced the problem of trying to verify a total load model using only bed load data. It was impossible to evaluate the performance of the model in simulating the movement of the fine fractions because much of the material apparently traveled in suspension and was not measured. However, the model's performance on the coarse fractions, which one would expect to travel as bed load, was quite good; that is much of the simulated data were between 1/2 and 2 times the recorded data. This is the same 182 ------- order of accuracy that White, Milli, and Crabbe (1975) found when evaluating the transport algorithms of Ackers and White and perhaps represents a limit on the accuracy attainable with our current knowledge. The data from the East Fork River are possibly unique in that boundary conditions are well defined, and the data are very detailed and probably as accurate as any currently available. With conditions such as these, one would expect a simulation model to produce reasonable results. Basin scale modeling of sediment transport is an entirely different task from the modeling of a short section of a natural river channel, such as on the East Fork. The principal difference is that instead of having boundary conditions supplied from recorded data they have to be generated by simulation, using the ARM Model in our case. The boundary conditions in this situation consist of time series data of land surface runoff (LSRO) and land surface erosion or soil washoff (EROS). The accuracy of the instream simulation will depend on the accuracy of the LSRO and EROS data and this in turn depends on the accuracy of the land phase model and its time series inputs of meteorologic data (rainfall, evaporation, air temperature, radiation). In tests on Four Mile Creek, Iowa (Section 10.3) we have seen how the unrepresentative data available at the start of this study resulted in poor land phase simulation and hence inaccurate boundary conditions for the simulation of instream processes. The tests on the CHANL Model were limited to only four sets of data; three from laboratory experiments and one from the field. All the tests were concerned with the transport of cohesionless material. No data were found to test the algorithms which govern the scour, deposition, and transport of cohesive material. This is especially disturbing from the point of view of the model development for simulating pollutant transport since it is the fine material which generally carries the pollutant. Although the limited testing gave some promising results on cohesionless materials, there is a need for further extensive testing. 11.3 Recommendations 11.3-1 Land Process Simulation: ARM Model The development of the ARM Model and testing on data from watersheds in Georgia and Michigan have been described in reports to the EPA (Donigian and Crawford 1976a, Donigian, et al. 1977). Recommendations for further testing and refinement were made in those publications. Based on experience gained on the present project, further suggestions are offered: (1) The algorithms simulating the effects of frozen ground on the hydrologic cycle should be improved. The data now available from Michigan State University and that which will be available shortly from Iowa State University should be useful. (2) The sediment algorithms could be expanded and improved. The sediment production algorithms in the ARM Model were designed to simulate the behavior of small areas. To improve performance on larger areas some alterations and additions seem to be warranted. 183 ------- (a) At present, the sediment production algorithns in the ARM Model do not explicity indicate the size distribution of the sediment runoff. The CHANL Model requires this information because particles of various sizes behave differently as they are washed through the system. In the present version of the WEST Model, the subdivision is performed somewhat arbitrarily, based on the rate of washoff and user-supplied parameters. Testing may indicate that this technique should be abandoned in favor of one in which both the quantity and composition of sediment are accounted for in the sediment production algorithms of the ARM Model. (b) In the present version of the model overland flow can only transport fines which have already been detached by rainfall. To make it more generally applicable, algorithms which provide for detachment of soil fines by overland flow should be added. These would handle the simulation of rill and gully erosion. (c) Allowance could be made for the reduction in detached soil fines which results from soil compaction. 11.3-2 Channel Process Simulation: CHANL Model The principal need in the CHANL Model development is for further extensive testing. Tests should be carried out in a variety of situations with special emphasis on the scour, deposition, and transport of cohesive material. Our present conception of an ideal test situation is summarized below and is followed by some specific recommendations. The sediment algorithms simulate the rates at which sediment particles in several different size classes enter a reach, are deposited on or scoured from the bed, and the rate at which they leave the reach. In continuous simulation, these calculations are repeated for each reach in each time interval throughout the simulation period. An ideal test situation would probably involve a channel several miles long with water and sediment gaging stations at several points along its length. Lateral inflow of water should be small compared to the total flow. Similarly, local inflows of sediment from sheet erosion and channel bank caving should be small compared to the total sediment flow. Bank caving should be estimated every 6-12 months using data from field or aerial surveys. Ideally, both suspended and bed load should be continuously measured at the gaging stations. The particle size distribution of the transported material should be determined for a wide range of flows at each station. The properties of the bed, which is modeled as consisting of several layers, each with a different composition, are important in the determination of simulated scour rates. Verification of the model would be greatly simplified if it were possible to take some core samples from the upper few inches of the bed to determine the variation of particle size distribution with depth. Ideally, this should be done at several points along the channel before, during, and after the passage of a significant flood. A record of concurrent variations in the level of the bed at these points would also be helpful. 184 ------- If the above data were available, the model would be tested as follows: The test section of the channel would be simulated in isolation. Measured flows of water and sediment and the size distribution of the latter would be input to the most upstream reach. The test section would be divided into a number of reaches so that the assumption of uniform conditions within each one would be closely approximated. Lateral inflows of water and sediment would be obtained from simulation using the ARM Model. Simulated and observed conditions would be compared at every point where measured data existed. The model would be calibrated by adjusting parameters, and the results obtained would be used to modify the algorithms. It is doubtful that the ideal data set described above will ever be obtained in a natural stream. Sediment transport measurement is a time-consuming and difficult task. However, all of the factors mentioned above are important in testing the algorithms. The difficulty in calibrating the model and verifying the sediment algorithms will be directly related to the lack of needed data. The recommended additional tests for this model are: (1) Tests using hypothetical situations: These would probably reveal further shortcomings and facilitate their correction. Ultimately, the tests would confirm that the model does respond in a realistic manner under all realistic circumstances. (2) Tests using laboratory data: Many investigators have used flumes in the laboratory to study sediment transport phenomena. Data from such work are usually accurate and comprehensive and approach the ideal test situation described above more closely than those obtained from natural streams. They could be used to test details of the behavior of the model, for example , scour of cohesive materials and armoring, which are important in nature but almost impossible to test with available data from natural streams. (3) Tests on data from real basins: The current project on Four Mile Creek by Iowa State University (Johnson 1977) is designed, among other things, to supply data suitable for further testing of the WEST Model. The data currently being collected should be sufficiently comprehensive and accurate for rigorous testing of the CHANL Model and our ability to simulate sediment transport on a basin scale. Data from other natural streams with different climatic, hydrologic and sediment regimes to Four Mile Creek should also be used to further test the model. If the model is to be applicable to practical problems, it must be shown that it will operate satisfactorily under a wide variety of conditions. The information in Appendix B may prove useful in selecting other test areas. The data collection effort on the East Fork River is being continued by the USGS. As the tests presented in Section 10.2 were only for a period of 7 days, it would be useful to continue testing for a longer period on the East Fork as data becomes available. 185 ------- The limited tests of the CHANL Model described in Chapter 10 revealed a number of shortcomings in the model design which may be corrected in future development work. (1) The sediment algorithms are only strictly applicable to rectangular channels. Nonrectangular channels are handled by treating an equivalent rectangular section of width equal to the current topwidth and depth equal to the current mean depth in the nonrectangular channel. A more realistic method of treating nonrectangular channels is required. This problem is directly related to the one-dimensional representation used in CHANL and discussed in Section 5.**.2. (2) At present the hydraulic conditions in both the flood plain and incised channel are averaged to compute the hydraulic variables used in sediment routing. Since hydraulic conditions on the flood plain and within the incised channel are usually quite different, they should be treated separately in routing sediment through the stream system. This is again related to the one- demensional representation used in CHANL. (3) The model currently uses monthly average kinematic viscosity. The user shold be allowed to input more detailed water temperature data when these are available. (4) The kinematic routing algorithms are presently independent of the sediment transport calculations; the bed slope and cross- sectional geometry within a reach are fixed for the duration of a run. This means that during simulation material may deposit indefinitely in a particular reach with no corrective mechanism to increase the bed slope and hence the sediment transport rate. (5) The possibility of adding algorithms to handle bank caving should be investigated. 186 ------- CHAPTER 12 REFERENCES Aandahl, A.R., and R.W. Simonson. 1950. Soil survey of Tama County, Iowa. Series 1938, No. 22. Department of Agriculture, Washington, D.C. 109 pp. Ackers, P., and W.R. White. 1973. Sediment transport: new approach and analysis. Proc. Am. Soc. Civ. Eng. 99(HY11):2041-2060. Bella, D.A., and W.E. Dobbins. 1968. Difference modeling of stream pollution. Proc. Am. Soc. Civ. Eng. (SA5):995-10l6. Bennett, J.P. 1974. Concepts of mathematical modeling of sediment yield. Water Resour. Res. 10(3):485-492. Brown, C.B. 1967. Sediment transportation. Pages 811-814 in H. Rouse, ed. Engineering hydraulics. John Wiley, New York. Buckman, O.B., and N.C. Brady. 1969. The nature and properties of soils. Macmillan Company, London, pp. 70-108. Camp, T.R. 1943. The effects of turbulence on retarding settling. Pages 307-317 in Proceedings of the second hydraulics conference. Bulletin No. 27. University of Iowa, Iowa City, Iowa. Chow, V.T. 1959. Open channel hydraulics. McGraw Hill, New York. pp. 108-123. Clarke, R.T. 1973. Mathematical models in hydrology. Irrigation and Drainage Paper No. 19. Food and Agriculture Organization of the United Nations, Rome. 282 pp. Crawford, N.H., and A.S. Donigian, Jr. 1973. Pesticide transport and runoff model for agricultural lands. EPA 660/2-74-013. Environmental Protection Agency, Washington, D.C. 211 pp. David, W.P., and C.E. Beer. 1974. Simulation of sheet erosion, part 1, development of a mathematical erosion model. Journal Paper No. J-7897. Iowa Agriculture and Home Economics Experiment Station, Ames, Iowa. 20 pp. 187 ------- Donigian, A.S., Jr., et al. 1977. Agricultural runoff management (ARM) Model, version II: refinement and testing. U.S. Environmental Protection Agency, Washington, D.C. (in press.) Donigian, A.S., Jr. and N.H. Crawford. 1976a. Modeling pesticides and nutrients on agricultural lands. EPA 600/2-76-043. U.S. Environmental Protection Agency, Washington, D.C. 317 pp. Donigian, A.S., Jr. and N.H. Crawford. 1976b. Simulation of agricultural runoff. EPA 600/9-76-016. Environmental Protection Agency, Washington, D.C. pp. 151-155. Einstein, H.A. 1950. The bed load function for sediment transportation in open channel flows. Technical Bulletin No. 1026. Soil Conservation Service, U.S. Department of Agriculture, Washington, D.C. Einstein, H.A. 1968. Deposition of suspended particles in a gravel bed. Proc. Am. Soc. Civ. Eng. 9MHY5): 1197-1205. Gessler, J. 1971. Aggradation and degradation. Pages 8.1-8.214 in H.W. Shen, ed. River Mechanics, Vol. 1. Water Resources Publications, Fort Collins, Colorado. Graf, W.H. 1971. Hydraulics of sediment transport. McGraw-Hill Book Company, New York. 513 pp. Heler, J.J. 1975. Minimization of core required in routing through a channel network. Hydrocomp Inc., Palo Alto, California. Simulation Network Newsletter 7(7):1-4. Hydrocomp Inc. 1976. Hydrocomp simulation programming: operations manual. 4th ed. Hydrocomp Inc., Palo Alto, California. Johanson, R.J., and N.H. Crawford. 1976. Development of the watershed erosion and sediment transport model. Prepared for Environmental Research Laboratory, Athens, Georgia. R803726-01-0. Hydrocomp Inc., Palo Alto, California. 155 pp. Johnson, H.P. 1977. Development and testing of mathematical models as management tools for agricultural nonpoint pollution control. Department of Agricultural Engineering, Iowa State University, Ames, Iowa. Jopling, A.V. 1965. Geometrical properties of sand waves. (Discussion of paper by M.S. Yalin.) Proc. Am. Soc. Civ. Eng. 91(HY3):348-360. Krone, R.B. 1962. Flume studies of the transport of sediment in estuarial shoaling processes, final report. Hydraulic Engineering Laboratory, University of California, Berkeley. 110 pp. Krone, R.B. 1963- A study of rheologic properties of estuarial sediments, final report. Hydraulic Engineering Laboratory, University of California, Berkeley. 91 pp. 188 ------- Kunkle, G.R. 1968. A hydrologic study of the ground-water reservoirs contributing base runoff to Four Mile Creek, East-central Iowa. Water Supply Paper 1939-0. U.S. Government Printing Office, Washington, B.C. 11 PP. Lane, E.W. 19^7. Report of the subcommittee on sediment terminology. Trans. Am. Geophys. Union 28(6):936-938. Little, W.C., and P.G. Mayer. 1972. The role of sediment gradation on channel armoring. Report ERC-0672. Georgia Institute of Technology. Atlanta, Georgia. 104 pp. Mahoney, H.A., et al. 1976. Data for calibrating unsteady-flow sediment transport models, East Fork River, Wyoming, 1975. U.S. Geological Survey, Denver, Colorado. 293 pp. Negev, M.A. 1967. A sediment model on a digital computer. Technical Report No. 76. Department of Civil Engineering, Stanford University, Stanford, California. 109 pp. Nordin, C.F., and J.H. Algert. 1965. Geometrical properties of sand waves. (Discussion of paper by M.S. Yalin.) Proc. Am. Soc. Civ. Eng. 91:(HY3):367-37U. Owen, M.W. 1969. Deposition of suspended particles in a gravel bed. (Discussion of paper by H.A. Einstein.) Proc. Am. Soc. Civ. Eng. 95(HY3):1085-1087. Partheniades, E. and R.E. Paaswell. 1970. Erodibility of channels with cohesive boundary. J. Am. Soc. Civ. Eng. 96(HY3):755-770. Rouse, H. 1937. Modern conceptions of the mechanics of fluid turbulence. Paper No. 1965. Trans. Am. Soc. Civ. Eng. 102:463-5^3. Ruhe, R.V., and W.J. Vreeken. 1969. Hydrologic system related to geology and soils, Four Mile Creek Area, Tama County, Iowa. Project No. A-014-IA. Iowa State Water Resources Research Institute, Department of Agronomy, Iowa State University, Ames, Iowa. 80 pp. Simons, D.B., and E.V. Richardson. 1965. A study of variables affecting flow characteristics and sediment transport in alluvial channels. Proc. of the Federal Inter-Agency Sedimentation Conference, 1963. Misc. Publication No. 970. Agricultural Research service, U.S. Department of Agriculture, Washington, D.C. pp. 193-207. Simons, D.B., and E.V. Richardson. 1966. Resistance to flow in alluvial channels. Professional Paper M22J. U.S. Geological Survey, Washington, D.C. pp. 193-207. Smeardon, E. T., and R.P. Beasley. 1961. Critical tractive forces in cohesive soils. Agricultural Engineering, pp. 26-29. 189 ------- Taylor, S.A., and G.L. Ashcroft. 1972. Physical edaphology: the physics of irrigated and nonirrigated soils. W.H. Freeman and Company, San Francisco. pp. 95-124. Todd, O.K. 1964. Groundwater. Pages 13-34 in V.T. Chow, ed. Handbook of applied hydrology. McGraw-Hill, New York. Vanoni, V.A. 1974. Factors determining bed forms of alluvial streams. Proc. Am. Soo. Civ. Eng. 100(HY3):363-377. Vanoni, V.A., ed. 1975. Sedimentation engineering. American Society of Engineers, New York. Vreeken, W.J. 1972. Geomorphic regimen of small watersheds in loess, Tama County, Iowa. Iowa State University, Ames, Iowa. 317 PP- (Ph.D. dissertation) White, W.R. 1972. Sediment transport in channels: a general function. Report INT 104. Hydraulics Research Station, Wallingford, England. White, W.R., H. Milli, and A.D. Crabbe. 1973a. Sediment transport: an appraisal of available methods. Vol. 1. Summary of existing theories. Report INT 119. Hydraulics Research Station, Wallingford, England. White, W.R., H. Milli, and A.D. Crabbe. 1973b. Sediment transport: an appraisal of available methods. Vol. 2. Performance of theoretical methods when applied to flume and field data. Report INT 119- Hydraulics Research Station, Wallingford, England. White, W.R., H. Milli, and A.D. Crabbe. 1975. Sediment transport theories: a review. Proc. Inst. Civ. Eng. London, England. 59:265-292. Yalin, M.S. 1964. Geometrical properties of sand waves. Proc. Am. Soc. Civ. Eng. 90(HY5):105-119. Yalin, M.S. 1976. Mechanics of sediment transport, 2nd ed. Pergaman Press, Oxford, pp. 209-267. 190 ------- APPENDIX A SUBDIVISION OF TOTAL LAND SURFACE EROSION INTO PARTICLE SIZE FRACTIONS We wish to divide a total mass rate of sediment washoff per unit area of land surface into the mass rates of washoff for a number of particle size fractions. The basis for the subdivision is as follows. If a single particle size fraction i is present on the land surface, the rate of transport by overland flow may be expressed by DuBoys equation (Graf 1971) where g^ = sediment transport rate for size fraction i, as mass/width of overland flow/time T = bed shear stress = Tys Y = specific weight of water y = depth of flow s = slope of energy gradient T . = critical shear stress to initiate movement of size cr/1 fraction i C . = characteristic coefficient for size fraction i Now, if several size fractions are present on the land surface, let P. = S^S (A2) where P = proportion of detached material represented by size fraction i S.^ = quantity of detached material of size fraction i on land surface S = total quantity of detached material on land surface Under this condition, the transport rate for each fraction may be expressed as: * (A3) g. = p.g. yi VL^I The total mass washoff SER is: NPSF NPSF SER - 9* * 2 P (A4) 191 ------- where NPSF = number of particle size fractions. The total washoff SER is the quantity output by the ARM Model. The percentage of the total washoff represented by each size fraction is then: * NPSF pi = (Pi(5i)/( Pigi} (A5) Now, using Manning's formula to approximate the hydraulics of overland flow, we have: T . W-V-y-7 (A6) where n = Manning's roughness coefficient Q = overland flow rate/width S = slope of land surface The soil washoff equation in the ARM Model is of the form SER = KQJ (A?) where K = soil transportability coefficient J = exponent Equations A6 and A7 imply that in the ARM Model T= A(SER)B (A8) where A = constant for a particular land slope and Manning's roughness B = exponent Equation Al indicates that transport of size fraction i only begins when the shear stress exceeds the critical value T . . From Equation A8 it can be seen that associated with the critical sheaf1stress is a rate of total washoff (SER) . This represents the threshold value of SER for movement of size fraction i. Thus, at low rates of washoff only the finest fraction may be present. As the rate increases, successively coarser material will start to move and larger fractions will be present in the washoff. At very high rates of overland flow, the transport of detached material is governed by availability, rather than transport capacity. It is assumed in the WEST Model that under these conditions the composition of washoff will be similar to that of the detached material which, in turn, is similar to that of the land surface material. 192 ------- The foregoing considerations led to the adoption of the relationships illustrated in Figure Al. COMLND(I) is the percentage of the land surface material represented by particle size I. THRESH(I) is the threshold level of washoff at which particle size I starts to move. STEADY is that value of washoff above which the composition is the same as that of the land surface. CQMLND(*), THRESH(*), and STEADY are model input parameters. The units used on the abscissa of Figure Al are mass/land surface area/time. This is the system used internally in the CHANL Model, which is not identical to that used in the ARM Model. The subdivision is done in subroutine SPLIT within the CHANL Model. This approach should ultimately be eliminated, when the algorithms in the ARM Model are revised to reflect both the quantity and composition of eroded material. LU 100 N to o a. X a < LU CC O O I to I o oc THRESH THRESH THRESH THRESH STEADY (2) (3) (4) (5) TOTAL WASHOFF(SER) Figure Al. Diagram showing how eroded material (SER) is subdivided into particle size fractions 193 ------- APPENDIX B CATALOG OF WATERSHEDS WITH DATA ON SEDIMENT YIELD At the commencement of this project Hydrocomp compiled a catalog of watersheds for which sediment records exist. It should be noted that the inclusion of a basin in the list does not imply that the data are suitable or sufficient for testing of the WEST Model. Many data besides measured sediment discharge are needed for adequate testing (Section 11.3). When measured by this standard, very few of the listed watersheds would qualify as suitable test candidates. Nevertheless, the list has been included in this report for the following reasons: (1) It is a reasonably comprehensive inventory of watersheds with sediment data, and might be useful on other projects. (2) It might be useful in selecting other test watersheds for which supplementary data collection programs will be introduced. (3) If the stage is reached where the WEST Model requires less data, the list could be of use in selecting test watersheds. The catalog is in two parts: (1) All watersheds, excluding those operated by the Agricultural Research Service (ARS), are listed first (Part 1). (2) Data for those watersheds operated by the Agricultural Research Service are summarized in the second section (Part 2). The accompanying key indicates exactly what types of information are available in each case (e.g. precipitation, sediment discharge, stream cross-sections). 194 ------- WATERSHEDS WITH SEDIMENT DISCHARGE RECORDS PART 1. WATERSHEDS NOT GAGED BY THE ARS Drainage Period Sampling Stream and Location Area, mi of Record Source Reference Frequency Arizona Frye Ck at Thatcher, AR (60 P) 24.3 1963- USGS 116 B Gold Gulch near Bowie, AR 104 6/57-8/59 USGS 68 A Arkansas Six Mile Ck near Chismville, AK (44 N) 102 1957-70 USGS 116 B California Nacimiento R near Bryson, CA (71 I) 140 3/58- USGS 81 B San Francisquito Ck at Stanford Univ., CA 37.7 1/57-9/60 USGS 81 N (123) Guadalupe River at San Jose, CA 151 2/57-9/60 USGS 81 N (64) Napa River near St. Helena, CA 81.3 1/57-9/60 USGS 81 A Sonoma Ck at Boyes Hot Springs, CA 62.7 1/57-9/60 USGS 81 N (195) E. Fork Russian River near Ukiah, CA 105 12/53-3/55 USGS 107 A Highland Ck near Kel, CA (72 f) 14.2 1966- USGS 116 B Dry Ck near Geyserville, CA (72 S) 162 1964- USGS 116 B 195 ------- Arroyo Trabuco at San Juan Cap., CA (70 ) 35 1970- USGS 116 B San Diego Ck near Irvin, CA (70 K) 40.3 1972- USGS 116 B Ventura River near Ventura, CA (71 B) 188 1968- USGS 116 B Lopez Ck near Arroyo Grande, CA (71 G) 21.4 1967- USGS 116 B Arroyo Grande near Arroyo Grande, CA (71 G) 13.4 1967 USGS 116 B Salinas River near Spreckels, CA (71 I) 4.57 1951- USGS 116 B Santa Rita Ck near Tenpleton, CA (71 I) 18 1967- USGS 116 B Arroyo Seco near Greenfield, CA (71 I) 113 1961- USGS 116 B Llagas Ck near Morgan Hill, CA (71 K) 20 1971- USGS 116 B Uvas Ck near Morgan, CA (71 K) 21 1964- USGS 116 B Coyote Ck near Gilroy, CA (71 L) 109 1965- USGS 116 B Colma Ck near San Fran., CA (71 L) 10.9 1965- USGS 116 B Zayanta Ck, Zayante, CA (71 L) 11.1 1970- USGS 116 B E.F. Kaweah River near Hanmond, CA (71 0) 16 1971 USFS 116 B Thomas Ck at Paskenta, CA (72 E) 194 1958 USGS 116 B Black Butte River near Covelo, CA (72 U) 162 1964- USGS 116 B 196 ------- S. Fork Eel River near Branscomb, CA (72 V) 43.9 1957-70 USGS 116 B Outlet Ck near Longvale, Ca (72 V) 161 1958-70 USGS 116 B Arroyo Simi near Simi, CA (70 P) 35.7 1968- USGS 116 B Colorado Black Mesa #4 Crawford, CO .142 1/57-6/58 USFS 51 M Black Mesa 16 Crawford, CO .425 5/57-7/59 USFS 51 M N Clear Ck near 93,97 Blackhawk, CO 55.8 3/52-6/55 USGS 101,105 A Big Thompson R at Estes Park, CO 137 5/53-7/53 USGS 97 A Kiowa Ck near Eastonville, CO 3.2 4/56-10/59 USGS 73 A Connecticut Scantic River at Broad Brook, CT 98.4 11/52-9/60 USGS 67,115 A Georgia N Fork Broad R near Tbccoa, GA 1.2 11/57-9/59 USGS 74 1800 Illinois Bay Ck at Nebo, IL (24 A) 162 1942- Corps 116 B Hadley Ck at Kinderhook, IL (25 Q) 72.2 1940- Corps 116 B 197 ------- Indiana Big Raccoon Ck near Fincastle, IN (17 L) 132 1959- USGS Iowa Paint Creek at Waterville, 10 42.8 11/52-9/57 ? 119 A Ralston Ck at Iowa City, 10 (25 D) 3.01 4/52- USGS 109 A E.F. Hardin Ck near Churdan, 10 24.0 7/52-9/57 USGS 109 A Wolf Ck at Holly Springs, 10 115 8/57-9/60 Corps 26 L Indian Ck at Council Bluffs, 10 7.99 4/56-8/56 Corps 26 L Mule Creek near Malvern, 10 (35 0) 10.6 7/54-69 USGS 109 A Davids Creek near Hamlin, 10 26.0 7/52-9/56 USGS 109 A Four Mile Ck near Lincoln, 10 (25 C) 13.8 1969-74 USGS 116 B Four Mile Ck near Traer, 10 (25 C) 19.5 1969-74 USGS 116 B Half Mile Ck near Gladbrook, 10 (25 C) 1.33 1969-74 USGS 116 B Promise City S Fork Chariton River, 10 (31 J) 168 1969- Corps 116 B Thompson Ck near Woodbine, 10 (35 A) 6.97 1963-69 USGS 116 B Steer Ck near Magnolia, 10 (35 Q) 9.26 1963-69 USGS 116 B 198 ------- Willow Ck near Logan, 10 (36 A) - 1972- USGS 116 B Kansas Cedar Ck near Cedar Junction, KA (31 G) 38.9 1965-68 USGS 116 B Kentucky Raccoon Creek near Fincastle, KY 128 7/51-9/60 USPS 57 B Plum Ck sub No. 4 inflow near Sirnpsonville, KY 1.51 4/56-9/60 USGS 71 J Plum Creek at Waterford, KY 31.9 10/54-9/60 USGS 115,71 A Helton Branch at Greenwood, KY (18 H) .85 1/56- USGS 71 A Louisiana Cypress Bayou near Keithville, LA 66 2/52-6/55 Corps 23 K Boggy Bayou near Keithville, LA 79 3/52-6/55 Corps 23 K Maryland Baisman Run at Shawan, MD (04 R) .15 1963-69 USGS 116 I Baisman Run at Broadmoor, MD (04 R) 1.47 1963-69 USGS 116 I NW Branch Anacostia R near Colesville, MD (05 K) 21.3 1963- USGS 116 I N Branch Rock Ck near Pockville, MD (05 K) 12.5 1967- USGS 116 I 199 ------- Mississippi Little Tallahatchie Abbeville, MS .004 1/57-9/60 USFS 54 K Little Tallahatchie Oxford, MS .005 1/58-9/60 USFS 54 K Missouri E Fork Big Ck near Bethany, MO 95 10/50-10/59 Corps 20 Montana Bluewater Ck near Bridget, MT (43 D) 28.1 1960-70 USGS 116 B Silver Tip Ck near Belfry, MT (43 D) 88 1968 USGS 116 B Bluewater Ck near Bridger, MT (43 D) 43.9 1960-70 USGS 116 B Bluewater Ck near Fromberg, MT (43 D) 53 1960-70 USGS 116 B Nebraska Brushy Ck near 73,89,93 Maywood, NE 130 4/51-9/58 USGS 97,101, A 105,109 Fox Creek at 73,89,93 Curtis, NE 77 3/51-9/58 USGS 97,101, A 105,109 Sever Ck near fesemont, NE .642 1/57-9/60 APS 39 K Bever Ck at Itosemont, NE .752 1/57-9/60 ARS 39 K Brownell Ck SWS 1 near Syracuse, NE (35 P) .19 1955-69 USGS 116 B 200 ------- New Jersey S Branch Raritan R at Stanton, NJ Stony Brook at Princeton, NJ Baldwin Ck at B Lk near Pennington, NJ (03 J) 147 12/59-9/60 USGS 44.5 1/56-9/60 USGS 1.92 1962-70 USGS 77 A 115,77 A 116 New Mexico Pied Lisa Arroyo near Bernalillo, MM Tortugas Arr. near Las Cruces, NM (57 K) 4.1 7/56-9/60 USGS 13.5 1963- USGS 68 116 B New York Kayaderosseras Cr near W Milton, NY Buffalo Creek at Gardenville, NY Cayuga Creek near Lancaster, NY Cazenovia Creek at Ebenezer, NY 90 3/53-7/55 USGS 145 3/53-3/60 ARS 93.3 12/53-3/60 ARS 136 3/53-3/60 ARS 108 38 38 38 B K (193) K (151) K (169) North Carolina Third C 7A near Stony Pt., NC Third C 21 at Troutman, NC Parker Branch at Leicester, NC 4.8 7/57-9/60 USGS 79 1.6 4/55-6/57 USGS 1.51 3/53-9/60 TVA 14 201 ------- Ohio NF Little Miami R near Pitchin, OH Little Miami R near Oldtown, OH NF Massie Ck at Cedarville, OH SF Massie Ck near Cedarville, OH Massie Creek at Wilberforce, OH Big Walnut Ck at Central College, OH Little Miami R near Selma, OH 29.1 8/52-9/68 USGS 115,71 129 8/52-9/58 USGS 115,71 25.6 7/54-9/58 USGS 115,71 20.2 7/54-9/58 USGS 115,71 64.3 9/52-9/58 USGS 115,71 1.91 10/51-9/53 USGS 71,96 50.6 9/52-9/58 USGS 115,71 A Oklahoma Double C Res Site #5 near Ramona, OK 2.39 4/55-9/60 USGS 75 A (646) Oregon Look out No. 1,2,3 near Blue River, OR Needle Branch near Salado, OR (74 AD) Flynn Ck near Salado, OR (74 AD) Deer Ck near Salado, OR (74 AD) Sixes River at Sixes, OR (73 Q) .3 .32 .84 1.20 116 10/56-9/60 11/58- 11/58- 11/58- 1967-70 USFS USGS USGS USGS USGS 47 78 78 78 116 K 391 342 401 B 202 ------- Yaquina River near Chitwood, OR (74 AD) 71 1973- USGS 116 B Pennsylvania Schuylkill R Port Carbon, PA Schuylkill R at Landingsville, PA Schuylkill R at Auburn, PA Little Schuylkill R at S Tamaqua, PA Little Schuylkill R at Drehersville, PA Corey Ck near Mainesburq, PA Elk Run near Mainesburq, PA Marsh Ck at Blanchard, PA Holt Hollow near Milesburg, PA Bixler Run near Loysville, PA 27.1 10/50-6/51 USGS 133 10/50-3/53 USGS 160 10/50-6/51 USGS 69.4 10/50-4/53 USGS 122 10/50-6/51 USGS 12.2 5/54-9/60 USGS 10.2 5/54-9/60 USGS 44.1 11/55-3/58 USGS 2.7 6/56-4/57 USGS 15.0 2/54-9/60 USGS 88 92,96 88 92,96 88 115,77 115,77 115,77 A 77 619 115,77 A South Carolina Little River near Mewry, SC Twelve mile Ck near Liberty, SC Eighteen mile Ck near Fendleton, SC 175 2/56-5/58 Corps 31 106 2/56-10/57 Corps 31 55 2/56-10/58 Corps 31 H (81) H (36) H (55) 203 ------- Twentythree mile Ck on US 76 near Lafranee, SC 60 Deep Creek near Anderson, SC Tennessee White Hollow Creek Sharps Chapel, TN Potato Ck Trib I W Ducktown, TN Potato Ck Trib I E Ducktown, TN Texas Elm F Trinity R No. 60 near Muenster, TX (51 I) .77 Elm F Trinity R near Muenster, TX Pine Oak Ck near Hubbard, TX Guadalupe River Basin Escondido Res No. 1 near Kennedy, TX Bayou La Nana at Nacogdoches, TX (51 D) Piney Ck near Groveton, TX (51 G) Little Elm Ck near Aubrey, TX (51 I) Long King Ck near Livingston, TX (51 0) 60 136 2.68 .008 .01 .77 46 17.6 3.29 31.3 79 75.5 141 2/56-10/58 11/55-10/57 10/50-9/60 10/50-1/52 10/50-1/52 10/56-9/68 10/56-9/60 10/56-9/60 3/55-9/60 1965- 1962- 1964-1968 1963- Corps Corps TVA TVA TVA USGS USGS USGS USGS TWDB TWDB TWDB TWDB 31 31 14 14 14 69 69 69 69 116 116 116 116 H (44) H (147) 1,0 1,0 1,0 K L A K B B B B 204 ------- Utah Mill Ck near Glenwood, UT (66 0) 14 1963- USGS 116 B Pleasant Ck near Caineville, UT (63 K) 115 1969-72 USGS 116 B Red Ck near Dutch John, UT (64 P) 140 1971- USGS 116 B Washington Mill Ck Bl Blue Ck near Walla Walla, WA (76 AH) 59.6 1962-70 USGS 116 B Alder Ck at Alderdale, WA (74 J) 197 1962-68 USGS 116 B West Virginia Grassy Run at Norton, WV (21 H) 2.86 1964-69 USGS 116 B Roaring Ck at Norton, WV (21 H) 29.2 1964-69 USGS 116 B Salem F Sub No 11A Varner Hollow Run inflow near Salem, WV .29 2/55-9/60 USGS 71 J Wisconsin Dell Ck near Lake Delton, WI 44.9 9/57-? USGS 71 Black Earth Ck at Black Earth, WI 45.9 2/54-9/60 USGS 109,71 Yellowstone River near Blanchardville, WI 29.1 8/54-9/60 USGS 109,71 Mt Vernon Ck near Mt Vernon, WI 16.1 1/54-9/60 USGS 109,71 205 ------- Galena River at Buncombe, WI (26 N) 128 1942-67 Corps 116 B Wyoming Five mile Ck near Pavillion, WY (43 L) Box Ck near Bill, WY Rock Creek at Atlantic City, WY N F Crazy Woman Ck near Greub, WY (42 F) Dry Ck near Booneville, WY (43 I) Bridger Ck near Lysite, WY (43 I) Dry Piney Ck near Big Piney, WY (64 D) Big Coulee near Lovell, WY (43 P) 143 109 21.3 174 52.6 182 67 28.8 10/50- 7/56-5/58 5/57-9/60 1965-68 1965- 1965- 1965- 1970 uses uses uses uses uses uses uses uses 84 109,84 84 116 116 116 116 116 B B B B B B B B 206 ------- KEY a. Sources of data: USGS - U.S. Geological Survey USFS - U.S. Forest Service Corps - U.S. Army Corps of Engineers TWDB - Texas Water Development Board TVA - Tennessee Valley Authority ARS - U.S. Dept. of Agriculture, Agricultural Research Service b. For key to numbers in this column see "References to Sources of Sediment Data" (below). c. Key to symbols in sampling frequency column: A - Min. of one sample per day with more on changing stage B - Daily sampling C - Twice daily sampling D - 1000 samples obtained during month E - 10 day intervals with more on changing stage F - Collected at half-hour intervals during rising stage G - Weekly during low flow and twice during runoff events H - Min. of one sample per month with more on changing stage I - Continuous sampling J - 1-3 samples per storm runoff K - Sampling during flood periods L - Min. of one sample per week with more on changing stage M - Hourly sampling during peak snowmelt twice daily on changing stage N - Periodic sampling with one or more samples on changing stage 0 - Data not good or not readily available (26) - Numbers indicate total number of observations during period of record 207 ------- REFERENCES TO SOURCES OF SEDIMENT DATA 5. Guy, H.F., and others, 1958, Sediment yield from small watersheds and its detention by flood-retarding structures; report of progress to June 1957: U.S. Geol. Survey and Soil Conserv. Service, Progress Report. 14. Tennessee Valley Authority, Knoxville, Tenn. Unpublished data. 20. U.S. Corps of Engineers, Dept. of the Army, Kansas City District, Kansas City, Mo. Unpublished data. 23. U.S. Corps of Engineers, Dept. of the Army, New Orleans District, New Orleans, La. Unpublished data. 26. U.S. Corps of Engineers, Dept. of the Army, Omaha District, Omaha, Nebraska. Unpublished data. 31. U.S. Corps of Engineers, Dept. of the Army, Savannah District, Savannah, Georgia. Unpublished data. 38. U.S. Dept. of Agriculture, Agricultural Research Service, East Aurora, N.Y. Unpublished data. 39. U.S. Dept. of Agriculture, Agricultural Research Service, Hastings, Nebr. Unpublished data. 40. U.S. Dept. of Agriculture, Agricultural Research Service, Riesel, Tex. Unpublished data. 41. U.S. Dept. of Agriculture, Agricultural Research Service, University, Miss. Unpublished data. 47. U.S. Dept. of Agriculture, Forest Service, Pacific Northwest Forest and Range Experiment Station, Portland Oregon. Unpublished data. 51. U.S. Dept. of Agriculture, Forest Service, Rocky Mountain Forest and Range Experiment Station, Grand Junction, Colo. Unpublished data. 54. U.S. Dept. of Agriculture, Forest Service, Southern Forest Experiment Station, New Orleans, La. Unpublished data. 57. U.S. Dept. of Agriculture, Soil Conservation Service, Engineering and Watershed Planning Unit, Portland, Oreg. Unpublished data. 67. U.S. Dept. of the Interior, Geological Survey, Albany, N.Y. unpublished data. 208 ------- 68. U.S. Dept. of the Interior, Geological Survey, Albuquerque, N. Mex. Unpublished data. 69. U.S. Dept. of the Interior, Geological Survey, Austin, Tex. Un- published data. 71. U.S. Dept. of the Interior, Geological Survey, Columbus, Ohio. Unpublished data. 73. U.S. Dept. of the Interior, Geological Survey, Lincoln, Nebr. Unpublished data. 74. U.S. Dept. of the Interior, Geological Survey, Ocala, Fla. Un- published data. 75. U.S. Dept. of the Interior, Geological Survey, Oklahoma City, Oklahoma. Unpublished data. 77. U.S. Dept. of the Interior, Geological Survey, Philadelphia, Pa. Unpublished data. 78. U.S. Dept. of the Interior, Geological Survey, Portland, Oregon. Unpublished data. 79. U.S. Dept. of the Interior, Geological Survey, Raleigh, N.C. Unpublished data. 81. U.S. Dept. of the Interior, Geological Survey, Sacramento, Calif. unpublished data. 84. U.S. Dept. of the Interior, Geological Survey, Wbrland, Wyo. Unpublished data. 88. U.S. Geological Survey, 1955, Quality of surface waters of the United States, 1950-51, Pt. 1-4, North Atlantic slope basins to St. Lawrence River basin: U.S. Geol. Survey Water-Supply Paper 1197, p. 373. 89. U.S. Geological Survey, 1956, Quality of surface waters of the United States, 1950-51, Pt. 5-6, Hudson Bay and upper Mississippi River basin: U.S. Geol. Survey Water-Supply Paper 1198, 586 p. 92. U.S. Geological Survey, 1956, Quality of surface waters of the United States, 1951-52, Pt. 1-4, North Atlantic slope basins to St. Lawrence River basin: U.S. Geol. Survey Water-Supply Paper 1150, 365 p. 93. U.S. Geological Survey, 1957, Quality of surface waters of the United States, 1951-52, Pt. 5-6, Hudson Bay and upper Mississippi River basin: U.S. Geol. Survey Water-Supply Paper 1251, 578 p. 96. U.S. Geological Survey, Quality of surface waters of the United States, 1952-53, Pt. 1-4, North Atlantic slope basins to St. Lawrence River basin: U.S. Geological Survey Water-Supply Paper 1290, 439 p. 209 ------- 97. U.S. Geological Survey, 1958, Quality of surface waters of the United States, 1952-53, Pt. 5-6, Hudson Bay and upper Mississippi River basin: U.S. Geol. Survey Water-Supply Paper 1291, 472 p. 101. U.S. Geological Survey, 1958, Quality of surface waters of the United States, 1953-54, Pt. 5-6, Hudson Bay and upper Mississippi River basin: U.S. Geol. Survey Water-Supply Paper 1351, 284 p. 105. U.S. Geological Survey, 1959, Quality of surface waters of the United States, 1954-55, Pt. 5-6, Hudson Bay and upper Mississippi River basin: U.S. Geol. Survey Water-Supply Paper 1401, 305 p. 107 U.S. Geological Survey, 1960, Quality of surface waters of the United States, 1954-55, Pt. 9-14, Colorado River basin to Pacific slope basins in Oregon and lower Columbia River basin: U.S. Geol. Survey Water-Supply Paper 1403, 437 p. 108. U.S. Geological Survey, 1960, Quality of surface waters of the United States, 1955-56, Pt. 1-4, North Atlantic slope basins to St. Lawrence River basin: U.S. Geol. Survey Water-Supply Paper 1450, 603 p. 109. U.S. Geological Survey, 1960, Quality of surface waters of the United States, 1955-56, Pt. 5-6, Hudson Bay and upper Mississippi River basin: U.S. Geol. Survey Water-Supply Paper 1451, 349 p. 115. U.S. Geological Survey, 1960, Quality of surface waters of the United States, 1956-57, Pt. 1-4, North Atlantic slope basins to St. Lawrence River basin: U.S. Geol. Survey Water-Supply Paper 1520, 641 p. 116. U.S. Dept. of Transportation, 1973, Notes on sedimentation activities, Prepared under auspices of the U.S. Water Resources Council, Sedimentation Committee. 210 ------- WATERSHEDS WITH SEDIMENT DISCHARGE RECORDS PART 2. WATERSHEDS GAGED BY THE AGRICULTURAL RESEARCH SERVICE AS OP JANUARY 1, 1975 Study Location and Number of Rain Gages ARIZONA Tombstone 098-R Name Walnut Gulch Walnut Gulch Walnut Gulch Walnut Gulch Walnut Gulch Walnut Gulch Walnut Gulch Walnut Gulch Number 63.C01 63.002 63.003 63.004 63.006 63.007 63.008 63.009 Walnut euicn bj.uiu (a) Recorded daily in the summer IDAHO Boise 048-R Reynolds Cr. Outlet Salmon Creek Hack's Creek Summit Flats Watershed Nancy's Gulch Reynolds Cr. @ Tollgate Upper Sheep Cr . 1 Upper Sheep Cr . 2 Reynolds Mtn. East 036068 046017 046084 048077 057096 098097 116083 138012 138034 166076 Code 63.001 63.002 63.003 63.004 63.006 63.007 63.003 63.009 63.010 season; 68.001 68.002 68.003 68.012 68.004 68.013 Record Began 1954 1954 1954 1954 1961 1966 1963 1967 1 G£*7 weekly 1963 1964 1965 1965 1 0*11 1971 1966 1970 1S70 1963 Land Area Use P P P P P P P P in the M M M P P P P P P (Acres) 36,900. 28,100. 2,220. 560. 23,500. 3,340. 3,830. 5,830. 4 110 Types of Data l,4,5,6,7,8,9,10,ll(a),13,16,17,18, 1,4, 5,6, 7, 8, 9, 10, 11 (a), 13, 16, 17, 18, 1,4,15,16,17,19 1,4,15,16,17,19 1,4,15,16,17,19 1,4,15,16,17,19 1,4,15,16,17,19 1,4,8,9,11(3) ,15, 16, 17, 19 19 19 winter season. 57,754. 8,990. 7,846. 205. -> 24 3.10 13,453. 63.4 15.7 100. 1,3, 4, 6, 7, 8, 9, 10, 11 (a) ,12, 15,16, 17, 1,4,14,15,16,17,19 1,4,14,15,16,17,19 1,4, 6, 11 (a) ,12, 14, 15, 16, 17, 19, 20 19 1,4,11(31,12,14,15,16,19,20 1,3, 4, 8, 9, 10, 11 (a) ,12, 15, 16, 17, 19 l,3,4,ll(a) ,14,15,16,17,19,20 1,3,4,14,15,16,17,20 1,3, 4, 7,8,9, 11 (a), 14,15, 16,17, 19, 20 " l^UUC IIUiHiJd- -to yiA\J AV/WCIUAV/tk WA. fl^-Afc. (a) Weekly or less frequent by neutron probe. IOWA Iowa City 005-R Treynor 008-R Ralston Creek W-l W-2 W-3 W-4 21.001 1924 71.001 71.002 71.003 71.004 1964 1964 1964 1964 M 1,926. 1,4,14,16,17,19 C 74.5 l,3(a),4,6,7,8,9,ll(b),14,15,16,17,19 C 82.8 l,3(a) ,4,6,7,8,9,ll(b),14,15,16,17,19 C 107. l,3(a),4,6,7,8,9,il(b),14,15,16,17,19 C 150. 1,3{a),4,6,7,8,9,ll(b),14,15,16,17,19 (a) Occasional estimates of snow on ground by random samples. (b) Sampled each 2 to 4 weeks during frost free periods. ------- S3 MISSISSIPPI Holly Spt. Br. Exp. Sta. 002-R Lab. Cr. 005-R Oxford 032-R MISSOURI Colunbia 011-R MONTANA Ekalaka 016-R 005-NR NEW MEXICO Santa Rosa 069-R OHIO Coshocton 019-R OKLAHOMA Chickasha(a) 237-R(e) Holly Springs Holly Springs Holly Springs Laboratory Cr . Pigeon Roost Pigeon Poost Pigeon Roost Pigeon Poost Pigeon Poost Pigeon Roost Pigeon Roost Ashland Ashland Bailey Bailey Bailey Callahan Callahan WC-1 WC-2 WC-3 W-l W-4 W-5 W-17 W-32 W-34 W-35 W-5A eo 81 90 91 92 80 81 Data from 10 two-acre plots are Alamogordo Creek (a) Recorded weekly (b) Biweekly to monthly Kashita R. @ Anadarko Washita R. @ Chksa. Ipk. Washita R. Q Alex Tonkawa Creek, South Tbnkava Creek, Bast 64.001 123 109 100 500 700 111 110 62.013 62.014 62.015 62.000 62.001 62.002 62.005 62.010 62.011 62.012 62.000 available. 26.010 26.013 69.001 69.005 69.007 69.010 69.014 1958 1958 1958 1961 1957 1957 1957 1957 1957 1957 1972 1968 1968 1968 1968 1968 1968 1968 1955 1939 1939 1961 1964 1961 1962 1963 C 3.88 1,4,7,8,9,14,15,16,17,20 C 1.45 1,4,7,8,9,14,15,16,17,20 C 1.61 1,4,7,8,9,14,15,16,17,20 U 60% 1,006. 1,4,8,14,17,19 M 40% M 1,580. 1,4,14,16,17,18,19 M 1,130. 1,4,14,16,17,18,19 M 32,100. 1,4,17,18,19 M 20,000. 1,4,17,18,19 M 75,000. 1,4,17,18,19 M 7,550. 1,4,17,18,19 M 15.7 1,4,14,15,16,17,19 1968 1968 1968 1968 1968 1968 1968 M M M M H M M 2,420, 2,120. 235. 119. 11. 3,600. 2,865. 1,4,17,19 1,4,17,19 1,4,17,19 1,4,17,19 1,4,17,19 1,4,14,17,19 1,4,14,17,19 C C 42,880. l,4,ll(a),12,13,15,16,18,19 1.37 1.69 M 2,339,800. M 2,768,000. M 3,061,100. M 16,634. M 25,020. 1,4,6,7,8,9,10,11(a),12,13,14,15,16,17,20 1,4,6,7,8,9,10,11(3),12,13,14,15,16,17,20 1,4,6,18,19 1,4,6,14,17,18,19(0) 1,4,6,14,17,18,19(b) 1,4,14,17,18,19 1,4,14,17,18,19 ------- Delaware Creek West Salt Creek West Bitter Creek East Bitter Creek Bedingfield Barrington Spring Creek No. 1 Spring Creek No. 4 Spring Creek No. 5 Spring Creek No. 6 Spring Creek No. 7 Little Washita R. (c) Winter Creek PENNSYLVANIA KLingerstown 131 311 511 512 513 514 5141 5144 5145 5146 5147 522 621 C-l C-3 C-4 C-5 C-6 C-7 C-8 R-5 R-6 R-7 R-8 R-9 R-10 69.011 69.027 69.013 69.016 69.019 69.020 69.021 69.024 69.025 69.026 69.000 69.015 69.017 69.030 69.032 69.033 69.034 69.035 69.036 69.037 69.042 69.043 69.044 69.045 69.049 69.050 1962 1966 1962 1963 1964 1966 1966 1966 1966 1966 1973 1963 1963 1965 1965 1965 1965 1965 1965 1965 1966 1966 1966 1966 1971 1972 M M M M M M M P P P P(f) M M C C C C C C C P P P P P P 25,660. 1,4,14,17,18,19 15,206. 1,4,14,17,18,19 38,020. 1,4,14,17,18,19 22,530 1,4,14,17,18,19 12,314. 1,4,14,17,18,19 7,225.6 ' ,4,6,14,17,18,19 4,064. A, 4, 6, 14, 17, 18, 19 1,456.6 1,4,6,14,17,18,19 252.8 1,4,6.14,17,18,19 761.6 1,4,6,14,17,18,19 2.2(g) 1,4,14,19 132,990. 1,4,14,17,18,19 21,310. 1,4,14,17,18,19 17.8 l,4,ll(d),14,15,16,17,19 44.3 l,4,ll(d),14,15,16,17,19 29.9 l,4,ll(d),14,15,16,17,19 12.8 1,4, ll(d), 14, 15,16,17, 19 13. l,4,ll(d),14,15,16,17,19 26.5 1, 4, ll(d), 14, 15,16,17, 19 27.3 l,4,ll(d) ,14, 15,16,17,19 23.7 l,4,ll(d),14,15,16,17,19 27.2 1, 4, ll(d), 14, 15,16, 17,19 19.2 l,4,ll(d),14,15,16,17,19 18.5 l,4,ll(d),14,15,16,17,19 9.30 l,4,ll(d),14,15,16,17,19 1.48 1,4,14,15,17,19 (a) The following types of data are collected at two locations: 7,8, and 9 (b) Data numbers 6,14, and 17 apply to the reach between Anadarko and Alex. (c) Three miles upstream from USGS gage, 1952-63. (d) Biweekly. (e) Includes 9 Severe Storm Project gages (Weather Bureau). (f) Mostly in roadway. (g) Estimated. Stehr Bros. Weir E-38 16.006 1967 M 1,773. 1,4,8,9,ll{a),16,17,19 (a) Soil Moisture by neutron meter taken weekly or more often as needed. TEXAS Riesel D G W-l W-6 Y Y-2 Y-6 Y-8 42.003 42.004 42.006 42.008 42.011 42.012 42.014 42.016 1938 1938 1937 1939 1937 1937 1939 1939 M M M M M M C C 1,110. 4,380. 174. 42.4 309. 132. 16.3 20.8 1,4,7,8,9,10,14,16,17,19 1,4,7,8,9,10,14,16,17,19 1,4,7,8,9,10,14,15,16,17,19 1,4,7,8,9,10,14,15,16,17,19 1,4,7,8,9,10,14,15,16,17,18,19 1,4,7,8,9,10,14,15,16,17,18,19 1,4,7,8,9,10,14,15,16,17,18,19 1,4,7,8,9,10,14,15,16,17,19 ------- y-l° 42.017 1938 C 18.6 1,4,7,8,9,10,14,15,16,17,19 *~13 42'031 1969 C 11.3 1,4,7,8,9,10,14,15,16,17,19 Y~" 42.032 1970 C 5.6 1,4,7,8,9,10,14,15,16,17,19 W'12 42'033 !970 C 9.9 1,4,6,7,8,9,10,14,15,16,17,19 "-13 42-034 1970 C 11.3 1,4,6,7,8,9,10,14,15,16,17,19 ??-" 42'035 197° P 3.25 1,4,6,7,8,9,10,ll(a) ,14,15,16,17,19 f*:2° .. . v 42-036 19?0 P 3.21 1,4,6,7,8,9,10,ll{a) ,14,15,16,17,19 (a) boil moisture measurements taken approximately biweekly. VERMONT Danville W-4 67.004 1959 M 10,752 1,3,4,8,12,17,18,19,20 0£ /"~R NOTES V M = Mixed; P = Pasture or Range; C = Cultivated; W = Woods; U = Urban; H = Meadow 2/ not operated by ARS but records readily available 3/ records interrupted for certain periods •}/ R = recording; MR = non-recording or no records obtained 5/ legend for "types of data" colunn: 1 - precipitation measured by recording and standard gages or recording gages only 2 - precipitation, by standard gages only 3 - snow, from snow courses 4 - runoff, continuous records 5 - runoff, peak stages only, as from crest gage-. 6 - ground water levels from wells 7 - pan evaporation 8 - air temperature, maximum and minimum of recording 9 - humidity, daily or oftener 10 - solar radiation 11 - soil moisture 12 - frost depths 13 - soil te-peratures 14 - land use, annual or oftener 15 - condition of vegetative cover and field operations 16 - detailed soil survey available 17 - topographic map available 18 - profile and cross sections of channels available 19 - sediment, by suspended sampling 20 - sediment, by silt box and/or Coshocton wheel ------- Variable A(MSECS) APPENDIX C GLOSSARY OF PRINCIPAL VARIABLES Type Description R Vector used in subroutine HYPROP for computing hydraulic properties of a reach. A (I) is the cross sectional area of subsection I. A2E A2S AA(MNPSF) AACC(MREA) ABIND AC(MNPSF) ACCS(MNPSF) ACFRAC(MNPSF) ACTl(MNPSl) Cross sectional area at the downstream end of the current reach at the end of the time interval. Cross sectional area at the downstream end of the current reach at the start of the time interval. Calibration parameters used in estimating sediment transport concentrations by the method of Ackers and White. Vector for accumulating mean values of cross sectional area over a print interval for each reach. User parameter for computing scour of silt or clay. Calibration parameters used in estimating sediment transport concentrations by the method of Ackers and White. Vector for accumulating mean values of sediment discharge rate over a print interval for the current reach. R ACFRAC(I) is the cumulative fraction of material in a bed layer up to and including size fraction I. This vector is used in subroutine DIAM50 to determine the median particle size. R Vector containing the thickness and composition of a temporary bed layer. ACT1(1) contains the layer thickness: the remaining elements contain the composition by size fraction. 215 R R R R R R ------- Variable ACT2(MNPS1) ACTIVE ACTHEW(MNPSl) AM(MNPSF) AN(MNPSF) ARMF ASCR ATBLSZ BASE(MREA) BEDKNT BEDSHR BGNDAY BGNHR Type R R R R R R R R I I BGNMON Description Vector containing the thickness and composition of a temporary bed layer. The structure of the vector is similar to ACTl. Current thickness of active layer. Vector containing the thickness and composition of a temporary bed layer. The structure of the vector is similar to ACTl. Calibration parameters used in estimating sediment transport concentrations by the method of Ackers and White. Calibration parameters used in estimating sediment transport concentrations by the method of Ackers and White. User parameter to control armoring. APMF in the value of the ratio (depth of armoring material/median diameter of armoring material) at which armoring prevents further scour. Parameter to control scour of cohesive materials. Time block size: number of simulation intervals in a time block (system specification) Pointer into table of hydraulic properties TABLE. BASE(NR) is the element number in TABLE at which information for reach NR starts. Maximum number of iterations to be used in estimating bed form thickness. Bed shear stress. Day on which simulation is to start. Hour on which simulation is to start. Simulation starts with the first simulation interval in the hour. BGNHR is measured as clock time; i.e., the first hour of the day is zero, and the last is 23. Month on which simulation is to start. 216 ------- Variable BGNYR BIND BSCR BULKD CE(MNPSF) Type Description I Year on which simulation is to start. R User parameter; the percentage by weight of clay and silt in a bed layer which will just start to hinder the scour of conesionless sand fractions. R Parameter to control scour of cohesive materials. R The dry bulk density of the sediment. R CE(I) is the sediment transport concentration of particle size I in the current reach at the end of the current time step. COMIAY (MFvA,MIAY,MNPSF) R COMLJS1D (MNPSF) CONTER(MREA) CR1'SHR(2) CS(MNPSF) CSCR CSTART (MREA, MNPSF) CURSOR (MFILE) COMLAY(NR, NL, NPSF) is the percentage composition by mass of particle fraction NPSF in bed layer NL of reach NR. R COMLND(I) is the percentage composition of the land surface for particle size fraction I. R CONTER(NR) is the mass continuity error for water over the simulation period for for reach NR. R CRTSHR(I) is the critical shear stress for scour of cohesive material of size fraction I. R CS(I) is the sediment transport concentration of particle size I in the current reach at the start of the current time step. R Parameter to control scour of cohesive materials. R CSTART (NR, NP) is the sediment transport concentration of particle size fraction NP within reach NR at the start of a time block. I For an uncompressed file I, CURSOR(I) is the displacement in file time intervals between the start of a record and the start of a new simulation time block. For a compressed file I, CURSOR(I) is the displacement between the start of the file and the start of simulation in file time intervals. 217 ------- Variable LbUlM DD(MSEGS,2) DENS DENM DfiPi'H DGR(MWPSF) DIA (MNPSF) DIAG(IU) Type Description R Median diameter of mobile sand fractions. R Median diameter of immobile sand fractions. I Contains file numbers of LSRO and EROS data sets for each segment in the run. DD(NSEG,1)=LSRG file number for segment NSEG DD(NSEG,2)=ERQS file number for segment NSEG. R Density of material comprising the sediment particles (user supplied), R Density of water (user supplied). R Mean depth of flow obtained by dividing cross sectional area by top width. R DGR(I) is the dimensionless grain size for size fraction I used for estimating sediment transport concentrations by the method of Ackers and White. R D1A(I) is grain diameter of particle size fraction I. I Flags for diagnostic output taking on values U or 1. DIAG(I)=0 ,1=1,.,.,10 no diagnostic output DIAG(1)=1 not used DIAG(2)=1 diagnostic output from subroutine INITFL DIAG(3)=1 diagnostic output from subroutine HYPROP DIAG(4)=1 diagnostic output from subroutine RSORT DIAG(5)=1 diagnostic output from subroutine REFIL1 DIAG(6)=1 diagnostic output from subroutine REFIL2 DIAG(7)=1 diagnostic output from subroutine REFIL3 DIAG(8)=1 not used DIAG(9)=1 not used DIAG(10)= 1 diagnostic output from all the above subroutines 218 ------- Variable DIFFUS DISPL DSCR DSKDAT (TBLKSZ ,MNPSF3) DSN DUNE EFLAG ENDDAY ENDHR ENDMON ENDSTO(MREA) ENDYR EPSBED FACTER Type Description R Option for diffuse load input of water only (LSEO) or water (LSRO) and sediment (EROS). DIFFUS=NO no diffuse loads DIFFUS=YES diffuse loads 1*4 Number of simulation time intervals in the run. R Parameter to control the scour of cohesive materials. R Buffer to store hydraulic properties and sediment discharge rates prior to writing them to disk. The first column of DSKDAT stores point flow rates, the second column flow depths and the remaining columns sediment discharge rates by particle size fraction. I Fortran file number. R User parameter; the maximum value of the ratio dune height/depth of flow. I Flag used to report errors EFLAG=U no errors encountered EFLAGX) errors encountered I Day on which simulation ends. I Hour on which simulation ends. Simulation stops after completion of the last simulation interval in the hour. I Month on which simulation ends. R ENDSTO(NR) is the volume of water stored in reach NR. I Year on which simulation ends. R Convergence criterion used in computing bed form thickness. R Multiplication factor for converting EPOS into internal units of mass rate washoff/ area of segment. 219 ------- Variable FACTFL FACTLS FACTSD FLOTIM FROUDE FiN(MREA, MNPSF3) GKAV GREQ(MNPSF) HDPUUT 1MINO IMO2 IN Type R R R R I R R R Description Multipliation factor for converting point flow discharge into internal units. Multiplication factor for converting into internal units of flow rate/area of segment. Multiplication factor for converting point sediment input into internal units. Flow time in seconds through the current reach in the current time step. Froude number . Array to store Fortran file numbers of output time series to be written to disk. FTO(NR,l)=file number to which flow discharges from reach NR are to be written. FTN(NR,2)=file number to which flow depths in reach NR are to be written, FIN(NR,3) ^ file numbers to which sedi- to >=ment discharge rates from FTN(NR,MNPSF3)) reach NR are to be written. Gravitational acceleration (user supplied) . Vector for storing the cumulative composition of the land surface by particle size fraction. Parameter to control printout of hydraulic results. HDPOUT=U no printout of hydraulic results =1 print mean values of depth, area, and discharge =2 print point values of depth, area, and discharge print both mean and point values =3 Cumulative total within each time block of inflow minus outflow of water for the current reach for use in water balance calculations. The number of the largest mobile particle size fraction. Fortran file number for data input. as b. Implemented 220 ------- Variable 1NFLCW (MREA) Type Description R Vector used to store the total inflow of water to each reach during the simulation period. The vector is used for water balance calculations. 1N1TPT(MNPTLD,MNPS1) R IGUT KEYS(MFILE) K1NV1S(12) KNTHY KNTSD KWU02 KWuub KWb41 KWbbl LAYCOM(MLAY,MNPSF) Contains initial values for flow and sediment point loads at the start of the current time block. See further discussion under subroutine PLDAD in Section 7.3.3. Fortran file number for printed output of preparatory information and results of hydraulics calculations. Implemented as 6. KEYS(I) is used to keep track of the time of the next item to be read from compressed file 1. See further discussion under subroutine REFIL2 in Section 7.3.3. R KINVlS(l) is the average value of kinematic viscosity for month I. 1 Counter used to decide when we have accumulated output for the required number of intervals when printing out mean values from hydraulic calculations. L Counter used to decide when we have accumulated output for the required number of intervals when printing out mean values from sediment calculations. I Counts number of occurrences of warning message UU2. I Counts number of occurrences of warning message OOb. I Counts number of occurrences of warning message b41. 1 Counts number of occurrences of warning message bbl. R Vector used within the main program's reach loop to store the bed composition of the current reach. 221 ------- Variable LAYTHK (MIAY) LEN(MREA) LEV(MREA) LEVEL LEVSTK (MORDR) LINEHY LINESD LOC(MCEOS) MACC(MREA) MASSED (MNPSF) MASSIN (MNPSF) Type Description R Vector used within the main program's reach loop to temporarily store the bed layer thicknesses of the current reach. R LEN(NR) is the length of reach RCH(NR). I Vector used internally in subroutines RSORT and GETSON to determine optional ordering of reaches. I For the current cross section, LEVEL is the level number just below the water surface elevation at the end of the last time interval. In the current time interval, the search for the final water surface elevation starts at level LEVEL. See further discussion under subroutine HY.PRQP in Section 7.3.3. I Vector used internally in subroutine RSORI in determining optimal ordering of reaches. I Counts number of lines of output from hydraulic caluclations for the control of paging and printing of headers. I Counts number of lines of output from sediment calculations for the control of paging and the printing of headers. I Vector used internally in subroutine HYPROP to compute hydraulic properties of a cross section. R Vector for storing the cumulative sediment outflow from each reach summed over all particle size fractions. R MASSED (I) is the mass of material of size fraction I in the top bed layer. R MASSIN (I) is the mass of material of size fraction I input to the current reach by point loads and by inflow from upstream reaches over the current time interval. MAXPT Maximum length of vector RCHPT (system limit) /No. of point \ £, I loads for =L \ / No. of reaches \ + Iwith point loads J \ / 222 ------- Variable MAXPCH MAXTRB MCKQS MFILE MIAY MLINES MNPS1 MNPS2 MiSIPSF MNPSF3 MNPTLD Type I MONMS(MREA,MNPSF) MORDR MPTS MREA I I I I I R Description Maximum number assigned to any reach by the user (system limit). Maximum length of vector RCHTRB (system limit). N** /— tributary 1 NR=1 N~ -aach NR Maximum number of points at which water surface and channel sides meet for any non-zero water surface elevation (system limit), ^ ----- - . ^ » MAXTRB> Reaches with \ + 2* y /seg. trii "~ \tributary seg./ m=l \to reacn Maximum Fortran file number containing diffuse or point loads to be accessed in this run (system limit). Maximum number of bed layers in any one reach (system limit). Maximum number of lines per page of printed output (user-defined). MNPS1 = MNPSF + 1 MNPS2 = MNPSF + 2 Maximum number of particle size fractions (system limit). MNPSF3 = MNPSF + 3 Maximum number of point loads. One point load is made up of a flow file and its associated sediment discharge files (system limit). Vector for accumulating the total monthly mass of sediment discharged from each reach. Maximum stream order for the channel network (system limit). Maximum number of points used to define any one cross section (system limit). Maximum number of reaches in the network (system limit). 223 ------- Variable MSECS MSEGS MSMON(MNPSF) MSTOR MSTORP MSYR(MNPSF) MTAD MTVEC MULT(MFILE) NEXT(MREA) NLAST NLAY NLAYER(MREA) NLEVS (MREA) Type Description I Maximum number of subsections in any one channel cross section (system limit). I Maximum number of segments (system limit). R Temporary vector used within the main program's reach loop for accumulating the total monthly mass of sediment discharged from the current reach. I Length of vectors STOR and STORE (system limit). MSTOR > NSEGS * TBLKSZ I Length of vector STORP (system limit). MSTORP > (NPSF + 1)*(TBLKSZ + 1) R Temporary vector used within the main program's reach loop for accumulating the total annual mass of sediment discharged from the current reach. I Maximum length of the vector TABLE which stores hydraulic properties for the complete reach network (system limit). I Maximum length of array TVEC (system limit). MTVEC > (NPSF + 1)*(TBLKSZ + 1) I MULT(I) is the number of file time intervals of input file I in a simulation interval. I Vector used internally in RSORT to determine optimal ordering of reaches. I Number of simulation time intervals in last time block. I Current number of bed layers in the current reach. I NLAYER(NR) is the current number of bed layers in reach NR. I NLEVS(NR) is the number of levels in reach NR at which hydraulic section properties were calculated. The levels correspond to the elevation of the break 224 ------- Variable Type Description NPSF NPTLD NREA NSEGS NSSEC (MSECS) NTAB(MREA) NTBLKS NUM ORDER (MREA) ORDR ORGD5U ORGQ ORGTHK points used to describe the section geometry. I Number of particle size fractions in this run. Particle size fraction 1 is the finest, NPSF is the coarsest. I Number of point loads in this run. One point load is defined as a flow file together with any associated sediment files. I Number of channel reaches in run. I Number of land segments in run. R Vector used in subroutine HYPROP for computing the hydraulic properties of a reach. NSSEC(I) is Manning's n for subsection I. I NTAB(NR) is the input table number containing the geometric description of the cross section of reach NR. I Number of time blocks in the simulation period. R Multiplier for use in Manning's equation. Value depends on the units being used in simulation. NUM=1.0 for metric units (m/kg/s) NUM=1.49 for English units (ft/lb/s) I Vector used internally in subroutine RSORT to determine optimal ordering of reaches. I Stream order of system being simulated. R Median diameter of mobile sand fractions after the last computation of active layer characteristics. R Flow rate at the last computation of active layer characteristics. R Active layer thickness after the last computation of active layer characteristics. 225 ------- Variable ORGY OOrFAC OUTFLOW(MREA) P(MSECS) PCIMO PCLXST POINT(MPTS) PRFREQ PFOUT (MREA) PRQTCT PIDD(MNPTLD,MNPS2) Type Description R Flow depth at the last computation of active layer characteristics. R Multiplication factor applied to sediment discharge rates prior to print out (user supplied). R Vector used to store the total outflow of water from each reach during the simulation period. The vector is used for water balance calculations, R Vector used in subroutine HYPROP for computing the hydraulic properties of a reach. P(I) is the wetted perimeter of subsection I. R Percentage of immobile material in the active layer. R Percentage of clay and silt in the active layer or in a cohesive layer underlying the active layer. I Vector used internally in subroutine HYPRQP to compute the hydraulic properties of a cross section. I Controls frequency of printout. PRFREQ=-1 gives monthly output PRFREQ= 0 no printout PRFREQ >0 the value is the number of simulation intervals in a printout interval I Vector storing printout options for each reach. PHOUT(NR)=0 no printout for reach NR PKDUT{NR)=1 printout required for reach NR R User parameter; percentage of immobile sand which will just start to protect finer material from scour. I Array of file numbers making up point loads. PTDD(NFf,l)= file number for flow discharge PTDD(NPT,2}=0 if sediment files are in mass units >0 if sediment files are in concentrate units 226 ------- Variable Type Description PI'LOAD PIVEC(MREA) Q1E Q1S Q2E Q2S QACC (MREA) QSTAJRT (NREA) RBUFF(ATBLSZ) RCH(MREA) R R R R R R R PTDD(NPT,3) ) file numbers for sediment discharges. to >-One file is used for each particle PTDD(NPT,MNPS2)J size fraction where NPT=point load number Option for point load input of water only or water and sediment. PTDOAD=NO PTLQAD=YES no point loads point loads included Vector used to associated reach number with point loads. PrVEC(NR)=0 no point load for reach NR PTVEC(NR)>0 point load applied to reach NR. PTVEC(NR) is a pointer into vector RCHPr. See further discussion under subroutine PNTLD in Section 7.3.3. Rate of inflow of water from upstream reacnes at the end of the current time step. Rate of inflow of water from upstream reaches at the start of the current time step. Rate of water discharge from the current reach at the end of the current time step. Rate of water discharge from the current reach at the start of the current time step. Vector for accumulating mean flow rates over a print interval for reach. QSTART(NR) is the flow rate at the end of internal reach NR at the beginning of a time block. Buffer to read or write one record of ATBLSZ values from or to a Fortran file. RCH(NR) is the user defined reach number corresponding to internal reach number NR. Reaches are numbered internally in the order in which they are given in the network description. RCHPr (MAXPT) Provides pointers into PTDD which contain Fortran file numbers for point loads. FCHPT 227 ------- Variable Type Description BCHTRB(MAXTRB) KECOMP REL(MKEA) RIPPLE RTIND SACC(MREA,MNPSF) SCRCON(2) SCREXP(2) SDEBUG is entered with a pointer from the vector PTVEC. See further discussion under subroutine PNTLD in Section 7.3.3. R Vector containing the segment numbers and areas tributary to any reach. RCHTRB is entered with a pointer from the vector TRBVEC. See further discussion under subroutine DIFFLD in Section 7.3.3. I Flag to control recomputation of active layer thicknesses and bed form type. RECOMP=0 active layer characteristics not recomputed in this time interval RECOMP=1 recompute active layer characteristics in this time interval I Vector created by subroutine RSORT for determining the method in which output from a reach is to be stored prior to input to the next downstream reach. See further discussion in Section 7.3.2. R User parameter; ratio of maximum ripple height to mean diameter of sand particles in the bed form. I Internal reach number for the last reach in the system. R Vector for accumulating mean values of sediment discharge rates over a print interval for all reaches. R SCRCON(l) is a parameter used in determining the scour rate of cohesive material of size fraction I. R SCREXP(I) is a parameter used in determining the scour rate of cohesive material of size fraction I. 1 Parameter to control printing of diagnostic output for sediment calculations. SDEBUG=U no diagnostic printout =1 prints out bed composition and suspended 228 ------- Variable Type Description SDPGUT sediment concentrations every interval =2 not used =3 print complete log of sediment calculations Parameter to control printout of sediment results. SPDOUT=0 no print out of sediment results =1 printout sediment discharge rates =2 printout both sediment status and discharge rates =3 printout both sediment status and discharge rates SE SEDMT SEQ(MREA) SETVEL(2) SHEARV SHEET(MNPSF) SLOP(MREA) sour SPGRAV SPW'IW R Volume of water stored in the current reach at the end of the current time interval. R Option for simulation of sediment transport. SEDMT=NO sediment transport will not be simulated (run is for hydraulics only) SEDMT=YES both hydraulics and sediment transport will be simulated l Vector storing the reach numbers in the sequence in which they are to be used in the simulation. R SETVEL(l) is the quiescent settling velocity for cohesive material of size fraction I. R Shear velocity. R Vector containing total dry weight of sediment from diffuse loads, input to a reach in the present time interval. R SLOP(NR) is the bottom slope of reach RCH(NR). 1 Fortran file number for printed output of sediment calculations. Implemented as 7. R Specific gravity of sediment material. R Specific weight of water. 22l) ------- Var iable SS SSEC(MPTS) STACK(MREA) STEADY STOR(MSTOR) STORE (MSTOR) STORP (MSflORP) T2E TABLE (MTAD) TBLKSZ Type Description R Volume of water stored in the current reach at the start of the current time interval. I Vector used internally in subroutines KCHIN and HYPROP for computing the hydraulic properties of a cross section. SSEC(I) is the number of the subsection between points I and 1+1 on the cross section. I Vector used internally in subroutine RSORT to determine optimal ordering of reaches. R Sediment washoff rate (mass/unit time/unit area) above which the composition of the sediment is the same as that of the land surface. R Vector to store LSRO data for one simulation time block (TBLKSZ intervals) for each land segment in the run. See further discussion under subroutine REFIL1 in Section 7.3.3. R Vector to store EROS data for one simulation time block (TBLKSZ intervals) for each land segment in the run. See further discussion under subroutine REFIL2 in Section 7.3.3. R Vector to store all point load flow and sediment data for one simulation time block for one reach (TBLKSZ + 1 values) See further discussion under subroutine REFIL3 in Section 7.3.3. R Width of water surface in the current reach at the end of the current time interval. R Table containing the hydraulic properties of all reaches in the run. Hydraulic properties stored are depth, top width, cross sectional area, and flow rate. further discussion under subroutine HYPRQP in Section 7.3.3. I Time block size (units are numbers of simulation intervals). 230 ------- Variable THKLAY (MREA,MLAY) THRESH (MNPSF) TIMIN TIMINT TRBVEC(MREA) TRIB (MREA) TVEC(MTVEC,MORDR) TW(MSECS) USERCH(MAXRCH) VECWO(MREA) Type Description R THKLAY (NR,ML) is the thickness of bed layer ML in reach NR. Layers are nunbered from 1 at the lowest or bottom bed layer to NLAYER(NR) for the highest or top bed layer. R THRESH(I) is the sediment washoff rate (mass/unit time/unit area) above which particle size fraction I will start to move. 1*4 Modeling or simulation interval (seconds). R Modeling or simulation interval (seconds). I Vector to associate a reach number with the diffuse loading information vector RCHTRB. TRBVEC(NR)=0 no diffuse load for reach NR TRBVEC(NR)>0 the value provides a pointer into vector 8CHTRB. See discussion under DIFFLD in Section 7.3.3. I TRIB(NR) is the user-defined reach number to which reach RCH(NR) is tributary. R Transfer vector for flow and sediment discharge rates. See further discussion in Section 7.3.2. R Vector used in subroutine HYPROP for computing the hydraulic properties of a reach. TW(I) is the top width for subsection I. I USERCH(REACH) is the internal reach number corresponding to the user defined reach number REACH. I Vector created in subroutine RSOKT and used to control the transfer of information within array TVEC. VECNO(NR) gives the column in TVEC from which input to reach NR is to be taken and to which output from reach NR is to be written. See further discussion in Section 7.3.2. 231 ------- Variable VMON(MREA) VYR(MREA) X(MPTS) Y(MPT3) Y2E Y2S YACC (MREA) YKMS(MREA,MNPSF) Type Description R Vector for accumulating total monthly volume of water discharged from a reach. R Vector for accumulating total annual volume of water discharged from a reach. R Vector used to describe cross sectional geometry in subroutines HCHIN and HYPROP. X(I) contains the x coordinate of break point 1. R Vector used to describe cross sectional geometry in subroutines RCHIN and HYPROP. Y(I) contains the y coordinate of break point I. R Flow depth at the downstream end of the reach at the end of the current time interval. R Flow depth at the downstream end of the reach at the start of the current time interval. R Vector for accumulating mean values of depth over a print interval for each reach. R Vector for accumulating the total annual mass of sediment discharged from each reach. 232 ------- APPENDIX D. SOUPJCE CODE c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c f*******************************************************-******* * * * cli'DRAULIC ROUTING & SEDIMENT TRANSPORT IN NATURAL CHANNELS * * * DEVELOPED BY: HVDROCOMP INC. , 1502 PAGE MILL RD. , PALO ALTO, CALIFORNIA 94301 (415-493-5522) FOR: U.S. ENVIRONMENTAL PROTECTION AGENCY, ENVIRONMENTAL RESEARCH LABORATORY, A7HSN'o, GEORGIA 30601 (404-546-3581) DECORATIONS DIMENSIONS INDEPENDENT OF SYSTEM SIZE INTEGER DIAG(IO) REAL CRTSHR(2) ,KINVIS (12) ,SCRCON(2) ,SCREXP(2) REAL SETVEL(2) VECTORS WITH DIMENSION (ATBLS2) REM RBUFFU2B) VECTORS WITH DIMENSION (MAXPT) INTEGER RCHPT(IO) VECTORS WITH DIMENSION (MAXRCH) INTEGER USERCH(SO) VECT'733 WITH DIMENSION (MAXTRB) REAL RCHTRB(150) VECTORS WITH DIMENSION (MCROS) INTEGER LOG (10) VECTORS WITH DIMENSION (MFILE) INTEGER CURSOR (40) ,KEYS (40) , MULT (40) VECTORS WITH DIMENSION (MLAY) REAL LAYTHK(5) 233 00004000 00005000 00006000 00007000 00008000 nriftnoftAn uuuuy uuu 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 OG040COO 60041000 00042000 00043000 00044000 00045000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 00062000 00063000 ------- c c c r- *_ c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c ARRAYS WITH DIMENSION (MLAY,MNPSF) REAL LAYCOM(5,9) VECTORS WITH DIMENSION (MNPSF) REAL AA(9),AC(9),ACCS(9),ACFRAC(9),AM(9>,AN(9) REAL CE(9),CS(9) REAL COMLND(9),DIA(9),DGR(9),GREQ(9) REAL MASSED(9),MASSIN(9),MSMON(9),MSYR(9) REAL SHEET(9),THRESH(9) VECTORS WITH DIMENSION (MNPS1) REAL ACTl(lO),ACT2(10),ACTNEW(10) ARRAY WITH DIMENSION (MNPTLD,MNPS1) REAL INITPT(4,10) ARRAYS WITH DIMENSION (MNPTLD,MNPS2) INTEGER PTDD(4,11) VECTORS WITH DIMENSION (MORDR) INTEGER LEVSTK(4) VECTORS WITH DIMENSION (MPTS) INTEGER POINT(25),SSEC(25) REAL X(25),Y(25) VECTORS WITH DIMENSION (MREA) INTEGER BASE(15),LEV(15) INTEGER NEXT(15) ,NLAYER(15) ,NLEVS{15) ,NTAB(15) INTEGER ORDER(15) ,PRO'JT(15) ,PTVEC(15) INTEGER RCH(15),REL(15),SEQ(15),STACK(15) IK'TEGER TRIBC15) ,TRBVEC(15) ,VECNO(15) REAL AACC(15), COMTEK(15),ENDSTO(15),INFLOW(15),LEN(15) RSAL KACC(15),OUTFLO(15),QACC(15),QSTART(15),SLOP(15) REAL VMON(15),VYR(15),YACC(15) ARRAYS WITH DIMENSION (MREA,MLAY) REAL THKLAY(15,5) ARRAYS WITH DIMENSION (MREA,MLAY,MNPSF) REAL COMLAY(15,5,9) ARRAYS WITH DIMENSION (MREA,MNPSF) REAL CSTART(15,9),MONKS(15,9),SACC(15,9),YRMS(15,9) VECTORS KITH DIMENSION' (MSBCS) 00064000 00065000 00066000 00067000 00068000 00069000 00070000 00071000 00072000 00073000 00074000 00075000 00076000 00077000 00078000 00079000 00080000 00081000 00082000 00083000 OOOB4000 00085000 00086000 00087000 00088000 00089000 00090000 00091000 00092000 00093000 00094000 00095000 00096000 00097000 0009BOOO 00099000 00100000 00101000 00102000 00103000 0010400C 001C5000 00106000 00107000 00108000 00109000 00110000 00111000 00112000 00113000 00114000 00115000 00116000 00117000 00118000 00119000 00120000 00121000 00122000 00123000 234 ------- c c c c c c c c c c c c c c c c c c c c c c c c REAL A(5),NSSEC(5),P(5),TW(5) ARRAYS WITH DIMENSION (2.MSEGS) INTEGER DD(2,2) VECTORS WITH DIMENSION (KSTOR) REAL STOR{256},STORE(256) VECTORS WITH DIMENSION (MSTORP) REAL STORP(1290) VECTORS WITH DIMENSION (MTAD) REAL TABLE(1000) ARRAYS WITH DIMENSION (MTVEC,MORDR) REAL TVEC(1290,4) ARRAYS WITH DIMENSION (TBLKSZ,MNPSF3) REAL DSKDAT(128,12) ARRAYS WITH DIMENSION (MREA,MNPSF3) INTEGER FTN(15,12) INTEGER ATBLSZ,BDAY,BEDKNT INTEGER BGNDAY,BGNHR,BGNMON,BGNYR INTEGER BHR,BMIN,BMON,BSEC,BYR INTEGER DAY,DBAS,DSN INTEGER EFLAG,ENDDAY,ENDHR,ENDMON,ENDYR INTEGER FTNNNJ,HDPOUT,HR INTEGER I,IBASE,IM02,IN,INTQ,INTQ2,INTV,IOUT INTEGER J,K,KNTHY,KHTSD,KOUNTH,KOUNTS INTEGER KW002,KW005,KW541,KW551 INTEGER LEVEL,LINEHY,LINESD INTEGER MAXPT,MAXRCH,MAXTRB INTEGER MCROS,MFILE,MIN,MLAY,MLINES INTEGER MNPS1,MNPS2,MNPSF,MNPSF3 INTEGER MNPTLD,MON,MORDR,MPTS,MREA,MSECS,MSEGS INTEGER MSTOR,MSTORP,KTAD,MTVEC INTEGE R NBAS,NEWLY,NINTS,NLAST,NLAY,NLEV,NN INTEGER NPSF,NPSF1,NPSFP3,NPTLD,NR,NREA INTEGER NSEGS,NSG,NTBLK,NTBLKS,NTVEC,NVEC INTEGER ORDR,PBAS,PRFREQ,PRINT,PRINTS,PRMONH,PRMONS INTEGER PRYRH.PRYRS INTEGER REACH,RECOMP,RTIND INTEGER SEC,SEG,SDEBOG,SDPOUT,SOUT INTEGER TBLKSZ,VISMON,YR REAL A2E,A2S,ABIND REAL ACCA,ACCQ,ACCY,ACTIVE,AMEAN,ARMF,ASCR REAL BEDSHR,BIND,BSCR,BOLKD REAL CONER,CSCR,CSTOTL,CUML REAL DENS,DENW,DEPTH,DIFF,DIFFUS,DISCH,DSCR,DUNE 00124000 00125000 00126000 00127000 00128000 00129000 00130000 00131000 00132000 00133000 00134000 00135000 00136000 00137000 00138000 00139000 00140000 00141000 00142000 00143000 00144000 00145000 00146000 00147000 00148000 00149000 00150000 00151000 00152000 00153000 00154000 00155000 00156000 00157000 00158000 00159000 00160000 00161000 00162000 00163000 00164000 00165000 00166000 00167000 00168000 00169000 00170000 00171000 00172000 00173000 00174000 00175000 00176000 00177000 00178000 00179000 00180000 00181000 00182000 00183000 235 ------- REAL D50.D50IM REAL EPSBED REAL FACTER, FACTFL, FACTLS , FACTSD, FLOTIM , FROUDE RSAL GRAV,IKINO,IN?L,INFLO KE=,L LENGTH, LSFAC REAL NO , NUM , ORGD50 , ORGQ , ORGTHK , ORGY , OUTFAC , OUTFL PEAL PCIMO,PCLYST,PROTCT,PTLOAD P.EAL Q1E,Q1S,Q2E,Q2S ,QMEAN REAL RIPPLE RE At. SAREA, SE , SED, SEDMT, SEDST , SHEARV , SLOPE REAL SPGRAV , SPWTW , 3S , SSTART , STEADY , SUM REAL SEDO J'.EAL T2E,TIMINT,ULTACT KEAL VEL,VISC,VOLMON,VOLYR REAL Y2E,Y2S,YES,YMEAN C c INTEG£R*4 DISPL,TIMIN C C DATA STATEMENTS C DATA NO/' NO '/.YES/1 YES1/ C C C WRITE FORMATS C 2000 FORMAT ('!' , 'THE SYSTEM IS CONFIGURED AS FOLLOWS :') 2010 FORMAT ( '0 ' , 1 'MAX. NO. OF REACHES (MREA) «= ,I5,/,1X, 2 'MAX. NO. OF SEGMENTS (MSEGS) - ,I5,/,1X, 3 'TIME BLOCK SIZE (ATBLSZ) - ,I5,/,1X, 4 'MAX. NO. PARTICLE SIZE FRACTIONS (MNPSF) = ,I5,/,1X, 5 'MAX. NO. SUB-SECTIONS PER X-SECTION (MSECS) = ,I5,/,1X, 6 'MAX. NO. POINTS PER X-SECTION (MPTS) - ,I5,/,1X, 7 'MAX. NO. CROSSINGS PER X-SECTION (MCROS) » ,I5,/,1X, 8 'M.'.X. TABLE LENGTH FOR HYDRAULIC PROPS (MTAD)= ,I5,/,1X, 9 'MAX. STREAM ORDER (MORDR) = ,I5,/,1X, 1 'MAX. LENGTH VECTOR RCHTRB (MAXTRB) * ',15) 2020 FORMAT (IX, 1 'MAX. NO. POINT LOADS (MNPTLD) - ,I5,/,1X, 2 'MAX. LENGTH VECTOR RCHPT (MAXPT) • ,I5,/,1X, 3 'MAX. FORTRAN FILE NUMBER (MFILE) •> ,I5,/,1X, t 'MAX. REACH NUMBER (MAXRCH) * ,I5,/,1X, 5 'MAX. LENGTK VECTORS STOR, STORE (MSTOR) - ,I5,/,lX, 6 'MAX. LENGTH ARRAY TVEC (MTVEC) « ,I5,/,1X, 7 'MAX. LENGTH VECTOR STORP (MSTORP) » ,I5,/,1X, 8 'MAX. NO. OF BED LAYERS (MLAY) - ,15 ) 2100 FORMAT ( '0' , • +++ERROR 001+++ RUN ABANDONED BECAUSE OF PRIOR ', i ' ERRORS ' ) 2120 FORMATt '0' ,'NO PRINT OUT HAS BEEN REQUESTED FOR THIS RUN ') 2130 FORMAT( '0 ', 'NO HYDRAULIC OUTPUT HAS BEEN REQUESTED FOR THIS RUN') 2140 FORMAT ( '0' ,'NO SEDIMENT OUTPUT HAE BEEN REQUESTED FOR THIS RUN') 21 SO FORMAT ( '1 ', 'SIMULATION STARTS ',I4,l/1,l2,1/'fl2/l/',I2) 2160 FORMAT( '0' , '+++WARNING OC2+++FLOK ROUTING CONTINUITY ERROR ', 1 'IN REACH ',15,' IS > (1 . OE-05*INFLOW) ',/,!X, 2 '; CONTINUITY ERROR IS ',E12.5) 2170 FORMAT (' 0 ',' +++ERROR 003-M-+VECTOR JUST FILLED (',15,') AND '. 1 'THAT SPECIFIED FOR RELEASE f',15,1) ARE ', 2 'DISSIMILAR') 2180 FORMAT{ '0' ,/, '0 ', 'CONTINUITY CHECKS FOR THIS RUN:1,/, IX, 00184000 00185000 00186000 00167000 00188000 00189000 00190000 00191000 00192000 00193000 00194000 00195000 00196000 00197000 00198000 00199000 00200000 00201000 00202000 00203000 00204000 00205000 00206000 00207000 00208000 00209000 00210000 00211000 00212000 00213000 00214000 00215000 00216000 00217000 00218000 00219000 00220000 00221000 00222000 00223000 00224000 00225000 00226000 00227000 00228000 00229000 00230000 00231000 00232000 00233000 00234000 00235000 00236000 00237000 00238000 00239000 00240000 00241000 00242000 00243000 236 ------- 1 2 3 2190 FORMAT(IX 2200 FORMATCO 1 2? 10 FORMATCO 27:>0 FORMATCO 1 2230 FORMATCO 2 2240 FORMATCO 1 2 2250 FORMATC1 1 22SO FORMATCO 1 2290 FORMATCO I1 IF THEY 2310 FORMAT('0 2320 FORMATCO 2330 FORMATCO 2340 FORMATCO C 1 REACH',8X,'INFLOW' ,7X,'OUTFLOW' ,8X, 'ENDING' ,4X, 'CONTINUITY',/,lX, 4CIX, 'STORAGE' ,6X, 'ERROR') ,I5,4(2X,E12.5)) ','N.B. STARTING STORAGES WERE PRINTED OUT AT START', 1 OF RUN') ',/,'0','END OF SIMULATION") 1 , ' -H++ERROR 004+++ FROUDE NUMBER EXCEEDS 0.8 ', ' ; FROUDE «• ' ,E12. 5) ','DISCHARGE CHANGED BY MORE THAN 10% ', ' - RECOMPUTE ACTIVE LAYER CHARACTERISTICS ',/,lX, 'ORIGINAL Q-',E12.5,' NEW 0 =',E12.5) ','DEPTH CHANGED BY MORE THAN 10% - ', 'RECOMPUTE ACTIVE LAYER CHARACTERISTICS',/,IX, 'ORIGINAL DEPTH =',E12.5,' NEW DEPTH =',E12.5) ','SEDIMENT TRANSPORT CALCULATIONS FOR REACH ', 15,' AT TIME M5,'/1 ,12,'/M2,'/' ,12,'/',I2,'/',12) 1,'+++WARNING 005+-H-IN REACH ',15,' FLOW TIME '.F10.1, 1 IS LESS THAN MODELING INTERVAL ') ','NOTE THAT WARNING MESSAGES HAVE BEEN SUPPRESSED',/,IX OCCURRED MORE THAN FIVE TIMES ') ','WARNING 002 WAS ISSUED ',16,' TIMES ') ','WARNING 005 WAS ISSUED ',16,' TIMES ') ','WARNING 541 WAS ISSUED ',16,' TIMES ') ','WARNING 551 WAS ISSUED ',16,' TIMES ') C****************************************< C C ERROR FLAG C EFLAG «0 C C LOGICAL DEVICE NUMBERS C *********** C C C IN "5 IOUT =6 SOUT =7 SET MAXIMUM SYSTEM SIZE MREA =15 MSEGS "2 ATBLSZ -128 MHPSP -9 MNPS1 -10 HNPS2 "11 MNPSF3 -12 MSECS »5 MPTS =25 MCROS -10 MTAD -1000 MORDR =4 MAXTRB -150 MNPTLD =4 MAXPT "10 MFILE -40 MAXRCH -50 MSTOR *256 MTVEC -1290 KSTORP =1290 00244000 00245000 00246000 00247000 00248000 00249000 00250000 00251000 00252000 00253000 00254000 00255000 00256000 00257000 00258000 O025')000 002 •".•: 000 002'JiOOO 00262000 ,00263000 00264000 00265000 00266000 00267000 00268000 00269000 00270000 00271000 00272000 00273000 00274000 00275000 00276000 00277000 00278000 00279000 00280000 00281000 00282000 00283000 00284000 00285000 0028600C 00287000 00288000 00289000 00290000 00291000 00292000 00293000 00294000 00295000 00296000 00297000 00298000 00299000 00300000 00301000 00302000 00303000 237 ------- c c c c c c c c c c r V c c c r W r *v C c MLAY =5 FRELIK. INITIALIZATION VJ TJ p r* _ A N. Of — U SDPOUT =0 DO 10 I = 1,MREA THKLAY{I,1) = -999. 10 CONTINUE DO 20 I «= 1,MAXRCH USERCH(I) =0 20 CONTINUE INITIALIZE ALL WARNING MESSAGE COUNTERS KW002 =0 KW005 =0 KW541 =0 KW551 =0 TITLE BOX CALL TBOX(IOUT) WRITE OUT SYSTEM SIZE WRITE(IOUT,2000) WRITE (IOUT, 2010) MREA,MSEGS , ATBLSZ ,MNPSF ,MSECS,MPTS, 1 MCROS,MTAD,MORDR,MAXTRB VRITE(IOUT,2020) MNPTLD,MAXPT,MFILE ,MAXRCH,MSTOR, 1 MTVEC,MSTORP,MLAY K'Jfi INFORMATION CALL INFO( ATBLSZ, IN, IOUT ,MREA, MSEGS, NO, YES, 1 EFLAG, 2 BGNHR , BGNDAY , BGNMON , BGNYR , ENDHR , ENDDAY , ENDMON , ENDYR , 3 HDPOUT , MLI NES , NRE A , NSEGS , PRFREQ , TBLKS Z , 4 TIMINT,DIAG,DIFFUS, DISK, HUM, PTLOAD, SEDKT, WARN ) T-IMIN =TIMINT REACH NETWORK AND HYDRAULIC ROUTING INFORMATION CfvLL RCHIN( IN,IOUT,MAXRCH,MCROS,MORDR, 1 MPTS , MSECS , MTAD , NREA , DIAG , NUM , 2 EFLAG, LEV, LEVSTK,LOC, NEXT, 3 ORDER, POINT, STACK, 4 SSEC,A,NSSEC,P,TW,X,Y, 5 ORDR,RTIND,BASE, 6 NLEVS,NTAB,PROUT,RCH,REL,SEQ,TRIB,USERCH, 7 VECNO , LEN , QSTART , SLOP, TABLE, ENDSTO ) GET INFORMATION TO SIMULATE SEDIMENT IF (SEDMT.EQ.NO) GO TO 50 GET SEDIMENT INFORMATION CALL SEDINF( IN , IOUI ,MAXRCH, MLAY, MNPSF,MREA, 00304000 00305000 00306000 00307000 0030BOOO 00309000 00310000 00311000 00312000 00313000 00314000 00315000 00316000 00317000 00318000 00319000 00320000 00321000 00322000 00323000 00324000 00325000 00326000 00327000 00328000 00329000 00330000 00331000 00332000 00333000 00334000 00335000 00336000 00337000 00338000 00339000 00340000 00341000 00342000 00343000 00344000 00345000 00346000 00347000 00348000 00349000 00350000 00351000 00352000 00353000 00354000 00355000 00356000 00357000 00358000 00359000 00360000 00361000 00362000 00363000 238 ------- c c c c c c c c c c c c 1 NREA,RCH,USERCH, 2 EFLAG, 3 BEDKNT,NPSF,SDEBUG,SDPOUT,NLAYER, 4 ABIND,ARMF,BIND,BULKD,DENS,DENW,DIFFUS,DUNE, 5 EPSBED,GRAV,OUTFAC,PROTCT,RIPPLE,STEADY, 6 CSTART,COMLAV,COMLND,CRTSHR,DIA, 7 KINVIS,SCRCON,SCREXP,THKLAY,THRESH ) 50 CONTINUE PERFORM CHECKS ON VARIABLES WHOSE SIZE DEPEND ON WHETHER SEDIMENT IS BEING SIMULATED NTVEC IS LENGTH OF TRANSFER VECTOR TVEC NPSF1 - NPSF +1 NPSFP3 « NPSF 4 3 NTVEC - NPSF1*(TBLKSZ +1) IF (NTVEC.GT.MTVEC) 1 CALL KILL(14,EFLAG,IOUT,NTVEC,KTVEC) GET POINT & DIFFUSE LOAD INFORMATION CALL LOADIN( BGNHR,BGNDAY,BGNMON,BGNYR,ENDHR,ENDDAY,ENDMON, C C C 1 2 3 4 5 6 7 8 ENDYR,IN,IOUT,MAXPT,MAXRCH,MAXTRB,MFILE, MNPS 2,MNPTLD,NPSF,NREA,NSEGS, TBLKSZ,TIMIN,DIAG,USERCH, DIFFUS,NO,PTLOAD,SEDMT,YES, EFLAG,RBUFF, NPTLD,CURSOR,DD,KEYS,MULT,PTDD,PTVEC, RCHPT,TRBVEC, FACTER,FACTFL,FACTLS,FACTSD,RCHTRB ) ANALYSE PRINT OUT REQUESTS DO 150 NR - 1,NREA IF (PROUT(NR).NE.O) GO TO 160 150 CONTINUE NO OUTPUT C C c HDPOUT SDPOUT INFORMATORY MESSAGES RE. OUTPUT REQUESTED 160 CONTINUE IF (HDPOUT.GT.O) GO TO 120 IF (SDPOUT.GT.O) GO TO 130 WRITE(IOUT,2120) GO TO 140 130 WRITE(IOUT,2130) GO TO 140 120 IF(SDPOUT.EQ.O) WRITE(IOUT,2140) 140 CONTINUE GENERAL INITIALIZATION - DATA STORAGE VARIABLES DO 70 I - 1,MNPTLD 00364000 00365000 00366000 00367000 00368000 00369000 00370000 00371000 00372000 00373000 00374000 00375000 00376000 00377000 00378000 00379000 00380000 00381000 00382000 00383000 00384000 00385000 00386000 00387000 00386000 00389000 00390000 00391000 00392000 00393000 00394000 00395000 00396000 00397000 00398000 00399000 00400000 00401000 00402000 00403000 00404000 00405000 00406000 00407000 00408000 00409000 00410000 00411000 00412000 00413000 00414000 00415000 00416000 00417000 00418000 00419000 00420000 00421000 00422000 00423000 239 ------- c c c c DO 70 0= 1.MNPS1 INITPT(I,J) = 0. 70 CONTINUE DO 90 I = 1,MSTOP, STOR(I) = 0. STORE(I) = 0. 90 CONTINUE DO 100 I = l.KSTORP ETORP(I) = 0. 100 CONTINUE C C C c c c c c INITIALIZE HYDRAULIC VARIABLES DO 80 I » 1,NREA INFLOW (I) =0. OUTFLO(I) =0. CONTER(I) =0. YACC(I) =0. AACC(I) =0. QACC(I) ~ 0. VMON(I) =0. VYR{I) =0. 80 CONTINUE IF DISK OUTPUT HAS BEEN REQUESTED, THEN READ THE FILE NUMBERS AND WRITE THE APPROPRIATE HEADERS TO THOSE FILES. IF (DISK. EQ. NO) GO TO 60 CALL PILEIN( BGNHR,BGNDAY,BGNMON,BGNYR,ENDHR,ENDDAY, 1 ENDMON , EHDYR , IN , IOUT , MAXRCH , HNPS F3 , MREA , 2 NPSFP3,NREA,TBLKSZ,TIMIN, 3 FTN,RCH,USERCH ) 60 CONTINUE IF (SED!«.T.EQ.NO) GO TO 190 PRELIMINARY CALCS & INITIALIZATION FOR SEDIMENT RUN GREQ - CULMULA.TIVE COMPOSITION OF LAND SURFACE SUM =0. DO 170 I = 2,NPSF SUM = SUM +COMLND(I -1) GREQ (I) « 1. -SUM CONTINUE 170 180 DO 180 I •= 1,NREA MACC(I) «0. DO 180 J •* 1,NPSF SACC(I,J) •= 0. MONMS(I,J) =0. YRMS(I,J) =0. CONTINUE SPGRAV SPWTW = VISMON ASCR = = DENS/DENW DENW*GRAV «0 (ABIND -1 . ) *BIND/ (1 . -BIND) 00424000 00425000 00426000 00427000 00428000 00429000 00430000 00431000 00432000 00433000 00434000 00435000 00436000 00437000 00438000 00439000 00440000 00441000 00442000 00443000 00444000 00445000 00446000 00447000 00448000 00449000 00450000 00451000 00452000 00453000 00454000 00455000 00456000 00457000 00458000 00459000 00460000 00461000 00462000 00463000 00464000 00465000 00466000 00467000 00468000 00469000 00470000 00471000 00472000 00473000 00474000 00475000 00476000 00477000 00478000 00479000 00480000 00481000 00482000 00483000 240 ------- c c c c c c c c c c c c c c c BSCR =1.0 -ASCR D5CR = !./(!• - BIND) CSCR =1.0 -DSCR SET REFERENCE VALUES USED IN CHECKING FOB COMPUTATION OF ACTIVE THICKNESS CALCS ORGQ =0. ORGY =0. OI'GTHK =0. OKGD50 =0. ORGTHK =0. 190 CONTINUE DETERMINE NO. OF TIME BLOCKS FOR THIS RUN AND LENGTH OF LAST TIME BLOCK FIND DISPLACEMENT (HOURS) BETWEEN START AND END DATES CALL OFFST( BGNHR,BGNDAY,BGNMON,BGNYR,ENDHR,ENDDAY,ENDMON, 1 ENDYR,IOUT, 2 EFLAG, 3 DISPL ) ADD 1 HOUR BECAUSE WE SIMULATE TO END (NOT START) OF LAST HOUR OF PERIOD. CONVERT DISPL FROM HOURS TO TIME INTERVAL UNITS C C C C C c c c c c c c c c c c DISPL - DISPL +1 DISPL - DISPL*3600/TIMIN NTBLKS * DISPL/TBLKSZ NLAST IS 4INTERVALS IN LAST TIME BLOCK NLAST - DISPL -NTBLKS*TBLKSZ IF (NLAST.KE.O) NTBLKS - NTBLKS +1 IF {NLAST.EQ.O) NLAST * TBLKSZ SET DATE & TIME FOR START OF FIRST TIME BLOCK BYR «• BMON BDAY BHR = BMIN BSEC BGNYR = BCNMON » BGNDAY BGNHR - 0 •0 COUNTERS USED TO DECIDE WHEN WE HAVE ACCUMULATED OUTPUT FOR THE REQUIRED NO OF INTERVALS WHEN PRINTING OUT MEAN VALUES KNTHY, KNTSD REFER TO HYDRAULIC & SEDIMENT RESP. KOUNTH, KOUNTS ARE VALUES AT START OF CURRENT TIME BLOCK KXTHY "0 KS'TSD -0 KOUNTH =0 KOUNTS -0 SET LINE COUNTERS FOR OUTPUT 00484000 00485000 00486000 00487000 00488000 00489000 00490000 00491000 00492000 00493000 00494000 00495000 00496000 00497000 00498000 00499000 00500000 00501000 00502000 00503000 00504000 00505000 00506000 00507000 00508000 00509000 00510000 00511000 00512000 00513000 00514000 00515000 00516000 00517000 00518000 00519000 00520000 00521000 00522000 00523000 00524000 00525000 00526000 00527000 0052BOOO 00529000 00530000 00531000 00532000 00533000 00534000 00535000 00536000 00537000 0053BOOO 00539000 00540000 00541000 00542000 00543000 241 ------- c c c c c c c c c c c c c c c c c c c LINEHY ---0 LINESD =0 CHECK FOR ERRORS IF (EFLAG.EQ.O) GO TO 110 WRITE(IOUT,2100) STOP 110 CONTINUE WRITE(IOUT,2150) BGNYR,BGNMON,BGNDAY,BGNHR PREPARATION COMPLETE - NOW READY TO START SIMULATION *******START TIME BLOCK LOOP *********************** DO 200 NTBLK = 1,NTBLKS MINTS IS NO. INTERVALS TO BE SIMULATED IN THIS BLOCK C C c 210 220 230 240 HINTS = TBLKSZ IF (NTBLK.EQ.NT3LKS) HINTS NLAST C C C CHECK FOR DIFFUSE LOADING FILL INPUT STORES KITH LSRO FOR 1 TIME BLOCK IF (DIFFUS.EQ.NO) GO TO 230 DO 210 I - l.NSEGS IBASE = (I -1)*TBLKSZ DSN - DD(1,I) CALL REFILK DIAG(5),DSN,IBASE,IOUT,MSTOR,MULT(DSN), TBLKSZ, CURSOR(DSN),RBUFF, STOR ) CONTINUE FILL INPUT STORE WITH EROS FOR 1 TIME BLOCK IF (SEDKT.EQ.NO) GO TO 230 DO 220 I = 1,NSEGS IBASE = (I -1)*TBLKSZ DSN = DDC2,I) IF (DSN.EQ.O) GO TO 220 CALL REFIL2( CURSOR(DSN),DIAG(6),DSN,IBASE, IOUT,MSTOR,MULT(DSN),NTBLK,TBLKSZ, KEYS(DSN),RBUFF, STORE ) CONTINUE CONTINUE TVEC( ) ARE A SET OF VECTORS USED TO TRANSFER FLOW AND SEDIMENT DATA FROM REACH TO REACH. START WITH TVEC EMPTY DO 240 I - 1,ORDR DO 240 J = 1,NTVEC TVEC(J,I) = 0. CONTINUE START REACH LOOP ************************ 00544000 00545000 00546000 00547000 00548000 00549000 00550000 00551000 00552000 00553000 00554000 00555000 00556000 00557000 00558000 00559000 00560000 00561000 00562000 00563000 00564000 00565000 00566000 00567000 00568000 00569000 00570000 00571000 00572000 00573000 00574000 00575000 00576000 00577000 00578000 00579000 00580000 00581000 00582000 00583000 00584000 00585000 00586000 00587000 00588000 00589000 00590000 00591000 00592000 00593000 00594000 00595000 00596000 00597000 00598000 00599000 00600000 00601000 00602000 00603000 242 ------- c c c c c c c c c c c c c 320 1 2 3 4 5 C C C c c c c c c c c c ... 330 DO 300 NN » 1,NREA NR IS THE INTERNAL* OF THIS REACH N?. =3F.Q(NN) FILL INPUT STORE WITH POINT LOADS FOR THIS REACH. IBASE «0 IF NO POINT LOAD FOR THIS REACH PBAS =0 IF (PTLOAD.EQ.NO) GO TO 320 PBAS - PTVEC(NR) IF (PBAS.EQ.O) GO TO 320 CALL PLOAD( PBAS,IOUT,MAXPT,MFILE,MNPS1,MNPS2, MNPTLD,MSTORP,NINTS,NPSF,NTBLK,TBLKSZ,DIAG MULT,PTDD,RCHPT,FACTFL,FACTSD,NO, SEDMT,YES,INITPT, CURSOR,RBUFF, STORP ) CONTINUE FIND BASE ADDRESS FOR DIFFUSE LOADS DBAS * TRBVEC(NR) ASSIGN REACH PARAMETERS FOR HYDRAULICS REACH -RCH(NR) LENGTH -LEN(NR) SLOPE "SLOP(NR) IBASE -BASE(NR) NLEV eNLEVS(NR) NVEC eVECNO(NR) PRINT -PROUT(HR) PRINTS " PRINT IF (HDPOUT.EQ.O) PRINT "0 IF (PRINT.EQ.O) GO TO 330 SET PRINT RELATED COUNTERS & VARIABLES FOR HYDRAULICS KNTHY -KOUNTH ACCY -YACC(NR) ACCQ «QACC(NR) ACCA -AACC(NR) CUrtL » MACC(NR) VOLMON =VMON(NR) VOLYR -VYR(NR) PRYRH -BYR PRMONH "BMON CONTINUE FOR A TERMINAL REACH WE STORE OUTPUT TEMPORARILY IN THE LAST AVAILABLE VECTOR IF (NVEC.GT.1000) NVEC -ORDR FIND STARTING CONDITIONS FOR THIS REACH IN THIS TIME BLOCK. FOR HYDRAULICS WITH KINEMATIC ROUTING, VALUES OF A & T ONLY HAVE MEANING AT DOWNSTREAM END. NAME CONVENTION: 00604000 00605000 00606000 00607000 00608000 00509000 00610000 00611000 00612000 00613000 00614000 00615000 00616000 00617000 ,00618000 00619000 00620000 00621000 00622000 00623000 00624000 00625000 00626000 00627000 00628000 00629000 00630000 00631000 00632000 00633000 00634000 00635000 00636000 00637000 00636000 00639000 00640000 00641000 00642000 00643000 00644000 00645000 00646000 00647000 00648000 00649000 00650000 00651000 00652000 00653000 00654000 00655000 00656000 00657000 00658000 00659000 00660000 00661000 00662000 00663000 243 ------- c c c c c c c c c c c 340 350 C C c c 360 C c c c c c 370 380 X1S - X AT U/S END AT START OF INTERVAL X1E - X AT U/S " " END " X2S - X AT D/S " " START " " X2E - X AT D/S " " END " Q2S = QSTART(NR) Q1S =0. IF (NVEC.NE.ORDR) 1 015 = TVEC(1,NVEC) CALL STORGE( IBASE,IOUT,KTAD,NLEV,REACH,LENGTH, 1 Q2S,TABLE, 2 LEVEL,SS,T2E,Y2S ) A2S - SS/LENGTH INFL = 0. INFLO = 0. IMINO * 0. OUTFL = 0. SSTART = SS SET UP FOR SEDMT CALCS FOR THIS REACH THIS TIME BLOCK IF (SEDMT.EQ.NO) GO TO 390 IF (SDPOUT.EQ.O) PRINTS «0 I? (PRINTS.EQ.O) GO TO 350 SET PRINT RELATED VARIABLES FOR SEDIMENT KNTSD » KOUNTS PRYRS - BYR PRMONS = BMON DO 340 I = 1,NPSF ACCS(I) «= SACC(NR,I) NSMON(I) «= MONMS(NR,I) MSYR(I) = YRMS(NR,I) CONTINUE CONTINUE FIND STARTING CONDITIONS I) LAYER THICKNESS NLAY - NLAYER(NR) DO 360 I - 1,NLAY LAYTHK(I) = THKLAY(NR,I) CONTINUE ACTl(l) = LAYTHK(NLAY) II) STARTING CONCS & BED COMPOSITION DO 3BO I = 1,NPSF CS(I) = CSTART(NR,I) SED =0. SET BED COMPOSITION DO 370 J * 1,NLAY LAYCOy.(J,I) = COMLAY(NR,J,I) CONTINUE ACTl(I-H) » LAYCOM (NLAY, I) CONTINUE 00664000 00665000 00666000 00667000 00668000 00669000 00670000 00671000 00672000 00673000 00674000 00675000 00676000 00677000 00678000 00679000 00680000 00681000 00682000 00683000 00684000 00685000 00686000 00687000 00688000 00689000 00690000 00691000 00692000 00693000 00694000 00695000 00696000 00697000 00698000 00699000 00700000 00701000 00702000 00703000 00704000 00705000 00706000 00707000 00708000 00709000 00710000 OC711000 00712000 00713000 00714000 00715000 00716000 00717000 00718000 00719000 00720000 00721000 00722000 00723000 244 ------- c c c 385 390 C C C c c c c c c c c c c c c 410 c c c c c c 430 420 C C MISCELLANEOUS INITIALIZATION DO 385 I = l.NPSF SHEET(I) = 0. CONTINUE RECOMP =1 CONTINUE ************* START INTERVAL LOOP *i DO 400 INTV = 1,HINTS FIND REAL TIME AT END OF THIS INTERVAL (AVOIDING 2-BYTE INTEGER OVERFLOW) DISPL = INTV DISPL - DISPL*TIMIN CALL ADDTIM( DISPL,BYR,BMON,BDAY,BHR,BMIN,BSEC, YR,MON,DAY,HR,MIN,SEC ) INITIALIZE INTQ » INTV*NPSF1 +1 INTQ2 - INTQ -NPSF1 ADD INFLOW FROM U/S REACHES ( IF NVEC -ORDR THIS IS A TERMINAL REACH Q1E =0. IF (NVEC.EQ.ORDR) GO TO 410 Q1E = TVEC(INTQ,NVEC) CONTINUE FIND POINT LOAD INFLOWS INFLO =0. IF (PBAS.GT.O) INPLO - 0.5*( STORP(INTV) + STORP(INTV +1) ) FIND LATERAL INFLOWS IP (DIFFUS.EQ.NO) GO TO 420 IF (DBAS.EQ.O) GO TO 420 NBAS = DBAS NSG = RCHTRB(DBAS) DO 430 I * 1,NSG SEG «= RCHTRB(NBAS +1) SAREA " RCHTRB(NBAS -t-2) LSFAC - FACTLS*SAREA/TIMINT J - (SEG -1)*TBLKSZ INFLO - INFLO + LSFAC*STOR(J +INTV) NBAS •= NBAS 42 CONTINUE CONTINUE INFLO *.INFLO + 0.5*(Q1S +Q1E) HYDRAULIC ROUTING (KINEMATIC) 00724000 00725000 00726000 00727000 00728000 00729000 00730000 00731000 00732000 00733000 00734000 00735000 00736000 00737000 00738000 00739000 00740000 00741000 00742000 00743000 00744000 00745000 00746000 00747000 00748000 00749000 00750000 00751000 00752000 00753000 00754000 00755000 00756000 00757000 00758000 00759000 OCV60000 00761000 00762000 00763000 00764000 00765000 00766000 00767000 00768000 00769000 00770000 00771000 00772000 00773000 00774000 00775000 00776000 00777000 00778000 00779000 00780000 00781000 00782000 00783000 245 ------- 440 C C C 460 C C C C C C C C 670 700 C C C CALL ROUTEf IBASE,INTV,IOUT,MTAD,NLEV, REACH,TIMINT,INFLO,LENGTH,Q2S,SS,TABLE, LEVEL, A2E,Q2E,SE,T2E,Y2E ) WATER BALANCE CALCS & OUTPUT OF HYDRAULIC RESULTS QMEAN =0.5*(Q2s +Q2E) IMINO = IMINO rlNFLO -QMEAN INFL = INFL +INFLO OUTFL = OUTFL +QMEAN IF (PRINT.EQ.O) GO TO 440 YMEAN =0.5*(Y2S +Y2E) AMEAN « 0.5*(A2S +A2E) CALL HDPRN?( YR,MON,DAY,HR,MIN,SEC,EFLAG,HDPOUT, IOUT,MLINES,PRFREQ,REACH,TIMINT,A2E,AMEA.N Q2E,QMEAN,T2E,Y2E,YMEAN, KNTHY,LINEHY,PRMONH,PRYRH, ACCA,ACCO.,ACCY,VOLMON,VOLYR ) CONTINUE CHECK FLOW TIME FLOTIM = LENGTH*A2E/Q2E IF (FLOTIM.GT.TIMINT) GO TO 460 KW005 - KW005 + 1 IF (WARN.EQ.NO .OR. KW005.LE.5) WRITE(IOUT,2280) REACH,FLOTIM CONTINUE START SEDIMENT ROUTING FOR THIS INTERVAL IF (SEDMT.EQ.NO) GO TO 850 CALC SOME BASIC INFO. f. DO INITIALIZATION N.B. FOR KINEMATIC ROUTING, HYDRAULIC GRADT " BOTTOM SLOPE IF (SDEBUG.GT.l) WRITE(SOUT,2250) REACH,YR,MON,DAY,HR,MIN,SEC DO 670 I=1,NPSF HASSED(I) =0. CONTINUE DISCH - Q2E DEPTH = A2E/T2E VEL = Q2E/A2E BEDSHR = S?WTW*DEPTH*SLOPE SHEARV = SQRT(GRAV*DEPTH*SLOPE) KP.OUDE = VSL/SQRT(GRAV*DEPTH) If (FROUDE.LE.0.8) GO TO 700 WRITE(IOUT,2220) FROUDE STOP CONTINUE CHECK WHETHER ACTIVE LAYER CALCS SHOULD BE DONE DIFF = ABSi (DISCH - ORGQ)/(ORGQ + 0.1) ) 00784000 00785000 00786000 00787000 00788000 00789000 00790000 00791000 00792000 00793000 00794000 00795000 00796000 00797000 00798000 00799000 00800000 ,00801000 00802000 00803000 00804000 00805000 00806000 00807000 00808000 00809000 00810000 00811000 00812000 00813000 00814000 00815000 00616000 00817000 00818000 00819000 00820000 00821000 00822000 00823000 00824000 00825000 00826000 00827000 00828000 00829000 00830000 00831000 00832000 00833000 00834000 00835000 00836000 00837000 00838000 00839000 00840000 00841000 00842000 00843000 246 ------- 680 690 C C C C C C C 770 C •C C C C C C C C C IF (DIFF.LE.0.1) GO TO 680 IF (SDE3UG.GE.3) WRITE(SOUT,2230) ORGQ,DISCH RECOMP =1 CONTINUE DXe'F = ABS ( (DEPTH - ORGY)/(ORGY + 0.1) ) IF (DIFF.LE.0.1) GO TO 690 IF (SDEBUG.GE.3) WRITE(SOUT,2240) ORGY,DEPTH RECOMP «1 CONTINUE GET TOTAL SEDIMENT LOADING FOR THIS REACH THIS INTERVAL. CALL SDLOADf DBAS,INTV,MAXTRB,MORDR,MSEGS,MSTOR, MSTORP,MTVEC,NPSF,NVEC,ORDR,PBAS,SDEBUG, SOUT,TBLKS Z,DIFFUS,FACTER,NO,STEADY, TIMINT,DD,COMLND,GREO.,RCBTRB, STORE, STORP,THRESH,TVEC, MASSIN,SHEET ) RECOMPUTE PARAMETERS WHICH ARE DEPENDANT ON VISCOSITY IF (VISMON.EQ.MON) GO TO 770 CALL VISCHG{ WON,NPSF,SDEBUG,SOUT,GRAV, SPGRAV,DIA,KINVIS, RECOMP, VISC,AA,AC,AM,AN,DGR,SETVEL ) VISMON - MON CONTINUE FIND ULTIMATE OR POTENTIAL SAND TRANSPORT CONCNS. & PARTICLE MOBILITY CALL ULTMT( NPSF,NFSFl,SDEBUG,SOUT,DEPTH,GRAV, ORGD50,ORGTHK,SHEARV, SPGRAV,VEL,AA,AC,ACT1,AM,AN,DIA, IM02,RECOMP,ACFRAC, D50,D50IM,PCIMO,CE ) RECOMPUTE ACTIVE LAYER THICKNESS IF (RECOMP.EQ.O) GO TO 800 CALL ACTIV( BEDKNT,IM02,MLAY,MNPSF, MNPS1,NLAY,NPSF,NPSFl,SDEBUG,SOUT, ARMF,BIND,DEPTH,DUNE,EPSBED,FROUDE, GRAV,RIPPLE,VISC,DIA,LAYCOM, LAYTHK,WARN, KW541,KW551,ACFRAC,ACT1,ACT2,ACTNEW NEWLY,ACTIVE,PCLYST,ULTACT ) CALL CLEAN( IM02,MLAY,MNPSF,MNPSl,NEWLY, NPSF,NPSFl,SDEBUG,SOUT,ACTIVE, BIND,PCLYST,DIA, ACFRAC,ACT1, NLAY,D50,D50IM,PCIMO,LAYCOM,LAYTHK ) RESET REFERENCE VALUES 00844000 00845000 00846000 00847000 00ft43000 00349000 00850000 00851000 00852000 00853000 00854000 00855000 00856000 00857000 00858000 00859000 00860000 00861000 00862000 00863000 00864000 00865000 00866000 00867000 00868000 00869000 00870000 00871000 00872000 00873000 00874000 00875000 00876000 00877000 00878000 00879000 00880000 00881000 00862000 00883000 00884000 00885000 00886000 00887000 00888000 00889000 00890000 00891000 00892000 ,00893000 00894000 00895000 00896000 00897000 00898000 00899000 00900000 00901000 00902000 00903000 247 ------- 800 780 C C C 1 2 3 4 5 6 C C C 1 2 3 4 5 1 2 3 4 5 820 810 C C C C C OPGQ = OiWY = D- 5D50 OrWTHK DISCH DEPTH » D50 » ACTl(l) =o CONTINUE IF (PCLYST.LE.BIND) GO TO 780 COHESIVE BED LAYER BEING SCOURED CALL COHESV( IM02,MLAY,MNPSF , NEWLY ,NPSF,NPSF1 , SDEBUG , SOUT , TIMINT , ARMF , ASCR, BEDSHR, BSCR, BULKD , CSCR, DSCR, D50IM , PCLYST , ULTACT , ACTl , CRTSHR, SCRCON , SCREXP, NLAY , RECOUP , LAYCOM , LAYTHK , MASSED ) CONTINUE SCOUR SANDS & DO ROUTING CALL SDROUT( IM02 ,MLAY, MNPSF,NPSF,NPSF1 , SDEBUG, SOUT, TIMINT, A2E,A2S, BIND, BULKD, DENW, DEPTH , LENGTH , PCLYST , PROTCT , Q IE , Q1S , Q2E , Q2S , SHEARV, T2E , CS , MASSED , MASSIN , SETVEL, SHEET, EFLAG , NLAY , RECOMP , ACTl , LAYCOM , LAYTHK , PCIMO,CE ) PRINTED OUTPUT ? IF (PRINTS. EQ.O .AND. EFLAG. EQ.O) GO TO 810 CALL SDPRNT( YR, MON, DAY, HR, MIN, SEC , EFLAG, MLAY, MLINES,MNPSF, NLAY, NPSF,PRFREQ, REACH, ?DEBUG , SDPOUT , SOUT , TIMINT , CUML , DENW , OUTFAC , Q2E , Q 2S , ACCS , CE , CS , LAYCOM , LAYTHK , MSMON , MSYR , KNTSD,LINESD,PRMONS,PRYRS ) IF (EFLAG. EQ.O) GO TO 820 CALL HDPRNT( YR, MON, DAY, HR, MIN, SEC , EFLAG, HDPOUT , IOUT , MLINES ,PRFREQ , REACH , T IMINT , A2E , AMEAN , Q2E , QMEAN , T2E , Y2E.YMEAN, KNTHY , LINEHY , PRMONH , PRYRH , ACCA,ACCQ,ACCY,VOLMON,VOLYR ) STOP CONTINUE CONTINUE IF REQUESTED, STORE FLOW RATES, POINT DEPTHS, AND SEDIMENT DISCHARGE RATES; THESE WILL LATER BE WRITTEN TO DISK. IF (DISK. EQ. NO) GO TO 910 IF (FTN(NN,1).EQ.-1) GO TO 910 00904000 00905000 00906000 00907000 00908000 OG909000 00910000 00911000 00912000 00913000 00914000 00915000 00916000 00917000 00918000 00919000 00920000 00921000 00922000 00923000 00924000 00925000 00926000 00927000 00928000 00929000 00930000 00931000 00932000 00933000 00934000 00935000 00936000 00937000 00938000 00939000 00940000 00941000 00942000 00943000 00944000 00945000 00946000 00947000 00948000 00949000 00950000 00951000 00952000 00953000 00954000 00955000 00956000 00957000 00958000 00959000 00960000 00961000 00962000 00963000 248 ------- 880 910 C C C 840 850 C C C C C C C 400 C C C C C C C C C C C 450 470 C C C CSTOTL = 0. DSKDAT(INTV,1) «= Q2S DSKDAT(IKTV,2) = Y2S DO 880 I=1,NPSF CSTOTl. = CSTOTL + CS(I) DSKOAT(INTV,I+2) =• CS (I } *DENW*Q2S CONTINUE DSKDAT(INTV,NPSF+3) - CSTOTL*DENW*Q2S CONTINUE SWITCH SEDIMENT VALUES FOR START OF NEXT TIME STEP DO 840 I = l.NPSF TVEC((INTQ2+I) ,NVEC) = CS (I ) *DENW*Q2S CS(I) = CE(I) CONTINUE CONTINUE END SEDIMENT CALCS ********************* SWITCH HYDRAULIC VALUES FOR START OF NEXT TIME STEP TVEC(INTQ2,NVEC) Q1S - Q1E Q2S « Q2E A2S - A2E Y2S * Y2E SS - SE CONTINUE ************** Q2S INTERVAL LOOP ********************** STORE VALUES FOR THIS REACH AT THE END OF THIS TIME BLOCK THESE VALUES ARE USED AGAIN WHEN THIS REACH IS PROCESSED DURING THE NEXT TIME BLOCK IF (SEDMT.EQ.NO) GO TO 490 CLEAN UP FOR SEDIMENT 1) STORE ACCUMULATED VALUES FOR PRINT OUT IF (PRINTS.EQ.O) GO TO 470 DO 450 I - l.NPSF SACC(NR,I) » ACCS(I) MONMSfNR,!) - MSMON(I) YRMS{NR,I) m MSYR(I) CONTINUE MACC(NR) - CUML CONTINUE 2) STATE VECTORS DO 480 I - 1,NPSF CSTART(NR,I) - CE(I) DO 480 J = 1,NLAY COMLAY(NR,J,I) - LAYCOM(J,I) 00964000 00965000 00966000 00967000 00968000 00969000 00970000 00971000 00972000 00973000 00974000 00975000 00976000 00977000 00978000 00979000 00980000 00981000 00982000 00983000 00984000 00985000 00986000 00987000 00988000 00989000 00990000 00991000 00992000 00993000 00994000 00995000 00996000 00997000 0099BOOO 00999000 01000000 01001000 01002000 01003000 01004000 01005000 01006000 01007000 01008000 01009000 01010000 01011000 01012000 01013000 01014000 01015000 01016000 01017000 01018000 01019000 01020000 01021000 01022000 01023000 249 ------- 480 485 C C C C C 486 490 C C C C C 500 C C C C C C C C C C 510 C C C C 520 C C C CONTIKOE DO 485 0 = 1,NLAY THKLAY(NR,J) = LAYTHK(J) CONTINUE NLAYER(NR) = NLAY 3) CLEAN UP TRANSFER VECTOR (MANIPULATION OF TRANSFER VECTOR FOR INPUT TO NEXT REACH IS DONE IN HYDRAULICS SECTION DO 486 I « 1,NPSF TVEC((INTQ+I),NVEC) " CE(I)*DENW*Q2E CONTINUE CONTINUE CLEAN UP FOR HYDRAULICS 1) STORE PARTIALLY ACCUMULATED VALUES FOR PRINT OUT IF (PRINT.EQ.O) GO TO 500 YACC(NR) « ACCY AACC(NR) - ACCA QACC(NR) - ACCQ VMON(NR) - VOLMON VYR(NR) - VOLYR CONTINUE 2) STATE VECTORS QSTART(NR) «= Q2E ENDSTO(NR) » SE 3) CLEAN UP TRANSFER VECTOR TVEC(INTQ,NVEC) -Q2E IF (NVEC.LT.ORDR) GO TO 520 WE ARE ON A TERMINUS REACH - ADD OUTPUT NOW IN TEMP. STORAGE TO CONTENTS OF PERMANENT VECTOR NVEC - VECNO(NR) -1000 DO 510 I = 1,NTVEC TVEC(I,NVEC) * TVEC(I,ORDR) +TVEC(I,NVEC) CONTINUE GO TO 550 CHECK TO SEE WHETHER WE SHOULD COMBINE CONTENTS OF 2 VECTORS, RELEASING HIGHER NUMBERED ONE FOR FUTURE USE CONTINUE IF (PEL(NR).LE.O) GO TO 550 ENSURE WE ARE RELEASING CORRECT VECTOR IF (NVEC.EQ.REL(NR)) GO TO 530 WRITE(IOUT,2170) NVEC,REL(NR) STOP 01024000 01025000 01026000 01027000 01028000 C1029000 01030000 01031000 C1032000 01033000 01034000 01035000 01036000 01037000 01038000 01039000 01040000 01041000 01042000 01043000 01044000 01045000 01046000 01047000 01048000 01049000 01050000 01051000 01052000 01053000 01054000 01055000 01056000 01057000 01058000 01059000 01060000 01061000 01062000 01063000 01064000 01065000 01066000 01067000 01068000 01069000 01070000 01071000 01072000 01073000 01074000 01075000 01076000 01077000 01078000 01079000 01080000 01081000 01082000 01083000 250 ------- c c c c c c c c c RELEASE 530 CONTINUE J •' NVEC -1 DO 5.40 I =1,NTVEC TVEC(I,J) = TVEC(I,J) +TVEC(I,NVEC) TVEC(I,NVEC) = 0. 540 CONTINUE 550 CONTINUE 4) WATER BALANCE INFL « INFL*TIMINT INVLOW(NR) - INFL +INFLOW(NR) OUTFLO(NR) = OUTFL*TIMINT -K)UTFLO(NR) IMINO - IMINO*TIMINT 5) CONTINUITY ERROR CONER « IMINO +SSTART -SE CONTER(NR) * CONTER(NR) +CONBR CONSR » ABS(CONER/INFL) IF r.ONER.LT.1.0E-05) GO TO 560 KW002 - KW002 -f 1 IF (WARN.EQ.NO .OR. KW002.LE.5) 1 WRITE(IOUT,2160) REACH,CONER 560 CONTINUE C C C C C C C C c c c IF REQUESTED, WRITE FLOWS, POINT DEPTHS, AND SEDIMENT DISCHARGE RATES TO DISK. IF (DISK.EQ.NO) GO TO 600 IF (FTN(NN,1).EQ.-l) GO TO 600 DO 580 J-1,NPSFP3 IF (FTN(NN,J).EQ.O) GO TO 580 DO 570 I«1,TBLKSZ RBUFF(I) » DSKDAT(I,J) 570 CONTINUE FTNNNJ - FTN(NN,J) WRITE(FTNNNJ) RBUFF 580 CONTINUE 600 CONTINUE 300 CONTINUE *************** END OF REACH LOOP ********************* FIND TIME FOR START OP NEXT TIME BLOCK DISPL - NINTS DISPL - r?TSPL*TIMIN CALL A'DDTIM( DISPL,BYR,BMON,BDAY,BHR,BMIN,BSEC , 1 YR,MON,DAY,HR,MIN,SEC) BVR * VR BHON » MON BDAY » DAY BHR - HR 01084000 01085000 01086000 01087000 01088000 01089000 01090000 01091000 01092000 01093000 01094000 01095000 01096000 01097000 01098000 01099000 01100000 01101000 01102000 01103000 01104000 01105000 01106000 01107000 01108000 01109000 01110000 01111000 01112000 01113000 01114000 01115000 01116000 01117000 01118000 01119000 01120000 01121000 01122000 01123000 01124000 01125000 01126000 01127000 01128000 01128100 01129000 01130000 0113JOOO 01132000 01133000 01134000 01135000 01136000 01137000 01138000 01139000 01140000 01141000 01142000 251 ------- c c c BMIN = MIN BSCC = SEC RE-JET BASE COUNTERS FOR PRINT OUT KOUNTH KOUNTS KNTHY KNTSD C C c c c c c c c c c c c 200 CONTINUE ************** END TIME BLOCK LOOP ************************* CHECK CONTINUITY FOR HYDRAULICS WRITE(IOUT,2180) DO 610 NR = 1,NREA WRITE(IOUT,2190) RCH(NR),INFLOK(NR),OUTFLO(NR), 1 ENDSTO(NR),CONTER(NR) 610 CONTINUE WRITE(IOUT,2200) V?RITE (IOUT, 2210) WRITE SUMMARY OF ERROR MESSAGES IF {WARN.EQ.YES) WRITE(IOUT,2290) IF (KW002.GT.O) WRITE(IOUT,2310) KW002 IF (KW005.GT.O) WRITE(IOUT,2320) KW005 IF (KW541.GT.O) WRITE(IOUT,2330) KW541 IF (KW551.GT.O) WRITE(IOUT,2340) KW551 FINISH RUN STOP END 01143000 01144000 01145000 01146000 01147000 01148000 01149000 01150000 01151000 01152000 01153000 01154000 01155000 01156000 01157000 01158000 01159000 01160000 01161000 01162000 01163000 01164000 01165000 01166000 01167000 01168000 01169000 01170000 01171000 01172000 01173000 01174000 01175000 01176000 01177000 01178000 252 ------- c c c c c c c c c c c c c c c c SUBROUTINE ACTIV( BEDKNT,IM02.MLAY,MNPSF,MNPSl,NLAY, 1 t;?SF,NPSFl,SDEBUG,SOUT,ARMF,BIND,DEPTH, 2 P'JNE,EPSBED,FROUDE,GRAV, RIPPLE, VISC, 3 DIA,LAYCOM,LAYTHK,WARN, 4 KW541,KW5 51,ACFRAC,ACTl,ACT2,ACTNEW, 5 NiiWLY, ACTIVE,PCLXST,ULTACT ) ROUTINE TO FIND THICKNESS OF ACTIVE LAYER. ALLOWANCE IS MADE FOR ARMORING AND PRESENCE OF COHESIVE LAYERS. PARAMETERS INTEGER BEDKNT,IMO2,KW541,KW551,MLAY,MNPSF,MNPS1,NEWLY,NLAY INTEGER NPSF,NPSF1,SDEBUG,SOUT REAL ACTIVE,ARMF,BIND,DEPTH,DUNE,EPSBED,FROUDE REAL GRAV,PCLYST,RIPPLE,ULTACT,VISC,WARN REAL ACFRAC(NPSF),ACT1(NPSF1),ACT2(NPSF1) REAL ACTNEW(NPSFl),DIA(NPSF),LAYCOM(MLAY,MNPSF) REAL LAYTHK(MLAY) LOCAL VARIABLES INTEGER HIGH,I,J,KOUNT,LOW REAL ACTIV1,ACTIV2,ARMD,ARMOR,D501.D502 REAL D50A1,D50A2,FACT,NEWTHK,PCIMO F.:;AL RELERR,RG,THK,THKI,THK2,THKA RViAL THKARM,YD50 REAL NAME(6) DATA NAME/'RIPP1,'LE WRITE FORMATS 1 DUNE' 2000 FORMAT('0','+++WARNING 531+++ BOTTOM OF DEFINED BED REACHED1, 1 ' IN COMPUTING ACTIVE LAYER THICKNESS') 2010 FORMAT('0','+++ERROR 532+++ ITERATION COUNT EXCEEDED ',15, 1 ' IN BEDFORM CALCS') 2020 FORMATCO1 ,'ACTIVE LAYER CHARACTERISTICS PROM SUBROUTINE ', 1 'ACTIVE:',/,IX, 2 'ACTIVE LAYER THICKNESS ,F10.4,/,IX, 3 'NUMBER OF TOP LAYER IN THIS REACH ,I5,/,1X, 4 'ACTIVE DEPTH REACHES INTO LAYER NO. ,I5,/,1X, 5 'PERCENT CLAY + SILT IN BOTTOM LAYER ,F10.2,/,1X, 6 'BEDFORM TYPE ,2A4 ) 2030 FORMATCO' ,/, '0' , 'DEBUG OUTPUT FOR ACTIVE THICKNESS CALCS:',/, IX, 1 'LAYER LOOPING:',/ ) 2040 FORMATCO','INCLUDE LAYER -',I5,/,1X, 1 'ACTIVE THICKNESS «',F10.3,/,lX, 2 'BEDFORM THKNESS »',F10.3 ) 2050 FORMATCO','LAYER ITERATIONS:',/ ) 2060 FORMATCO' , 'ITERATION NUMBER «',I5,/,1X, 1 'ACTIVE THICKNESS •=' ,F10 . 3,/, IX, 2 'BEDFORM THICKNESS*'F10.3 ) 2070 FORMAT CO1,'LAYER ',15,' IS COHESIVE ',/,lX, 1 'PERCENT CLAY + SILT IN COHESIVE LAYER =',F10.3,/,IX, 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 0003BOOO 00039000 00040000 00041000 00042000 00043000 00044000 00045000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 00062000 00063000 253 ------- c c c c c c c c c c c c c c c 2 'ESTIMATED THICKNESS FOR ACTIVE LAYER -',F10.3,/,IX, 3 'DEPTH OVERLYING MATERIAL -',F10.3 ) 2080 FORMATCO1,'ACTIVE LAYER THICKNESS LIMITED BY ARMORING',/,IX, 1 'ACTIVE DEPTH REACHES INTO LAYER -',I5,/,1X, 2 'ACTIVE LAYER THICKNESS »',F10.3 ) 2090 FORMATCO','ACTIVE LAYER CALCS WILL BE REPEATED1) : INITIALIZE t 5 CONTINUE PCLYST -0. D501 »0. D502 -0. D50A1 -0. D50A2 "0. THKARM -0. ARMD-1.0E06 ACTIV1 -0. ACTIV2 -0. THK -0. ULTACT -0. DO 10 I - 1,NPSF1 ACTl(I) -0. ACT2(I) -0. 10 CONTINUE NEWLY • NLAY PCIMO "0. IF (SDEBUG.GE.3) WRITE(SOUT,2030) ******** START LAYER LOOPING *************************** STARTING WITH TOP LAYER, LOOP THROUGH BED LAYERS TO FIND THICKNESS OF ACTIVE LAYER - EACH BED LAYER MUST BE LOOKED AT BECAUSE: I) ACTIVE THICKNESS DEPENDS ON D50 II) ARMORING MAY PREVENT DEVELOPMENT OF FULL ACTIVE LAYER III) COHESIVE LAYERS MAY PREVENT DEVELOPMENT OF FULL ACTIVE LAYER ACT2 CONTAINS CURRENT ESTIMATE OF ACTIVE LAYER CHARACTERISTICS 20 CONTINUE ADD IN THE NEXT LAYER IS THE NEXT LAYER COHESIVE ? PCLYST - LAYCOM(NEWLY,!) + LAYCOM(NEWLY,2) IF (PCLYST.LE.BIND) GO TO 30 IF (SDEBUG.GE.3) WRITE(SOUT,2070) NEWLY,PCLYST,ULTACT,ACTIVE ULTACT • THK ACTIVE - ACTl(l) GO TO 900 30 CONTINUE THK1 - ACTl(l) NEWTHK - LAYTHK(NEWLY) THK2 • THK1 +NEWTHK ACT2(1) - THK2 DO 40 I - 1,NPSF J « I +1 ACT2(J) - (THK1*ACT1 (J) 40 CONTINUE NEWTHK*LAYCOM(NEWLY,I))/THK2 00064000 00065000 00066000 00067000 00068000 00069000 00070000 00071000 00072000 00073000 00074000 00075000 00076000 00077000 00078000 00079000 00080000 00081000 00082000 00083000 00084000 00085000 00086000 00087000 00088000 00089000 00090000 00091000 00092000 00093000 00094000 00095000 00096000 00097000 00098000 00099000 00100000 00101000 00102000 00103000 00104000 00105000 00106000 00107000 00108000 00109000 00110000 00111000 00112000 00113000 00114000 00115000 00116000 00117000 00118000 00119000 00120000 00121000 00122000 00123000 254 ------- c c c c c c c c c c c c c c c c c LOOK AT POTENTIAL FOR ARMORING AT DEPTH ACT2(1). FIND D50 IMMOBILE SAND FRACTIONS IN ACT2 If (IM02.EQ.NPSF) GO TO 100 LOW = IM02 +1 HIGH * NPSF CALL DIAM50( HIGH,LOW,MNPSF,MNPS1,SDEBUG,EOUT, 1 ACT2,DIA, 2 ACFRAC, 3 D50A2 ) ADD IMMOBILE FRACTION TO ARMORING LAYER. ARMOR » THICKNESS OF ARMORING TO STOP SCOUR ARMD » DEPTH OF SCOUR TO PRODUCE ARMOR PCIMO = % IMMOBILE MATERIAL 113 NEW LAYER ARMOR - ARMF*D50A2 PCIMO - 0. DO 50 I «= LOW,HIGH PCIMO « PCIMO -f LAYCOM{NEWLY,I) 50 CONTINUE THKA * THKARM +NEWTHK*PCIMO IF {THKA.GE.ARMOR) GO TO 60 INSUFFICIENT ARMORING TO PREVENT ALL SCOUR ARMD = THK2 +0.1 GO TO 100 COMPUTE ARMORING PROVIDED BY THIS LAYER FIND ACTUAL DEPTH OF SCOUR TO GIVE ARMOR 60 CONTINUE IF (D50A1.GT.O.) GO TO 70 ARMD - ARMOR/PCIMO +THK1 GO TO 100 70 CONTINUE FACT « {D50A2 -D50A1)/NEWTHK ARMD = {THKARM -THK1*PCIMO - 1 ARMF*(D50A1 - THK1*FACT) )/( FACT*ARMF -PCIMO ) 100 CONTINUE FIND BEDFORM THICKNESS FOR MOBILE FRACTIONS IF (IM02.LT.3) GO TO 140 LOW -3 HIGH » IM02 CALL DIAM50( HIGH,LOW,NPSF,NPSF1,SDEBUG,SOUT, 1 ACT2,DIA, 2 ACFRAC, 3 D502 ) RG - D502*SQRT(GRAV*D502)/VISC YD50 - DEPTH/0502 CALL BEDFRMC SDEBUG,SOUT,D502,DUKE,FROUDE, 1 RG, RIPPLE, WARN, DEPTH, YD50., 2 KW541.KW551, 3 ITYPE,THK,NAME ) 00124000 00125000 00126000 00127000 00128000 00129000 00130000 00131000 00132000 00133000 00134000 00135000 00136000 00137000 00138000 00139000 00140000 00141000 00142000 00143000 00144000 00145000 00146000 00147000 00148000 00149000 00150000 00151000 00152000 00153000 00154000 00155000 00156000 00157000 00158000 00159000 00160000 00161000 00162000 00163000 00164000 00165000 00166000 00167000 00168000 00169000 00170000 00171000 00172000 00173000 00174000 00175000 00176000 00177000 00178000 00179000 00180000 00181000 00181100 00182000 255 ------- c c c c c c c c c c c c c c c c c c c c c c c PREDICTED ACTIVE THICKNESS IS THK. IS ACTIVE LAYER BOUNDED BY ACT2? If (THK.LE.THK2) GO TO 200 DOES ARMORING GOVERN ? 140 CONTINUE IF (ARMD.GT.THK2) GO TO 150 IF (SDEBUG.GE.3) WRITE(SOUT,2080) NEWLY,ARMD ACTIVE * ARMD GO TO 900 150 CONTINUE SET UP FOR INCLUDING NEXT LAYER THKARM - THKARM +LAYTHK(NEWLY)*PCIMO AC7IV1 - THK D501 *= D502 D50A1 « D50A2 ACTl(l) - ACT2(1) DO 170 J = 2,NPSF1 ACT1(J) - ACT2(J) 170 CONTINUE IF (SDEBUG.GE.3) WRITE(SOUT,2040) NEWLY,ACT2 (1) ,THK NEWLY - NEWLY -1 IF (NEWLY.GT.O) GO TO 20 NOW AT BOTTOM OF DEFINED BED - STILL INSUFFICIENT MATERIAL TO FORM ACTIVE LAYER. ACTIVE IS COMPOSED OF MATERIAL AVAILABLE - IN VECTOR ACT2 WRITE(SOUT,2000) ACTIVE « ACT2(1) NEWLY - 1 GO TO 900 ************** END OF LAYER LOOPING C C C C c THE TRUE ACTIVE DEPTH IS NOW BOUNDED BY ACTl AND ACT2. USE ITERATIVE METHOD TO FIND TRUE THICKNESS FOR ROBUSTNESS OF SOLN, A FIBONACCI SEARCH IS USED 200 CONTINUE IF (SDEBUG.GE.3) WRITE(SOUT,2040) NEWLY,ACT2(1),THK IF (NEWLY.NE.NLAY) GO TO 210 ACTIVE - THK GO TO 300 210 CONTINUE IF (SDEBUG.GE.3) WRITE(SOUT,2050) *********** START ITERATION LOOP ************************ FIND NEW ESTIMATE OF ACTIVE DEPTH HALF WAY BETWEEN LAST TWO ESTIMATES KOUHT * 1 220 CONTINUE ACTNEW(l) = 0.5*------- c c c c c c c c c c c c c c c c c FORM NEW LAYER, THICKNESS ACTNEW THK1 = ACT1{1) NEWTHK « ACTNEW(l) -THK1 DO 230 J = 2,NPSF1 I * J-l ACTNEW(J) » (THK1*ACT1(J) + NEWTHK*LAYCOM(NEWLY,I))/ACTNEW(1) 230 CONTINUE FIND NEW BEDFORM TYPE & THICKNESS LOW «3 HIGH - IM02 CALL DIAM50( HIGH,LOW,NPSF,NPSF1,SDBBUG,SOOT, 1 ACTNEW,DIA, 2 ACFRAC, 3 D502 ) RG - D502*SQRT(GRAV*D502)/VISC YD50 - DEPTH/0502 CALL BEDFRM( SDEBUG,SODT,D502,DUNE,FROUDE, 1 RG,RIPPLE,WARN,DEPTH,YD50, 2 KW541,KW551, 3 ITYPE,THK,NAME ) IF (SDEBUG.GE.3} WRITE(SOUT,2060) KOUNT,ACTNEW(1),THK CHECK FOR CONVERGENCE RELERR • ABS((ACTNEW(1) -THK)/THK) IF (RELERR.GT.EPSBED) GO TO 240 ACTIVE - ACTNEW(l) GO TO 300 RESET FOR NEXT ITERATION 240 CONTINUE IF (THK.LT.ACTNEW(l)) GO TO 260 DO 250 I » 1,NPSF1 ACTl(I) - ACTNEW(I) 250 CONTINUE THK1 - ACT1(1) GO TO 280 260 CONTINUE DO 270 I » l.NPSFl ACT2(I) - ACTNEW(I) 270 CONTINUE THK2 - ACT2(1) 28& CONTINUE KOUNT - KOUNT +1 IF (KOUNT.LE.BEDKNT) GO TO 290 IF FAILURE TO CONVERGE WE WISH TO REPEAT ACTIVE LAYER CALC3 WITH FULL DEBUG OUTPUT SO PROGRESS TO CONVERGENCE CAN BE STUDIED. v IF (SDEBUG.GE.3) GO TO 285 WRITE(SOUT,2010) BEDKNT WRITE(SOUT,2090) 00243000 00244000 OC245000 00246000 00247000 00246000 00249000 00250000 00251000 00252000 00253000 00254000 00255000 00256000 00257000 00258000 00259000 00260000 00261000 00262000 00263000 00264000 00264100 00265000 00266000 00267000 00268000 00269000 00270000 00271000 00272000 00273000 00274000 00275000 00276000 00277000 00278000 00279000 00''SOOOO 00231000 00282000 00283000 002B4000 002B5000 00286000 00287000 C0288000 00289000 00290000 00291000 00292000 00293000 00294000 00295000 00296000 00297000 00298000 00299000 00300000 00301000 257 ------- 285 C C C C C C C C C C CALL SF.DPRT(MLAY,MNPSF,NLAY,NPSF,SOUT,LAYCOM,LAYTHK) SDE3UG =3 GO 70 5 WRITE{SOUT,2010) BEDKNT STOP 290 CONTINUE GO TO 220 ************ END OF ITERATION LOOP ********************* FINAL CHECK FOR ARMORING 300 CONTINUE IF (ACTIVE.LE.ARMD) GO TO 310 IF (SDEBUG.GE.3) WRITE(SOUT,2080) NEWLY,ARMD ACTIVE = ARMD GO TO 900 310 CONTINUE WE NOW HAVE:- ACTIVE •= THICKNESS OF ACTIVE LAYER PCLYST = PERCENT CLAY +SILT IN NEWLY KiWLY = THE LAYER LAST LOOKED AT If (SDEBUG.GE.3) 1 WRITE(SOUT,2020) ACTIVE,NLAY,NEWLY,PCLYST, 2 NAME(ITYPE),NAME(ITYPE +1) 900 CONTINUE RETURN EHD 00301100 00302000 00303000 00304000 00305000 00306000 00307000 00308000 00309000 00310000 00311000 00312000 00313000 00314000 00315000 00316000 00317000 00318000 00319000 00320000 00321000 00322000 00323000 00324000 00325000 00326000 00327000 00328000 00329000 00330000 00331000 00332000 258 ------- SUBROUTINE ADDTIM( C c C c c c c c c c DELSEC,VR,MON,DAY,HOUR,MIN,SEC, NEWYR,NEWMO,NEWDA,NEWHR,NEWMIN,NEWSEC ) C C c 5 6 THIS ROUTINE ADDS A SPECIFIED NUMBER OP SECONDS (DELSEC) TO A GIVEN DATE (YR,MON,DAY,HOUR,MIN) TO GET A NEW DATE {NEWYR,NEWMO, ETC) PARAMETERS INTEGER YR,MON,DAY,HOUR,MIN,SEC INTEGER NEWYR,NEWMO,NEWDA,NEWHR,NEWMIN,NEWSEC INTEGERM DELSEC LOCAL VARIABLES INTEGER REMD,TEMP INTEGER*4 MTEMP,HCARRY INTEGER DPM(24) DATA DPM/31,28,31,30,31,30,31,31,30,31,30,31, 1 31,29,31,30,31,30,31,31,30,31,30,31/ IBASE= 0 IP(MOD(YR,4).EQ.O) IBASE-12 NEWYR-YR MTEMP * SEC +DELSEC HCARRY - MTEMP/60 NEWSEC - MTEMP - HCARRY*60 MTEMP* HCARRY +MIN HCARRY=MTEMP/60 NEWMIN" MTEMP- HCARRY*60 TEM?= HCARRY + HOUR ICAHRY« TEMP/24 NEWHR- TEMP - 24*ICARRY TEMP- ICARRY + DAY NEWMO" MON REMD" TEMP - DPM(IBASE+NEWMO) IF (REMD) 6,6,7 NEWDA- TEMP RETURN TEMP" REMD NEWMO» tISWMO + 1 IF(NEWMO.LE.12) GO TO 5 NEWMO=1 NEWYR- NEWYR-H IBASE=0 IF(MOD(NEWYR,4).EQ.O) IBASE-12 GO TO 5 END 00004000 00005000 ooooeooo 00007000 OOOOBOOO 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 00044000 00045000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 259 ------- c c c c c c c c c c c c c c c c c c c c c c c c SUBROUTINE BEDFRK( SDEBUG,SOUT,D50,DUNE,FR, 1 RG,RIPPLE,WARN,Y.YD50, 2 KW541,KW551, 3 ITYPE,THK,NAME ) THIS ROUTINE PREDICTS TYPE AND THICKNESS OF BEDPORMS THE METHOD OF PREDICTING BEDFORD TYPE IS BASED ON CHARTS PRESENTED BY VANONI (ASCE HYD;MARCH,1974). THE CHARTS ARE STORED IN TABULAR FORM IN BEDMAP, RGDIR & MAPDIR ARE DIRECTORIES POINTING INTO APPROPRIATE SECTIONS OF BEDMAP. CALCULATIONS OF BEDFORM THICKNESS IS BASED ON IDEAS BY JOPLING (ASCE HYD;MAY,1965). THTS ROUTINE SHOULD BE UPDATED AS NEW DATA BECOMES AVAILABLE. PARAMETERS INTEGER ITYPE,KW541,KW551,SDEBUG,SOUT REAL D50,DUNE,FR,RG REAL RIPPLE,THK,WARN,Y,YD50 REAL NAME(6) LOCAL VARIABLES INTEGER I.MAPL.MAPR INTEGER MAPDIR(6) REAL DF,DFR,FACT,LOGFR,MAXDUN,NO,RD,RDF,RDR,RGL,RGR REAL THKDUN,THKRIP REAL BEDMAP(93),RGDIR(6) DATA BEDMAP/2.505,-0.046,-0.046,3.145,-0.432,-0.432, 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 4.0,-0.495,-0.495,999., 2. S.3,-0. 046, -0.046, 2.778, - 2. Vj I,-0.432,-0.252,3.161, 3.477,-0.839,-0.481,4.0,-! 2.362,-0.046,-0.046,2.505, 2.681,-0.42,0.215,2.778,-0 2.954,-0.42,0*319,3.114,-0 4.0,-1.0,-0.438,999., 2.279,-0.046,-0.046,2.398, 2.653,-0.481,-0.187,2.813, 2.954,-0.553,-0.398,4.0,-! 1.681,-0.046,-0.046,1.716, 2.845,-0.733,-0.155,3.699, 1.0,-10.0,-0.071,1.903,-10 3.0,-10.0,-0.357,999./ 0.252,-0.252, -0.432,-0.252, .155,-0.568,999., -0.215,-0.215, .42,-0.215, .509,-0.398, -0.187,-0.187, -0.481,-0.301, .071,-0.432,999., -0.092,-0.092, -1.222,-0.602,999., .0,-0.071, DATA MAPDIR/1,11,30,52,71,84/ DATA RGDIR/4.5,10.0,16.0,25.0,40.0,BO.O/ DATA NO/' NO1/ WRITE FORMAT 00004000 00005000 00005100 00006000 00007000 00003000 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 00044000 00045000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00057100 00057200 00058000 00059000 00060000 260 ------- c c c c c 2000 FORMAT('0','+++WARNING 541+-M- RG BEYOND RANGE OF AVAILABLE ', 1 'DATA; RG - ' ,E10.3) 2010 FORMAT)'0','BEDFORM CALCS: ',/,lX, 1 'RG - '.E10.3,1 YD50 - ',E10.3,' FR - ',E10.3,/,IX, 2 'RIPPLE/DUNE TRANSITION - ',E10.3,/,IX, 3 'DUNE/FLAT TRANSITION - ',E10.3,/,IX, 4 'BEDFORM - ',2A4) 2020 FORMAT!'0','BEDFORM THICKNESS - ',E10.3) FIND CHARTS EITHER SIDE OF VALUE OF RG. MAPL & MAPR ARE BASE ADDRESSES FOR CHARTS IN BEDMAP TO "LEFT" AND "RIGHT" OF ACTUAL VALUE OF RG DO 20 I - 1,6 IF (RG.LT.RGDIR(I)) GO TO 30 20 CONTINUE RGL ' 80. MAPL -84 RGR * 80. MAPR -84 IF (RG.LT.200.) GO TO 50 KW541 « KW541 + 1 IF (WARN.EQ.NO .OR. KW541.LE.5) 1 WRITE(SOUT,2000) RG GO TO 50 30 CONTINUE IF (I.EQ.l) GO TO 40 RGR - RGDIR(I) MAPR - MAPDIR(I) RGL - RGDIR(I-l) MAPL - MAPDIR(I-l) GO TO 50 40 CONTINUE RGL - 4.5 MAPL « 1 RGR -4.5 MAPR * 1 IF (RG.GT.0.1) GO TO 50 KW541 « KW541 + 1 IF (WARN.EQ.NO .OR. KW541.LE.5) 1 WRITE(SOUT,2000) RG 50 CONTINUE YD50 - ALOGIO(YDSO) INTERPOLATE IN LH CHART TO FIND FROUDE NOS. AT BED FORM TRANSITIONS C C C C C C C C C C C CALL INTERP( KW551,MAPL,SOUT,WARN,YD50,BEDMAP, DF,RD ) CHECK FOR INTERPOLATION BETWEEN CHARTS IF (MAPL.EQ.MAPR) GO TO 100 INTERPOLATION FOR RIGHT HAND CHART TO FIND FROUDE NOS. AT BED FORM TRANSITIONS 00061000 00062000 00063000 00064000 00065000 00066000 00067000 00068000 00069000 00070000 00071000 00072000 00073000 00074000 00075000 00076000 00077000 00078000 00079000 00080000 00081000 00081100 00081200 00081300 00082000 00083000 00084000 00085000 00086000 00087000 00088000 00089000 00090000 00091000 00092000 00093000 00094000 00095000 00096000 00097000 00097100 00097200 00097300 00098000 00099000 00100000 00101000 00102000 00103000 00104000 00105000 00106000 00107000 00108000 00109000 00110000 00111000 00112000 00113000 00114000 261 ------- CALL INTERP( KWD51,MAPR,SOUT,WARN,YD50,BEDMAP, c c c c LINEAR INTERPOLATION BETWEEN CHARTS FOR TRANSITIONS AT VALUE OP RG c c c c c c c c c c c c FACT = (RG -RGL)/(RGR -RGL) RD = RD + FACT*{RDR -RD) DF = DF + FACT* (DFR -DF) 100 CONTINUE YD5C = 10.**YD50 FIND BEDFORM TYPE ITYPE =1 IF (FR.GT.RD) ITYPE =3 IF (FR.GT.DF) ITYPE =5 IF (SDEBUG.GE.3) 1 WRITE(SOUT,2010) RG, YD50 ,FR,RD,DF, NAME (ITYPE) , NAME (ITYPE+1) FIND BEDFORM THICKNESS IF (ITYPE. EQ. 3) GO TO 110 R;?PLE OH FLAT BED - THICKNESS ASSUMED TO BE THE SAME THK «= 0.5*RIPPLE*D50 GO TO 120 DUNE - USE JOPLINGS IDEAS 110 CONTINUE RD = ALOGIO(RD) Dr - ALOGIO(DF) LOGFR " ALOGIO(FR) RDF * 0.5* (RD +DF) FACT = DUNE* ( 1. - ABS (RDF -LOGFR) /(RDF -RD) ) TEZDUS = FACT*Y*0.5 MAXOUN = DUNE*Y*0.5 THKRIP = 0.5*RIPPLE*D50 THK = AMAXKTHKDUN, THKRIP) THK = AMIN1(THK,MAXDUN) 120 CONTINUE IF (SDEBUG.GE.3) WRITE (SOUT, 2020) THK RETURN END 00115000 00116000 00117000 00118000 00119000 C0120000 00121000 00122000 00123000 00124000 00125000 00126000 00127000 00128000 00129000 00130000 00131000 00132000 00133000 00134000 00135000 00136000 00137000 00138000 00139000 00140000 00141000 00142000 00143000 00144000 00145000 00146000 00147000 00148000 00149000 00150000 00151000 00152000 00153000 00154000 00154100 00155000 00156000 00156100 00157000 00158000 00159000 00160000 00161000 262 ------- SUBROUTINE BLEND( C C C C C MLAY,MNPSF,NPSF,SDEBUG,SOUT, NLAY,LAYCOM,LAYTHK ) C C C C C C C C C C BLEND TWO LAYERS PARAMETERS INTEGER MLAY,MNPSF,NLAY,NPSF,SDEBUG,SOUT REAL LAYCOM(MLAY,MNPSF),LAYTHK(MLAY) LOCAL VARIABLES INTEGER I,J,K,MERGE,MERGE1,TOPLAY REAL THIN, THK, THKl/rTHK2 2000 FORMATCO','BLEND LAYERS ',15.' AND ',15) THE THINNEST LAYER WILL BE MERGED INTO THE LAYER ABOVE IT. FIND THINNEST LAYER. TOPLAY - MLAY -1 THIN - LAYTHK(1) MERGE -1 DO 10 I • 2,TOPLAY IF (LAYTHK(I).GT.THIN) GO TO 10 THIN - LAYTHK(I) MERGE -I 10 CONTINUE C C C C C C MERGE 'MERGE1' AND 'MERGE1 MERGE1 - MERGE +1 THK1 « LAYTHK(MERGE) THK2 « LAYTHK(MERGE!) THK - THK1 +THK2 DO 20 I « 1,NPSF LAYCOM(MERGE,I) - ( LAYCOM(MERGE,I)*THK1 + 1 LAYCOM(MERGE1,I)*THK2 )/THK 20 CONTINUE LAYTHK------- SUBROUTINE CLEAN ( IM02,KIAY ,MMPSF ,MNPS1 , NEWLY, NPSF,NPSFl , 1 SDE3UG, SOOT, ACTIVE, BIND, PCLYST,DI A, 2 ACFRAC.ACT1, 3 NLAY, D50,D50IM,PCIMO, LAYCOM, LAYTHK ) ROUTINE TO DO SOME CLEAN U? AFTER ACTIVE LAYER CALCS. SHIFT ACTIVE LAYER INTO THE BED COMPOSITION STORAGE ARRAYS LAYCOM 6 LAYTHK AND RECOMPUTE D5C FOR ACTIVE LAYER PARAMETERS INTEGER IM02 , MLAY , MNPSF , MNPS 1 , NEWLY , NLAY INTEGER NPSF,NPSF1,SDEBUG,SOUT REAL ACTIVE, BIND, D50,D50IK, PCIMO,PCLYST RSAL ACFRAC(NPSF) ,ACT1(NPSF1) ,DIA(NPSF) REAL LAYCOM (M LAY, KNPSF) ,LAYTHK (MLAY) LOCAL VARIABLES INTEGER HIGH,I,J,K,LOW INTEGER LASTLY REAL SUM,THK 2000 FORMAT (' 0 ',' BED COMPOSITION AFTER FORMATION OF ACTIVE LAYER') 2010 FORMAT (/, '0' , 'SUBROUTINE CLEAN1) INITIALIZE DO 10 I «= 1,NPSF1 ACT1(I) =0. 10 CONTINUE SUM =0. D50 -0. D50IM =0. PCIMO =0. LASTLY « NEWLY +1 IF (SDEBUG.GE.3) WRITE (SOOT, 2010) COMBINE WHOLE LAYERS WITHIN ACTIVE DEPTH IF ( LAST LY.GT. NLAY) GO TO 20 SUM =0. DO 30 I = LASTLY, NLAY THK - LAYTHK (I) SUM * SUM +THK DO 30 J - 1,NPSF K = J +1 ACT1(K) « ACTl(K) 30 CONTINUE ACTl(l) o SUM DO 40 J = 2,NPSF1 ACTl(J) * ACT1(J)/SUM 40 CONTINUE C C C C C C C C C C C C C C C C C C LAYCOM (I , J) *THK C C C 20 CONTINUE ADD IN THE PART OF NEWLY WITHIN THE ACTIVE DEPTH. IF PCLYST>BIND THEN NEWLY IS COHESIVE AND SHOULD 00004000 00005000 00006000 00007000 00006000 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 000440.'. 0 00045000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 00062000 00063000 264 ------- c c c c c c c c c c c c c c c c c c c c c NOT BE ADDED HERE. IF (PCLYST.GT.BIND) GO TO 100 THK = ACTIVE -SUM IF (THK.LE.O.) GO TO 100 RESET LR.YER THICKNESS TEMP = LAYTHK(NEWLY) - THK IF (TEMP.GT.l.OE-04) GO TO 70 LAYER UNREALISTICALLY THIN - COMBINE WITH ACTIVE LAYER THK = LAYTHK(NEWLY) ACTIVE - SUM +THK LASTLY = LASTLY -1 GO TO 80 70 LAYTHK(NEWLY) - TEMP 80 CONTINUE ACTl(l) = ACTIVE DO 50 I = 2,NPSP1 J = I -1 ACTl(I) - ( ACT1(I)*SUM + LAYCOM(NEWLY,J)*THK )/ACTIVE 50 CONTINUE . CHECK FOR CREATION OF AN ADDITIONAL LAYER £ BLEND LAYERS IF MORE THAN MLAY HAVE BEEN FORMED. TO ACCEPT RELEASE OF SAND FROM A COHESIVE LAYER, A NULL LAYER IS ADDED IF THE COHESIVE LAYER IS THE TOP LAYER. 100 CONTINUE IF (LASTLY.LE.MLAY) GO TO 110 CALL BLEND( MLAY,MNPSF,NPSF,SDEBUG,SOUT, 1 NLAY,LAYCOM,LAYTHK ) LASTLY = NLAY +1 110 CONTINUE NLAY « LASTLY ADD IN ACT1 LAYTHK(NLAY) = ACT1(1) DO 120 I * 1,NPSF LAYCOM(NLAY,I) - ACTl(I +1) 120 CONTINUE IF (SDEBUG.LT.3) GO TO 200 WRITE(SOUT,2000) CALL SEDPRT( MLAY,MNPSF,NLAY,NPSF,SOUT,LAYCOM,LAYTHK) 200 CONTINUE RECOMPUTE D50 FOR ACTIVE LAYER FOR BOTH MOBILE AND IMMOBILE MATERIAL IF (IM02.LT.3) GO TO 210 LOW «3 HIGH « IM02 CALL DIAM50( HIGH,LOW,NPSF,NPSF1,SDEBUG,SOUT, 1 ACT1,DIA, 2 ACFRAC, 00064000 00065000 00065000 00067000 00068000 00069000 00070000 00071000 00072000 00073000 00074000 00075000 00076000 00077000 00078000 00079000 00080000 OOOB1000 00082000 00083000 00084000 0008SOOO 00086000 00087000 00088000 00089000 00090000 00091000 00092000 00093000 00094000 00095000 00096000 00097000 00098000 00099000 00100000 00101000 00102000 00103000 00104000 00105000 00106000 00107000 00108000 00109000 00110000 00111000 00112000 00113000 00114000 00115000 00116000 00117000 00118000 00119000 00120000 00121000 00122000 00123000 265 ------- 3 D50 ) 00124000 210 CONTi"'. 'E 00125000 C 00126000 IF (IM02.EQ.NPSF) GO TO 230 00127000 LOW = IM02 +1 00128000 HIGH = NP3F 00129000 DO 220 I - LOW,HIGH 0013000C PCIMO - PCIMO -t- ACTld+1) 00131000 220 CONTINUE 00132000 C'.'.'l DIAM50 ( HIGH,LOWrNPSF,NPSFl,SDEBUG,SOUT, 00133000 i ACT1,DIA, 00134000 2 ACFRAC, 00135000 3 D50IM ) 00136000 230 CONTINUE 00137000 C 00138000 RETURN 00139000 END 00140000 266 ------- c c c c c c c c c c c c c c c c SUBROUTINE COHESV( IM02,MLAY,MNPSF,NEWLY,NPSF,NPSF1,SDEBUG, 1 SOUT,TIKINT,ARMF,ASCR,BEDSHR,BSCR,BULKD, 2 CSCR,DSCR,D50IK,PCLYST,ULTACT,ACT1,CRTSHR, 3 SCRCO\',SCREXP, 4 NLAY,RECOMP,LAYCOM,LAYTHK,MASSED ) ROUTINE TO HANDLE SCOUR OF CLAY AND SILT MATERIAL PARAMETERS INTEGER IH02,MLAY,NEWLY,NLAY,NPSF,NPSF1 INTEGER RECOUP,SDEBUG,SOUT REAL ARMF,ASCR,BEDSHR,BSCR,BULKD,CSCR,DSCR REAL D50IM,PCLYST,TIMINT,ULTACT V.3AL ACTl(NPSFl) ,CRTSHR(2) ,LAYCOM(MLAY, MNPSF) REAL LAYTHK(MLAY),MASSED(NPSF) REAL SCRCON<2),SCREXP(2) LOCAL VARIABLES INTEGER HIGH,I,NLAY1 REAL ALPHA,BETA,MINSC,PCIMO REAL REDUCT,REDCT1,REDCT2,SCOUR,THK 2000 FORMAT('0','SCOUR COHESIVE LAYER ',15) 2010 FORMAT(IX,'SIZE FRACTION ',15,' DEPTH RATE OF SCOUR ',E12.5) 2020 FORMAT(IX,'COHESIVE LAYER ',15,' DESTROYED') IF (SDEBUG.GE.3) WRITE(SOUT,2000) NEWLY GET REDUCTION FACTOR FOR OVERLYING SAND THK * ACT1(1) REDCT1 - 1. - THK/ULTACT c c r GET REDUCTION FACTOR DUE TO ARMORING LAYER THK - 0. SIGH » IM02 +1 IF (HIGH.GT.NPSF) GO TO 20 PCIMO - 0. DO 10 I - HIGH,NPSF PCIMO - PCIMO +ACT1(I +1) 10 CONTINUE THK • ACT1(1)*PCIMO 20 CONTINUE REDCT2 - 1. - THK/(ARMF*D50IM) GET SCOUR PARAMETERS REDDCT - AMIN1(REDCT1,REDCT2) ALPHA - ASCR/PCLYST +BSCR BETA - CSCR/PCLYST +DSCR MINSC - l.OE+10 DO 30 I - 1,2 SCOUR - REDUCT*ALPHA*SCRCON(I)* 00004000 00005000 00006000 00007000 00008000 0000900C 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 00044000 00045000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 00062000 00063000 267 ------- c c c c c c c c c c c c c c c 1 (8EDSHR - BETA*CRTSHR(I) }**SCREXP(I) SCOUR = SCOUR/ ( BULKD*(LAVCOM(NEWLY,I) +0.00001) ) IF (SDEBUG.GE. 3) WRITE (SOUT, 2010) I , SCOUR IP (SCOUR. LT.MINSC) MINSC =» SCOUR 30 CONTINUE SCOUR = MINSC*TIMINT SCOUR = DEPTH OF SCOUR IN THE TIME INTERVAL THIS DEPTH MAY BE LIMITED BY THICKNESS OF COHESIVE LAYER, CHANGES IN ARMORING THICKNESS AND CHANGES IN DEPTH OF OVERLYING SAND. THE LAST TWO WILL NOT BE CONSIDERED HERE • THEIR EFFECTS ARE CARRIED TO THE NEXT TIME STEP. IF (SCOUR. LT.LAYTHK (NEWLY)) GO TO 60 LAYER DESTROYED - FIND MASS OF SEDIMENT AFFECTED WRITE (SOUT, 2020) NEWLY DO 40 I = 1,NPSF MASSED (I) = BULKD*LAYTHK (NEWLY) *LAYCOM (NEWLY, I) 40 CONTINUE RECOUP =1 RENUMBER INTERNAL LAYERS NLAY1 = NLAY -1 IF (NEWLY. EQ.NLAY) GO TO 80 LAYTKK (NLAY1) = LAYTHK (NLAY) DO 50 I = 1,NPSF L/iYCOM(NLAYl,I) 50 CONTINUE 80 NLAY " NLAY1 GO TO 100 LAYCOM (NLAY, I ) UPDATE COHESIVE LAYER THICKNESS FIND MASSES OF SEDIMENT REMOVED 60 CONTINUE LAYTHK(NEWLY) - LAYTHK(NEWLY) - SCOUR DO 70 I = 1,NPSF MASSED(I) = BULKD*SCOUR*LAYCOM(NEWLY,I) 70 CONTINUE 100 CONTINUE RETURN END 00064000 00065000 00066000 00067000 00068000 00069000 00070000 00071000 00072000 00073000 00074000 00075000 00076000 00077000 00078000 00079000 00080000 00081000 00082000 00083000 00084000 00085000 00086000 00087000 00088000 00089000 00090000 00091000 00092000 00093000 00094000 00095000 00096000 00097000 00098000 00099000 00100000 00101000 00102000 00103000 00104000 00105000 00106000 00107000 00108000 00109000 268 ------- c c c c c c c c c c c c c c c c c c c c c c c c SUBROUTINE DIAM50( HIGH,LOW,NPSF,NPSF1, 1 SDEBUG,SOUT,ACT2,DIA, 2 ACFRAC, 3 D50 ) THIS ROUTINE COMPUTES DIAMETER OF MATERIAL WITH 50% BY WEIGHT FINER FOR THE RANGE OF PARTICLE SIZE FRACTIONS 'LOW1 TO 'HIGH1 IK THE CURRENT ACTIVE LAYER. THICKNESS AND COMPOSITION OF ACTIVE LAYER ARE STORED IN ACT2 PARAMETERS INTEGER HIGH,LOW,NPSF,NPSF1,EDEBUG,SOUT REAL D50 REAL ACFRAC(KPSF),ACT2(NPSF1),DIA(NPSF) LOCAL VARIABLES INTEGER I REAL COMP50,DD,DX,SUM WRITE FORMAT 2000 FORMAT('0','D50 OF ACTIVE LAYER FOR SIZE RANGE ',13,' TO ', 1 13,' IS - ',E12.5) FIND CULMULATIVE FRACTIONS SUM = 0. DO 10 I - LOW,HIGH SUM - SUM +ACT2(I +1) ACFRAC(I) « SUM 10 CONTINUE COMP50 - 0.5*SUM J - LOW FIND PARTICLE SIZE WITH 50% FINER IN RANGE OF SIZES HIGH TO LOW 20 CONTINUE IF (ACFRAC(I).GE.COMP50) GO TO 30 I « I +1 IF (I.LE.HIGH) GO TO 20 30 IF (I.NE.LOW) GO TO 40 D50 * DIA(I) GO TO 60 40 IF (ACFRACd -1J.NE.O.) GO TO 50 D50 - DIA(I) GO TO 60 INTERPOLATE FOR D50 HERE WE HAVE A KLUDGE TO ELIMINATE DISCONTINUITIES IN D50 CALCS WHEN ACFRAC(1-1) GETS CLOSE TO ZERO. THIS PROBLEM ARISES FROM THE REPRESENTATION OF THE PARTICLE DISTRIBUTION AS A STEP FUNCTION 6 DIA AS A MEDIAN PARTICLE SIZE OVER A RANGE. IDEALLY PARTICLE SIZE DISTR SHOULD BE CONTINOUS. 00004000 00005000 00006000 00007000 00008000 C0009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 00044000 00045000 00047000 00048000 00049000 00050000 00051QOO 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00059010 00059020 00059030 00059040 00059050 269 ------- 00059060 50 CONTINUE 00059070 FACT - 1. - EXP(-100.'ACFRAC(I-1)) 00059080 ACKRAC(I) = COMP50 + FACT*(ACFRAC(I) - COMP50) 00059090 DD = ACFRAC(I) - ACFRAC{I -1) 00060000 DX = COMP50 - ACFRAC(I -1) 00061000 DSO = DIA(1 -1) +(DIA(J) -DIA(I -1))*DX/DD 00062000 00063000 60 •/••iNTIMUE 00064000 I.-' (SDEBUG.GE.3) WRITE (SOUT, 2000) LOW,HIGH,D50 00065000 00066000 RETURN 00067000 END 00068000 270 ------- c c c c c c c c c c c SUBROUTINE DIFFLD( IN,IOUT,MAXRCH,MAXTRB,MFILE,NREA,NSEGS, 1 USERCH,NO,SEDMT, 2 EFLAG, 3 DD,TRBVEC,FACTER,FACTLS, 4 RCHTRB) INPUT DIFFUSE LOADING INFORMATION FOR CHANNEL NETWORK PARAMETERS INTEGER EFLAG,IN,IOUT,MAXRCH,MAXTRB,MFILE,NREA,NSEGS INTEGER DD(2,NSEGS).TRBVEC(NREA),USERCH(MAXRCH) REAL FACTER,FACTLS,NO,SEDMT REAL RCHTRB(MAXTRB) LOCAL INTEGER DD1,DD2,I,IBAS,IPOS,JPOS,NS INTEGER REACH,SEG INTEGER SEGN(5) REAL AREA(5),HEAD(20) READ FORMATS 1000 FORMAT(20A4) 1010 FORMAT(7X,F10.0) 1020 FORMAT(I5,5(I5,F10.0)) 1030 FORMAT(315) C C C C C ; WRITE FORMATS 2000 FORMAT('0',20A4) 2010 FORMAT('0','LSRO MULTIPLIER «',E12.5) 2020 FORMATCO1 ,'EROS MULTIPLIER -',E12.5) 2030 FORMAT(1X,I5,5(I5,F10.1)) 2040 FORMAT(IX,315) 2050 FORMAT('l') INITIALIZE WRITE(IOUT,2050) DO 10 I* 1,NREA TRBVEC(I) -0 10 CONTINUE FIND MULTIPLICATION FACTORS READ(IN,1000) HEAD WRITE(IOUT,2000) HEAD READ(IN,1010) FACTLS WRITE(IOUT,2010) FACTLS IF (SEDMT.EQ.NO) GO TO 20 READ(IN,1010) FACTER WRITE(IOUT,2020) FACTER 20 CONTINUE 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 0001BOOO 00019000 00020000 OOC23 TOO 00022UOO 00023000 00024000 00025000 00026000 00027000 00026000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00041100 00042000 00043000 00044000 00044100 00045000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 271 ------- c c c READ IN TRIE AREAS - THEY WILL BE STORED IN RCHTRIB LATER NOTE: MAX OF 5 TRIE AREAS PER REACH READ(IN,1000) HEAD WRITE(IOUT,2000) HEAD TBAS =1 30 CONTINUE READ(IN,1020) REACH,{(SEGN(I),AREA(I)),1= 1,5) WRITE(IOUT,2030) REACH,((SEGN(I),AREA(I)),1=1,5) IF (REACH.EQ.-l) GO TO 100 IPOS =-1 DO 40 1= 1,5 SEG = SEGN(I) IF (SEG.EQ.0) GO TO 50 IF (SEG.GT.NSEGS) 1 CALL KILL(13,EFLAG,IOUT,SEG,NSEGS} IPOS = IPOS +2 RCHTRB(IBAS +IPOS) «= SEG RCHTP.B(IBAS +IPOS +1) = AREA(I) CONTINUE C C C C C C C 40 50 SET POINTERS INTO RCHTRIB FOR THIS REACH JPOS " NO. OF SEGMENTS FOR THIS REACH JPOS = IPOS/2 +1 RCHTRB(IBAS) =» JPOS TRBVEC(USERCH(REACH)) - IBAS RESET BASE IBAS = IBAS -I-IPOS +2 GO TO 30 C C C C C 100 CONTINUE IF ((IBAS -1).GT.MAXTRB) 1 CALL KILL(8,EFLAG,IOUT,IBAS,MAXTRB) READ FILE* ASSOCIATED WITH SEGMENTS DD(I,1) «= LSRO DD(I,2) •= EROS READ(IN,1000) HEAD WRITE(IOUT,2000) HEAD DO 110 I « 1,NSEGS READ(IN,1030) NS,DD1,DD2 WRITE(IOUT,2040) NS,DD1,DD2 IF (DDl.GT.MFILE) 1 CALL KILL{11,EFIAG,IOUT,DD1,MFILE) IF (DD2.GT.MFILE) 1 CALL KILL(11,EFLAG,IOUT,DD2,MFILE) DD(1,NS) = DD1 DD(2,NS) - DD2 110 CONTINUE RETURN END 00062000 00063000 00064000 00065000 00066000 00067000 00068000 00069000 00070000 00071000 00072000 00073000 00074000 00075000 00076000 00077000 00078000 00079000 00080000 00081000 00082000 00083000 00084000 00085000 00086000 00087000 00088000 00089000 00090000 00091000 00092000 00093000 00094000 00095000 00096000 00097000 00098000 00099000 00100000 00101000 00102000 00103000 00104000 00105000 00106000 00107000 00108000 00109000 00110000 0011100C 0011200C 0011 30.0C 0011400C 00115000 00116000 00117000 00118000 00119000 272 ------- C C C 'H NO' 1 POIN ' •L SE' 'ES ' 'PART1 1 . - ' 'T DE' 'DIME1 •DISC' 1 ICLE ' i i , ,'PTH ' ,'NT D' , ' HARG ' ,' SIZ' •FLOW' 'VALU1 'ISCH1 'E RA' 'E FR1 ,' RAT1 ,'ES ' , ' ARGE ' , 'TES ' , ' ACTI ' SUBROUTINE FILEIN( BGNHR,BGNDAY,BGNMON,BGNYR,ENDHR,ENDDAY, 1 ENDMON,ENDYR,IN,IOUT,MAXRCH,MNPSF3,MREA, 2 NPSFP3,NREA,TBLKSZ,TIMIN, 3 FTN,RCH,USERCH ) INTEGER BGNHR,BGNDAY,BGNMON,BGNYR,ENDHR,ENDDAY,ENDMON,ENDYR INTEGER FILEIJ,I,IN,IOUT,J,K,MAXRCH,MNPSF3,MREA,NPSFP3 INTEGER NREA,REACH,TBLKSZ INTEGER FLNM(NPSFPS),FTN(MREA,MNPSF3),RCH(MREA),USERCB(MAXRCH) INTEGER*4 TIMIN REAL HEADER(31),LABEL(20),VAL(TBLKSZ) DATA HEADER/'REAC' 1 'ES ' 2 'TOTA1 3 ' RAT1 4 'FOR ' 5 ' ON ' / •» 1010 FORMAT(1615) 1020 PORMAT(20A4) * 2010 FORMAT(IX,1615} 2020 FORMAT('0',20A4) INITIALIZE 1ST COLUMN IN EVERY ROM TO -1> IF UNCHANGED BY FURTHER INPUT, THE CORRESPONDING REACH INFORMATION WILL NOT BE WRITTEN TO DISK. DO 10 I-1,NREA FTN(I,1) - -1 10 CONTINUE READ USER LABEL FROM INPUT SEQUENCE READ(IN,1020) (LABEL(I),1-1,20) WRITE(IOUT,2020) (LABEL(I),1-1,20) READ(IN,1020) (LABEL(I),1-1,20) WRITE(IOUT,2020) (LABEL(I),I«1,20) READ FILE NUMBERS FOR FILES TO WHICH FLOW RATES, POINT DEPTHS, AND SEDIMENT DISCHARGE DATA WILL BE WRITTEN DO 20 I-1,NREA READ(IN,1010) REACH,(FLNM(J),J-1,NPSFP3) WRITE(IOUT,2010) REACH,(FLNM(J),0-1,NPSFP3) IF (REACH.LT.O) GO TO 40 REACH - DSERCH(REACH) DO 30 J»1,NPSFP3 FTN(REACH,J) - FLNM(J) 30 CONTINUE 20 CONTINUE 40 CONTINUE CHOSE APPROPRIATE HEADER AND WRITE IT TO EACH DISK FILE (SKIP IF INFORMATION IS NOT TO BE WRITTEN FOR A GIVEN REACH, OR IF THE FILE NUMBER IS EQUAL TO ZERO) C C C C C C C C C C C C C C C C C 00004000 00005000 00006000 00006010 00006100 00006200 00007000 00007100 00008000 00008100 00008200 00008300 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00018100 00018110 00018120 00018130 00018200 00018300 00018400 00018500 00018600 00018700 00018800 00018900 00018910 00018920 00018930 00018940 00018950 00018960 00018970 00019000 00020000 00021000 00022000 00023000 00024000 00024110 00024111 00024120 00024200 00024300 00024400 00025000 00025100 00026000 00027000 00027100 00027200 00028000 273 ------- DO DO 100 110 120 130 900 I=1,NREA IF (FTN(I,1) .EQ.-l) GO TO 800 J=1,NPSFP3 IF (FTN(I,J) .EQ.O) GO TO VAL(i) = HEADER; i) VAL (2) = HEADER (2) VAL(3) = HEADER(3) VAL (4) = RCH(I) VAL (5) = HEADER(4) VAL (6) = HEADER(4) IF (J.NE. 1) GO TO 110 VAL (7) = HEADER (5) VAL (8) = HEADER (6) VAL (9) = HEADER (7) DO 100 K=10,20 VAL(K) = HEADER (4) CONTINUE GO TO 200 CONTINUE IF (J.NE.2) GO TO 130 VAL(7) = HEADER(8) VAL(8) « HEADER(9) VAL(9) = HEADER(IO) VAL(IO) - HEADER(ll) VAL(l.l) = HEADER(12) DO 120 K-12,20 VAI,j:\) ~ HEADER (4) CONTINUE GO TO 200 900 800 IF (J.NE.NPSFP3) GO TO 150 VAL(7) = HEADER(13) VAL(8) = HEADER(14) VAL(9) = HEADER(15) VAL(IO) = HEADER(1€) VAL(ll) - HEADER(17) VAL(12) = HEADER(IB) VAL(13) * HEADER(19) VAL(14) = HEADER(20) DO 140 K=15,20 VAL(K) « HEADER(4) 140 150 200 CONTINUE GO TO 200 CONTINUE VAL(7) «= HEADER(21) VAL(8) = HEADER(22) VAL(9) = HEADER(23) VAL (1C) VAL(ll) VAL (12) VAL (13) VAL(14) VAL(15) VAL(16) VAL (17) VAL(18) VAL (19) VAL (20) HEADER (24) HEADER(25) HEADER (26) HEADER(27) HEADER(28) HEADER (29) HEADER(30) HEADER(Sl) J - 2 HEADER (4) HEADER(4) CONTINUE VAL (21) = BGNHR VAL (22) = BGNDAY 00029000 00029100 00030000 00030100 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 00044000 00045000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 00062000 00063000 00064000 00065000 00066000 00067000 00068000 00068100 00069000 00070000 00071000 00072000 00073000 00074000 00075000 00076000 00077000 00078000 00079000 00080000 00081000 00082000 00083000 00084000 00085000 274 ------- VAL{23) = BGNMON 00086000 VAL(24) = BGNYR 00087000 VAL(25) = ENDHR 00088000 VAL(26) * ENDDAY 00089000 VAL(27) = ENDMON 00090000 VAM28) = ENDYR 0009100C VALC29) = TIMIN OOOS200C VAL(30) = 3 00093000 C 000&4000 DO 700 K=B1,TBLKSZ 00094100 VAL(K) = HEAD5R(4) 0009420C 700 CONTINUE 00094300 C 00094400 FILEIJ = FTN(I,J) 00095000 WRITE(FILEIJ) VAL 00096000 c 00097000 800 CONTINUE 00098000 900 CONTINUE 00099000 RETURN 00100000 END 00101000 275 ------- c C WE C C C C c c c c c c c c c c c c c c c SUBROUTINE GETSON ( FATIND, NREA, RTIND, LEV, 1 ORD,RCH,TRIB, 2 SONIND ) FIND THE ID * OF A SON, GIVEN THE FATHER PARAMETERS INTEGF.R FATIND, NREA, RTIND, SONIND INTEGER LEV (NREA) ,ORD(30) ,RCH (NREA) ,TRIB (NREA) LOCAL INTEGER FATHER,! SONIND= 0 FATHER= RCH( FATIND) 1= RTIND HAVE WE FOUND THE SON? IF(TRIB (I) .NE. FATHER) GO TO 5 'LEV IS ZERO UNTIL A SON IS FOUND. IT THEN BECOMES A FLAG & IS USED TO AVOID SELECTING THE SAME SON TWICE, WHERE A FATHER HAS MORE THAN ONE SON. IF(LEV(I) .NE.O) GO TO 5 SONIND=I RETURN I IS ZERO FOR THE REACH WHICH WILL BE THE FINALLY EXECUTED C.-E IF(I.NE.O) GO TO 2 RETURN END 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 0001200C 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 276 ------- c c c c c c c c c c c SUBROUTINE HDPRNT( YR,MON,DAY,HR,KIN,SEC,EFLAG,HDPOUT,IOUT, 1 KLINES,PRFREQ,REACH,TIMINT, 2 AE,AMBAN,QE,QMEAN,TE,YE,YMEAN, 3 KNTHY,LINEHY,PRMONH,PRYRH, 4 ACCA,ACCQ,ACCY,VOLMON,VOLYR ) PRINT OUT RESULTS OF HYDRAULIC CALCS PARAMETERS INTEGER YR,MON,DAY,HR,Mill,SEC INTEGER EFLAG,HDPOUT,IOUT,KNTHY,LINEHY,MLINES INTEGER PRMONH,PRYRK,PRFREQ,REACH REAL ACCA,ACCQ,ACCY,AE,AMEAN,QE,QMEAN,TE,TIMINT REAL VOLMON,VOLYR,YE,YMEAN LOCAL VARIABLES INTEGER TIMPMO,TIMPR,TIMPYR REAL ABAR,QBAR,YBAR 2000 FORMAT('I1,'RESULTS OF HYDRAULIC ROUTING1,/,'0', 1 'REACH YEAR MO DA HR MIN SEC DEPTH AREA TOP1 2 SX.'DISCH TYPE1,/,' NO.•,T47,'OF1,22X,'M=MEAN',/,IX, 3 T45,'X-SECT',19X,'P-POINT',/) 2010 FORMAT(1X,I3,I7,3I3,2I4,2E10.3,10X,E10.3,' M') 2020 FORMAT(IX,'REACH1,13,' TOTAL FOR MON',14,12X,E12.5) 2030 FORMAT(IX,'REACH',13,' TOTAL FOR YR',15,12X,E12.5) 2040 FORMAT(1X,I3,I7,3I3,2I4,4E10.3,' P') CHECK ERROR FLAG IF (EFLAG.EQ.O) GO TO 150 HDPOUT =3 PRFREQ * KNTHY +1 150 CONTINUE C C C c c c c c c c c c c CHECK FOR PRINTING HEADER IK (LINEHY.NE.O) GO TO 100 WRITE(IOUT,2000) LINEHY - LINEHY +6 100 CONTINUE SET FLAGS KNTHY » KNTHY +1 TIMPR =0 TIMPMO =0 TIMPYR =0 IF (PRFREQ.LT.O) GO TO 10 IS IT TIME TO PRINT OUT? IF (KNTHY.NE.PRFREQ) GO TO 20 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 00044000 00045000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 0005SOOO 00059000 00060000 00061000 00062000 00063000 277 ------- c c c c c c c c c c c c c c c TIMPR =1 EK " OP MONTH 10 IF (Mnr; .EQ.PRMONH) GO TO 20 Ti« •:-; -1 TI'v-'MO =1 IF (YR.EQ.PRYRH) GO TO 20 TIMPYR =1 20 CONTINUE IF (HDPOUT.EQ.2) GO TO 50 PRINTING MEAN Y,A,Q - ACCULMULATE VALUES OVER PRINT INTERVAL ACCY =ACCY +YMEAN ACCA =ACCA 4-AMEAN ACCQ =ACCQ +OMEAN IF (TIMPR.EQ.O) GO TO 900 FIND MEAN VALUES & DO OUTPUT YBAR =ACCY/KNTHY ABAR =ACCA/KNTHY QBAR =ACCQ/KNTHY VOLMON -VOLMON +ACCQ ACCY =0. ACCA -0. ACCQ =0. WRITE(IOUT,2010) REACH,YR,MON,DAY,HR,MIN,SEC,YBAR,ABAR,OBAR LINEHY =LINEHY +1 IF (TIMPMO.EQ.O) GO TO 40 MONTHLY OUTPUT VOLMON =VOLMON*TIMINT WRITE(IOUT,2020) REACH,PRMONH,VOLMON LINEHY =LINEHY +1 VOLYR «=VOLYR +VOLMON VOLMON =0. PRMONH =MON IF (TIMPYR.EQ.O) GO TO 40 YF.ARLY OUTPUT WF.ITE {IOUT, 2030) REACH, PRYRH,VOLYR LINEHY -LINEHY +1 VOLYR =0. PRYRH =YR 40 CONTINUE KNTHY =0 C C c POINT VALUES ? 50 IF (HDPOUT.EQ.l) GO TO 900 IF (TIKPR.EQ.O) GO TO 900 WRITE(IOUT,2040) REACH,YR,MOK,DAY,HR,MIN,SEC,YE,AE,TE,QE LINEHY =LINEHY +1 00064000 00065000 00066000 00067000 00068000 00069000 00070000 00071000 00072000 00073000 00074000 00075000 00076000 00077000 00078000 00079000 00080000 00081000 00082000 00083000 OOOB4000 00085000 00086000 00087000 00088000 00089000 00090000 00091000 00092000 00093000 00094000 00095000 00096000 00097000 00098000 00099000 00100000 00101000 00102000 00103000 00104000 00105000 00106000 00107000 00108000 00109000 00110000 00111000 00112000 00113000 00114000 00115000 00116000 00117000 00118000 00119000 00120000 00121000 00122000 00123000 278 ------- KNTHY =0 00124000 C 00125000 C 00126000 C CHECK LINE COUNT 00127000 C 00128000 900 CONTINUE 00129000 IF ((LINEHY -t-4) .GT.MLINES) LINEHY =0 00130000 C 00131000 RETURN 00132000 END 00133000 279 ------- c c c c c c c c c c c c 2.000 2010 20 20 2C iO 2040 2050 C C C C C c 14 C c SUBROUTINE HYPROP( ELMTS,IBASE,TOUT,MCROS,MPTS,MSECS, 1 MTAD,NPTS,PR,SSECS,NUM,SLOPE,NSSEC,X,Y, 2 EFLAG,LOC,POINT,SSEC,A,P,TK, 3 NLEV,TABLE ) ROUTINE TO COMPUTE HYDRAULIC PROPERTIES OF A X-SECTION AND STORE VALUES IN A TABLE PARAMETERS INTEGER EFLAG,ELMTS,IBASE,IOUT,MCROS INTEGER MPTS,MSECS,MTAD,NLEV.NPTS,PR,SSECS INTEGER LOG(MCROS),POINT(MPTS),SSEC(MPTS) REAL NUM,SLOPE REAL A(MSECS) ,NSSEC (MSECS) ,P(MSECS) ,TABLE (MTAD) REAL TW(MSECS),X(MPTS),Y(MPTS) LOCAL INTEGER CROSNO, I, IFLAG, IL, IL1,1 POINT, IR, IR1 INTEGER ISUB,ISURF,KK,PT,PT1,PT2 REAL AREAT,Al,CON,PERIM,PI,SAREA,SCON,SQRTS,TA,TB REAL TOP,XH/XL,XR,Xl,X2,YMIN,YSURF/yi,Y2 WRITE FORMATS FORMAT(1X,I5,4(3X,E10.4)) FORMAT(IX,'CROSSING NO.',I6,' LOCATION-',16) FORMAT(1X,'IL OUTPUT ',4X,2F12.4,18) FORMAT!IX,'IR OUTPUT ',4X,2F12.4,18) FORMAT(IX,'CENTRE OUTPUT ',2F12.4,I8) FORMAT(IX,'SAREA-',E12.4,' PI*',EJ2.4) SORT CROSS SECTION POINTS IN ASCENDING ORDER OF ELEVATION, USING POINTERS INITIALISE POINTERS DO 9 PT«=1,NPTS POINT(PT)= PT SO?.T LOOP IFLAG=0 DO 14 PT= 2,NPTS PT1= POINT(PT-1) PT2« POINT(?T) IF(Y(PT2).GE.Y(PTl)) GO TO 14 ELEVATIONS ARE OUT OF ORDER - SWITCH THE POINTERS IPOINT= POINT(PT) POINT(PT)= POINT(PT-1) POINT(PT-1 ) = IPOINT IFLAG=1 CONTINUE CHECK WHETHER SORT IS COMPLETE IF(IFLAG.EQ.l) GO TO 7 PT1 = POINT(1) YMITJ- Y(PTl) FIND BOTTOM WIDTH OF SECTION - WE USE SORT INFO OBTAINED ABOVE 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 0001BOOO 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 00044000 00045000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 90055000 00056000 00057000 00058000 00059000 00060000 00061000 00062000 00063000 00064000 280 ------- c c TOP= 0. DO 5 PT= 2,NPTS PT1= POINT (PT-1) PT2= POINT (PT) C IF THE DEPTHS ARE DIFFERENT WE ARE OFF THE BOTTOM I?(Y(PT1) .NE.Y(PT2)) GO TO 11 C IF POINTS ARE NOT CONTIGUOUS, NO INCREMENTAL BOTTOM W IF( (PT2-PT1) .NE.l) GO TO 5 TOP= TOP+X(PT2)-X(PT1) 5 CONTINUE C STORE PROPERTIES FOR BOTTOM LEVEL OF CROSS SECTION IN TABLE 11 TABLE (IBASE)«= 0. TABLE { IBASE+1 ) - TOP TABLE (IBASE+2)= 0. TABLE (IBASE+3)= 0. FIND SECTION PROPERTIES - REPEAT FOR EACH DIFFERENT Y NLEV« 1 I «= I BASE WRITE (IOUT, 2000) NLEV,TABLE (I) , TABLE (1+1) ,TABLE(I+2) , TABLE (1+3) SORTS = SORT (SLOPE) DO 23 ISURF= 2,NPTS PT1= POINT (ISURF-1) PT2= POINT (ISURF) IF(Y(PT2) .EQ.Y(PTl)) GO TO 23 NLEV-NLEV+1 YSURF- Y(PT2) SEARCH FOR POINTS WHERE WATER SURFACE AND CROSS SECT INTERSECT CROSNO» 0 DO 200 PT=1,ELMTS IF(Y(PT).LT.YSURF.OR.Y(PT+1) .GE.YSURF) GO TO 70 FOUND A LEFT HAND CROSSING CROSNO=-CROSNO-H IF (CROSNO.GT.MCROS) 1 CALL KILL(7,EFLAG,IOUT,CROSNO,MCROS) LOC(CROSNO)-PT IF(PR.EQ.O) GO TO 200 WRITE (IOUT, 2010) CROSNO,LOC (CKOSNO) GO TO 200 70 IF(Y(PT) .GE.YSURF. OR. Y(PT-t-l) .LT.YSURF) GO TO 200 FOUND A RIGHT HAND CROSSING CROSNO-CROSNO+1 IF (CROSNO.GT.MCROS) 1 CALL KILL(7,EFLAG,IOUT,CROSNO,MCROS) LOC(CROSNO)-PT IF(PR.EQ.O) GO TO 200 WRITE (IOUT, 2010) CROSNO,LOC(CP,O3NO) 200 CONTINUE SET UP TO COMPUTE AREA,PERIMETER,K,ETC DO 150 I=1,SSECS C C C C c c c c c 150 TW(I)«0.0 P(I)=0. 00065000 00066000 00067000 00068000 00069000 00070000 00071000 00072000 00073000 00074000 00075000 00076000 00077000 00078000 00079000 00080000 00081000 00082000 00083000 00084000 00085000 00086000 00087000 00088000 00089000 00090000 00091000 00092000 00093000 00094000 00095000 00096000 00097000 00098000 00099000 00100000 00101000 00102000 00103000 00104000 00105000 00106000 00107000 00108000 OC109000 00110000 00111000 00112000 001130-00 00114000 00115000 00116000 00117000 00118000 00119000 00120000 00122000 00123000 00124000 00125000 281 ------- c c c c c c c c c c c 20 c c c c c c 30 c c c SET LIMITS FOR LOCATION OF BOUNDARY CHECKS DO 250 KK=1,CROSNO,2 CO<9UTE THE SPECIAL END VALUES ON THE LEFT HAND SIDE IL=LOC(KK) FIND XL VALUE FOE FIRST CHANNEL IL1=IL+1 X1=X(IL) Y1=Y(IL) Y2=Y(IL1) XL=X1+(X2-X1) * (Yl-YSURF) / (Y1-Y2) PUT VALUES INTO SUBSECTION ASSOCIATED WITH IL ISUB=SSEC(IL) TA-X2-XL TB-Y3URF-Y2 A1=0.5*TA*TB P1=SQRT(TA**2+TB**2) TW ( ISUB) =TW (ISUB) +TA A(ISUB)=A(ISUB)+A1 P(ISUB) -P(ISUB)+P1 IF(PR.EQ.O) GO TO 20 w;-'.rrE(iouT,2020) A------- 350 250 c c c c c c c 400 IStB=SSEC(L) Xl=X(L) X2=X{L+1) Yl-YU) Y2=Y(L+1) XH*X2-X1 TA=YSURF-Y1 TB-YSURF-Y2 A1-0.5*(TA4TB)*XK PI-SORT (XH**2-»-cYi-'ir2)**2) TW(ISUB)-TW(ISUB)+XH A(ISUB)-A(ISUB)+A1 P(ISUB)«P(ISUB)+P1 IF(PR.EQ.O) GO TO 350 WRITE (IOUT, 2040) A(ISUB) ,P(ISUB) ,ISUB CONTINUE CONTINUE A,P,ETC HAVE NOW BEEN EVALUATED FOR EACH SUBSECTION TOP-0. AREAT-0. SCON-0. CON'O. PERIM-0. DO 400 I-l.SSECS SAREA-A(I) IF(A(I) .EQ.O) GO TO 400 IF(PR.EQ.O) GO TO 4 WRITE {IOUT, 2050) SAREA,P(I) CONTINUE ARCAT-AREAT+DAREA SCON= (NUM/NSSEC (I) ) *SAREA* (SAREA/P (I) ) **0 .666667 CON=CON+SCON CONTINUE HAVE NOW EVALUATED X-SECTION PROPERTIES SAVE VALUES IN TABLE I-I3ASE+(NLEV-1)*4 TABLE(I)« YSURF-YMIN TABLE(I+1)- TOP TABLE(I+2)- AREAT TABLE(1+3)- CON*SQRTS WRITE(IOUT,2000) NLEV,TABLE(I),TABLE(I+1),TABLE(I+2) 23 CONTINUE RETURN END 00186000 00187000 00188000 00189000 00190000 00191000 00192000 00193000 00194000 00195000 00196000 00197000 00198000 00199000 00200000 00201000 00202000 00203000 00204000 00205000 00206000 00207000 00208000 00209000 0021000D 00211000 00212000 00213000 00214000 00215000 00216000 00217000 00218000 OC219000 00220000 00221000 00222000 00223000 00224000 00225000 00226000 00227000 00228000 00229000 00230000 ,TABLE(1+3)00231000 00232000 00233000 00234000 283 ------- SUBROUTINE INFO( ATBLSZ , IN, IO'JT,MREA,MSEGS,NO,YES, EFLAG, •5GNHR,BGNDAY,BGNMON,BGNYR,ENDHR,ENDDAY,ENDMON, ENDVA,HDPOUT,MLINES,NREA,NSEGS,PRFREQ,TBLKS Z, TIMINT,DIAG,DIFFUS,DISK,NUM,PTLOAD.SEDMT,WARN ) C C C C C C ROUTINE TO READ OPTIONS, SYSTEM PARAMETERS IN BASIC SIZE ETC INFORMATION ABOUT SIMULATION C C C C C C C C C INTEGER ATBLSZ,BGNDAY,BGNHR,BGNMON,BGNYR,EFLAG,ENDDAY,ENDHR INTEGER ENDMON,ENDYR,HDPOUT,IN,IOUT,MLINES,MREA,MSEGS INTEGER NREA,NSEGS,PRFREQ,TBLKSZ INTEGER DIAG(IO) REAL DIFFUS,DISK,NO,NUM,PTLOAD,SEDMT,WARN,YES LOCAL VARIABLES INTEGER DIAGNS,DUM1,I REAL BASIN(20),RUNINF(20) READ FORMATS 1000 FORMAT(20A4) 1010 FORMAT{7X,I5) FORMAT(6X,15) FORMAT(5X,15) FORMAT(4X,F10.0) 1050 FORMAT(6X,A4) FORt-T.'i'(7x', F10.0) FORMAT(5X,A4) 1020 1030 1040 lr:70 1080 WRITE FORMATS 2000 FORMAT;'I1,20A4) 2CJO FORMAT;'0',20A4) 2C2o FORMAT;'O1,'SIMULATION STARTS:*,/,lx, 1 'BGNHR = ',15,/,IX, 2 'BGNDAY «= ' ,15,7, IX, 3 'BGNMON * ',15,/,IX, i 'BGN'::?. = ',15 ) 2.0'ii: FORMAT;'O1,'SIMULATION ENDS:',/,IX, 1 'ENDHR = ',15,/,IX, 2 'EHPDAY = ',15,/,IX, 3 'ENDMON = ',15,/,IX, 4 'fcNDYR = ',15 ) •MODELING INTERVAL = •TIME BLOCK SIZE 'NO. OF REACHES 'NO. OF SEGMENTS < 'NUM (MANNINGS EQN)- 'POINT LOAD OPTION = ,A4) 'DIFFUSE LOAD OPTION = *,A4) •SEDIMENT SIMULATION = ',A4> 'OPTION FOR OUTPUT OF HYDRAULIC RESULTS = ',15) 'MONTHLY PRINT OUT ') 2041 FORMAT('0' 2C-H' FORMAT ('O1 2:vo FORMAT; 'O1 20/0 FORMAT<'0' 2oeo FORMAT;'0' 2090 FORMAT;'O1 2100 FORMAT;'0' 2110 FORMAT;*0' 2120 FORMAT;'0' 2140 FORMAT;'O1 ,F10.0,' SECS') ,15,' INTERVALS ,15) ,15) ,F10. 3) 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00037100 00038000 00039000 00040000 00041000 00042000 00043000 00044000 00045000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 00062000 284 ------- 2150 FORMAT('0' 2155 FORKAT('0' 2160 FORMATCO' 2170 FORMAT('0' 2180 FORMATCO1 2190 FORMATCO1 2200 FORMATfO1 2210 FORMATCO1 1 2220 FORMATCO1 2230 FORMATCO1 2240 FORMATCO' 2250 FORMATCO1 C C C 'NO PRINT OUT1) 'PRINT OUT EVERY ',15,' INTERVALS') 'DIAGNOSTIC OUTPUT OPTION = ',15) '+++ERROR 051+++ILLEGAL OPTION FOR PTLOAD ',A4) '•I-++ERROR 052+++ILLEGAL OPTION FOR DIFFUS ' ,A4) '•i-v+ERROR 053-1-++ILLEGAL OPTION FOR SEDMT ',A4) 'NO. OF LINES PER PAGE OF OUTPUT = ',15) '•h-n-ERROR 054+++ TIKE INTERVAL MUST BE AN EXACT1, 1 DIVISOR OF ONE DAY (8640C SECS) jTIKINT = ',F10.1) 'DISK OUTPUT OPTION = ',A4) 'WARNING MESSAGE SUMMARY OPTION = ',A4) '+++ERROR 055-H++ILLEGAL OPTION FOR DISK ',A4) •+++ERROR Q56-H++ILLEGAL OPTION FOR WARN ',A4) C C C DUMl »0 READ(IN,1000) BASIN WRITE(IOUT,2000) BASIN READ(IN,1000) RUNINF WRITE(IOUT,2010) RUKINF PERIOD COVERED BY SIMULATION READ(IN,1020) BGNHR READ(IN,1010) BGNDAY READ(IN,1010) BGNMON READ(IN,1020) BGNYR WRITE(IOUT,2020) BGNHR,BGNDAY,BGNMON,BGNYR READ(IN,1020) ENDHR READ(IN,1010) ENDDAY READ(IN,1010) ENDMON READ(IN,1020) ENDYR WRITE(IOUT,2030) ENDHR,ENDDAY,ENDMON,ENDYR READ(IN,1070) TIMINT WRITE(IOUT,2040) TIMINT IF (AMOD(86400.,TIMINT).LT.l.OE-06) GO TO 100 WRITE(TOUT,2210) TIMINT EFLAG =1 100 CONTINUE READ(IN,1010) TBLKSZ WRITE(IOUT,2050) TBLKSZ IF (TBLKSZ.NE.ATBLSZ) 1 CALL KILL(1,EFLAG,IOUT,TBLKSZ,ATBLSZ) READ(IN,1030) NREA WRITE(IOUT,2060) NREA IF (NREA.GT.MREA) 1 CALL KILL(2,EFLAGfIOUT,NF!TA,MREA) READ(IN,1020) NSEGS WRITE(IOUT,2070) NSEGS IF (NSEGS.GT.MSEGS) 1 CALL KILL(3,EFLAG,IOUT,NSEGS,MSEGS) 00063000 00064000 00065000 00066000 00067000 00068000 00069000 00070000 0-;07100C 00071100 OOC71200 00071300 00071400 00072000 00073000 00074000 00075000 00076000 00077000 00078000 00079000 00080000 00081000 00082000 00083000 00084000 00085000 00086000 00087000 00088000 00089000 00090000 00091000 00092000 00093000 00094000 00095000 00096000 00097000 00098000 00099000 00100000 00101000 00102000 00103000 00104000 00105000 00106000 00107000 00108000 00109000 00110000 00111000 00112000 00113000 00114000 00115000 00116000 00117000 00118000 285 ------- c c c c c c READ(IN,1040) NUM WRITE(IOUT,2080) NUM RSAD(IN,1060) PTLOAD WAITS. (IQ'JT , 2l>90) PTLOAD IF (FTLOAD.EQ.NO .OR. PTLOAD.EQ.YES) GO TO 110 Et'LAG =1 WRITE(IOUT,2170) PTLOAD 110 READ(IN,1060) DIFFUS WRITE(IOUT,2100) DIFFUS IF (DITFUS.EQ.NO .OR. DIFFUS.EQ.VES) GO TO 120 EFLAG -1 WRITE(IOUT,2180) DIFFUS 120 READ(IN,1050) SEDMT WRITE(IOUT,2110) SEDMT IF (SEDMT.EQ.NO .OR, SEDMT.EQ.YES) GO TO 130 EFLAG =1 WRITE(IOUT,2190) SEDMT 130 READ(IN,1080) DISK WRITE(IOOT,2220) DISK IF (DISK.EQ.NO .OR. DISK.EQ.YES) GO TO 140 EFLAG -1 WRITE(IOUT,2240) DISK 140 READ(IN,1080) WARN WRITE(TOUT,2230) WARN IF (WARN.EQ.NO .OR. WARN.EQ.YES) GO TO 150 EFLAG «1 WRITE(IOUT,2250) WARN 150 READ(IN,1010) HDPOUT WRITE(IOUT,2120) HDPOUT IF (HDPOUT.LT.O .OR. HDPOUT.GT.3) 1 CALL KILL(15,EFLAG,IOUT,HDPOUT,DUM1) READ(IN,1010) MLINES WF.ITE( IOUT, 2200) MLINES RE«VD(IN,1010) PRFREQ IF (PRFREQ) 10,20,30 10 WRITE(IOUT,2140) GO TO 40 20 WRITE(IOUT,2150) GO TO 40 30 WRITE(IOUT,2155) PRFREQ 40 CONTINUE READ(IN,1010) DIAGNS WRITE (10'IT, 2160) DIAGNS SET DIAGNOSTIC FLAGS IF (DIAGNS.NE.10) GO TO 50 00119000 00120000 00121000 00122000 00123000 00124000 00125000 00126000 00127000 00128000 OC129000 00130000 00131000 00132000 00133000 00134000 00135000 00136000 00137000 00138000 00138100 00138200 00138300 0013S400 0013o500 00138600 00138700 00138BOO 00138900 00138910 00138920 00138930 00139000 00140000 00141000 00142000 00143000 00144000 00145000 00146000 00147000 00148000 00149000 00150000 00151000 00152000 00153000 00154000 00155000 00156000 00157000 00158000 00159000 00160000 00161000 00162000 0016300C 00164000 00165000 00166000 286 ------- 00167000 DO 80 I = 1,10 00368000 DIAG(I) = 1 0016900C 80 CONTINUE 00170000 GO TO 70 00171OOC C 00172000 5C DO 60 I = 1,10 00173000 DIAG(I) =0 00174000 IF (DIAGNS.EQ.I) DIAG(I) =1 00175000 60 CONTINUE 00176000 C 00177000 70 CONTINUE 00178000 C 00179000 C 00180000 RETURN 00181000 END 287 ------- c r C C C C C C C C c c c c c c SUBROUTINE INITFL( BGNHR,BGNDAY,BGNMON,BGNYR,DIAGNS,DSK, 1 ENDHR,ENDDAY,ENDMON,ENDYR,IOUT,K, 2 TBLKSZ,TIMINT, 3 ERROR, RBtlFF, 4 CURSOR,KEYS,MULT ) READS LABELS ON INPUT FILES, CHECKS THAT PERIODS COVERED BY AVAILABLE DATA ARE COMPATIBLE KITH STARTING AND ENDING DATES SPECIFIED FOK THE RUN AND SETS FILE CURSORS, READY FOR INPUT PARAMETERS INTEGER BGNHR,BGNDAY,BGNMON,BGNYR,CURSOR,DIAGNS,DSN INTEGER ENDHR,ENDDAY,ENDMON,ENDYR,ERROR,IOUT,K,KEYS INTEGER MULT,TBLKSZ INTEGER*4 TIMINT REAL RBUFF(TBLKSZ) LOCAL INTEGER BGHR,BGDY,BGMO,BGYR,EHR,EDY,EMO,EYR INTEGER I,ITYPE,J,JUMP INTEGER*4 INTVL,ISTART,HARK WRITE FORMATS 2000 FORMAT(IX, 2010 FORMAT(1X, 2020 FORMATCO1 1 2030 FORMATCO' 1 2 2040~FORMAT(1X, 2050 FORMATCO' 1 2 2060 FORMATCO' 1 2 2070 FORMATCO1 1 2080 FORMAT;•0' 1 'READ1,14) I4,2X,2(I2,'/',12,'/',I2,'/',14,IX),215,16,20A4) ,'+++ERROR 121+++FILE NO. ',14,' ENDS SOONER1, 1 THAN REQUESTED ENDING DATE FOR SIMULATION') ,'4++ERROR 122++4 THE SIMULATION TIME INTERVAL ' 'IS NOT A MULTIPLE OF THE TIME INTERVAL ON ', 'FILE NO. ',14) 'KEY=',110) ,'+++ERROR 123++4- A HEADER INDICATING ZERO ', 'DISPLACEMENT HAS BEEN FOUND IN READING FILE ', 'NO. ',14) ,'+++WARNING 124+++ END OF FILE ENCOUNTERED ', 'WHEN INITIALIZING FILE ',l4,/flX, 'DATA FROM HERE ON ARE ASSUMED ZERO') ,'+++ERROR 12S-I-++ FILE INTERVAL AND SIMULATION ' 'START TIME NOT COMPATIBLE ') ,'+++ERROR 126+++ FILE TYPE FOUND IS ',15, 1 FILE TYPE EXPECTED IS ',15) C C C C C READ (DSN) RBUFF IF(DIAGNS.EQ.l) WRITE(IOUT,2000) DSN BGHR= RBUFF(21) BGDY= RBUFF(22) BGMO= RBUFF(23) BGYR= RSr.IF'F(24) DETERMINE TIME OFFSET FOR THIS FILE (HOURS) CALL OFFST( BGHR,BGDY,BGMO,BGYR,BGNHR,BGNDAY,BGNMON,BGNYR,IOUT, ERROR, ISTART ) 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 OOC1200C 00013000 00014000 00015000 00016000 00017000 00018000 0001900C 00-020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 00044000 0004500C 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 00062000 00063000 288 ------- c c EHR- RBUFF(25) EDY= RBU'T(26) EMO= RBUfF(27) EYR= R3UFF(26) INTVL* RBUFF(29) ITi'PE- RBUFF(30) WRITE OUT DETAILS OF THIS FILE WRITE(IOUT,2010) DSN,BGHE,BGDV,BGMO,BGYR,EHR,EDY,EMO,EYR,INTVL, 1 ITYPE,ISTART,(RBUFF(I),1*1,20) CHECK TYPE OF DATA FILE IF (ITYPE.EQ.K) GO TO 50 WRITE(IOUT,2080) ITYPE,K ERROR =1 RETURN 50 CONTINUE CHECK THAT DATASETS ARE LONG ENOUGH IF (EYR-ENDYR) 25,17,24 17 IF (EMO-ENDMON) 25,18,24 18 IF (EDY-ENDDAY) 25,19,24 19 IF (EHR-ENDHR) 25,24,24 25 ERROR"1 WRITE(IOUT,2020) DSN : MULTf) IS NO OF INPUT FILE TIME INTERVALS IN A SIMULATION INT 24 IF (MOD(TIMINT,INTVL).EO.O) GO TO 22 WRITE(IOUT,2030) DSN ERROR .-"I GO TO 23 22 MULT - TIMINT/INTVL COMPUTE OFFSET TO START OF SIMULATION (UNITS ARE DATA TIME INTS 23 I START- ISTART*3600 IF (MOD(ISTART,INTVL).BQ.O) GO TO 30 WRITE(IOUT,2070) ERROR •! RETURN 30 CONTINUE I START - ISTART/INTVL IF(K.EQ.2) GO TO 40 UNCOMPRESSED FILE JUMP PAST EARLY RECORDS, IF NECESSARY JUMP« ISTART/TBLKSZ IF(JUMP.EQ.O) GO TO 20 DO 140 J-1,JUMP READ (DSN) IF(DIAGNS.EQ.l) WRITE(IOUT,2000) DSN 140 CONTINUE ISTART- ISTART-JUMPVTBLKSZ GO TO 20 COMPRESSED FILE. INITIALISATION INVOLVES FINDING VALUES FOR TWO PARAMETrttS, CURSOR() AND KEYS{). SEE COMMENTS IN SUBROUTIN REFIL2 FOR AN EXPLANATION C C C C C C C c c c c 00064000 00065000 00066000 00067000 00066000 00069000 00070000 00071000 00072000 00073000 00074000 00075000 00076000 00077000 00078000 00079000 00080000 00081000 00082000 00083000 00084000 00085000 00086000 00087000 00088000 00089000 00090000 00091000 00092000 00093000 00094000 00095000 00096000 00097000 00098000 00099000 00100000 00101000 00102000 00103000 00104000 00105000 00106000 00107000 00108000 00109000 00110000 00111000 00112000 00113000 00114000 00115000 00116000 00117000 00118000 00119000 00120000 00121000 00122000 00123000 289 ------- c c c WS: SCAN THRU THE COMPRESSED FILE. OFFSET 'HARK' INDICATES THE CURRENT 40 MARK= 0 11-'(I START. NE. 0) GO TO 42 : ZERO DISPLACEMENT KEYS = TBLKSZ IF(DI'>GNS.EQ.l) WRITE (IOUT, 2040) KEYS GO TO 20 42 R3AD(DSN,END=99) RBUFF IF(DIAGNS.EQ.l) WRITE(IOUT,2000} DSN : SCAN THE FILE DO 48 1=1,TBLKSZ IF(RBUFF(I).GE.0.) GO TO 44 : HEADER MARK= ABS(RBUFF(I)) +.1 IK(MARK.NE.O) GO TO 43 WRITE{IOUT,2050) DSN ERROR=1 GO TO 20 43 IF(MARK.LE.ISTART) GO TO 45 : HEADER INDICATES DISPLACEMENT > ISTART, SO WE'RE THERE KEYS" -MARK IF(DIAGNS.EQ.l) WRITE(IOUT,2040) KEYS GO TO 20 45 K7vRK- MARK-1 GO TO 43 44 MARK=MARK+1 IF(MARK.NE.ISTART) GO TO 48 KoYS» I IF(DIAGNS.EQ.l) WRITE{IOUT,2040) KEYS GO TO 20 48 CONTINUE GO TO 42 99 WRITE(IOUT,2060) DSN KEYS- -32760 20 CONTINUE CURSOR = ISTART RETURN END 00124000 00125000 00126000 00127000 00128000 00129000 00130000 00131000 00132000 00133000 00134000 00135000 00136000 0013700C 00138000 00139000 00140000 00141000 00142000 00143000 00144000 00145000 00146000 00147000 00148000 00149000 00150000 00151000 00152000 00153000 00154000 00155000 00156000 00157000 00158000 00159000 00160000 00161000 00162000 00163000 00164000 00165000 290 ------- SUBROUTINE INTERP{ C C C C C C C KW551.MAPL,SOUT,WARN,YD50,BEDMAP, DF,RD ) C C C THIS ROUTINE FINDS FROODE NOS. AT WHICH THE RIPPLE-DUNE (RD) AND DUNE-FLAT (DF) TRANSITIONS OCCUR IN A GIVEN BED FORM CHART FOR A GIVEN VALUE OF Y/D50 PARAMETERS INTEGER KW551,MAPL,SOUT REAL DF,RD,WARN,YD50 REAL BI-:DMAP(93) LOCAL VARIABLES INTEGER ADR REAL DF1,DF2,FACT,NO,RD1,RD2,YD REAL YD501,YD502 DATA NO/1 NO1/ WRITE FORMATS 2000 FORMATED1 . •+++WARNING 551+++ Y/D50 BEYOND RANGE OF AVAILABLE1, 1 ' DATA1,/,lX,•Y/DSO » ',E12.5,' ;BEDMAP BASE ADDRESS = ',15) ADR B MAPL 60 CONTIK-VS YD501 =• BEDMAP(ADR) IF (YD501.GT.100.) GO TO 70 IF (YDSO.LT.YDSOl) GO TO 80 ADR <* ?.DR +3 GO TO 60 70 CONTINUE C C C C C C C C C C C Y/D50 ABOVE RANGE KW551 = KK551 + 1 YD » 10.**YD50 IF (WARN.EQ.NO .OR. KW551.LE.5) 1 WRITE(SOUT,2000) YD,MAPL Rb - BEDMAPfADR -2) DF " BEDMAP(ADR -1) RD « 10.**RD DF - 10.**DF GO TO 100 80 CONTINUE IF (ADR.GT.MAPL) GO TO 90 Y/D50 BELOW RANGE KW551 • KW551 + 1 YD « 10.**YD50 IF (WARN.EQ.NO .OR. KW551.LE.5) 1 WRITE(SOUT,2000) YD,MAPL 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 00012000 00013000 0001400C 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00023100 00023200 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00038100 00039000 00040000 000410CO 00042000 00043000 00044000 00044100 00045000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00055100 00056000 0005700C 00057100 291 ------- c c c c c RD = BEDMAPfADR +1) DF = BEDKAPfADR +2) RD = 10.**RD DF = 10.**DF GO TO 100 VALUE SPANNED IK CHART - DO INTERPOLATION 9C CONTINUE YD501 = BEDMAP(ADP. -3} RD1 = BEDMAPfADR -2) DF1 - BEDMAP(ADR -1) YD502 = BtDMAP(ADR) RD2 = BEDMAP(ADR +1) DF2 - BEDMAP(ADR +2) FACT = (YD50 -YD501)/(YD502 -YD501) RD - RD1 +FACT*(RD2 -RD1) RD = 10.**RD DF = DF1 +FACT*(DF2 -DF1) DF » 10.**DF 100 CONTINUE RETURN END 00058000 00059000 00060000 00061000 00062000 00063000 00064000 00065000 00066000 00067000 00068000 00069000 00070000 00071000 00072000 00073000 00074000 00075000 00076000 00077000 00078000 00078100 00079000 00080000 00081000 00082000 292 ------- c c c c c SUBROUTINE KILL(ICODE,EFLAG,IOUT,Hi,M2) ROUTINE TO REPORT ERRORS INTEGER EFLAG,ICODE,IOUT,M1,M2 WRITE FORMATS 2000 FORMAT( ' C' , '-H-+ERROK 011+-H-T1ME, BLOCK SPECIFIED ',15, 1 ' ;SYSTEM REQUIRES ',15) 2oic FORMAT;'C','+++ERROR 012+-M-NO. REACHES SPECIFIED ',15, 1 ' ;SYSTEM MAXIMUM ',15) 2020 FORMAT('0','+++ERROR 013-H-+NO. SEGMENTS SPECIFIED ',15, 1 ' ;SYSTEM MAXIMUM ',15) 2030 FORMAT! '0' , '+-M-ERROR 0144-t-l-NO. OF X-SECTION POINTS ', 1 'SPECIFIED ',15,' ;SYSTEM MAXIMUM ',15) 2040 FORMAT (' 0 ',' +++ERROR 015+4-t-NO. OF SUB-SECTIONS SPECIFIED ', 1 15,' jSYSTEM MAXIMUM ',15) 2050 FORMA?('0' .'+++ERROR 016+-M-TABLE LENGTH COMPUTED ',15, 1 ' ;SYSTEM MAXIMUM ',15) 2060 FORMATC'O1,'+++ERROR 017-H-t-NO. OF CROSSINGS CROSNO IS ',15, 1 ' ;SYSTEM MAXIMUM ',15) 2070 FORMATCO1,'+++ERROR 018+++LENGTH OF VECTOR RCHTRIB EXCEEDS1, 1 ' SYSTEM MAXIMUM, MAXTRIB ',15) 2080 FORMAT {' 0 ',' +++ERROR 019-M-+LENGTB OF VECTOR RCHPT EXCEEDS1, 1 ''SYSTEM MAXIMUM, MAXPT ',15) 2090 FORMAT{'0','+++ERRGR 020+++NO. OF POINT LOADS SPECIFIED ',15, 1 ' ;SYST!i« MAXIMUM ' ,15) 2100 FORMATCO1 ,'+++ERR. - 021+-M-FILE* SPECIFIED ',15, 1 • ;SYSTl,M MAXIMUM ',15) 2110 FORMAT (' 0 ',' +++ERSCS 022+4-+REACH* SPECIFIED ',15, 1 ' ;SYSTEM MAXIMUM ',15) 2120 FORMATf'01,'-M-+ERROR 023-H-t-SEG* SPECIFIED ',15, 1 ' fSYSTEM MAXIMUM ',15) 2130 FORMATC0','+++ERROR 024+++ LENGTH OF TVEC ',15, 1 ' ;SYSTEM MAXIMUM ',15) 2140 FORMAT('0','+++ERROR 025+++ ILLEGAL PRINT OUT OPTION FOR ', 1 'HYDRAULICS ',15) 2150 FORMAT ( '0 ' , '-t-n-ERROR 026+-*-+ ILLEGAL PRINT OUT OPTION FOR ', 1 'SEDIMENT ',15) 2160 FORMATCO1 , '+-H-ERROR 027+++ ILLEGAL DEBUG OPTION FOR ', 1 'SEDIMENT ',15) 2170 FORMATCO1 , f 4-i-f-ERROR 026+++ REACH ',15,' NOT GIVEN IN ', 1 'NETWORK DESCRIPTION ') 2160 FORMAT('0','-M-+ERROR 029+4-+ NO. OF SIZE FRACTIONS SPECIFIED ', 1 15,' ;SYSTEM MAXIMUM ',15) 2190 FORMAT{'0',' -H-+ERROR 030+++ NO. OF BED LAYERS SPECIFIED ',15, 1 ' jSYSTEM MAXIMUM ',15) 2200 FORMAT('0','+++ERROR 031+++ MODEL REQUIRES A MINIMUM OF 3 ', 1 'PARTICLE SIZE FRACTIONS ;',I2,' FRACTIONS SPECIFIED') C C C C C EFLAG = EFLAG 4l CO TO (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 1 16,17,18,19,20,21 1 WRITE(TOUT,2000) Ml,K2 GO TO 900 ),ICODE 00004000 00005000 00006000 00007000 00008000 00009000 00010000 0001100C 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 00044000 00045000 00046000 00047000 0004SOOO 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 00062000 00063000 293 ------- 2 WRITE(TOUT,2010) M1,M2 GO TO 900 3 WRITE(IOUT,2020) M1,K: GO TO 900 4 WRITE(IOUT,2030) Hl,M2 GO TO 900 5 WRITE(IOUT,2040) M1,M2 GO TO 900 6 WRITE(IOUT,2050) M1,K2 GO TO 900 7 WRITE(IOUT,2060) M1,M2 GO TO 900 8 WRITE(IOUT,2070) M2 GO TO 900 9 WRITE(1007,2080) M2 GO TO 900 10 WRITE(IOUT,2090) M1,M2 GO TO 900 11 WRITE(IOUT,2100) M1,M2 GO TO 900 12 WRITE(IOUT,2110) M1.M2 GO 70 900 13 WRITE(IOUT,2120) M1,M2 GO TO 900 14 WRITE(IOUT,2130) M1.M2 GO TO 900 15 W;:iTE(IOUT,2140) Ml GO TO 900 16 WRITE(IOUT,2150) Ml GO TO 900 IV WRITE(IOUT,2160) Ml GO TO 900 18 WRITE(IOUT,2170) Ml GO TO 900 19 WRITE(IOUT,2180) Ml,K2 GO TO 900 20 WRITE(IOUT,2190) Ml,M2 GO TO 900 21 WRITE(IOUT,2200) Ml GO TO 900 00064000 00065000 00066000 00067000 00068000 00069000 00070000 00071000 00072000 00073000 00074000 00075000 00076000 00077000 00078000 00079000 00080000 00081000 00082000 00083000 00084000 00085000 00086000 00087000 00088000 00089000 00090000 00091000 00092000 00093000 00094000 00095000 00096000 00097000 00098000 00099000 00100000 00101000 00102000 00103000 00104000 00105000 00105000 OOK.7000 00103000 00109000 00110000 00111000 00112000 00113000 00114000 00115000 00116000 00117000 00118000 00119000 00120000 00121000 00122000 00123000 294 ------- «„ , i 00124000 900 Ml =1 00125000 T,-,m,™ 00126000 RETURN 00127000 END 295 ------- c c c c c c SUBROUTINE LOADIN( BGNHR,BGNDAY,BGNMON,BGNYR,ENDHR,ENDDAY, 1 ENDMON,ENDYR,IN,IOUT,MAXPT,MAXRCH,MAXTRB,MFILE, 2 MNPS2,MNPTLD,NPSF,NREA,NSEGS, 3 TBLKSZ,TIM1N,DIAG,USERCH, 4 DIFFUS,NO,PTLOAD,SEDWT,YES, 5 EFLAG,RBUFF, 6 NPTLD,CURSOR,DD,KEYS,MULT,PTDD,PTVEC, 7 RCHPT,TRBVEC, 8 FACTER,FACTFL,FACTLS,FACTSD,RCHTRB ) ROUTINE TO INPUT DIFFUSE & POINT LOADING INFO. READS IN FILE NOS, SEGMENT AREAS ETC 6 INITIALIZE FILES PARAMETERS INTEGER BGNHR,BGNDAY,BGNMON,BGNYR,EFLAG,ENDHR,ENDDAY,ENDMON,ENDYR INTEGER IN,IOUT,MAXPT,MAXRCH,MAXTRB,MFILE INTEGER MNPS2,MNPTLD,NPSF,NPTLD,NREA rNSEGE INTEGER TBLKSZ INTEGER CURSOR(MFILE),DD(2,NSEGS),DIAG{10),KEYS(MFILE) INTEGER MULT(MFILE),PTDD{MNPTLD,MNPS2),PTVEC(NREA) INTEGER RCHPT(MAXPT),TRBVEC(NREA),USERCH(MAXRCH) INTEGER** TIMIN REAL DIFFUS,FACTER,FACTFL,FACTLS,FACTSD REAL NO,PTLOAD,SEDMT,YES REAL RBUFF(TBLKSZ),RCHTRB(MAXTRB) LOCAL INTEGER DSN,I,ITYPE,J 2040 FORMATCO1 ,/,'0' ,'DETAILS OF LSRO FILES: ' ,/,IX, 1 'FILE*',3X,'STARTS',10X,'ENDS',6X,'INTVL TYPE OFFSET', 2 20X,'CONTENTS',/,T36,'(SECS)',5X,'(HOURS)',/) 2050 FORMATCO',/,'0','DETAILS OF EROS FILES: ' ,/,lX, 1 'FILE*',3X,'STARTS',10X,'ENDS',6X,'INTVL TYPE OFFSET', 2 20X,'CONTENTS',/,T36,'(SECS)',5X,'(HOURS)',/> 2060 FORMATCO' ,/,'0* ,'DETAILS OF POINT INPUT FILES:',/, IX, 1 'FILE*1,3X,'STARTS',10X,'ENDS',6X,'INTVL TYPE OFFSET', 2 20X,'CONTENTS'f/,T36,'(SECS)',5X,'(HOURS)',/) 2070 FORMAT(IX,'FLOWS:') 2080 FORMATdX,'SEDIMENT:') C C C C C C C C C c c FIND DIFFUSE & POINT LOADING INFORMATION IF (DIFFUS.EQ.YES) 1 CALL DIFFLD( IN,IOUT,MAXRCH,MAXTRB,MFILE,NREA,NSEGS, 2 USERCH,NO,SEDMT, 3 EFLAG, 4 DD,TRBVEC,FACTER,FACTLS, 5 RCHTRB ) IF (PTLOAD.EQ.YES) 1 CALL PNTLD( IN,IOUT,MAXPT,MAXRCH,MFILE, 2 MNPS2,MNPTLD,NPSF,NREA, 3 USERCH,KO,SEDMT, 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 0001200C 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 00044000 00045000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 0006000C 00061000 00062000 00063000 296 ------- 4 5 6 EFLAG, NPTLD,PTDD,PTVEC,RCHPT, FACTFL.FACTSD C C C C C C C C NOW INITIALISE THESE FILES I) DIFFUSE LOADS IF (DIFFUS.EQ.NO) GO TO 40 DO 30 ITYPE * 1,2 IF (ITYPE.EO.l) WRITE(IOUT,2040) IF (SEDMT.EQ.NO .AND. ITYPE.EQ.2) GO TO 40 IF (ITYPE.EQ.2) WRITE(IOUT,2050) DO 30 J = 1,NSEGS DSN * DD(ITYPE,J) IF (DSN.EQ.O) GO TO 30 CALL INITFL( BGNHR,BGNDAY.BGNMON,BGNYR,DIAG(2),DSN, 1 ENDHR,ENDDAY,ENDMON,ENDYR,IOUT,ITYPE, 2 TBLKSZ,TIHIN, 3 EFLAG,RBUFF, 4 CURSOR(DSN).KEYS(DSN),MULT(DSN) ) 30 CONTINUE II) POINT LOADS 40 CONTINUE IF (PTLOAD.EQ.NO) GO TO 50 WRITE(IOUT,2060) ITYPE «3 DO 70 I - 1,NPTLD WRITE(IOUT,2070) DSN = PTDD(1,1) CALL INITFL( BGNHR,BGNDAY,BGNMON,BGNYR,DIAG(2),DSN, 1 ENDHR,ENDDAY,ENDMON,ENDYR,IOUT,ITYPE, 2 TBLKSZ.TIMIN, 3 EFLAG,RBUFF, 4 CURSOR(DSN),KEYS(DSN),MULT(DSN) J IF (SEDMT.EQ.NO) GO TO 70 WRITE(IOUT,2080) DO 60 J * l.NPSF DSN •= PTDD(I,J+2) IF (DSN.EQ.O) GO TO 60 CALL INITFL( BGNHR,BGNDAY,BGNMON,BGNYR,DIAG(2),DSN, 1 ENDHR,ENDDAY,ENDMON,ENDYR,IDOT,ITYPE, 2 TBLKSZ,TIMIN, 3 EFLAG.RBUFF, 4 CURSOR(DSN),KEYS(DSN),MULT(DSN) ) 60 CONTINUE 70 CONTINUE 50 CONTINUE RETURN END 00064000 00065000 00066000 00067000 00058000 00069000 00070000 00071000 00072000 00073000 00074000 00075000 00076000 00077000 00076000 00079000 00080000 00081000 00082000 00083000 00084000 00085000 00086000 00087000 00088000 00089000 00090000 00091000 00092000 00093000 00094000 00095000 00096000 00097000 00098000 00099000 00100000 00101000 00102000 00103000 00104000 00105000 00106000 00107000 00108000 00109000 00110000 00111000 00112000 00113000 00114000 00115000 00116000 297 ------- SUBROUTINE LUKUP( C C C C C C C C C C C C ITYPE,N,SDEBUG,SOUT,ABSC,CURVE, ORD ) C C THIS IS A GENERAL LOOK UP FOR SINGLE VALUED X-Y TYPE CUP.VES. GIVEN X RETURN Y. S-JALES MAY BE: ITYPE =1 X=LINEAR Y=LINEAR ITYPE =2 X=LOG10 Y=LINEAR PARAMETER INTEGER ITYPE,N,SDEBUG,SOUT REAL ABSC,ORD REAL CURVE(N,2) LOCAL INTEGER I REAL X1,X2,Y1,Y2 C C 2000 FORMAT('0','+++ERROR 561+++ABSCISSA BELOW RANGE IN TABLE ', 1 'LOOK UP ;ABSC = ',E12.5) 2010 FORMAT('0','+++ERROR 562+++ABSCISSA ABOVE RANGE IN TABLE ', 1 'LOOK UP ;ABSC = ',E12.5) 2020 FORMAT('0','+++ERROR 563+-H-ILLEGAL TABLE TYPE SPECIFIED ', 1 ';ITYPE = ',15) C C C C C C IF (ABSC.GE.CURVE(1,1)) GO TO 10 WRITE(SOUT,2000) ABSC STOP 10 CONTINUE DO 20 I = 1,K IF (ABSC.LT.CURVE(I,1)) GO TO 30 20 CONTINUE WRITE(SOUT,2010) ABSC STOP 30 CONTINUE NTYPE = ITYPE +1 GOTO (60,40,50,60),NTYPE LINEAR - LINEAR LOOKUP 40 3 * 1 -1 XI = CURVE(3,1) X2 = CURVE(I,1) Yl = CURVE(J,2) Y2 = CURVE(I,2) OKD = Yl + (ABSC -X1)*(Y2 -Yl)/(X2 -XI) RETURN LOG 10 - LINEAR LOOKUP 50 J = I -1 XI » ALOG10(CURVE(J,1)) X2 = ALOG10(CURVE(I,1)) Yl = CURVE(J,2) 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 00012000 00013000 00814000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00021100 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 00044000 OOC -5000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 00062000 298 ------- Y2 = CU3VE(I,2) 00063000 C:'.:;• •= yi + (ALOGIO(ABSC) -X1)*(Y2 -Y1)/(X2 -Xl> 00064000 RETURN 00065000 C 00066000 c d'coo? >oo C ILLEGAL TYPE 0^068000 C 00069000 60 CONTINUE Ci.'070000 Wt------- SUBROUTINE OFFST( 3GHR, BGDY , BGMO , BGYR, BGNHR, BGNDAY, BGNMON , BGNYR, 00004000 1 2 3 C C C c c c c c c c 1 c c 2000 1 c c c c c c c c c c c c c c 100 c c c c i our, ERROR, : START ) FIND NO. OF HOURS BETVJEEK TWO DATES - BGDY ETC IS THE EARLIER , BGNDAY ETC IS THE LATER PARAMETERS INTEGER BGHR , BGDY , BGMO , BGYR , BGNHR , BGNDAY , BGNMON , BGNYR , IOUT INTEGER ERROR INTEGER* 4 ISTART LOCAL INTEGER DAYS, IBEG,MOK,NN, YEAR INTEGER** BGYR4,BGNYR4, ISTRD, ISTRP INTEGER DPM(24) DATA DPM/31, 28, 31, 30, 31, 30 ,31, 31, 30, 31, 30, 31, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31/ FORMAT { '0' ,'-l-+4ERROR 181+-M-DISPLACEMENT BETWEEN DATES IS ', 'NEGYTIVE - SUBROUTINE OFFST ') CHECK THAT DISPLACEMENT IS POSITIVE ISTART = 0 CONVERSION TO INTEGE?*4 BGYR4 = BGYR BGNYR4 = BGNYR ISTRD - (BGYR4 -1900*15000 4 BGMO*1000 + BGDY*30 +BGHR ISTRP «= (BGNYR4 -1900) *1500C. 4 BGNMON*1000 4 BGNDAY*30 -t- BGNHR IF (ISTRP.GT.ISTRD) GO TO 100 DATES ARE THE SAME If (ISTRP.EQ. ISTRD) RETURN T~JRE IS NEGATIVE DISPLACEMENT Er.POR=l VailTE (IOUT, 2000) RETURN DISPLACEMENT IS NONZERO POSITIVE YEAR = BGYR IBEG = 0 CHECK WHETHER WE SP.-.).' A YEAR BOUNDARY IF {BGNYR. EQ. YEAR) GC TO 250 FIND DAYS TO END 0: YEAR NN = 0 IF(MOD(YEAR,4) .EQ.O) NN «= 12 WON = BGMO 00005000 00006000 00007000 00008000 00009000 00010000 00011000 00012000 00013000 0001400C 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 00044000 00045000 00046000 00047000 00048000 00049000 00050000 00031000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 00062000 00063000 300 ------- c c c 110 IF (MON.GT.12) GO TO 120 I START = ISTART 4 DPM(MON 4 NN) M'J* = MON 4 1 GO TO 110 120 I START = I START - BGDY 4 1 YEAR = YEAR 4 1 SKIP WHOLE YEARS 130 IF(BGNYR.EQ.YEAR) GO TO 140 DAYS = 365 IF (MOD(YEAR,4).EQ.O) DAYS « 366 ISTART = ISTART 4 DAYS YEAR = YEAR + 1 GO TO 130 FIND DAYS IN YEAR TO SECOND DATE 140 NN «= 0 IF (MOD(YEAR,4) .EQ.O) NN «=12 MON = 0 150 MON - MON 4 1 IF (MON.EQ.BGNMON) GO TO 160 ISTART «= ISTART4 DPM(MON4NN) GO TO 150 . 160 ISTART - ISTART 4 BGNDAY - 1 ISTART « ISTART - TBEG CONVERT TO HOURS AND ADJUST FOR BGHR, BGNHR C C C C C C C C C ISTART - ISTART*24 4 BGNHR - BGHR F.t.'TURN DAYS IN YEAR TO FIRST DATE 250 NN - 0 IF(MOD(YEAR,4).EQ.O) NN «12 MON = 0 260 MON - MON 4 1 IF (MON.EQ.BGMO) GO TO 270 IBEG « IBEG 4 DPM(MON 4 NN) GO TO 260 270 IBEG - IBEG 4 BGDY - 1 GO TO 140 END 00064000 00065000 00066000 00067000 00068000 00069000 00070000 00071000 00072000 00073000 0007400C 00075000 00076000 00077000 00078000 00079000 00080000 00081000 00082000 00083000 00084000 00085000 OOOB6000 00087000 00086000 00089000 00090000 00091000 00092000 00093000 00094000 00095000 00096000 00097000 00098000 00099000 00100000 00101000 00102000 00103000 00104000 00105000 00106000 00107000 00108000 301 ------- c c c c c c c c c c c c c c c c c SUBROUTINE PLOAD( IBASE,IOUT,MAXPT,MFILE,MNPS1,MNPS2, 1 MNPTLD,MSTORP,NINTS,NPSF,NTBLK,TBLKSZ,DIAG, 2 MULT,PTDD,RCHPT,FACTFL,FACTSD,NO, 3 SED"J7, YES, INITPT, 4 CURSOR,RBUFF, 5 STORP ) ROUTINE TO ACCUMULATE ALL POINT LOADS FOR PRESENT REACH & STORE IN ARRAY STORP AT APPROPRIATE SIMULATION INTERVAL. TO SIMULATE TBLKSZ INTERVALS WE NEED (TBLKSZ +1) POINT VALU23 PARAMETERS INTEGER IBASE,IOUT,MAXPT,MFILE,MNPS1,MNPS2 INTEGER MNPTS,MSTORP,NINTS,NPSF,NTBLK.TBLKSZ,TBLK1 INTEGER CURSOR(MFILE),DIAG(10),MULT(MFILE) INTEGER PTDDfMNPTLD,MNPS2},RCHPT(MAXPT) REAL FACTFL,FACTSD,NO,SEDMT,YES REAL INITPT(MNPTLD,MNPS1),RBUFF(TBLKSZ) ,STORP(MSTORP) LOCAL VARIABLES INTEGER DSN,FL,FLNUM,I,IBAS,IEND,INTV,1ST,J INTEGER NPSF1,NPT,NROW C C C c c c c c c 2000 FORMATf'O','+++ERROR 151+++CONCENTRATION UNITS NOT YET ', 1 'SUPPORTED FOR SEDIMENT1) SET POINTERS C. BASE VALUES NPT - RCHPT(IBASE) IEND • NINTS +1 TBLK1 - TBLKSZ +1 1ST « 2 IF (NTBLK.EQ.l) 1ST -1 ZERO STORP DO 10 I - l.KSTORP STORP(I) - 0. 10 CONTINUE ADD IN VALUES FOR START OF TIME BLOCK NPSF1 - NPSF -t-1 NROW = RCHPT(IBASE +1) DO 110 I - 1,NPSF1 IBAS - (I -1)*TBLK1 +1 STORP(IBAS) » STORP(IBAS) + INITPT{NROW,I) 110 CONTINUE DO 100 I - 1,NPT NROW - RCHPT(IBASE +1) FLNUK - PTDD(NROW,1) 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00041100 00042000 00043000 00044000 OOC45000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 00062000 302 ------- c c c c c c c c c c c c c c c c FL = PTDD(NROK,2) FOR FL>0 SEDIMENT FILES ARE IN CONCENTRATION UNITS SEDIMENT MASS IS ------- c c c c c SUBROUTINE PNTLD( IN,IOUT,MAXPT,MAXRCH,MFILE, 1 MNPS2,MNPTLD,NPSF,NREA, 2 USERCH,NO,SEDKT, 3 EFLAG, 4 NPTLD,PTDD,PTVEC,RCHPT, 5 FACTFL.FACTSD ) INPUT POINT LOADING INFORMATION PARAMETERS INTEGER EFLAG,IN,IOUT,MAXPT,MAXRCH,MFILE INTEGER MNPS2,MNPTLD,NFSF,NPTLD,NREA INTEGER PTDD(MNPTLD,MNPS2),PTVEC(NREA),RCHPT(MAXPT) INTEGER USERCH(MAXRCH) REAL FACTFL,FACTSD,NO,SEDMT LOCAL INTEGER DDK , FLN, FLNUM, I, IBAS , IPOS , Jf, LSTRCH INTEGER NPT,REACH INTEGER SEDNM(13) REAL HEAD(20) READ FORMATS 1000 FORMAT(20A4) 1010 FORMAT(7X,F10.0) 1020 FORMAT(16I5) WRITE FORMATS 2000 FORMATCO1 ,20A4) 2010 FORMAT{'0','FLOW MULTIPLIER =',E12.5) 2020 FORMATCO1 ,'SEDT MULTIPLIER «',E12.5) 2030 FORMAT(IX,1615) 2040 FORMAT (' 0',' +-H-ERROR 111+-*-+ REACH* MOST BE IN ASCENDING ORDER1) 2050 FORMATC1 ') t I INITIALIZE 1 WRITE(TOUT,2050) DO 10 I = l.NREA PTVEC(I) =0 10 CONTINUE DO 20 I = 1,MNPTLD DO 20 J = 1,MNPS2 PTDD(I,J) »0 20 CONTINUE C C C c c c c c c READ(IN,1000) HEAD WRITE(IOUT,2000) HEAD READ MULTIPLIERS 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 00044000 00045000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 00062000 00063000 304 ------- c c c c c c c c c c c c c c RE?-.ri(IN,1010) FACTFL WRITE(1007,2010) FACTFL IF (SEDMT.EQ.NO) GO TO 30 P.EAD(IN.IOIO) FACTSD WRITE(IOUT,2020) FACTSD 30 CONTINUE READ POINT LOAD FILE NOS READ(IN,1000) HEAD WRITE(IOUT,2000) HEAD LSTRC'.I -0 IBAS «=-! IPOS -0 NPT -0 40 CONTINUE IF (SEDMT.EQ.NO) GO TO 80 HEAD(IN,1020) REACH,FLNUM,FLN,(SEDNM(I),I-1,NPSF) WRITE(IOUT,2030) REACH,FLNUM,FLN,(SEDNM(I),I-1,NPSF) GO TO 90 80 CONTINUE READ(IN,1020) REACH,FLNUM WRITE(IOUT,2030) REACH,FLNUM 90 CONTINUE IF (REACH.EQ.-l) GO TO 100 CHECK REACH! IF (REACH.GE.LSTRCH) GO TO 50 WRITE(IOUT,2040) REACH EFLAG »1 CONTINUE NPT » NPT +1 IF (REACH.EQ.LSTRCH) GO TO 60 IBAS - IBAS + NPT +1 NPT -1 CONTINUE CHECK FILE! IF (FLNUK.GT.MFILE) CALL KILL(11,EFLAG,IOUT,FLNUM,MFILE) IF (SEDMT.EQ.NO) GO TO 110 DO 65 I - 1,NPSF DON - SEDNM(I) IF (DDN.GT.MFILE) CALL KILL{11,EFLAG,IOUT,DON,MFIL™) CONTINUE CONTINUE STORE FILE* IN PTDD IPOS - IPOS +1 50 60 65 110 00064000 00065000 00066000 00067000 00068000 00069000 00070000 00071000 00072000 00073000 00074000 00075000 00076000 00077000 00078000 00079000 00080000 00081000 00082000 00083000 00084000 00085000 00086000 00087000 00088000 00089000 00090000 00091000 00092000 00093000 00094000 00095000 00096000 00097000 00098000 00099000 00100000 00101000 00102000 00103000 00104000 00105000 00106000 00107000 00108000 00109000 00110000 00111000 00112000 00113000 00114000 00115000 00116000 00117000 00118000 00119000 00120000 00121000 00122000 00123000 305 ------- c c c c c c c c PTDD(IPOS,1) = FLNUM IF (SEDMT.EQ.NO) GO TO 120 PTDD(IPOS,2) = FLN DO 70 I = 1,NPSF PTDD(IPOS,I+2) = SEDNM(I) 70 CONTINUE 120 CONTINUE STORE ROWf OF THIS POINT LOAD INFO t NO. OF LOADS RCHPT(IBAS +NPT) = IPOS RCHPT(IBAS) = NPT SET POINTER FOR REACH PTVEC(USERCH(REACH)) =IBAS LSTRCE - REACH GO TO 40 100 CONTINUE NPTLD = IPOS IF {NPTLD.GT.MNPTLD) 1 CALL KILL(10,EFLAG,IOUT,NPTLD,MNPTLD) IF ((IBAS +NPT).GT.MAXPT) 1 CALL KILL(9,EFLAG,IOUT,IBAS,MAXPT) RETURN END 00124000 00125000 0012o':00 00127iiOO 00128000 0012900C 00130000 00131000 00132000 00133000 00134000 00135000 00136000 00137000 00138000 00139000 00140000 00141000 00142000 00143000 00144000 00145000 00146000 00147000 00148000 00149000 00150000 00151000 00152000 00153000 00154000 306 ------- c f+ c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c SUBROUTINE POPOUT ( I OUT, LEVEL, MORDR, NREA , PR, LEV, 1 LEVSTK.RCH, STACK, 2 Fi..AG, J,PTLVST, PTSTAC, SWTCH, 3 KEL,SEQ,VECNO ) W'E USE THIS TO BACK-TRACK FROM A TERMINUS REACH, SETTING UP PROCESSING INFORMATION AS WE GO PARAMETERS I KTEGER FLAG , IOUT , 3 , LEVEL , MORDR , NREA INTEGER PR,PTLVST,PTSTAC,SWTCR INTEGER LEV(NREA) ,LEVSTK (MORDR) ,RCH(NREA) ,REL(NREA) INTEGER SEQ(NREA) , STACK (NREA) ,VECNO(NREA) LOCAL INTEGER K,LVL INTiV.SR RCHID,RICH,SWT 2000 FORMAT(1X,I3,I7,I7,I6) K"= STACK (PTSTAC) LVL- LEV(K) RETURN IF WE ARE GOING TO A HIGHER LEVEL REACH (IE. NOT POPPING UP) IF (LEVEL. GT. LVL) RETURN FLAG IS 0 IF WE ARE RUNNING TOWARD THE ROOT FLAG IS 1 IF WE ARE RUNNING AWAY FROM THE ROOT & HAVE JUST CHANGED DIRECTION FLAG IS 2 IF WE ARE RUNNING AWAY FROM THE ROOT NOW POPOUT FROM THE STACK AS WE PROCESS REACHES 10 RCHID= STACK (PTSTAC) SEQ INDICATES THE SEQUENCE IN WHICH PROCESSING WILL BE DONE 0* Jtl S*:Q(J);= RCHID VECNO IS THE VECTOR t IN WHICH INPUT TO, ( OUTPUT FROM, THIS WILL BE. FOR TERMINUS REACHES 1000 IS ADDED TO THE NUMBER, AS A FLAG TO THE MAIN PROGRAM, BECAUSE OUTPUT FROM THOSE REACHES HAS TO BE TEMPORARILY PLACED IN ANOTHER VECTOR BEFORE BEING ADDED TO THE DESTINATION VECTOR VECNO (RCHID)- 1000 + SWTCR FLAG IS 0 FOR A NON-TERMNUS REACH IF(FLAG.EQ.O) VECNO (RCHID) « SWTCH RICH= RCH (RCHID) IF(LEVSTK(PTLVST) .NE. LEV (RCHID) ) GO TO 20 00004000 00005000 00006000 00007000 000080 .•) REACH 000090'.0 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 00044000 00045000 00046000 00047000 REACH00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 COMBINE TWO BRANCHES & RELEASE A TEMPORARY STORAGE, IF POSSIBLE 00062000 00063000 307 ------- C C SWT= SWTCH-1 IF(SWT.LE.O) GO TO 15 RELEASE A STORAGE VECTOR REL INDICATES THAT VECTOR * ' SWTCH1 MUST BE ADDED TO ' SWTCH-1' i 'SWTCH1 IS THEN TO BE CLEARED SWTCH 15 5;;'.'TCH= SKT PTLVST= PTLVST-1 POPOUT 20 PTSTAC- PTSTAC-1 FLAG=0 WRITE INFO CONCERNING PROCESSING OF THIS REACH IF(PR.EQ.l) WRITE (IOUT, 2000) RICH, J, VECNO(RCHID) ,REL{RCHID) IF (PTSTAC. LE.O) RETURN K*STACK(PTSTAC) LVL= LEV(K) IF ( LEVEL. LE.LVL) GO TO 10 RETURN END C C C C C C 00064000 00065000 00066000 00067000 00068000 00069000 00070000 00071000 00072000 00073000 00074000 00075000 00076000 00077000 00078000 00079000 00080000 00081000 00082000 00083000 00084000 00085000 00086000 00087000 00088000 308 ------- SUBROUTINE PSHDON( ITEM,NREA, 00004000 1 PTSTAC, 00005000 2 STACK ) 00006000 C 00007000 C THIS IS A WRAP-AROUND PUSH-DOWN STACK 00008000 C OOJ109000 C PARAMETERS 00010000 C 00011000 INTEGER ITEM,NREA,PTSTAC OOC12000 INTEGER STACK(NREA) 00013000 C 00014000 IF(PTSTAC.GT.NREA) PTSTAC-0 00015000 PTSTAC- PTSTAC+1 00016000 STACK(PTSTAC)- ITEM 00017000 RETURN 00018000 END 00019000 309 ------- c c c c c c c c SUBROUTINE PSHDWNf IOUT,LEVEL,LSTVEC,MORDR,NREA, 1 RCHID, 2 FLAG,PTLVST,PTSTAC,SWTCH, 3 LEVSTK,STACK ) W~ PUS:: D:>v>'NT TWO STACKS, 'STACK1 & 'LEVSTK'. 'STACK1 CONTAINS REACH NOS AND THE REACH BEING PROCESSED IS ABOUT TO GO IN •LEVSTK" CONTAINS LEVELS AND CONTROLS THE USE OF 'FLOW BUFFERS PARAMETERS INTEGER IOUT,FLAG,LEVEL,LSTVEC,MORDR,NREA INTEGER PTLVST,PTSTAC,RCHID,SWTCH INTEGER LEVSTK(MORDR),STACK(NREA) 2000 FORMATCO' , '+++ERROR 091+++ WE NEED',14,' FLOW STORAGES ', 1 ' - TOO MAN?1) C C c c c c IF(FLAG-l) 1,2,3 1 F:.AG= 1 GO TO 3 2 FLAG= 2 L* LtVEL-1 PTLVST* PTLVST+1 LEVSTK(PTLVST)= L SWTCH= SWTCH + 1 IF(SWTCH.LT.LSTVEC) GO TO 3 (SWTCH+1) BECAUSE WE NEED AN EXTRA VECTOR TO TEMPOARILY STORE OUTPUT FROM TERMINUS REACHES K=SWTCf!rl WRITE(IOUT,2000) K STOP PTSTAC= PTSTAC + 1 STACK(PTSTAC)= RCHID RETURN END 00004000 00005000 00006000 00007000 00008000 00009000 0001000C 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 0004100Q 00042000 00043000 00044000 310 ------- c c c c c c c c SUBROUTINE RCHIN( IN,TOUT,MAXRCK,MCROS,MORDR, 1 MPTS,MSECS,MTAD,NREA,DIAG,HUM, 2 EFI.AG, LEV, LEVSTK,LOC, NEXT, 3 ORDER,POINT,STACK, 4 SSEr.,A,JlSSEC,P,TW,X,Y, 5 0*DR,P.TIND,BASE, 6 NLEVS,NTAB,PROUT,RCH,REL,SEQ,TRIB,USERCK, 1 VECNO,LEN,QSTART,SLOP,TABLE,VOL ) THIS ROUTINE READS IN REACH NETWORK DESCRIPTION, READS IN CHANNEL GEOMETRY INFO., COMPUTES HYDRAULIC INFORMATION AND DETERMINES OPTIMAL REACH ORDER FOR COMPUTATION PARAMETERS INTEGER EFLAG,IN,IOUT,MAXRCH,MCROS,MORDR INTEGER MPTS,KSECS,KTAD,NREA,ORDR,RTIND INTEGER BASE(NREA),DIAG(10),LEV(NREA) INTEGER LEVSTK(MORDR),LOC(MCROS),NEXT(NREA),NLEVS(NREA) INTEGER NTAB(NREA),ORDER(NREA),POINT(MPTS),PROUT(NREA) INTEGER RCH(NREA),REL(NREA),SEQ(NREA) INTEGER SSEC(MPTS),STACK(NREA),TRIB(NREA),USERCH(MAXRCH) INTEGER VECNO(NREA) REAL NUM REAL A(MSECS),LEN(NREA),NSSEC(MSECS),P(MSECS) REAL QSTART(NREA),SLOP(NREA),TABLE(MTAD) REAL TW(MSECS),VOL(NREA),X(MPTS),Y(MPTS) LOCAL INTEGER ELMTS,I,IBASE,J,LEVEL,Ml,NLEV,NPTS INTEGER NR,NT,PR,REACH,SSECS,TABN REAL ELDN,ELUP,SLOPE,SS,YS REAL HEAD(2D) READ FORMATS 1000 FORMAT(20A4) 1010 FORMAT(2I5,3F10.0,2I5,F10.0) 1020 FORMAT(7X,15) 1030 FORMAT(5X,I5) 1040 FORMAT(6X,I5) 1050 FORMAT(9X,F10.0) 1060 FORMAT(2F10.0) 1070 FORMAT(2OX,15) WRITE FORMATS C C C c c c c c c c c c c '2000 FORMAT ('1' ,20A4) 2010 FORMATCO1,' RCH TRIB LEW ELUP ELDN ', 1 ' SLOP NTAB PROUT QSTART1) 2020 FORMATCO1 ,'+++ERROR 061+++ REACH ',15,' SLOPE IS ',E10.3, 1 ' ;TOO SMALL FOR KINEMATIC ROUTING1) 20:<0 FORMAT(1X,2I5,3F10.2,F10.6,2I5,E10.3) 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 OOQ41000 00042000 00043000 00044000 00045000 00046000 00047000 00046000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 00062000 00063000 311 ------- c c c c c c c c c c c c 204C FORMATC ' 0 ' , '4-++ERROR 062+++ ROO'i OF NETWORK NOT DEFINED ',/,lX, 1 'DOWNSTREAM REACH SHOULD BE TRIBUTARY TO -VE REACH*') 2050 FORMATC'O','+-M-ERROR 063+++ TABLE* ',15,' IS REFERRED TO BY', V ' MORE THAN 1 REACH1) 20',, ?'ORMAT('0' ,20A4) 20','. •'OKMAT(///,lX, 'TABLES*' ,15) 1'OoJ FORMAT (IX, 'NPTS=' ,15) 2090 FORMATUX, 'SSECS-' ,15) 2100 FORMAT (IX, 'NSSECC ,11,')-',E12.5) 2110 FORMATC'O1,'+++ERROR 064+++ NO REACH ASSOCIATED WITH TABLE*', 1 15,' SLOPE MISSING') 2120 FORMATC'O1,'GEOMETRIC PROPERTIES FOR REACH*',15) 2130 FORMAT(1X,2F10.2) 2140 FORMATC24X,I5) 2150 FORMATC'O','HYDRAULIC PROPERTIES FOR REACH*',15) 2160 FORMATC'O1,'LEVEL!',5X,'DEPTH1,8X,'TOPW',8X,'AREA',8X, 1 'DISCH') 2170 FORMAT!'0','BASE=',15,' NLEVS*',I5) 2180 FORMATC'O1 , '++-I-ERROR 06 5+++ TABLE* ',15,' IS MISSING FOR ', 1 'REACH* ',15) 2190 FORMAT(///,IX,'INITIAL VALUES:',/,IX, 1 ' RCH DISCHARGE STORAGE',5X,'DEPTH',7X,'TOP') 2200 FORMAT(1X,I5,4(E10.3,2X)) READ REACH PARAMETERS READ(IN,1000) HEAD WRITE(IOUT,2000) HEAD READ(IN,1000) HEAD WRITE(IOUT,2010) RTIND =0 DO 20 NR *= 1,NREA P.EAD(IN,1010) RCH(NR) ,TRIB(NR) ,LEN(NR) ,ELUP,ELDN, 1 NTAB(NR),PROUT(NR),QSTART(NR) SET UP TRANSFORMATION FOR USER/INTERNAL REACH* REACH = RCH(NR) IF (REACH.GT.MAXRCH) 1 CALL KILLU2,EFLAG, TOUT,REACH,MAXRCH) USERCH(REACH) - NR NEGATIVE TRIE INDICATES ROOT OF NETWORK IF (TRIB(NR) .LT.O) RTIND •< NR FIND SLOPE SLOP(NR) = (ELUP -ELDN)/LEN(NR) IF (SLOP(NR).GT.l.E-04) GO TO 10 WRITE(IOUT,2020) NR,SLOP(NR) ZFLAG "1 10 CONTINUE WRITE(IOUT,2030) RCH(NR),TRIB(NR),LEN(NR),ELUP,ELDN, 1 SLOP(NR),NTAB(NR),PROUT(NR),QSTART(NR) 20 CONTINUE 00064000 00065000 00066000 00067000 00068000 00069000 00070000 00071000 00072000 00073000 00074000 00075000 00076000 00077000 00078000 00079000 00080000 00081000 00082000 00083000 00084000 00085000 00086000 00087000 00088000 00089000 00090000 00091000 00092000 00093000 00094000 00095000 0*096000 00097000 00098000 00099000 00100000 00101000 00102000 00103000 00104000 00105000 00106000 00107000 00108000 00109000 00110000 00111000 00112000 00113000 00114000 00115000 00116000 00117000 00118000 00119000 00120000 00121000 00122000 00123000 312 ------- c c c c c c c c c c c c c c c c c c c c c c IF (RTIND.GT.O) GO TO 30 WRITE(IOUT,2040) EFLAG =1 30 CONTINUE CHECK FOR DUPLICATE TABLE* DO 50 I = 1,NREA NT = NTAB(I) DO 40 J = 1,NREA IF (J.EQ.I) GO TO 40 IF (NTAB(J).NE.NT) GO TO 40 WRITE(IOUT,2050) NT EFLAG =1 CONTINUE 40 INITIALIZE BASE REGISTER FOR X-SEC TABLES BASE(I) =0 50 CONTINUE PREPARE TO START LOOP WHICH WILL READ IN GEOMETRIC PROPERTIES OF X-SECTION & COMPUTE HYDRAULIC PROPERTIES READ(IN,1000) HEAD V;RITE(IOUT,2060) HEAD INITIALIZE BASE VALUE FOR TABLE IBASE «1 START LOOP PR « DIAG(3) 60 CONTINUE READ(IN,1020) TABN WRITE(IOUT,2070) TABN IF (TABN.LE.O) GO TO 150 READ(IN,1030) NPTS WRITE(IOUT,2080) NPTS IF (HPTS.GT.MPTS) 1 CALL KILL(4,EFLAG,IOUT,NPTS,MPTS) READ(IN,1040) SSECS WRITE(IOUT,2090) SSECS IF (SSECS.GT.MSECS) 1 CALL KILL(5,EFLAG,IOUT,SSECS,MSECS) NSSEC(I) IS MANNINGS N FOR SUBSECTION I DO 70 I * 1,SSECS READ(IN,1050) NSSEC(I) WRITE(IOUT,2100) I,NSSEC(I) 70 CONTINUE FIND REACH* ASSOCIATED WITH THIS TABLE DO 80 NR = 1,NREA 00124000 00125000 00126000 00127000 0012^000 00129000 00130000 00131000 00132000 00133000 00134000 00135000 00136000 00137000 00138000 00139000 00140000 00141000 00142000 00143000 00144000 00145000 00146000 00147000 00148000 00149000 00150000 00151000 00152000 00153000 00154000 00155000 00156000 00157000 00158000 00159000 00160000 00161000 00162000 00163000 00164000 00165000 00166000 00167000 OC168000 00169000 00170000 00171000 00172000 00173000 00174000 00175000 00176000 00177000 00178000 00179000 00180000 00181000 00182000 00183000 313 ------- NT =• NTAB(NR) IF (N'.r.EQ.TALi!l) GO TO 90 80 '"O^T I HUE WRITE (IOUT, 2110) TABN JJFLAG =1 I.;-1 -I 90 C '.iNTINUE c c c c c c = RCH (NR) V:RITE(IOUT, 2120) REACH READ(IN,1000) HEAD WRITE ([OUT, 2060) HEAD C C c c c c c c c c READ GEOMETRIC PROPERTIES:- fSEC IS THE NO. OF THE SUBSECTION' OF THE X-SECTION TO WHICH THE SEGMENT BOUNDED BY POINTS I & 1+1 BELONGS DO 100 I = 1,NPTS P.EAD(IN,1060) X (I) ,Y (I) Ilf (I.NE.NPTS) READ(IN,1070) SSEC(I) Wt-'JTE (IOUT,2130) X(!),Y(I) IF (I.HE.NPTS) WRITE(IOUT,2140) SSEC(I) 100 CONTINUE INITIALIZE WRITE(I OUT,2150) REACH WRITE(IOUT,2160) ELM.TS = NPTS -1 SL'J-.'E = SLOP(NR) DO CALCS FOR HYDRAULIC PROPS CALL HYPROP( ELMTS,IBASE,IOUT,MCROS,MPTS,MSECS,MTAD, 1 NPTS,PR,SS SCS,NUM,SLOPE,NSSEC,X,Y, '*. EFLAG,LOC,POINT,SSEC,A,P,TW, 3 NLEV,TABLE ) STORE BASE REGISTER & NO. OF LEVELS H.-.SE(NR) = IBASE l^.EVS (NR) = NLEV If (?r?.NE.O) WRITE (IOUT, 2170) IBASE,NLEV RESET BASE REGISTER FO? NEXT TABLE IBASE = IBASE +NLEVM GO TO 60 150 CONTINUE END CROSS-SECTION LOOP CHECK TABLE ADDRESSES Ml = IBASE -1 IF (Ml.GT.MTAD) 00184000 00185000 0018SOOO 00187000 001S8000 00189000 00190000 00191000 00192000 00193000 00194000 00195000 00196000 00197000 00193000 00199000 00200000 00201000 00202000 00203000 00204000 00205000 00206000 00207000 00208000 00209000 00210000 00211000 00212000 00213000 00214000 OC215000 OC.'-.6000 oo::7ooo 00218000 00219000 00220000 00221000 00222000 00223000 00224000 00225000 00226000 00227000 00228000 00229000 00230000 00231000 00232000 00233000 00234000 00235000 00236000 00237000 00238000 00239000 00240000 00241000 00242000 00243000 314 ------- c c c c c c c c c c c c 1 CALL KILL(6,EFLAG,IOUT,KI,MTAD) CHECK THAT ALL X-SECTIONS ARE IN TABLE DO 160 I = l.NREA IF (BASE(I).NE.0) GO TO 160 NT - NTAB(I) WRITE(IOUT,2180) NT,I 160 CONTINUE COMPUTE STARTING STORAGES FOR NETWORK WRITE(IOUT,2190) DO 170 I » 1,NREA CALL STORGE{ BASE(I),IOUT,MTAD, 1 NLEVS(I),RCH(I),LEN(I),QSTART(I).TABLE, 2 LEVEL,SS,TS,YS ) WRITE(IOUT,2200) RCH(I),OSTART(I),SS,YS,TS VOL(I) *SS 170 CONTINUE ANALYSE THE REACH NETWORK CALL RSORT( IOUT,MORDR,NREA,DIAG(4),RTIND,RCH, 1 TRIE, 2 LEV,LEVSTK,NEXT,ORDER,REL,STACK, 3 ORDR,SEQ,VECNO) END OF PROCESSING RETURN END 00244000 00245000 00246000 00247000 00248000 00249000 00250000 00251000 00252000 00253000 00254000 00255000 00256000 00257000 00258000 00259000 00260000 00261000 00262000 00263000 00264000 00265000 00266000 00267000 00268000 00269000 00270000 00271000 00272000 00273000 00274000 00275000 315 ------- c c c c c c c c c c c SUBROUTINE F.EFILl ( DIAGNS , DSN , IBASE, TOUT, MSTOR, MUL, 1 TBLKSZ, 2 CUR,RBUFF, 3 STOR ) THXS ROUTINE READS DATA FROX. FILES CONTAINING UNCOMPRESSED ARM-TYPE RECORDS TO A BUFFER (RBUFF) AND THEN FILLS A STORE (STOR) WITH CORRECTLY JUSTIFIED SIMULATION INPUT, I? NECESSARY ACCUMULATING SUCCESSIVE VALUES TO PROVIDE A TIME SERIES WITH THE CORRECT TIME INTERVAL PARAMETERS INTEGER CUR,DIAGNS,DSN,IBASE,IOUT INTEGER MSTOR,MUL.TBLKSZ PiAL RBUFF(TBLKSZ},STOR(MSTOR) 2000 FORMAT(IX'READ1,14) 2010 FORMAT(1X,10E12.4) 2020 FORMAT(IX,'BACKSPACE ',14) 2030 FORMAT('0','+++ERROR 131+4+END OF FILE ENCOUNTERED 1 'ON UNIT* ',14) C C c READ (DSN,END=99) RBUFF IF(DIAGNS.EQ.1) WRITE(IOUT,2000) DSN DO 10 J=l,TBLKSZ TEMPO , KK= MUL 1=1 IF((CUR+I).GT.TBLKSZ) GO TO 8 TEMP =TEMP+RBUFF(CUR+I) 1= 1 + 1 IF (I.GT.KK) GO TO 5 GO TO 2 KK= MUL - I + 1 CL'R»0 RtlAD (DSN, END-99) RBUFF IFJDIAGNS.EQ.1) WRITE(IOUT,2000) DSN 1 = 1 GO TO 2 cr;?.= CUR + 1-1 STOR(IBASE+J)= TEMP 10 CONTINUE WRITE(IOUT,2010) (STOR(L) ,L«=IBAS,IJ) 17,18,17 IJ=IBASE+J-1 IBAS=IBASE+1 IFfDIAGNS.EQ.l Ir'(CUR-TBLKSZ) 17 BACKSPACE DSN IF(DIAGNS.EQ.l) WRITE(IOUT,2020) DSN GO TO 20 IB CUR=0 GO TO 20 99 WRITE(IOUT,2030) DSN 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 0003.4000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 00044000 00045000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 00062000 00063000 316 ------- 00064000 STOP Q0065000 C G0066000 20 CONTINUE 00067000 RETURN 00068000 END 317 ------- c c c c c c c c c c c c c c c c c c c c c c c c c c c c SUBROUTINE REFIL2( CUR,DIAGNS,DSN,IBASE,IOUT,MSTOR,MUL, 1 NTBLK,TBLKSZ, 2 KEY,RBUFF, 3 STORE ) THIS SUBROUTINE READS DATA FROM A COMPRESSED-RECORD ARM-TYPE FILE, IT EXPANDS THE DATA & AGGREGATES IT, IF REQUIRED, TO FILL AN ARRAY 'STORE' WITH DATA READY FOR SIMULATION PARAMETERS INTEGER CUR,DIAGNS,DSN,IBASE,IOUT INTEGER KEY,MSTOR,MUL,NTBLK,TBLKSZ REAL RBUFF(TBLKSZ),STORE(MSTOR) LOCAL VARIABLES INTEGER DISP,ERROR,I,IFIRST,II,IJ,IK,ISTART,J,KK INTEGER NOZ,NUMBR,POS,REMZER REAL TEMP,VALUE WRITE FORMATS 2C''0 FORMAT (IX,'FILE-',14,' KEY-',IB) 2C-10 FORMAT{1X,'CUR=',I10,' MUL-',110) 2t!-'0 FORMAT (IX,'BACKSPACE ',14) 21 iO FORMAT(IX,'READ ',14) 2340 FORMAT(1X,I4,E12.5) 2050 FORMAT{'0','+++£RROR 141+-M- A HEADER INDICATING ZERO ', 1 'DISPLACEMENT HAS BEEN FOUND IN READING FILE ', 2 'NO. ',14) 2060 FORMAT(1X,'REMZER-',I8) 2070 FORMAT(1X,'REMZER-',18,' N02-',I8) 2060 FORMATCO1 , '-n-l-ERROR 142+++ KEY WITH VALUE ',116,' WAS NOT ', 1 'FO'JSD FOR FILE NO. ',14) 209C FORMAT {'0','+-H-KARNING 143+++ END OF FILE ENCOUNTERED ON UNIT ', I 14,/,IX,'DATA FOR REMAINING TIME IS ASSUMED ZERO1) 2 IOC FORMATCO1 ,'TIME BLOCK ',16,' DSN',14) FORMAT(1X,10E12.5) COR IS THE DISPLACEMENT BETWEEN THE START OF THE FILE I THE START OF SIMULATION, IN FILE TIME INTERVALS KK COUNTS ITEMS BEING ACCUMULATED IN 'TEMP' TO FORM A SINGLE SINGLE OUTPUT ITEM IN 'STORE1. I COUNTS THE NUMBER OF ITEMS PLACED IN STORE 'KEY1 IS A VALUE PASSED FROM PREVIOUS CALLS OF THIS ROUTINE OR, IF THIS IS THE FIRST CALL, FROM THE INITIALISATION ROUTINE. IF IT'S POSITIVE IT INDICATES THAT THE LAST VALUE PROCESSED FROM THE COMPRESSED FILE WAS POSITIVE. 'KEY1 IS THE POSITION OCCUPIED IN 'RBUFF1 BY THAT VALUE. IF IT'S NEGATIVE IT IS EQUAL TO THE LAST VALUE READ FROM THE BUFFER, WHICH WAS A HEADER INDICATING THAT THE NEXT NON-NEGATIVE VALUE WAS FOR A TIME BEYOND THAT TIME BLOCK. 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 000*4000 0004SOOO 00046000 00047000 00043000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 00062000 00063000 318 ------- IF(DIAGNS.EQ.l) WRI1E(IOUT,2000) DSN,KEY IF(DIAGNS.EQ.l) WRITE(IOUT,2010) CUR.MUL ERROR =0 ISTART=1 TKM:-»=0. 1=0 IFIRST= 0 IF(KEY.LT.O) GO TO 60 POS= KEY 5 IF(POS.EQ.TBLKSZ) GO TO 10 POS= POS+1 C If WE ARE STARTING A TIME BLOCK WE NEED TO RE-READ THE C LAST COMPRESSED RECORD IFCSTART.EQ.O) GO TO 15 BACKSPACE DSN I'-'(DIAGNS.EQ.l) WRITE (IOUT, 2020) DSN GO TO 11 10 POS=1 11 READ(DSN,END=99) RBUFF ISTART=0 IF(DIAGNS.EQ.I) WRITE(IOUT,2030) DSN C GET NEXT ITEM FROM THE READ BUFFER 15 VALUE= RBUFF(POS) IF(DIAGNS.EQ.l) WRITE(IOUT,2040) POS,VALUE C IS THIS A HEADER OR A 'TRUE' VALUE IP(Vr\LUE.LT. (-.1) ) GO TO 25 C ADD TO TEMP TEMP- TEMP+VALUE KK* KK+1 C FINISHED WITH ^CUMULATION? IF(KK.NE.MUL) GO TO 5 I" 1 + 1 STORE (IBASE+I)«= TEMP KK-0 TEMF=0. C IS 'STORE1 FULL? IF(I.NE.TBLKSZ) GO TO 5 C SET KEY FOR NEXT TIME BLOCK KL"V= POS GO TO 89 C WE HAVE ENCOUNTERED A HEADER 25 DISP= ABS(VALUE) +.1 C IF DISP IS ZERO WE HAVE AN ERROR CONDITION IF (DISP.GT.O) GO TO 27 WRITE (IOUT,2050) DSN ERROR-1 GO TO 89 C FIND DISPLACEMENT IN INPUT FILE BETWEEN LAST ITEM WRITTEN C TO 'STORE1 f. LAST ZERO IN THIS SEQUENCE 27 REMZER1* DISP-CUR- ( (NTBLK-1) *TBLKSZ + I) *MUL -1 IF(DIAGNS.EQ.l) WRITE.(IOUT, 2060) REMZER C DO ZEROS GO BEYOND THIS SIMULATION INTERVAL? IF(REMZER.GE.MUL) GO TO 40 C INCREASE K TO ACCOUNT FOR ZEROS KK= REMZER GO TO 5 C ZEROS GO BEYOND THIS SIMULATION INTERVAL 40 I« 1+1 STORE(IBASE+I)- TEMP 00064000 00065000 00066000 00067000 00063000 OC069000 00070000 00071000 00072000 00073000 00074000 00075000 00076000 00077000 00078000 00079000 00080000 00081000 00082000 00083000 00084000 00085000 00086000 OOOB7000 00088000 00089000 00090000 00091000 00092000 00093000 00094000 00095000 00096000 00097000 00098000 00099000 00100000 001010-00 00102000 00103000 00104000 00105000 00106000 00107000 00108000 00109000 00110000 00111000 00112000 00113000 00114000 00115000 00116000 00117000 00118000 00119000 00120000 00121000 00122000 00123000 319 ------- c c c c c IS STORE() FULL? IF(I.NE.TBLKSZ) GO TO 61 KEY- -DISP GO TO 89 WE HAVE A NEGATIVE VALUE FOR 'KEY1 IT'S A HEADER 60 DISP- lABS(KEY) IFIRST*! REMZER IS THE DISPLACEMENT BETWEEN THE LAST ITEM WRITTEN TO STORE() & THE LAST ZERO IN THIS SEQUENCE 61 REMZER- DISP-CUR-((NTBLK-1)*TBLKSZ+I)*MUL -1 C FIND NO OF ZEROS TO INSERT IN STORE() NOZ- REMZER/MUL IF(DIAGNS.EQ.l) WRITE(IOUT,2070) REMZER,NOZ C WRITE ZEROS INTO STORE{) IF(NOZ.EQ.O) GO TO 65 IF(NOZ.GE.(TBLKSZ-I)) GO TO 70 DO 64 J-1,NOZ I« 1+1 64 STORE(IBASE+I)- 0. C GET READY TO START ACCUMULATING A NEW VALUE FOR STORE() 65 KK- REMZER- NOZ*MUL TEMP-0. C IF WE CAME HERE WITH A NEGATIVE VALUE FOR 'KEY' WE HAVE TO FIND C THE PLACE IN THE COMPRESSED RECORD FROM WHICH IT CAME IF(IFIRST.NE.l) GO TO 5 IFIRST- 0 BACKSPACE DSN IF(DIAGNS.EQ.l) WRITE(IOUT,2020) DSN READ(DSN) RBUFF IF(DIAGNS.EQ.l) WRITE(IOUT,2030) DSN DO 68 J-l.TBLKSZ IF(RBUFF(J).GT.O.) GO TO 68 NUMBR- RBUFF(J)-.l IF(NUMBR.EQ.KEY) GO TO 69 68 CONTINUE WRITE(IOUT,2080) KEY,DSN ERROR- 1 GO TO 89 69 POS- J ISTART* 0 GO TO 5 C ALL REMAINING LOCATIONS IN STORE() NEED ZEROS 70 II- 1+1 DO 72 I«II,TBLKSZ 72 STORE(IBASE+I)- 0. KEY- -DISP GO TO 89 99 WRITE(IOUT,2090) DSN DISP" 32760 GO TO 40 C 89 IF(DIAGNS.NE.l) GO TO 90 10- IBASE +1 IK- IBASE +TBLKSZ WRITE(IOUT,2100) NTBLK,DSN WRITE(IOUT,2110)(STORE(I),I-IJ,IK) WRITE(IOUT,2000) DSN,KEY 00124000 00125000 00126000 00127000 00128000 00129000 00130000 00131000 00132000 00133000 00134000 00135000 00136000 00137000 00138000 00139000 00140000 00141000 00142000 00143000 00144000 00145000 00146000 00147000 00148000 00149000 00150000 00151000 00152000 00153000 00154000 00155000 00156000 00157000 00158000 00159000 00160000 00161000 00164000 00165000 00166000 00167000 00168000 00169000 00170000 00171000 00172000 00173000 00174000 00175000 00178000 00179000 00180000 00181000 00183000 00184000 00185000 00187000 00189000 00190000 320 ------- 90 CONTINUE 00191000 IF(ERROR.EQ.l) STOP 00192000 RETURN 00193000 END 00194000 321 ------- c c o c c c c c c c c c c c SU3-.IOUTINE REFIL3( DIAGNS, DSN , IBASE, TEND, TOUT , 1ST, 1 MSTORP,MUL,TBLKSZ,FACT, 2 CUR, P.BUFF, STORP ) ROUTINE TO READ POINT VALUES FROM FILE INTO AN AN ARRAY STORP. ACCUMULATION OF FILES IS BY SUCCESSIVE CALLS TO REFIL3 AND STRAIGHT SUMMATION INTO STORP. BASIC VALUES MAY BE MULTIPLIED BY A FACTOR FACT PARAMETERS INTEGER CUR,DIAGNS,DSN,IBASE,TEND,IOUT INTEGER IST,MSTORP,MUL,TBLKSZ REAL FACT REAL RBUFF(TBLKSZ),STORP(KSTORP) LOCAL VARIABLES INTEGER I,IBAS,IJ,J 2000 FORMAT(1X,'READ1,14) 2010 FORMAT(1X,10E12.4) 2020 ?ORMAT('0','+++ERROR 161+++ END OF FILE ENCOUNTERED ', 1 'ON UMZT ',14) 2030 FORMAT(IX,'BACKSPACE ',15) 2040 FORMAT(1X,'CUR= ',15,' MUL= ',15) C C C C C READ(DSN,END=100) RBUFF IF (DIAGNS.EQ.l) WRITE(IOUT,2000) DSN I =1 DO 20 3 « 1ST,TEND IF ((CUR + I).LE.TBLKSZ) GO TO 10 I - COR +1 -TriLKSZ CUR «=0 READ(DSN,END-100) RBUFF IF (DIAGNS.EQ.l) WRITE(IOUT,2000) DSN 10 CONTINUE STORPflBASE +J) = RBUFF(CUR +1)*FACT +STORP(IBASE +J) 1=1 +MUL 20 CONTINUE STORP NOW FILLED. RESET CURSORS ETC CUR = CUR +1 -MUL IJ - IBASE +IEND IBAS = IBASE -H IF (DIAGNS.EQ.l) WRITE(IOUT,2010) (STORP(L),L*IBAS,IJ) IF (CUR -T3UCSZ) 30,40,30 30 BACKSPACE DSN IF (DIAGNS.EQ.l) WRITE(IOUT,2030) DSN GO TO 50 40 CUR =0 GO TO 50 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00(125000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00030000 00040000 00041000 00042000 00043000 00044000 00045000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 00062000 00063000 322 ------- 100 CONTINUE 00064000 WP,ITE(IOUT,2020) DSN 00065000 STOP 00066000 C 00067000 50 IF (DIAGNS.EQ.1) WRITE(IOUT,2040) CUR.MUL 00068000 RETURN 00069000 END 00070000 323 ------- c c c c c c c c c c c c c 2000 201.0 2020 2030 C c c c c 30 C 4-0 C 50 C C C 1 C SUBROUTINE ROUTE ( IBASE, INT , IOUT, MTAD, NLEV, 1 REACH , TIMINT , INFLO , LENGTH , OS , SS , TABLE , 2 LAST, 3 AE,QE,SE,TE,YE ) RO'JTE FLOW THROUGH REACH FOR ONE TIME INTERVAL PARAMETERS INTEGER IBA5E , INT , IOUT , LAST , MTAD , NLEV INTEGER REACH REAL AE , INFLO , LENGTH , OE , QS , SE , ES , TE , TIMINT , YE REAL TABLE (MTAD) LOCAL VARIABLES INTSGER I,LEVBAS REAL AK,CHG,DELA,DELT,DELY,FACT REAL QUOT,QX,Q1,Q2,S1,S2,T1,T2,Y1,Y2 FORMATCO1 , ' ++ -WARNING 171-M-+ CHANNEL HAS GONE DRY IN TIME ', 1 'INTERVAL ' ,14, /, IX, 'PROBABLE LOSS OF CONTINUITY1) FORMATCO' , ' +++WARNING 172+++SECTION EXTRAPOLATED IN REACH ', 1. 14,' LEV"1, 16) t'ORMAT ( ' 0 ' , ' +++ERROR 173+-H- NO CONVERGENCE AFTER 100 ', 1 'ITERATIONS - SUBROUTINE ROUTE1) FORMAT (' 0 ',' 4-("t-ERROR 174+-M- LEVEL PASSED OUTSIDE PERMISSIBLE ', 1 '*ANGE FOR THIS REACH ',/,lX, 2 'LAST »',I5,' NLEV «',I5) CHECK WHETHER CHANNEL GOES DRY IN THIS INTERVAL. (COMPUTED QE <» 0. ) OE - SS/TIMINT*2. -QS +2.*INFLO IF (OE) 30,40,50 K3I7E (IOUT, 2000) INT OK =0. Yc ';0. AD -0. 1'c. =0. ££ *c. RETUSN CONTINUE CH'.NNEL HAS NOT GONE DRY - PROCEED AS NORMAL IF(LAST.LT. 1.0R.LAST.GE.NLEV1 GO TO 99 FIND BASE FOR THIS PARTICULAR TABLE AND LEVEL LEVBAS= IBASE -f(LAST-l)*4 Ql- T ABLE (LEVBAS +3) Sl= TABLE (LEVBAS+2)*LENGTH 02= TABLE (LEVBAS-i-7) S2« TABLE (LEVBAS+6)*LENGTH 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 oooieooo 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 00044000 00045000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00' 34000 00 55000 00056000 00057000 00058000 00059000 00060000 00061000 00062000 00063000 324 ------- c c 10 20 22 C C AK- (S2-S1)/(Q2-Q1) QX» (TIMINT*(IHFLO-QS*.5)+AK*Q1+SS-S1)/(AK+TIMINT*.S) IF(QX.GE.Ql) GO TO 5 LAST" LAST-1 GO TO 1 IF(QX.LE.Q2) GO TO 10 IF(LAST.EQ.(NLEV-1)) GO TO 7 LAST= LAST -t-1 GO TO 1 WRITE(IOUT,2010) REACH,LAST WE HAVE FOUND THE CORRECT SEGMENT OF THE S VS Q CURVE - FIND SE OE*»QX SE= SI + (QE-Q1)*(S2-S1)/(Q2-Q1) FIND DEPTH USING NEWTON APPROXIMATION T2= TABLE(LEVBAS+5) Tl» TABLE(LEVBAS+1) Y2 = TABLE (LEVBAS-t-4) Yl- TABLE(LEVBAS) QUOT-(T2-T1)/(Y2-Y1) D2LA-(S£-51)/LENGTH ITERATE Xu.LY- (Y2-Y1)*0.5 DO 20 1-1,100 FACT"OUOT*DEI.Y D£LT« (FACT*DELY*0.5 + DELA)/(FACT + Tl) CHG»AB5(DELT-DELY) DELY»DELT IF(CHG.LT.(0.01*Y2)) GO TO 22 CONTINUE ERROR WHITE(IOUT,2020) STOP YE- Yl •»• DELY TE " FACT -KT1 AE » SE/LENGTH RETURN 99 ERROR CONDITION WRITE{IOUT,2030) STOP END LAST.NLEV 00064000 00065000 00066000 00067000 00068000 00069000 00070000 00071000 00072000 00073000 - INTERPOLA00074000 00075000 00076000 00077000 00078000 00079000 00080000 00081000 00082000 00083000 00084000 00085000 00036000 00087000 00088000 00089000 00090000 00091000 00092000 00093000 00094000 00095000 00096000 00097000 00098000 00099000 00100000 00101000 00102000 00103000 00104000 00105000 325 ------- c c c c c c c c c c c c c SUBROUTINE RSORT( IOUT,MORDR,NREA,PR,RTIND, 1 RCH,TRIB, 2 LEV,LEVSTK,NEXT,ORDER,REL, 3 STACK, 4 ORDR,SEQ,VECNO ) THIS ROUTINE FINDS THE STRUCTURE OF THE TREE IMPLIED IN THE REACHES READ IN SUBROUTINE RCHIN, AND FINDS THE EXECUTION SEQUENCE WHICH MINIMIZES TEMPORARY STORAGE PARAMETERS INTEGER IOUT,MORDR,NREA,ORDR,PR,RTIND INTEGER LEV{NREA),LEVSTK(MORDR),NEXT(NREA),ORDER(NREA) INTEGER RCH(NRSA) ,REL(NREA) ,SEQ(NREA) , STACK (NREA) INTEGER TRIE(NREA),VECNO(NREA) LOCAL INTEGER COUNT,FLAG,G,LEVEL,PNT,POINT,PTLVST INTEGER PTSTAC,RCHIND,REACH,SONIND,SWTCH,TIE C C C C c INTEGER ORD(30),POT(30) EQUIVALENCE (ORD(l),POT(1)) WRITE FORMATS 2000 FORMAT('0','NO. OF FLOW STORAGE VECTORS REQUIRED = ',15) 2010 FORMATC'O','+++ERROR 081+++ STORAGE REQD BY SYSTEM IS ', 1 'GREATER THAN ALLOWED (',15,')' ) 2020 FORMAT(IX,'REACH LEVEL1) 2030 FORMAT(1X,I5,5X,I5) 2040 FORMATCO1,'REACH PROCESSING INFORMATION TO BE PASSED ', 1 'TO MAIN PROGRAM1) 2050 FORMATf'O1,'REACH SEQf VECTOR* RLSE1,/) 2060 FORMAT(IX,'READ REACH',15,' LEVEL',15) 2070 FORMAT('0','END OF REACH STRUCTURE ANALYSIS') C C LSTVEC= MORDR DO 5 1=1,NREA POT(I)=0 LEV(I)=0 ORDER(I)=0 REL(I)=0 NEXT(I)=0 PUT THE ROOT OF THE TREE IN THE STACK P75TAC=0 LrtSTPT=l CALL PSHDON( RTIND,NREA, PTSTAC, USE THE STACK TO FIND OUT HOW MANY DO 10 PNT=1,NREA K= STACK(PNT) REACH= RCH(K) DO 9 1=1,NREA IF(TRIB(I)-EQ.REACH) CALLPSHDONJ STACK) SONS' THE REACH HAS I,NREA, PTSTAC, STACK) POT() IS THE POTENCY (I OF SONS) OF A REACH 00004000 00005000 00006000 00007000 00008000 00009000 00010000 ooonooo 000'2000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 00044000 00045000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 00062000 00063000 326 ------- 10 c c c 12 14 C C C C C 15 C C c c 16 C C c j c c 17 C •C C 20 21 22 C C C C 23 30 36 C C C POr(K)= PTSTAC-LASTPT LASTPT=PTSTAC SEARCH NETWORK & ASSIGN 'ORDER' TO EVERY REACH LASTID= -1 K= PTSTAC-1 IF(K.LT.l) GO TO DO 30 J=1,K ID= STACK(PTSTAC) 36 FIND INTERNAL f (IND) OF REACH TO WHICH REACH 'ID1 IS DO 12 I=1,NREA IFCRCH(I).EQ.TRIB(ID)) GO TO 14 CONTINUE 'SONS LASTID IS INTERNAL * OF LAST 'TRIBJTO' REACH. COUNT IS INCREMENTED AS WE CONSIDER EACH OF THE OF LASTID. IF(IND-LASTID) COUNT" COUNT+1 GO TO 27 16,15,16 TIE INDICATES THERE IS MORE THAN ONE TRIBUTARY WITH A GIVEN ORDER, & ITS VALUE IS THE ORDER OF THOSE TRIBS. 00064000 00065000 00066000 00067000 00068000 00069000 00070000 00071000 00072000 00073000 00074000 00075000 TRIBUTARY00076000 00077000 00078000 00079000 00080000 00081000 00082000 00083000 00084000 00085000 00086000 00087000 00088000 00089000 00090000 00091000 00092000 C0093000 00094000 00095000 00096000 00097000 00098000 00099000 00100000 00101000 00102000 00103000 00104000 001050.00 00106COO 00107000 00108000 00109000 00110000 00111000 00112000 00113000 00114000 0011500-0 00116000 00117000 00118000 00119000 00120000 00121000 ORDR IS 1 MORE THAN ORDER GIVEN BY ALGORITHM ABOVE, TO ALLOW FOR 00122000 EXTRA VECTOR NEEDED TO TEMPORARILY STORE OUTFLOW FROM TERMINUS REA00123000 COUNT-1 TTE=0 LASTID-- IND POT() IS THE f OF SONS WHICH REACH IND HAS IFfPOT(IND).NE.l) GO TO 20 REACH 'ID1 IS THE ONLY TRIE TO 'IND' ORDER(IND)= 1 IF(ORDER(ID).GT.O) ORDER{IND)-ORDER(ID) GO TO 30 IF(ORDER(IND)-ORDER(ID)) 21,22,23 ORDr.R(IND) = ORDER (ID) GO TO 23 TJ.E" ORDER (ID) WE OF NOW CHECK TO SEE SIMILAR ORDER AT IF THERE ARE MORE THIS CONFLUENCE THAN ONE TRIBS IF(COUNT.NE.POT(IND) ) IF(TIE.EQ.ORDER(IND)) PTSTAC- PTSTAC-1 IF(ORDER(RTIND).EQ.O) ORDER(RTIND) GO TO 30 ORDER (IND)' ORDER(IND) 327 ------- c c 31 C C c c 32 33 34 35 C C C c c c c 37 C C C 38 C C C 42 ALGORITHM ABOVE ORDR= ORDER(RTIND) + 1 WRITE(IOUT,2000) ORDR iV(ORnR.GT.LSTVEC) WRITE{IOUT,2010) LSTVEC SET UP A VECTOR WHICH POINTS TO SUCCESSIVELY LOWER ORDER REACHES (ORD) DO 32 1=1,NREA ORD(I) = 0 DO 35 1= 1,NREA IF(I.EQ.RTIND) GO TO 35 POINT= RTIND DO 33 J*l,1000 IF(POINT.LE.O) GO TO 34 IF(ORDSR(POINT).LT.ORDER(I)) GO TO 34 LP.ST* POINT POINT" ORD(POINT) ORD(1)= ORD(LAST) ORD(LAST)- I CONTINUE 00124000 C-;il25000 00126000 00127000 00128000 00130000 00131000 00132000 00133000 00134000 00135000 00136000 00137000 00138000 00139000 00140000 00141000 00142000 00143000 00144000 00145000 00146000 00147000 WE NOW DETERMINE THE ORDER IN WHICH THE REACHES ARE TO BE PROCESSE00148000 00149000 pa-STAC=101 KCHIND-RTIND LEV(RCHIND)= 1 C C WE EXECUTE STMTS 37 THRU 43 EACH TIME WE SEARCH FOR A SON, GIVEN THE FATHER G" LEV(RCHIND) CALL PSHDON( RCHIND,NREA, PTSTAC, STACK) CALL GETSON( RCHIND,NREA,RTIND,LEV,ORD,RCH,TRIB, SONIND) IF(SONIND) 40,40,38 NON-TERMINUS REACH NEXT(RCHIND)- SONIND LEV(SONIND)= G-H GO TO 43 TERMINUS REACH, SO NOW WE BACK UP & GO TO ANOTHER BRANCH IF((PTSTAC.LE.O).OR.{SONIND.NE.O)) GO TO 42 PTSTAC* PTSTAC-1 IF(PTSTAC.LE.O) GO TO 42 CALL GETSON( STACK(PTSTAC),NREA,RTIND,LEV,ORD,RCH, 1 TRIB, 2 SONIND ) GO TO 40 IF(PTSTAC.LE.O) GO TO 43 NSXT(RCHIND)- SONIND K= STACK(PTSTAC) LEV(SONIND)- LEV(K)+1 RCHIND= SONIND IF(PTSTAC.GT.O) GO TO 37 WRITE SOME INTERMEDIATE RESULTS 00150000 00151000 00152000 00153000 00154000 00155000 00156000 00157000 00158000 00159000 00160000 00161000 00162000 00163000 00164000 00165000 00166000 00167000 00168000 00169000 00170000 00171000 00172000 00173000 00174000 00175000 00176000 00177000 00178000 00179000 00180000 00181000 00182000 00183000 00184000 328 ------- c c c c c c c c c IF(PR.NE.l) GO TO 45 WRITE(IOUT,2020) I=RTIND 44 WRITE(IOUT,2030) RCH(I),LEV(I) 1= NEXT (I) IF(I.NE.O) GO TO 44 NOW GO THRU THE TREE, IN ORDER GIVEN BY 'NEXT1 AND ORGANISE THE PROCESSING OPERATIONS FOR EACH REACH WRITE HEADINGS 45 IF(PR.NE.l) GO TO 47 WRITE(IOUT,2040) WRITE(IOUT,2050) 47 PTSTAC=0 PTLVST= 0 RCHIND=RTIND SWTCH= 0 FLAG* 1 J IS A COUNTER WHICH IS USED 'TO INDICATE THE SEQUENCE IN WHICH REACHES WIL"L BE PROCESSED 0*0 50 REACH- RCH(RCHIND) LEVEL- LEV(RCHIND) IF(PR.EQ.l) WRITE(IOUT,2060) REACH,LEVEL IF(PTSTAC.GT.O) 1 CALLPOPOUT( TOUT,LEVEL,MORDR/NREA,PR,LEV,LEVSTK, 2 RCH,STACK, 3 FLAG,J,PTLVST,PTSTAC,SWTCH, 4 REL,SEQ,VECNO ) CALL PSHDWN( IOOT,LEVEL,LSTVEC,MORDR,NREA,RCHIND, 1 FLAG,PTLVST,PTSTAC,SWTCH, 2 LEVSTK,STACK) RCHIND- NEXT(RCHIND) IF(RCHIND.GT.O) GO TO 50 LAST REACH LEVEL-0 IF(PTSTAC.GT.O) 1 CALL POPOUT( IOUT,LEVEL,MORDR,NREA,PR,LEV,LEVSTK, 2 RCH,STACK, 3 FLAG,J,PTLVST,PTSTAC,SWTCH, 4 REL,SEQ,VECNO ) IF(PR.EQ.l)WRITE{IOUT,2070) RETURN END C C C 00185000 0018600'. 00187001 00188000 00189000 00190000 00191000 00192000 00193000 00194000 00195000 00196000 00197000 00198000 00199000 00200000 00201000 00202000 0020300C 00204000 00205000 00206000 00207000 00206000 00209000 00210000 00211000 00212000 00213000 00214000 00215000 00216000 00217000 00218000 00219000 00220000 00221000 00222000 00223000 00224000 00225000 OC226000 00227000 00228000 00229000 00230000 00231000 00232000 00233000 00234000 00235000 00236000 329 ------- c c c c c c c c c c c c c c c c c c c c c c c c c c c SUBROUT INF, SDLOAD { DBAS , IN? , MAXTRB , MO,?DR, MSEGS , MSTOR, MSTORP, 1 MTVEC , NPSF , NVEC , ORDR, PBAS , SDEBUG , SOUT , 2 TBLKS",DIFFUS,FACTER,NO,STEADY,TIMINT, 3 DD , COMLND, GP.EQ, RCHTRB , STORE, STORP , THRESH , TVEC , 4 MASSIN,SHEET ) ROUTINE TO COMPUTE TOTAL SEDIMENT LOAD TO ONE REACH IN THIS TIME INTERVAL P:.RAMETERS INTEGER DBAS,INT,MAXTRB,MORDR,MSEGS,MSTOR,MSTORP,MTVEC INTEGER NPSF,NVEC,ORDR,PBAS,SDEBUG,SOUT INTEGER TBLKSZ REAL DIFFUS,FACTER,NO,STEADY,TIMINT INTEGER DD(2,KSEGS) REAL COMLND(NPSF),GREQ(NPSF) REAL MASSIN(NPSF),RCHTRB(MAXTRB),SHEET(NPSF) REAL STORE(MSTOR),STORP(MSTORP),THRESH{NPSF},TVEC(KTVEC,MORDR) LOCAL INTEGER DSN,I,IBAS,INTQ,INTQ 2,N,NBAS,NSG,SEG,TBLK1 REAL ERFAC,SAREA,SED,TOTAL TBLK1 = TBLKSZ +1 INTQ = INT* (NPSF +1) +1 INTO2 = INTQ - (NPSF +1) GET TOTAL MASS OF SEDIMENT FLOWING INTO REACH FOR EACH PARTICLE SIZE DO 50 I = 1,NPSF SED =0. ADD POINT LOADS N - (TBLK1*I) -f INT IF (?3AS.GT.O) 1 SED = 0.5*TIMINT*( STORP(N) + STORP(N +1) ) ADD INFLOW FROM U/S IF (NVEC.NE.ORDR) 1 SED = SED 4 0.5*TIMINT*( TVEC((INTQ2 -fI),NVEC) 2 -f TVEC ((INTQ •*•!), NVEC) ) MASSIN(I) = SED 50 CONTINUE GET DIFFUSE LOADING IF (DIFFUS.EQ.NO) GO TO 100 IF (DBAS.EQ.O) GO TO 100 DO 60 1= 1,NPSF SHEET(I) =0. 60 CONTINUE 00004000 00005000 OOOOGOOO 00007000 0000800C 00009000 00010000 00013000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00022100 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00031100 00031200 00031300 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043"00 0004K,v,0 00049.JOO 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 00062000 00063000 330 ------- 70 80 TOTAL =0. NBAS " DBAS NSG = RCHTRB(NBAS) DO 80 I « l.NSG S*.G = RCHTR8(NBA5 +1) SAREA = RCHTP.3CN3AS +2) DSN = DD(2,S£G) IF (DSN.EQ.O) GO TO 70 ERFAC » FACTER/TIMINT T.BAS * (SEG -1)*TBLKSZ SED « STORE (IBAS -HNT)*ERFAC IF (SED.EQ.O.) GO TO 70 CALL SPLIT( NPSF,SDEBUG,SOOT,TIMINT, SAREA,SED,STEADY,COMLND, GREQ,THRESH, TOTAL,SHEET ) CONTINUE NBAS •= N3AS 42 CONTINUE 100 CONTINUE RETURN END 00064000 00065000 00066000 00067000 00068000 00069000 00070000 00071000 00072000 00073000 00074000 00075000 00076000 00077000 00078000 00079000 00080000 oooeiooo 00082000 00083000 00089000 00090000 00091000 00092000 331 ------- c r. C c c c c c c c c c c c c c c c c SUBROUTINE SDPRNT( YR, MON , DAY , HR, MIN , SEC , EFLAG , MLAY , MLINES , 1 MNPSF , NLAY , NPSF , PRFREQ, REACH , SDEBUG , SDPOUT , 2 SOU? , TIMINT , CUML , DENW , OUTFAC , 0 2E , Q2S , 3 ACCS , CE , CS , LAYCOM , LAYTHK , MSMON , MSYR , 4 KNT-T-,LINESD,PRMONS,PRYRS ) PRINT OUT RESULTS OF SEDIMENT CALCS PARAMETERS INTEGER YR,MON,DAY,HR,MIN,SEC INTEGER EFLAG , INC , KNTSD, LINESD, MLAY , MLINES INTEGER MNPSF, NLAY, NPSF, PRFREQ, PRMONS I NTEGER PRYRS , REACH , SD?BUG , SDPOUT , SOUT REAL CUML, DENW, OUTFAC, Q2E ,Q2S,TIMINT REAL ACCS (NPSF) ,CE(NPSF) ,CS(NPSF) HEAL LAYCOM (MLAY, MNPSF) .LAYTHK (MLAY) , MSMON (NPSF) REAL MSYR (NPSF) LOCAL VARIABLES INTEGER I,TIMPMO,TIMPR,TIMPYR REAL FACT, MASS, TOTAL 2000 FORMATC1 ',' RESULTS OF SEDIMENT TRANSPORT CALCS :',/,' 0 ', 1 'REACH YEAR MO DA HR MIN SEC TYPE',12X, 2 'SEDIMENT OUTFLOW RATES (MASS*OUTFAC/TIME) BY PARTICLE1 3 • S::E',/,IX, I ' 1.0. ' ,T31 , 'M=MEAN' ,T45, '1 ' ,11X, '2 ' ,11X, ' 3 ' ,11X, f> '4 ' ,11X, '5' ,7X, 'TOTAL' ,8X, 'CUML' ,/,lX, 7 T30, 'P=POIKT',/) 2010 FORMAT(1X(2I5,3I3,214,6X,'M' , (T36 , 5 (E10. 3 , 2X) ) ) 3" 15 FORMAT ('-f' , 94X, E10. 3 , 2X, E10 . 3) i".?0 FORMAT (IX, 'REACH ',13,' TOTALS FOR MONTH ',I2,2X, 1 (T36,5(E10.3,2X)) ) .' .:Ui FORMAT (IX, 'REACH ',13,' TOTALS FOR YEAR ',I2,2X, 1 (T36,5(E10.3,2X)) ) 2040 FORMAT(lX,2Ib,3I3,2I4,6X,'P' , (T36,5(E10.3,2X)) ) 20r.O FORMATCO', 'TRANSPORT CONCN ',20X,'SIZE FRACTION1 ,/, IX, 1 29X 'I1 11X ' 2 ' 11X * 3 ' 11X '41 11 X * 5 * ) 2060 FORMAT(1X,(T22,5(E10.3,2X)) ) CHECK FOR ERROR FLAG IF (EFLAG. EQ.O) GO TO 150 SDEBL'G=3 PRFREQ = KNTSD +1 CDPOUT =3 150 CONTINUE ^:T FLAGS INC = KPSF/5 IF ( (INC*5) .LT.NPSF) INC = INC + 1 KNTSD = KNTSD +1 TIMPR =0 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 GOOJ; ooo 00032000 00033000 ,00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 00044000 00045000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00064000 00065000 00066000 00066100 00066200 00067000 00068000 332 ------- c c c c c c c c c c c c c c c c 20 TIMPMO «=0 TIM?YR =0 IF (PRFREQ.LT.O) GO TO 20 IS IT TIME TO PRINT OUT? IF (KNTSD.NE.PRFREQ) GO TO 30 TIMPR =1 END OF MONTH IF (MON.EQ.PRMONS) GO TO 30 TIMPR -1 TIMPMO =1 IF (YR.EQ.PRYRS) GO TO 30 TIMPYR =1 30 CONTINUE CHECK FOR PRINTED HEADER IT (TIMPR.EQ.O) GO TO 10 IF (LINESD.NE.O .AND. SDEBUG.EQ.0) GO TO 10 WRITE(SOUT,2000) LINESD « LINESD +6 10 CONTINUE IF (SDPOUT.EQ.2) GO TO 200 PRINTING MEAN SEDIMENT RATES - ACCUMULATE VALUES OVER PRINT INTERVAL DO 40 I = l.NPSF MASS - (CS(I)*Q2S -f CE(I)*Q2E)*0.5*DENW ACCS(I) - ACCS(I) + MASS CONTINUE IF (TIMPR.EQ.O) GO TO 900 40 50 60 C C FIND MEAN VALUES , TOTAL 6 DO OUTPUT FACT » ODTFAC/KNTSD TOTAL -0. DO 50 I - 1,NPSF MSMON(I) = MSMON(I) + ACCS(I)*TIMINT ACCS(I) « ACCS(I)»FACT TOTAL - TOTAL +ACCS(I) CONTINUE CUML - CUML + (TOTAL*KNTSD*TIMINT) WRITE(SOUT,2010) REACH,YR,MON,DAY,HR,MIN,SEC, (ACCS(I),I=1,NPSF) WRITE(SOUT,2015) TOTAL,CUML LINESD = LINESD + INC DO 60 I » l.NPSF ACCS(I) "0. CONTINUE IF (TIMPMO.EQ.O) GO TO 110 MONTHLY OUTPUT 00069000 00070000 00071000 00072000 0«\:7.;000 00074000 00075000 00076000 00077000 00078000 00079000 00080000 00081000 00082000 00083000 00084000 00085000 00086000 00087000 00087200 00087300 00087400 00087410 00087500 00087600 00087700 00087800 00088000 00089000 00090000 00091000 00092000 00093000 00094000 00095000 00096000 00097000 00098000 00099000 00100000 00101000 00102000 00103000 00104000 00105000 00106000 00107000 00107100 00108000 00109000 00110000 00111000 00112000 00113000 00114000 00115000 00116000 00117000 00118000 00119000 333 ------- c c c TOTAL =0. DO 70 1= 1,NPSF MSMON(I) = MSMON(I)*OUTFAC TOTAL = TOTAL +MSMON(I) MS.•;:(!) = MSYR(I) +M3MON(I) 70 CONTINUE WRITE------- C PRINT BED COMPOSITION AT END OF PRINT INTERVAL 00179000 C 00180000 WRITE(SOUT,2050) 00181000 HRITE(SOUT,2060) (CE{I),1=1,NPSF) 00182000 CALL SEDPRTf MLAV, MtlPGF ,KLAY , NPSF, SOUT , LAYCOM , LftYTHK) 00183000 c 00184000 900 CONTINUE 00185000 IF ((LINESD +4).GT.MLINES) LINESD =0 00186000 RETURN 00187000 END 0018BOOO 335 ------- c c c c c c c c c c c c SUBROUTINE SDROUT( IM02,MLAY,MNPSF,NPSF,NPSF1,SDEBUG, 1 SOUT,TIMINT,A2E,A2S,BIND,BULKD,DENW, 2 DEPTH,LENGTH,PCLYST,PROTCT, 3 Q1E,Q1S,Q2E,Q2S,SHEARV,T2E,CS, 4 MASSED,MASSIN,SETVEL,SHEET, 5 EE'LAG , NL.B.Y, RECOMP, ACT1, LAYCOM, LAYTHK, 6 PCIMO.CE ) SEDIMENT ROOTING ALGORITHMS PARAMETERS INTEGER EFLAG,IM02,MLAY,MNPSF,NLAY,NPSF,NPSF1 IN'i'iittSR SDEBUG , SOUT , RECOMP REAL A2E,A2S,BIND,BULKD REAL DENW,DEPTH.LENGTH REAL PCIMO,PCLYST,PROTCT,QIS,Q1E,Q2S,Q2E REAL SHEARV,T2E,TIMINT REAL ACTl(NPSFl) REAL CE(NPSF),CS(NPSF),LAYCOM(MLAY,MNPSF) REAL LAYTHK(MLAY).MASSED(NPSF),MASSIN(NPSF),SETVEL(2) REAL SHEET(NPSF) LOCAL VARIABLES INTEGER I,ITYPE,J,NVAL REAL ABSC,AVAIL,DEPSIT,FACT,FRAC REAL MASSLY,ORD,REDUCT,SCOUR,SUM,SUMMO,TEMP,THK REAL DEPOST(4,2) DATA DEPOST/1.OE-15,0.005,5.0,100.0,0.0,0.0,0.0,0.O/ 2000 FORMAT('0','DEPOSITION FOR SIZE FRACTION ',I5,/,1X, 1 'ABSC «* ',E12.5,' ORD = ' ,E12. 5,/,lX, 2 'MASS DEPOSITED = ',E12.5,' PER UNIT AREA IN ', 3 'INTERVAL ') 2010 FORMAT('0',/,'0','DEBUG OUTPUT FROM SDROUT - SEDIMENT ', 1 'ROUTING CALCULATIONS') 2020 FORMAT('0','SCOUR FACTORS:',/,IX, 1 'PERCENT IMMOBILE MATERIAL •',F10.2,/,lX, 2 'ARMORING REDUCTION FACTOR «=',F10.2 ) 2030 FORMATCO1,'FRACTION OF SIZE ',15,' * ' , F10. 3, / , IX, 1 'CORRECTED CONCN SIZE «',E12.5 ) 2040 FORMAT(IX,'AVAILABILITY OF SIZE FRACTION ',15, 1 ' IS LIMITING ',/,lX, 2 'MASS TO BE SCOURED -',E12.5,/,IX, 3 'MASS AVAILABLE =',E12.5 ) 2050 FORMATCO' , '+++ERROR 571+++ NEGATIVE CONCN. COMPUTED') C C C C C IF (SDEBUG.GE.3) WRITE(SOUT,2010) FIND % MOBILE IN ACTIVE LAYER & IN SUSPENSION THK = ACTl(l) 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 00044000 00045000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 Ou062000 00063000 336 ------- c c c c c c c c c c c c c c c c c c c c c c c c c c SUMMO =0 . IF (IM02.LT.3) GO TO 20 DO 10 I=3,IM02 SUMMO = SUMMO + ACT1 ( 1+1 ) *THK*BULKD 4 CS (I ) * A2S*LENGTH*DENW 10 CONTINUE 20 CONTINUE FIND ARMORING REDUCTION FACTOR FACT =1. IF ( PCIMO. LE-PROTCT) GO TO 30 FACT = 1. - (PCIMO -PROTCT)/(1. -PROTCT) 30 CONTINUE IF (SDEBUG.GE.3} WRITE (SOUT, 2020) PCIMO, FACT SCOUR OF SAND FRACTIONS MASSED (I) = MASS OF FRACTION I IN TOP LAYER DO 100 I = 3,NPSF CORRECT CONCN FOR ARMOURING & % COMPOSITION FRAC •= ( ACTl(I4l)*THK*BULKD 4 CS (I ) *A2S*LENGTH*DENW )/ 1 (SUMMO + 0.00001) I'-' (I.GT.IM02) FRAC=0. CEd) =' FRAC*FACT*CE(I) IF (SDEBUG.GE.3) WRITE (SOUT , 2030) I,FRAC,CE(I) FIND IMPLIED SCOUR FROM CONTINUITY SCOUR = ( DENW*( LENGTH* ( CS(I)*A2S - CE(I)*A2E ) - 1 TIMINT*0.5*( CS(I)*Q2S 4 CE(I)*Q2E ) ) 4 MASSIN(I) 4 2 SHEET (I) ) / (LENGTH*T2E) IF (SCOf. GT.O.) GO TO 60 NET SCOUR (I.E. REMOVAL OF MATERIAL FROM THE BED) SCOUR •= -SCOUR AVAIL = MASSED (I) 4 ACTl (I4l) *THK*BULKD IF ( SCOUR. LE. AVAIL) GO TO 40 THIS LAYER HAS INSUFFICIENT MATERIAL TO SATISFY SCOUR. RECOMPUTE CE BASED ON AVAILABLE MATERIAL. IP (SDEBUG.GE.3) WRITE (SOUT, 2040) I , SCOUR, AVAIL CE(I) = ( DENW*CS(I)*( LENGTH*A2S - 0. 5*TIMINT*Q2S ) 4 1 AVAIL*LENGTH*T2E 4 MASSIN(I) 4SHEET(I) ) / 2 ( DENW*( 0.5*TIMINT*Q2E 4 LENGTH*A2E ) ) MASSED(I) «0. GO TO 50 MATERIAL AVAILABLE FOR SCOUR 40 CONTINUE MASSED (I) = AVAIL -SCOUR 50 CONTINUE GO TO 80 NET DEPOSITION (IE MATERIAL ADDED TO BED) 00064000 0006500" 0006600., 00067000 00068000 00069000 00070000 00071000 00072000 00073000 00074000 00075000 00076000 00077000 00078000 00079000 00080000 00081000 00082000 00083000 00084000 00085000 00086000 00087000 00088000 00089000 00090000 00091000 00092000 00093000 00094000 00095000 00096000 00097000 00098000 00099000 00100000 00101000 00102000 00103000 00104000 00105000 00106000 00107000 00108000 00109000 00110000 00111000 00112000 00113000 00114000 00115000 00116000 00117000 00118000 00119000 00120000 00121000 00122000 00123000 337 ------- 60 CONTINUE MASSED(I) = MASSED(I) +SCOUR +ACT1(3-H )*THK*BULKD 80 CONTINUE 100 CONTINUE C c C c c c c c c c c c c c c c c c c c c C C ************ END OF SAND LOOP ***************************** TREAT CLAYS AND SILTS - DEPOSIT & THEN SCOUR TOTAL AMOUNT DO 110 I = 1,2 I) DEPOSITION DEPOSITION COMPUTED FROM CAMPS CURVE - USE TABLE LOOKUP REDUCT = SETVEL(I)*TIMINT/DEPTH DEPOST(1,2) = 1. -EXP(-REDUCT) DEPOST(2,2) = DEPOST(1,2) DE?OST(3,2) = AMINK1. , REDUCT) DEPOST(4,2) = DEPOST(3,2) ABSC = SETVEL(I)/SHEARV ITYPE =2 NVAL =4 CALL LUKUP( ITYPE,NVAL,SDEBUG,SOUT,ABSC,DEPOST, 1 ORD ) DEPSIT = CS(I)*DEPTH*DENH*ORD IF (SDEBUG.GE.3) WRITE(SOUT,2000) I,ABSC,ORD,DEPSIT II) SCOUR MASSLY IS MASS IN LAYER PER UNIT BED AREA MASSLY = ACT1(1+1)*THK*BULKD MASSLY = MASSLY + DEPSIT SCOUR - MASSED(I) + FACT*MASSLY MASSLY = (1. -FACT)*MASSLY CONVERT MASSED(I) FROM AMOUNT OF MATERIAL REMOVED FROM COHESIVE LAYER TO MASS IN TOP LAYER MASSED(I) = MASSLY CALC. CONCN DUE TO MASS OF 'SCOUR' BEING BROUGHT INTO SUSPENSION CE(I) = ( DENW*CS(I)*( LENGTH*A2S - 0.5*TIMINT*Q2S ) + 1 T2E*LENGTH*SCOUR + MASSIN(I) + SHEET(I) )/ 2 ( DENWM 0.5*Q2E*TIMINT + A2E*LENGTH )) 110 CONTINUE ********** END op CLAY/SILT LOOP CHECK FOR NEGATIVE CONCNS DO 140 I = 1,NPSF IF (CE(I).GE.O.) GO TO 140 WRITE(SOUT,2050) I,CE(I) EFLAG =1 140 CONTINUE RECOMPUTE TOP LAYER COMPOSITION 00124000 00125000 00126000 00127000 00128000 00129000 00130000 00131000 00132000 00133000 00134000 00135000 00136000 00137000 00138000 00139000 00140000 00141000 00142000 00143000 00144000 00145000 00146000 00147000 00148000 00149000 00150000 00151000 00152000 00153000 00154000 00155000 00156000 00157000 00158000 00159000 00160000 00161000 00162000 00163000 00164000 00165000 00166000 00167000 00168000 00169000 00170000 00171000 00172000 00173000 00174000 00175000 00176000 00177000 00178000 00179000 00180000 00181000 00182000 00183000 338 ------- c c c c SUM = 0. DO 120 I = 1,NPSF SUM - SUM -fMASSED(I) 120 CONTINUE IF (S'JM.EQ.O) GO TO 200 THK = SUM/BULKD ACTl(l) = THK DO 130 I = 1,NPSF TEMP = MASSED(I)/SUM ACT1(1+1) « TEMP LAYCOM(NLAY,I) - TEMP 130 CONTINUE LMTTHK (NLAY) = THK GO TO 300 LAYER DESTROYED (OR NONEXISTENT IN FIRST PLACE IF TOP LAYER IS COHESIVE ) 200 IF (PCLYST.GT.BIND) GO TO 300 KLAY = NLAY -1 RECOMP =1 300 CONTINUE RETURN END 00134000 00185000 00186000 00187000 00188000 00189000 00190000 00191000 00192000 00193000 00194000 00195000 00196000 00197000 00198000 00199000 00200000 00201000 00202000 00203000 00204000 00205000 00206000 00207000 00208000 00209000 00210000 339 ------- c c c c c c c c c c c c c c c c c SUBROUTINE SEDIWF ( IN , I OUT , MAXRCH , MLAY , MNPSfr', MREA, 1 NRF,A,RO;,USERCH, 2 EFLAG, 3 BEDKNT,NPSF,SDEBUG,SDPOUT,NLAYER,ABIND, 4 AJ'.M? , EIND,BULKD, DENS , DENW , DIFFUS , DUNE , EPSBED, 5 GRAV,OUTFAC,PROTCT,RIPPLE,STEADY,CSTART,COMLAY, 6 COMLND,CRTSHR,DIA,KINVIS,SCRCON, 7 SCREXP,THKLAY,THRESH ) ROUTINE TO READ IN INFORMATION HEEDED FOR SEDIMENT ROUTING PARAMETERS INTEGER BEDKNT,EFLAG,IN,I OUT,MAXRCH,MLAY INTEGER MNPSF,MREA,NPSF,NREA,SDEBUG INTEGER SDPOUT INTEGER NLf'Yr:R(MREA) ,RCK(NREA) ,USERCH {MAXRCH) REAL ABIND. OIF,BIND,BULKD,DENS,DENW,DUNE,EPSBED REAL GRAV,.;.., OUTFAC , PROTCT, RIPPLE, STEADY REAL CSTART(MREA,MNPSF),COMLAY(MREA,MLAY,MHPSF) REAL COMLND(MNPSF),CRTSKR(2),DIA(MNPSF) REAL KINVIS(12) REAL SCRCON(2),SCREXP(2),THKLAY(MREA,MLAY) KTJAL THRESH (MNPSF) LOCAL VARIABLES INTEGER I,IDUM,I SUM,J,K,NL,NLAY,NLY,NR INTEGER REACH REAL SUM REAL HEAD(20) DATA NO/' KO'/ READ FORMATS 1000 FORMAT(20A4) 1010 FORMAT(5X,F10.0) 1020 FORMAT(6X,F10.0) 1030 FORMAT(7X,I5) 1040 FORMAT(7X,F10.0) 1050 FORMAT(6E10.3) 1060 FORMAT(5X,I5) 1070 FORMAT(3A4,A3,(T16,5E10.2)) 1080 FORMAT(6X,I5) 1090 FORMAT(I5,F10.0,(T16,5F10.0)) WRITE FORMATS C C c 2000 FORMAT('0',20A4) 2010 FORMAT('0','GRAVITY 2020 FORMAT('0','DENSITY WATER 2030 FORMATCO','DENSITY SEDIMENT 2040 FORMATCO1 ,'BULK DENSITY =',F10.3) = ' ,F10.3) •' ,F10.3) = ' ,F10.3) 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 0002BOOO 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 0003BOOO 00039000 00039100 00039200 00039300 00040000 00041000 00042000 00043000 00044000 00045000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 340 ------- 2050 FCRMATf'O' 2060 FORMAT) '0' 2070 FORMAT ('0' 1 2080 FORMAT(1X, 2090 FORMAT('0' 2100 FORMAT (IX, 2110 FORMATCO1 1 2120 FORMAT (IX, 213C FORMAT (IX, 2140 FORMAT (IX, 2150 FORMAT (IX, 2160 FORMAT (IX, 2170 FORMAT (IX, 2180 FORMAT(1X, 2190 FORMAT('0' 2200 FORMATCO1 2210 FORMAT (IX, 2220 FORMAT( '0' , 'SEDIMENT PRINT OUT OPTION ,' SEDIMENT DEBUG OPTION , 'MULT. FACTOR FOP, PRINT OUT OF 'OUTFLOW RATES =',F10.3) 6E10.3) , 'NO. PARTICLE SIZE FRACTIONS 3A4,A3, (T17,5E10.2) ) , '4-++ERROR 501+++ LAND SURFACE 1 (COKLND) DOES NOT SUM TO 100. 'BIND = 'ABIND = 'PROTCT = 'ARMF 'SCRCON = 'CRTSHR = 'SCREXP = ,' REACH = ,F10.3) ,F1C.3) ,F10.3) ,F10.3) ,F10.3) ,F10.3) ,F10.3) ,15) ,'NLAY «= ,15) 20A4) =' ,15) =' ,15) SEDIMENT ' =' ,15) COMPOSITION! ') , '+++ERROR 502+-H- BED COMPOSITION FOR LAYE 2230 FORMATCO1 2240 FORMATCO1 1 2250 2260 2270 2280 2290 FORMAT(IX,'DUNE FORMAT(IX,'RIPPLE FORMAT('O1 FORMAT('0' ',15, 'DOES NOT SUM TO 100.') ,I5,E10.3,(T17,5F10.2)) ,'+44ERROR 5034-f-t- INITIAL SEDIMENT CONDITIONS NOT1 ' GIVEN FOR REACH ',15) ,F10.3) ,F10.3) 'MAX.ITERATIONS FOR BEDFORM CALCS 'CONVERGENCE CRITERION FOR BEDFORM ,15) CALCS ,E10.3) C C C FORMATC1' ,20A4) IDUM =1 READ(IN,1000) HEAD WRITE(IOUT,2290) HEAD READ(IN,1010) GRAV WRITE(IOUT,2010) GRAV READ(IN.IOIO) DENW WRITE(IOUT,2020) DENW READ(IN,1010) DENS WRITE(IOUT,2030) DENS READ(IN,1020) BULKD WRITE(IOUT,2040) BULKD READ(IN,1030) BEDKNT WRITE(IOUT,2270) BEDKNT READ(IN,1040) EPSBED WRITE(IOUT,?.280) EPSBED READ(IN,1030) SDPOUT WRITE(IOUT,2050) SDPOUT IF (SDPOUT.LT.O .OR. SDPOUT.GT.3) 1 CALL KILL(16,EFLAG,IOUT,SDPOUT,IDUM) 00061000 00062000 00063000 00064000 00065000 00066000 00067000 00068000 00069000 00070000 00071000 00072000 00073000 00074000 00075000 00076000 00077000 00078000 00079000 00080000 00081000 00082000 00083000 00084000 00085000 00086000 00087000 00088000 00089000 00090000 00091000 00092000 00093000 00094000 00095000 00096000 00097000 00098000 00099000 00100000 00101000 00102000 00103000 00104000 00105000 00106000 00107000 00108000 00109000 00110000 00111000 00112000 00113000 00114000 00115000 00116000 00117000 00118000 00119000 00120000 341 ------- c c c c c c c c c c c c c c c c c READ(IN,1030) SDEBUG WRITE(TOUT,2060) SDEBUG IF (SDEBUG.LT.O .OR. SDEBUG.GT.3) 1 CALL KILL(17,EFLAG.IOUT,SDEBUG,IDUM) REAi'.flN, 1040) OUTFAC WRITE(IOUT,2070) OUTFAC READflN,1000) HEAD WRITE(IOUT,2000) HEAD READ(IN,1050) (KINVIS(I),1=1,6) WRITE(IOUT,2080) (KINVIS(I),1=1,6) READ(IN,1050) (KINVIS(I),1=7,12) WRITE(IOUT,2080) (KINVIS(I),1=7,12) READ(IN,1060) NPSF WRITE(IOUT,2090) NPSF IF (NPSF.GT.MNPSF) 1 CALL KILL(19,EFLAG,IOUT,NPSF,MNPSF) IF (NPSF.LT.3) 1 CALL KILL(21,EFLAG,IOUT,NPSF,IDUH) READ(IN,1000) HEAD WRITE(IOUT,2000) HEAD READ(IN,1070) (HEAD(I),1=1,4),(DIA(J),J=1,NPSF) WRITE(IOUT,2100) (HEAD(I),1=1,4),(DIA(J),a-l,NPSF) IF (DIFFUS.EQ.NO) GO TO 20 GET PARAMETERS FOR SPLITTING LAND SURFACE EROSION DATA BY PARTICLE SIZE FRACTION COMLND = % COMPOSITION OF LAND SURFACE THRESH « THRESHOLD VALUE OF EROSION ABOVE WHICH FRACTION I WILL MOVE STEADY = VALUE OF EROSION ABOVE WHICH COMPOSITION OF ERODED MATERIAL IS SAME AS LAND SURFACE COMP.. READ(IN,1070) (HEAD(I),1=1,4),(COMLND(J),a=l,NPSF) WRITE(IOUT,2100) (HEAD(I),1-1,4),(COMLND(J),J=1,NPSF) RSAD(IN,1070) (HEAD(I),1=1,4),(THRESH(J),J=2,NPSF),STEADY WRITE(IOUT,2100) (HEAD(I),1=1,4),(THRESH(J),J=2,NPSF),STEADY CHECK PERCENTAGES SUM =0. DO 10 I = 1,NPSF SUM = SUM +COMLND(I) COMLND (I) «= COMLND (I )/100. 10 CONTINUE ISUM = SUM +0.5 IF (ISUM.EQ.100) GO TO 20 WRITE(IOUT,2110) EFLAG =1 20 CONTINUE GET CALIBRATION PARAMETERS 00121000 00122000 00123000 00124000 00125000 00126000 00127000 0012BOOO 00129000 00130000 00131000 00132000 00133000 00134000 00135000 00136000 00137000 00138000 00139000 00140000 00141000 00142000 00143000 00144000 00145000 00146000 00147000 00148000 00148100 00148200 00149000 00150000 00151000 00152000 00153000 00154000 00155000 00156000 00157000 00158000 00159000 00160000 00161000 00162000 00163000 00164000 00165000 00166000 00167000 00168000 00169000 00170000 00171000 00172000 00173000 00174000 00175000 00176000 00177000 00178000 342 ------- c c c c c c c c c c c c c c c c c READ(IN,1000) HEAD WRITE(IOUT,2000) HEAD READ(IN,1010) BIND WRITE(IOUT,2120) BIND BIND - BIND/100. READ(IN,1020) ABIND WRITE(IOUT,2130) ABIND READ(IN,1040) PROTCT WRITE(IOUT,2140) PROTCT PROTCT - PROTCT/100. READ(IN,1010) ARMF WRITE(IOUT,2150) ARMF READ(IN,1010) DUNE WRITE(IOUT,2250) DUNE READ(IN,1040) RIPPLE WRITE(IOUT,2260) RIPPLE READ CLAY/SILT PARAMETERS - CLAY FIRST DO 40 I - 1,2 READ(IN,1000) HEAD WRITE(IOUT,2000) HEAD READ(IN,1040) SCRCON(I) WRITE(IOUT,2160) SCRCON(I) READ(IN,1040) CRTSHR(I) WRITE(IOUT,2170) CRTSHR(I) READ(IN,1040) SCREXP(I) WRITE(IOUT,2180) SCREXP(I) 40 CONTINUE READ INITIAL SEDIMENT CONDITIONS READ(IN,1000) HEAD WRITE(IOUT,2000) HEAD DO 50 I - 1,NREA READ{IN,1080) REACH WRITE(IOUT,2190) REACH READ(IN,1060) NLAY WRITE(IOUT,2200) NLAY CHECK REACH NO. AND NO. LAYERS NR • USERCH(REACH) IF (REACH.LE.O .OR. REACH.GT.MAXRCH) 1 CALL KILL(18,EFLAG,IOUT,REACH,IDOM) IF (NR.EQ.O) 1 CALL KILL(18,EFLAG,IOUT,REACH,IDUM) 00179000 00180000 00181000 00182000 00183000 00183100 00184000 00185000 00186000 00187000 00188000 00189000 00189100 00190000 00191000 00192000 00193000 00194000 00195000 00196000 00197000 00198000 00199000 00200000 00201000 00202000 00203000 00204000 00205000 00206000 00207000 00208000 00209000 00210000 00211000 00212000 00213000 00214000 00215000 00216000 00217000 00218000 00219000 00220000 00221000 00222000 00223000 00224000 00225000 00226000 00227000 00228000 00229000 00230000 00231000 00232000 00233000 00234000 00235000 00236000 343 ------- c c c c c c c c c c c c c c c c c 60 80 90 110 70 IF (NLAY.GT.MLAY) CALL KILL ( 2 0, EFLAG, IOUT , NLAY, MLAY} NLAYER(NR) = NLAY READ(IN,1000) HEAD WRITE(IOUT,2210) HEAD R£AD(IN,1070) (HEAD(J) ,J=1,4) ,(CSTART(NR,K) ,K=1,NPSF) WRITE(IOUT,2100) (HEAD(J),0=1,4),(CSTART(NR,K),K=1,NPSF) RCM>(IN,1000) HEAD WRITE(IOUT,2210) HEAD READ(IN,1000) HEAD WRITE(IOUT,2210) HEAD DO 60 NL = 1,NLAY READ(IN,1090) NLY,THKLAY(NR,NLY), (COMLAY(NR,NLY,K),K=1,NPSF) CONTINUE CHECK COMPOSITION & OUTPUT DO 70 NL = 1,NLAY NLY = NLAV -NL +1 SUM =0. DO 80 J =1,NPSF SUM = SUM +COMLAY(NR,NLY,J) CONTINUE IPUK * SUM +0.5 IF (ISUM.EQ.100) GO TO 90 WRITE(IOUT,2220) NLY EFLAG =1 CONTINUE WRITE(I OUT,2230) NLY,THKLAY(NR,NLY) , (COMLAY(NR,NLY,K),K=1,NPSF) CONVERT FROM PERCENT TO FRACTION COMLAY(NR,NLY,J)/100. DO 110 J=1,NPSF COMLAY(NR,NLY,J) CONTINUE CONTINUE END REACH LOOP 50 CONTINUE CHECK THAT ALL INITIAL CONDITIONS ARE GIVEN THKLAY IS USED AS A FLAG VECTOR DO 100 NR = 1,NREA IF (THKLAY(NR,1).GT.O.) GO TO 100 WHITE(IOUT,2240) RCH(NR) EFLAG =1 100 CONTINUE 00237000 00238000 00239000 00240000 002*1000 002-J2000 00243000 00244000 00245000 00246000 00247000 00248000 00249000 00250000 00251000 00252000 00253000 00254000 00255000 00256000 002T.7000 00258000 00259000 00260000 00261000 00262000 00263000 00264000 00265000 00266000 00267000 00268000 00269000 00270000 00271000 00272000 00273000 00274000 OO'/VSOOO 002V6000 00277000 00278000 00279000 00280000 00281000 00282000 00283000 00284000 00285000 00286000 00287000 00288000 00289000 00290000 00291000 00292000 00293000 00294000 00295000 00296000 344 ------- 00297000 RETURN 00298000 END 00299000 345 ------- c c c c c c c c c c SUBROUTINE SEDPRT( MLAY,MNPSF,NLAY,NPSF,SOUT,LAYCOK,LAYTHK) PRINT OUT BED COMPOSITION PARAMETERS INTEGER MLAY,MNPSF,NLAY,NPSF,SOUT REAL LAYCOM(MLAY,KNPSF),LAYTHK(NLAY) LOCAL VARIABLES INTEGER I,JJ,K 2000 FORMAT('0','BED MATERIAL ',/,lX, 1 'LAYER1,6X,'THICKNESS1,20X, 2 'FRACTIONAL COMPOSITION BY PARTICLE SIZE' ) 2010 FORMAT(1X,I5,5X,F10.3,(T22,5(E10. 3,2X) ) ) C C WRITE(SOUT,2000) DO 10 I = 1,NLAY JJ = NLAY -I +1 WRITE(SOUT,2010) JJ,LAYTHK(JJ), 1 (LAYCOM(JJ,K),K=1,NPSF) 10 CONTINUE RETURN END 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 346 ------- SUBROUTINE SPLIT( NPSF,SDEBUG,SOUT,TIKINT,SAREA,SED, 1 STEADY,COMLND.GREQ,THRESH, 2 TOTAL,SHEET ) ROUTINE TO SPLIT LAND SURFACE EROSION INTO PARTICLE SIZE FRACTIONS . ON RETURN SHEET(I) CONTAINS TOTAL MASS OF SEDIMENT OF SIZE I ENTERING THE REACH IN THE TIME INTERVAL. PARAMETERS INTEGER NPSF,SDEBUG,SOUT REAL 5AREA,SED,STEADY,TIMINT,TOTAL REAL COMLND(NPSF),GREQ(NPSF),SHEET(NPSF),THRESH(NPSF) LOCAL VARIABLES INTEGER I REAL CFRACP,CFRACT,DIFF,SUM,TSED 2000 FORMAT('0','LOCAL SEDIMENT INFLOW BY PARTICLE SIZE:1,/,IX, 1 10(1X,E11.4) ) 2010 FORMAT('0','+++ERROR 511+++ CONTINUITY ERROR IN SPLITTING ', 1 ' EROSION INTO PARTICLE SIZE FRACTIONS') C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C TSED - SED*SAREA*TIMINT TOTAL » TOTAL +TSED IF (SED.LT.STEADY) GO TO 20 WASHOFF HAS SAME COMPOSITION AS LAND SURFACE DO 10 I - 1,NPSF SHEET(I) - SHEET(I) 4 COMLND(I)*TSED 10 CONTINUE GO TO 100 20 CONTINUE IF (SED.GT.THRESH{2)) GO TO 30 ALL SEDIMENT IN FINEST FRACTION SHEET(1) * SHEET(1) +TSED GO TO 100 DETERMINE SPLIT BETWEEN FRACTIONS 30 CONTINUE DO 40 I - 2,NPSF IF (SED.LE.THRESH(I)) GO TO 50 CFRACT IS CULMULATIVE FRACTION UPTO BUT EXCLUDING SIZE I CFRACT - 1. - GREQ(I)*(SED -THRESH(I))/(STEADY -THRESH(I)) SHEET(I -1) » SHEET(I -1) + (CFRACT -CFRACP)*TSED CFRACP * CFRACT 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 00044000 00045000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 00062000 00063000 347 ------- 40 CONTINUE SHEET(NPSF) = SHEET(NPSF) + (1. -CFRACP)*TSED GO TO 100 C c C c c c (I -1) IS THE COARSEST FRACTION BEING MOVED 50 SHEET (I -1) = SHEETd -1) + (1. -CFRACP) *TSED 100 CONTINUE IF (SDEBUG.GE.3) WRITE(SOOT,2000) (SHEET(I),1=1,NPSF) CHECK ON TOTALS SUM = 0. DO 110 I - 1,NPSF SUM = SUM +SHEET(I) 110 CONTINUE DIFF = ABS((TOTAL -SUM)/TOTAL) IF (DIFF.LT.l.OE-04) GO TO 120 WRITE(SOUT,2010) STOP 120 RETURN END 00064000 00065000 00066000 00067000 00068000 00069000 00070000 00071000 00072000 00073000 00074000 00075000 00076000 00077000 00078000 00079000 00080000 00081000 00082000 00083000 00084000 00085000 00086000 00087000 00088000 348 ------- c c c c c c c c c c c c SUBROUTINE STORGE( IB?.SE,TOUT, MTAD.NLEVS , REACH, 1 LENGTH,Q,TABLE, 2 LEV,S,T,Y ) CALCULATE STORAGE AND DEPTH CORRESPONDING TO GIVEN Q FOR THIS X-SECTION PARAMETERS INTEGER IBASE,IOUT,LEV,MTAD,NLEVS,REACH REAL LENGTH,Q,S,T REAL TABLE(MTAD) LOCAL INTEGER I,LEVBAS REAL CHG,DELA,DELT,DELY,PACT,QUOT,Q1,Q2,S1,S2 REAL T1,T2,Y1,Y2 WRITE FORMAT 2000 FORMAT('0','+++WARNING 101+-M- SECTION EXTRAPOLATED IN REACH ', 1 T5,' LEV-',18) 2010 FORMAT('0','+-M-ERROR 102+++ NO CONVERGENCE AFTER 100 ', 1 'ITERATIONS IN SUBROUTINE STORGE ') C C C LEV-1 IF(Q.NE.O.) GO TO 1 S«0. Y-0. RETURN 1 Ql- 0. C COMPUTE BASE REGISTER FOR 'TABLE1 2 LEVBAS- IBASE+ (LEV-1)*4 Q2- TABLE(LEVBAS+7) IF(Q.LT.Q2) GO TO 10 IF(LEV.EQ.(NLEVS-1)) GO TO 7 Ql- Q2 LEV- LEV + 1 GO TO 2 C EXTRAPOLATION 7 WRITE(IOUT,2000) REACH,LEV C WE HAVE FOUND THE CORRECT SEGMENT OF THE S VS Q CURVE - INTERPOLATE 10 SI- TABLE(LEVBAS+2)'LENGTH S2- TABLE(LEVBAS+6)*LENGTH S- SI + (Q-Q1)*(S2-S1)/(Q2-Q1) C FIND DEPTH USING NEWTON APPROXIMATION T2- TABLE(LEVBAS+5) Tl- TABLE (LEVBAS-H) Y2- TABLE(LEVBAS+4) Yl- TABLE(LEVBAS) QUOT-(T2-T1)/(Y2-Y1) DELA-(S-S1)/LENGTH C ITERATE DELY- (Y2-Y1)*0.5 DO 20 1-1,100 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 0001BOOO 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 00044000 00045000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 00062000 00063000 349 ------- F'\CT=QUOT*DELY 00064000 l.'i.T- (FACT*DELY*0. 5 + DELA)/(FACT + Tl) 00065000 Cf:.",-.ABS(DE:,T-DELY) 00066000 DELY-DELT 00067000 IF1CHG.LT.(0.01*Y2)) GO TO 22 00068000 ?0 CONTINUE 00069000 C ERROR 00070000 WRITE(IOUT,2010) 00071000 STOP 00072000 22 V= Yl + DELY 00073000 T = FACT + Tl 00074000 RETURN 00075000 END 00076000 350 ------- SUBROUTINE TBOX(IOUT) WRITE TITLE BOX WRITE (TOUT, 1) FORMAT('11,//,1X,120(1*1) ,/ ,1X, ' * ' , 118X, ' * ' , 1 /, IX, '*' ,23X, 'HYDRAULIC ROUTING ir ', 2 ' SEDIMENT TRANSPORT IN NATURAL CHANNELS ',23X, 3 '*',/, IX,'*1 ,118X, '*',/, IX,1*1 ,34X, 'DEVELOPED BY :-',68X, 4 '*',/, IX, '*' ,118X,'*' ,/, IX, '*' ,44X, 'K. M. LEYTHAM t ', 5 'R. JOHANSON ', 39X ,'*',/, IX, '*', 118X, '*',/, IX, '*', 52X, 6 'HYDROCOMP INC' , 52X, '*',/, (IX, '*', 118X, '*',/), 7 IX, '*' ,42X, 'DEVELOPED FOR EPA, ATHENS, GEORGIA1 ,42X, '*',/, 8 IX,'*1 ,45X, ' (LEE MULKEY PROJECT OFFICER) ' .45X,1*1 ,/, 9 2(1X,'*' ,118X, '*',/) , 1 IX, '*',49X, 'DATE:- AUGUST 1977 ', SIX, '*',/, 2 IX, '*' ,49X, 'VERSION:- WEST. SEDMT.TEST2 ' ,43X, '*',/, 3 3(1X,'*M18X, '*',/)} WRITE(IOUT,2) FORMAT ( ' + ' , 1 '*' ,20X, 'HYDROCOMP INC. ' ,44X, 'ENVIRONMENTAL RESEARCH ', 2 'LABORATORY1 ,7X, '*',/, 3 IX,'*1 ,20X, '1502 PAGE MILL RD. ' , 40X, 'U.S. ENVIRONMENTAL ', 4 'PROTECTION AGENCY' ,4X, '*',/, 5 IX,'*1 ,20X, 'PALO ALTO', 49X, 'ATHENS', 34X, '*',/, 6 IV.,'*' ,20X, 'CALIFORNIA 94301 ', 42X, 'GEORGIA 30601 ' ,27X, '*',/, 7 IX,'*1 ,20X,' (415-493-5522) ',44X,' (404-546-3581) ' ,26X, '*',/, 8 2(1X,'*',118X. '*',/) , RETURN END 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 0001BOOO 00019000 00019100 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 351 ------- c c c c c c c c c c c c c c c c SUBROUTINE ULTMT( NPSF,NPSF1,SDEBUG,SOUT,DEPTH,GRAV,ORGD50, 1 ORGTHK,SHEARV,SPGRAV,VEL,AA,AC,ACT1,AM,AN,DIA, 2 IM02,RECOMP,ACFRAC, 3 D50,D50IM,PCIMO,CE } THIS ROUTINE COMPUTES ULTIMATE TRANSPORT CONCNS. FOR SAND FRACTIONS USING ACKERS FORMULA. IM02 = THE LARGEST MOBILE FRACTION - THIS IE USED TO CHECK ARMORING IN ACTIVE LAYER COMPS. PARAMETERS INTEGER IM02,NPSF,NPSF1,RECOMP,SDEBUG,SOUT REAL DEPTH,D50,D50IM,GRAV,ORGD50,ORGTHK,PCIMO,SHEARV.SPGRAV,VEL REAL AA(NPSF),AC(NPSF),ACFRAC(NPSF),ACT1(NPSF1),AM(NPSF),AN(NPSF) REAL DIA(NPSF),CE(NPSF) LOCAL VARIABLES INTEGER HIGH,I,IMO,LOW,TEMP REAL DIFF,FGR,GGR WRITE FORMATS 2000 FORMAT('O1,'MOBILITY NO. FOR SANDS ',/,lX, 1 ' NPSFMOX.'FGR1) 2010 FORMAT(1X,I5,1X,E12.5) 2020 FORMAT(IX,'SIZE FRACTION ',15,' IMMOBILE1) 2030 FORMAT!'0','POTENTIAL CONCENTRATIONS FOR SANDS:',/,IX, 1 ' NPSF',5X,'POT CONC1,/, 2 (1X,I5,JX,E12.5) ) 2040 FORMAT('0','ALL SAND FRACTIONS IMMOBILE') 2050 FORMAT('0','ACTIVE LAYER THICKNESS CHANGED BY MORE THAN 50% ', 1 ' - RECOMPUTE ACTIVE LAYER CHARACTERISTICS ',/,lX, 2 'ORIGINAL THKNS *',E12.5,' NEW THKNS «',E12.5) 2060 FORMAT('0','D50 CHANGED BY MORE THAN 10% -.RECOMPUTE ACTIVE ', 1 'LAYER CHARACTERISTICS ',/,!X, 2 'ORIGINAL D50 -',£12.5,' NEW D50 -',E12.5) TEMP * IMO2 IM02 - NPSF IF (SDEBUG.GE.3) WRITE(SOUT,2000) DO 50 I = 3,NPSF FIND DIMENSIONLESS MOBILITY NO. FGR = ( SHEARV**AN(I)/SQRT(GRAV*DIA(I)*(SPGRAV -1.)) ) * 1 ( VEL/(5.657*ALOG10(10.*DEPTH/DIA(I))) )**(!. -AN(I)) IF (FGR.GT.AA(I)) GO TO 10 IM02 IS LARGEST MOBILE FRACTION IM02 - I -1 GO TO 60 C C C C c c c c 10 CONTINUE 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 00044000 00045000 00046000 00047000 00048000 00049000 00050000 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 00062000 00063000 352 ------- c c c c c c c c c c c IF (SDEBUG.GE.3) WRITE(SOUT,2010} I, FGR GGR = AC(I)*( FGR/AA(I) -l.)**AM(I) CE(I) IS POTENTIAL CONCN AT END OF INTERVAL (SPGRAV*DIA(I)*GGR/DEPTH) * (VEL/SHEARV)**AN(I) CE(I) 50 CONTINUE SET CONCNS FOR IMMOBILE FRACTIONS 60 CONTINUE IMO •= IM02 +1 IF (IMO.GT.NPSF) GO TO 80 DO 70 I = IMO,NPSF CE(I) - 0. IF (SDEBUG.GE.3) WRITE(SOUT,2020) I 70 CONTINUE 80 IF (SDEBUG.GE.3) 1 WRITE(SOUT,2030) ( (I,CE (I)),I«3,NPSF) IF (IM02.LT.3 .AND. SDEBUG.GE.3) WRITE(SOUT,2040) IF NO. OF IMMOBILE FRACTIONS HAS CHANGED SINCE LAST ACCESS WE MUST RECOMPUTE BEDFORM CHARACTERISTICS IF (IM02.NE.TEMP) RECOMP -1 GET CHARACTERISTICS OF TOP LAYER - NOT NECESSARY IF ACTIVE LAYER IS TO BE RECOMPUTED IF (RECOMP.EQ.l) GO TO 200 FIND % IMMOBILE AND D50 IMMOBILE 6 MOBILE PCIMO -0. D50IM "0. D50 -0. LOW « IM02 +1 IF (LOW.GT.NPSF) GO TO 160 DO 150 I - LOW,NPSF PCIMO - PCIMO + ACTld+1) CONTINUE HIGH - NPSF CALL DIAM50( HIGH,LOW,NPSF,NPSF1,SDEBUG,SOUT, ACT1.DIA, ACFRAC, D50IM ) CONTINUE 150 160 170 C C c HIGH - IM02 LOtf =3 IF (HIGH.LT.LOW) GO TO 170 CALL DIAM50( HIGH,LOW,NPSF,NPSFl,SDEBUG,SOUT, ACT1.DIA, ACFRAC, D50 ) CONTINUE CHECK REFERENCE VALUES 00064000 00065000 0006600C 00067000 00068000 00069000 00070000 00071000 00072000 00073000 00074000 00075000 00076000 00077000 00078000 00079000 00080000 00081000 00082000 00083000 00084000 00085000 00086000 00087000 00088000 00089000 00090000 00091000 00092000 00093000 00094000 00095000 00096000 00097000 00098000 00099000 00100000 00101000 00102000 00103^00 00104000 00105000 00106000 00107000 00108000 00109000 00110000 00111000 00112000 00113000 00114000 00115000 00116000 00117000 00118000 00119000 00120000 00121000 00122000 00123000 353 ------- DIFF = A8S( (ACT1(1) -ORGTHK)/(ORGTHK +0.001) ) 00124000 IF (DIFF.LE.0.5) GO TO 180 00125000 IF (SDEBL1G.GE.3) WRITE(SOUT,2050) ORGTHK,ACTl(1) 00126000 RECOMP =1 00127000 180 CONTINUE 00128000 C 00129000 DIFF = ABS( (D50 -ORGD50)/(ORGD50 + 0.00001) ) 00130000 IF (DIFF.LE.0.1) GO TO 190 00131000 IF (SDEBUG.GE.3) WRITE(SOUT,2060) ORGD50,D50 00132000 RECOMP =1 00133000 190 CONTINUE 00134000 C 00135000 C 00136000 C 00137000 200 CONTINUE 00138000 RETURN 00139000 END 00140000 354 ------- c c c c c c c c c c c c c c c c c SrVKROUTINE VISCHG1 MON,NPSF,SDEBUG,SOUT,GRAV, 1 SPGRAV,DIA,KINVIS, 2 RECOMP, 3 VISC,AA,AC,AM,AN,DGR,SETVEL ) THIS ROUTINE RECOMPUTES FACTORS WHICH ARE AFFECTED BY CHANGES IN VISCOSITY. THE ROUTINE IS PERFORMED AT THE START OF THE RUN & AT THE BEGINNING OF EVEP.Y MONTH THEREAFTER. VISCOSITY IS GIVEN AS A MONTHLY AVERAGE BASED ON AVERAGE MONTHLY TEMPERATURE. PARAMETERS INTEGER MON,NPSF,RECOMP,SDEBUG,SOOT REAL GRAV,SPGRAV,VISC REAL AA(NPSF),AC(NPSF),AM(NPSF),AN(NPSF) REAL DGR(NPSF),DIA(NPSF),KINVIS{12),SETVEL(2) LOCAL VARIABLES INTEGER I REAL AEXP,FACT,FACT2,LOGDGR WRITE FORMATS 2000 FORMATCO1 ,'VISCOSITY CHANGED TO ',E12.5,' FOR MONTH ',15, 1 /,'0','PARAMETERS FOR SAND FRACTIONS IN ACKERS ', 2 'FORMULA! ',/,!X, 3 • NPSFMOX.'DGRMlX.'AAMlXf'AC1 jllX.'AM1 , 2010 FORMAT(1X,I5,5(1X,E12.5)) 2020 FORMATCO1,'+++ERROR 521+++ DIMENSIONLESS GRAIN SIZE OUTSIDE', 1 ' RANGE FOR SAND FRACTION ',15,' ;DGR «',E12.5) 2030 FORMAT CO1,'SETTLING VELOCITIES FOR CLAY fc SILT: ',/,lX, 1 ' NPSF',7X,'SETVEL') 2040 FORMATCO1,'+++ERROR 522+++ DIMENSIONLESS GRAIN SIZE OUTSIDE', 1 ' RANGE FOR CLAY/SILT FRACTION ',15,' >DGR -',E12.5) 2050 FORMAT(1X,I5,1X,E12.5) VISC « KINVIS(MON) IF (SDEBUG.GE.3) WRITE(SOUT,2000) VISC,MON COMPUTE PARAMETERS FOR ACKERS £- WHITES FORMULA (APPLIES TO SANDS ONLY) FACT - ( GRAVMSPGRAV -1.)/(VISC*VISC) )**0.3333 DO 50 I - 3,NPSF ' DIMENSIONLESS PARTICLE SIZE DGR(I) - DIA(I)*FACT IF (DGR(I).GT.l.) GO TO 10 WRITE(SOUT,2020) I,DGR(I) STOP PARAMETERS FOR ACKSRS FORMULA C C C C c c c c c c c 00004000 00005000 00006000 00007000 00008000 00009000 00010000 00011000 00012000 00013000 00014000 00015000 00016000 00017000 00018000 00019000 00020000 00021000 00022000 00023000 00024000 00025000 00026000 00027000 00028000 00029000 00030000 00031000 00032000 00033000 00034000 00035000 00036000 00037000 00038000 00039000 00040000 00041000 00042000 00043000 00044000 00045000 00046000 00047000 00048000 00049rOO 00050UOO 00051000 00052000 00053000 00054000 00055000 00056000 00057000 00058000 00059000 00060000 00061000 00062000 00063000 355 ------- c c c c c c c c c 10 CONTINUE IF (DGR(I).GT.60.) GO TO 20 TRANSITIONAL PARTICLE SIZE LOGDGF. = ALOG10 (DGRfl) ) AN (I) = 1. -0.56*LOGDGP, Ao(I) = 0.14 +0.23/SQRT(DGR(I)) AM(I) = 1.34 +9.66/DGR(I) AEXP = LOGDGRM2.86 -LOGDGR) -3.53 AC(I) = 10.**AEXP GO TO 30 20 CONTINUE COARSE PARTICLE SIZE AN (I) = 0. AA(I) = 0.17 AM(I) = 1.5 AC(I) = 0.025 30 CONTINUE IF (SDEEUG.GE.3) 1 WRITE (SOUT, 2010) I, DGR (I) , AA (I) , AC (I )-,AM( I) , AN (I) 50 CONTINUE FIND NEW SETTLING VELOCITIES FOR CLAY/SILT IF (SDEBUG.GE.3) WRITE{SOUT,2030) FACT2 = GRAV*(SPGRAV -1.)/(18.*VISC) DO f!0 I = 1,2 !"• *S(I) = DIA(I)*FACT IF (DGR(I).LE.l.) GO TO 60 WRITE(SOUT.2040) I,DGR(I) s crip 60 SETV2L(I) = FACT2*DIA(I)*DIA(I) IF (SDEBUG.GE.3) 1 WRITE(SOUT,2050) I,SETVEL(I) 80 CONTINUE RECOUP =1 RETURN END 00064000 00065000 00066000 00067000 00068000 00069000 00070000 00071000 00072000 00073000 00074000 00075000 OC076000 00077000 00078000 00079000 00080000 00081000 00082000 00083000 00084000 00085000 00086000 00087000 00088000 00089000 00090000 00091000 00092000 00093000 00094000 00095000 00096000 00097000 00098000 00099000 00100000 00101000 00102000 00103000 00104000 00105000 00106000 00107000 356 ------- TECHNICAL REPORT DATA (Please read Instructions on the reverse before completing) 1. REfORT NO. EPA-600/3-79-028 2. 3. RECIPIENT'S ACCESSION- NO. 4. TITLE ANDSUB1ITLE Watershed Erosion and Sediment Transport Model 5. REPORT DATE March 1979 6. PERFORMING ORGANIZATION CODE 7. AUTHOR(S) K. M. Leytham and R. C. Johanson 8. PERFORMING ORGANIZATION REPORT NO. 9. PERFORMING ORGANIZATION NAME AND ADDRESS Hydrocomp, Inc. 1502 Page Mill Road Palo Alto, California 94304 10. PROGRAM ELEMENT NO. 1BB770 11. CONTRACT/GRANT NO. R803726-01-0 12. SPONSORING AGENCY NAME AND ADDRESS Environmental Research Laboratory—Athens, GA Office of Research and Development U.S. Environmental Protection Agency Athens, Georgia 30605 13. TYPE OF REPORT AND PERIOD COVERED Final. 7/75-6/77 14. SPONSORING AGENCY CODE EPA/600/01 15. SUPPLEMENTARY NOTES 16. ABSTRACT This report describes the development and initial testing of the Watershed Erosion and Sediment Transport (WEST) Model. It is a deterministic conceptual model which operates in two phases. In the first one, hydrological and erosion processes associated with the land surfaces of a watershed are simulated, using the Agricul- tural Runoff Management (ARM) Model. The research work in this project centered on the second phase, in which the movement of water and sediment through a channel system is simulated using the CHANL Model. In the CHANL model the channels of a watershed are represented by a network of reaches. Hydraulic routing is performed using the kinematic wave approximation. The results are fed to the sediment algorithms which explicitly represent the processes of deposition, scour, armoring, and advection. The model is designed to handle any mixture of cohesive and cohesionless sediment. The model has been tested on laboratory data and on data from the East Fork River, Wyoming. Results from these tests were satisfactory. The model was also tested on data recorded on Four Mile Creek, Iowa. In this test, inadequate data made it impossible to draw any definite conclusions regarding model performance. 17. KEY WORDS AND DOCUMENT ANALYSIS DESCRIPTORS b.lDENTIFIERS/OPEN ENDED TERMS COSATi Field/Group Mathematical models Watersheds Sediment transport 12A 48G 68D 91A 18. DISTRIBUTION STATEMENT RELEASE TO PUBLIC 19. SECURITY CLASS (ThisReport) UNCLASSIFIED 21. NO. OF PAGES 373 20. SECURITY CLASS (This page) UNCLASSIFIED 22. PRICE EPA Form 2220-1 (»-73) 357 U. S. mvFRNMEN! PRINTING OFFICE: 1979 — 657-OM1/5316 -------