VIII.3.3-DHM-OP DISTRIBUTED HYDROLOGIC MODELING OPERATION

[`Identifier`]{.underline}`: DHM-OP`

[`Operation Number`]{.underline}`:  64`

[`Developed by`]{.underline}`:`` `` `` HSEB, Office of Hydrologic Development`

[`Array Entries`]{.underline}`:`` `` ``This Operation uses the P array to pass information on the upstream and/or outlet basins and time series.  The T array is used to pass information about the specified time series.  A single carryover value is defined, but not used. `

[`Parameter Array`]{.underline}`:  The FORTRAN identifier used for the parameter array is ``PO``.  The contents of the ``PO`` array are:`

[Position]{.underline} [Contents]{.underline}

1 Operation version number

2-3 Time series identifier

4 Time series data type code

5 Time series data time interval

6-7 Basin ID identifier

8-9 Time series identifier

10 Time series data type code

11 Time series data time interval

12-13 Basin ID identifier

14 Inflow flag identifier. If flag = -1, PO(2)to PO(7) contains
information for OUTLET: header type,and PO(8) to PO(13) contain dummy
values. If flag = 1, PO(8) to PO(13) contains information for INFLOW:
header type.

[Carryover Array]{.underline}: The FORTRAN identifier used for the
carryover array is CO. The contents of the CO array are as follows:

[Position]{.underline} [Contents]{.underline}

1 value of 1 (hard-coded)

[T Array]{.underline}: The contents of the T array are as follows:

[Position]{.underline} [Contents]{.underline}

1 Operation number

2 Location of the next Operation in the T array

3 Location of the parameters in the P array

4 Location of the time series data in the D array

5 Location of the output time series data in the T array

6 Location of the input time series data in the T array

[Subroutines Names and Functions]{.underline}: The subroutines
associated with this Operation are:

[Subroutine]{.underline} [Function]{.underline}

PIN64 Input cards, makes checks and stores values in PO and CO arrays

TAB64 Makes Operation Table entries

PRP64 Print parametric data

PUC64 Output cards in the format which can be read by routine PIN64

EX64 Execute the Operation

Subroutines PIN64, PRP64 and PUC64 have the standard argument lists for
these subroutines as given in Section VIII.4.3.

SUBROUTINE PIN64(PO,LEFTP,IUSEP,CO,LEFTC,IUSEC)

[Function]{.underline}:  This is the input routine for Operation DHM-OP.
This routine fills the P array.

[Argument List]{.underline}:

Input/

[Variable]{.underline} [Output]{.underline} [Type]{.underline}
[Dimension]{.underline} [Description]{.underline}

PO Output I\*4 Variable Array beginning at the portion of P array used
by this Operation

LEFTP Input I\*4 1 Space available in P for storage by PO

IUSEP Output I\*4 1 Amount of space used by PO

CO Output R\*4 1 real array dimensioned CO(\*) which is used to store
the initial values of the state variables

LEFTC Input I\*4 1 maximum amount of space

available for the CO array

IUSEC Input I\*4 1 number of words of storage used

for the CO array

SUBROUTINE TAB64 (OpArray,LEFT,IUSET,NXT,LPO,PO,LCO,TS,MTS,LWORK,IDT)

[Function]{.underline}: This is the Operations Table entry subroutine
for DHM-OP.

[Argument List]{.underline}: The arguments are similar to the arguments
for the Operations Table entry subroutines for other Operations. A
description of the arguments is in Section VIII.4.2-TAB.

[Operations Table Array]{.underline}: The contents of the OpArray array
are:

[Position]{.underline} [Contents]{.underline}

1 Operation number

2 The location in the T array of the next Operation to be executed

3 Location of the PO array in the P array

4 Location of the CO array in the C array:

0 = carryover not needed

5 Location the output time series in the T array

6 Location of the input time series in the T array

SUBROUTINE PRP64 (PO)

[Function]{.underline}:  This routine prints information about the time
series that is to be set by Operation DHM-OP.

[Argument List]{.underline}:

Input/

[Variable]{.underline} [Output Type Dimension]{.underline}
[Description]{.underline}

PO Input R\*4 Variable Contains information for the time series to be
set

SUBROUTINE PUC64 (PO)

[Function]{.underline}:  This is the card punch routine for Operation
DHM-OP. This routine punches the time series identifiers in the same
format as the input card for the Operation.

[Argument List]{.underline}:

Input/

[Variable]{.underline} [Output Type Dimension]{.underline}
[Description]{.underline}

PO Input R\*4 Variable Contains information for the time series to be
set

SUBROUTINE EX64 (PO,CO,outputDarray,inputDarray)

[Function]{.underline}: This is the execution subroutine for the
Operation DHM-OP.

[Argument List]{.underline}:

Input/

[Variable]{.underline} [Output]{.underline} [Type]{.underline}
[Dimension]{.underline} [Description]{.underline}

PO Input R\*4 20 Parameter array

CO Input R\*4 1 Carryover array

outputDarray Output R\*4 1 output time series in the D array

InputDarray Input R\*4 1 Input time series in the D array