Full Equations (FEQ) Model for the Solution of the Full, Dynamic Equations of Motion for One-Dimensional Unsteady Flow in Open Channels and Through
Control Structures
The structure of the DTSF is designed to enable FEQ to simulate many disjoint runoff events stored in a single file. In most applications, the major runoff events in each water year are selected and the unit-area runoff intensities for each of these events are computed with a rainfall-runoff model. Furthermore, more than one rain gage and (or) land use in the watershed normally is simulated. Therefore, the structure of the DTSF must allow for the storage of multiple disjoint events, each containing runoff time series for each of one or more rain gages or land uses.
In the structure of the DTSF, the following assumptions are made:
The third file-header record contains any alphanumeric
description of the DTSF. It must have
JTIME is a double-precision (two four-byte words) floating-point value giving the modified Julian time for the end of the time interval defining the average runoff values being stored. This is the elapsed time in days from the start of November 17, 1858. The modified Julian time at the start of January 1, 1993, is 48988.0. The modified Julian time at 6 a.m. on the same day is 48988.25.
DYFRAC is a double-precision (two four-byte words) floating-point value giving the fraction of the day for the date given in JTIME.
YEAR is an integer (one four-byte word) giving the year at the end of the time interval.
MONTH is an integer (one four-byte word) giving the month at the end of the time interval.
DAY is an integer (one four-byte word) giving the day at the end of the time interval.
RUNOFF (1 : Nts) is a single-precision (one four-byte word) floating-point runoff values for each of the time series for the time interval ending at JTIME. The order of the time series is the same as the order of the tributary areas in the Tributary Area Block (section 13.3) in FEQ. A logical order is to give the land uses for each gage in a standard sequence. It is recommended that the time-series description records be in the same order.
The first record of each event is different in terms of the time specification. All other records in the event give the time at the end of the time interval defining the average runoff. The modified Julian time for the first record is the time at the start of the first time interval of the event. All but the first two runoff values in the first record are set to zero. The first two runoff values are used to store the modified Julian time of the end of the event. This is done by use of the EQUIVALENCE statement in Fortran to overlay a double-precision floating-point value onto two single-precision floating-point values. (This is the source of the requirement that there be at least two time series in the DTSF.) This ending time is extracted in simulation, and the two runoff values are set to zero to match the other values when the first record of each event is encountered. The end of the DTSF is marked by writing a data record in which all the fields are set to zero.
The structure of the DTSF is specific to computer systems with commensurable sizes for integers, single-precision floating-point numbers, and double-precision floating-point numbers. Most computer systems developed in the United States follow the pattern assumed by the DTSF. However, some systems have a different word size for integers and single-precision floating-point numbers. Furthermore, some systems have a double-precision floating-point value that does not take twice the space of a single-precision value. When the storage sizes are not commensurable as assumed above, a new version of the DTSF will be required.