[Next Section] [Previous Section] [Table of Contents]

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

U.S. GEOLOGICAL SURVEY WATER-RESOURCES INVESTIGATIONS REPORT 96-4240

APPENDIX 3: Dimensions of Arrays in the Full Equations Model


A stream system larger than that permitted by the size declared for a variety of vectors and arrays cannot be simulated in FEQ. (A vector is an array with only a single dimension.) The sizes of these arrays and vectors have been declared by use of Fortran parameters. A file, ARSIZE.PRM, contains these dimension parameters in a PARAMETER statement. An INCLUDE compiler directive appears with ARSIZE.PRM for the arguments in any program unit in which one or more of the parameters in ARSIZE.PRM is required to establish the dimension of some array or vector.

Many of the parameters giving the dimensions begin with the letter "M" and may be followed with the letter " R" to denote the number of rows for a vector or an array. All vectors are viewed as being column vectors. Therefore, each row for a vector contains only one element. The second letter may be "C" to denote the number of columns for arrays; that is, the number of elements in each row of the array. The remaining four characters available in a Fortran name are the same as or are related to the variable name being dimensioned. Some parameters that are used for many different vectors or arrays do not follow these guidelines. For example, MNBN gives the maximum number of branch nodes and is used to dimension vectors that contain information relevant to nodes on a branch.

The following list gives a brief description of each parameter.

(CD5TY1 to CD5TY9 see section 13.6)

CD5TY1 Used in storing and processing code 5, type 1 entries in the Network Matrix Control Block
(section 13.6).
CD5TY2 Used in storing and processing code 5, type 2 entries in the Network Matrix Control Block
(section 13.6).
CD5TY3 Used in storing and processing code 5, type 3 entries in the Network Matrix Control Block
(section 13.6).
CD5TY4 Used in storing and processing code 5, type 4 entries in the Network Matrix Control Block
(section 13.6).
CD5TY5 Used in storing and processing code 5, type 5 entries in the Network Matrix Control Block
(section 13.6).
CD5TY6 Used in storing and processing code 5, type 6 entries in the Network Matrix Control Block
(section 13.6).
CD5TY7 Used in storing and processing code 5, type 7 entries in the Network Matrix Control Block
(section 13.6).
CD5TY8 Used in storing and processing code 5, type 8 entries in the Network Matrix Control Block
(section 13.6).
CD5TY9 Used in storing and processing code 5, type 9 entries in the Network Matrix Control Block
(section 13.6).
MCPFPT Maximum number of columns in point-flow-pointer vector PFPNT.
MCTD10 Maximum number of columns in a table of type 10. Set to 1 because tables of type 10 are not currently used in FEQ; however, the input of these tables is supported in FEQUTL, and the code that processes these tables is included in FEQ. Therefore, a value for MCTD10 is required even though tables of type 10 are not currently used in FEQ.
MEXTRA Number of branch nodes in excess of the nodes on each end of a branch.
MFTNUM Maximum function table number. Gives length of function-table pointer vector FTPNT. One value in this vector is used by every function table in the model of the stream system. The value of MFTNUM is the maximum value for a function table number. For example, if MFTNUM is 10,000, then no table number can be larger than 10,000.
MLPDA Maximum length of the partial derivative array PDAVEC. This array is stored as a vector with rows and columns accessed with pointer vectors C and R.
MNBLK Maximum number of Operation-Control Blocks (section 13.12).
MNBN Maximum number of branch nodes.
MNBRA Maximum number of branches.
MNCD6 Maximum number of Code=6 forced boundaries in the stream system.
MNDBUF Maximum number of diffuse flow buffers. Should be in the range of 20 to 30.
MNDEP Maximum number of depth values in an interpolated cross-section table.
MNDIFA Maximum number of diffuse areas. This is the sum across all rain gages of the land uses in each rain-gage area.
MNETRY Maximum number of entries in the Network-Matrix Control Block (section 13.6). Each CODE value in the input defines an entry.
MNEX Maximum number of flow-path end nodes. MNFIN Maximum number of input files allowed for Code=6.
MNFOUT Maximum number of output files allowed. This refers to the output of point time-series files.
MNFRDT Maximum number of frozen time steps.
MNFREE Maximum number of flow-path end nodes not on branches. Total of level-pool reservoir and dummy-branch end nodes.
MNGATE Maximum number of gates for output of special values to the special-output file.
MNITER Maximum number of possible iterations for system solution.
MNMID Maximum number of contiguous interpolated cross sections in a branch.
MNSOUT Maximum number of special outputs in the special-output file.
MORG Offset parameter for command-line processing. Should be 0 for UNIX systems and 1 if a Lahey compiler is used.
MREMC Maximum number of rows in the Network-Matrix Control vector. This vector is used to store the information in the Network-Matrix Control Block (section 13.6) in an internal coded form. Each item stored takes a row in the vector. Thus, this vector should have several thousand rows.
MRFTAB Maximum number of rows in the function-table vector pair (FTAB, ITAB). Each number in a function table takes a row in this vector. Values for this parameter are usually 250,000 or larger. Large models may require a value of 1 million or more elements.
MRMAT Maximum number of rows in the array of partial derivatives. The number of rows in this array must be twice the number of distinct nodes in the system. MNBN is the number of nodes on branches, and MNFREE is the number of nodes on dummy branches and level-pool reservoirs. Thus, MRMAT is twice the sum of MNFREE and MNBN.
MRMBLK Maximum number of rows in the matrix-block control system. One row is used for each matrix block in the array of partial derivatives.
MRPFPT Maximum number of rows in the point-flow-pointer vector PFPNT. Each point inflow takes one row. These are point flows into an element of a branch. In general, such point inflows should not be used. The use of a dummy branch or level-pool reservoir to represent point inflows is the preferred alternative.
MRRBUF Maximum number of rows in the read buffer for input files. This space is shared by all input files attached to Code=6 in the Network-Matrix Control Block (section 13.6). Thus, it should be large enough so that each file obtains 100 or more elements.
MSPKNT Default maximum number of lines per page in the special-output file.
MUNIT Maximum unit number for input or output. Selection of input and output unit values is described in detail below.
MXGAGE Maximum number of rain gages.
MXGLU Maximum number of land-use/rain-gage values in the system. Same value as MNDIFA.
OFF234 Offset of the first argument in a function table of type 2, 3, or 4 from the address of the table.
XTIOFF Offset of the first argument in cross-section function table from the address of the table.

[Next Section] [Previous Section] [Table of Contents]