For the estimation of precipitation runoff, several kinds of Unithydrograph subroutines are available here.

Unitgraph Clark is one of the synthetic unit hydrographs and it is based on the linear reservoir model.

| 4.1 | UnitgraphClark | Clark unit Hydrograph | ||||||
| Purpose: | ||||||||
| Computes ordinates for Clark unit hydrograph. | ||||||||
| Calling Sequence: | ||||||||
| CALL UnitgraphClark (timeInterval, timeOfConcentration, storageTime, basinArea, basinShape, numberTimeAccumBasinArea, timeAccumBasinArea, maxNumberUnitgraphOrd, numberUnitgraphOrd, unitgraphOrd, errorCode, errorMessage ) | ||||||||
| Declarations: | ||||||||
| INTEGER | TIMEINTERVAL | |||||||
| DOUBLE PRECISION | TIMEOFCONCENTRATION, STORAGETIME | |||||||
| DOUBLE PRECISION | BASINAREA | |||||||
| INTEGER | BASINSHAPE | |||||||
| INTEGER | NUMBERTIMEACCUMBASINAREA | |||||||
| DOUBLE PRECISION | TIMEACCUMBASINAREA(NUMBERTIMEACCUMBASINAREA) | |||||||
| INTEGER | MAXNUMBERUNITGRAPHORD, NUMBERUNITGRAPHORD | |||||||
| DOUBLE PRECISION | UNITGRAPHORD(MAXNUMBERUNITGRAPHORD) | |||||||
| INTEGER*4 | ERRORCODE | |||||||
| CHARACTER | ERRORMESSAGE*80 | |||||||
| Augument Description: | ||||||||
| TIMEINTERVAL | (Input) | Time interval, minutes. | ||||||
| TIMEOFCONCENTRATION | (Input) | Time of concentration, hours | ||||||
| STORAGETIME | (Input) | Storage time forlinear reservoir, hours | ||||||
| BASINAREA | (Input) | Basin area, square kilometers. | ||||||
| BASINSHAPE | (Input) | Basin shape index.
IfbasinShape is 0 or less, use values in timeAccunlBasinArea array to determine area vs. time relation. See description of FUNCTION synTimeAccunlBasinArea for other values. |
||||||
| NUMBERTIMEACCUMBASINAREA | (Input) | Number of values in timeAccumBasinArea array. | ||||||
| TIMEACCUMBASINAREA | (Input) | Area contributing
to subbasin runoff at the end of evenly spaced time intervals. These values can be in any units; each value is divided by the last value in the array. |
||||||
| MAXNUMBERUNITGRAPHORD | (Input) | Maximum number of unit hydrograph ordinates. | ||||||
| NUMBERUNITGRAPHORD | (Output) | Number of unit hydrograph ordinates. | ||||||
| UNITGRPAHORD | (Output) | Unit hydro graph ordinates, m3/s per mm of excess. | ||||||
| ERRORCODE | (Output) | Coded integer
indicating error number, severity and subroutine name. See subroutine DecodeErrorCode. |
||||||
| ERRORMESSAGE | (Output) | Error message. See Remarks. | ||||||
| REMARKS | ||||||||
| Unit excess is distributed in time according to the area vs. time relation. This excess is routed through a linear reservoir until the total volume is 0.995 of the excess. The unit hydrograph ordinates are then adjusted so the total volume is equal to the unit excess. | ||||||||
| Error | severity | errorMessage | ||||||
| 0 | 0 | |||||||
| 1 | 2 | Time of concentration increased to one time interval: xxx hr | ||||||
| 2 | 2 | Clark storage parameter increased to 0.5 time interval: xxx hr | ||||||
| 11 | 4 | Unit hydrograph volume is less than 0.97 basin-mm: xxx | ||||||
| 12 | 4 | Unit hydrograph is longer than available array size: nnn nnn | ||||||
| 13 | 4 | Accumulated time vs. basin area was not specified | ||||||
| Subroutines called | ||||||||
| SynTimeAccumBasinArea | ||||||||

| 4.2 | UnitgraphSnyder | Snyder Unit Hydrograph | ||||||
| Purpose: | ||||||||
| Computes ordinates for Snyder unit hydrograph. | ||||||||
| Calling Sequence: | ||||||||
| CALL UnitgraphSnyder (timeInterval, snyderLag, snyderCp, basinArea, basinShape, numberTimeAccumBasinArea, timeAccunlBasinArea, maxNumberUnitgraphOrd, numberUnitgraphOrd, unitgraphOrd, timeOfConcentration, storageTime, errorCode, errorMessage ) | ||||||||
| Declarations: | ||||||||
| INTEGER | TIMEINTERVAL | |||||||
| DOUBLE PRECISION | SNYDERLAG, SNYDERCP | |||||||
| DOUBLE PRECISION | BASINAREA | |||||||
| INTEGER | BASINSHAPE | |||||||
| INTEGER | NUMBERTIMEACCUMBASINAREA | |||||||
| DOUBLE PRECISION | TIMEACCUMBASINAREA(NUMBERTIMEACCUMBASINAREA) | |||||||
| INTEGER | MAXNUMBERUNITGRAPHORD, NUMBERUNITGRAPHORD | |||||||
| DOUBLE PRECISION | UNITGRAPHORD(MAXNUMBERUNITGRAPHORD) | |||||||
| DOUBLE PRECISION | TIMEOFCONCENTRATION, STORAGETIME | |||||||
| INTEGER*4 | ERRORCODE | |||||||
| CHARACTER | ERRORMESSAGE*80 | |||||||
| Augument Description: | ||||||||
| TIMEINTERVAL | (Input) | Time interval, minutes. | ||||||
| SNYDERLAG | (Input) | Snyder's standard lag, Tp, hours. | ||||||
| SNYDERCP | (Input) | Snyder's Cp. | ||||||
| BASINAREA | (Input) | Basin area, square kilometers. | ||||||
| BASINSHAPE | (Input) | Basin shape
index. IfbasinShape is 0 or less, use values in timeAccunlBasinArea array to determine area vs. time relation. See description of FUNCTION synTimeAccunlBasinArea for other values. |
||||||
| NUMBERTIMEACCUMBASINAREA | (Input) | Number of values in timeAccumBasinArea array. | ||||||
| TIMEACCUMBASINAREA | (Input) | Area contributing
to subbasin runoff at the end of evenly spaced time intervals. These values can be in any units; each value is divided by the last value in the array. |
||||||
| MAXNUMBERUNITGRAPHORD | (Input) | Maximum number of unit hydro graph ordinates. | ||||||
| NUMBERUNITGRAPHORD | (Output) | Number of unit hydrograph ordinates. | ||||||
| UNITGRPAHORD | (Output) | Unit hydro graph ordinates, m3/s per mm of excess. | ||||||
| TIMEOFCONCENTRATION | (Output) | Time of concentration from Clark method, hours | ||||||
| STORAGETIME | (Output) | Basin storage time from Clark method, hours. | ||||||
| ERRORCODE | (Output) | Coded integer
indicating error number, severity and subroutine name. See subroutine DecodeErrorCode. |
||||||
| ERRORMESSAGE | (Output) | Error message. See Remarks. | ||||||
| REMARKS | ||||||||
| Uses subroutine UnitgraphClark to compute unit hydrograph. Clark
timeOfConcentration and storageTime are estimated from Snyder parameters, and Clark unit hydrographs are computed until estimated lag and Cp are within one percent of the given Snyder parame |
||||||||
| Error | severity | errorMessage | ||||||
| 0 | 0 | |||||||
| 1 | 2 | Time of concentration increased to one time interval: xxx hr | ||||||
| 2 | 2 | Clark storage parameter increased to 0.5 time interval: xxx hr | ||||||
| 6 | 2 | Clark unitgraph does not converge to Snyder parameters | ||||||
| 11 | 4 | Unit hydrograph volume is less than 0.97 basin-mm: xxx | ||||||
| 12 | 4 | Unit hydrograph is longer than available array size: nnn nnn | ||||||
| 13 | 4 | Accumulated time vs. basin area was not specified | ||||||
| 14 | 4 | Snyder Cp is less than or equal to zero: xxx | ||||||
| Subroutines called | ||||||||
| UnitgraphClark | ||||||||
| SnyderParameters | ||||||||

| 4.3 | UnitgraphSCS | SCS Dimensionless Unit Hydrograph | ||||||
| Purpose: | ||||||||
| Computes ordinates for using the SCS dimensionless unit hydrograph. | ||||||||
| Calling Sequence: | ||||||||
| CALL UnitgraphSCS (timeInterval, lag, basinArea, maxNumberUnitgraphOrd, numberUnitgraphOrd, unitgraphOrd, errorCode, errorMessage ) | ||||||||
| Declarations: | ||||||||
| INTEGER | TIMEINTERVAL | |||||||
| DOUBLE PRECISION | lag | |||||||
| DOUBLE PRECISION | BASINAREA | |||||||
| INTEGER | MAXNUMBERUNITGRAPHORD, NUMBERUNITGRAPHORD | |||||||
| DOUBLE PRECISION | UNITGRAPHORD(MAXNUMBERUNITGRAPHORD) | |||||||
| INTEGER*4 | ERRORCODE | |||||||
| CHARACTER | ERRORMESSAGE*80 | |||||||
| Augument Description: | ||||||||
| TIMEINTERVAL | (Input) | Time interval, minutes. | ||||||
| LAG | (Input) | SCS lag time, hours. | ||||||
| STORAGETIME | (Input) | Storage time forlinear reservoir, hours | ||||||
| BASINAREA | (Input) | Basin area, square kilometers. | ||||||
| MAXNUMBERUNITGRAPHORD | (Input) | Maximum number of unit hydrograph ordinates. | ||||||
| NUMBERUNITGRAPHORD | (Output) | Number of unit hydrograph ordinates. | ||||||
| UNITGRPAHORD | (Output) | Unit hydro graph ordinates, m3/s per mm of excess. | ||||||
| ERRORCODE | (Output) | Coded integer
indicating error number, severity and subroutine name. See subroutine DecodeErrorCode. |
||||||
| ERRORMESSAGE | (Output) | Error message. See Remarks. | ||||||
| REMARKS | ||||||||
| Unit hydrograph ordinates are adjusted so the total volume is equal to 1 mm excess over the basin area. | ||||||||
| Error | severity | errorMessage | ||||||
| 0 | 0 | |||||||
| 4 | 2 | Time interval is greater than 0.29*lag | ||||||
| 5 | 2 | Unitgraph truncated from nnn ordinates to nnn ordinates. | ||||||
| 11 | 4 | Unit hydrograph volume is less than 0.97 basin-mm: xxx | ||||||
| Subroutines called | ||||||||
| IntrpolateLinear | ||||||||