For calculating the infiltration rate, three subroutines are available as follows.

| 3.2 | LOSSGREENAMPT | Losses Using Greenand Ampt Infiltration Formula | ||||||
| Purpose: | ||||||||
| Computes precipitation excess using Green and Ampt infiltration formula. | ||||||||
| Calling Sequence: | ||||||||
| Call LOSSGREENAMPT(TIMEINTERVAL, STARTINITIALLOSS, ENDINITIALLOSS, MOISTUREDEFICIT, SUCTION, CONDUCTIVITY, STARTINFILTRATION, FINALINFILTRATION, IMPERVIOUSAREARATIO, NUMBERPRECIP, PRECIP(1), EXCESS(1), ERRORCODE, ERRORMESSAGE, L_errorMessage) | ||||||||
| Declarations: | ||||||||
| INTEGER | TIMEINTERVAL | |||||||
| DOUBLE PRECISION | STARTINITIALLOSS, ENDINITIALLOSS | |||||||
| DOUBLE PRECISION | MOISTUREDEFICIT, SUCTION, CONDUCTIVITY | |||||||
| DOUBLE PRECISION | STARTINFILTRATION, FINALINFILTRATION | |||||||
| DOUBLE PRECISION | IMPERVIOUSAREARATIO | |||||||
| INTEGER | NUMBERPRECIP | |||||||
| DOUBLE PRECISION | PRECIP(NUMBERPRECIP), EXCESS(NUMBERPRECIP) | |||||||
| INTEGER*4 | ERRORCODE | |||||||
| CHARACTER | ERRORMESSAGE*60 | |||||||
| Augument Description: | ||||||||
| TIMEINTERVAL | (Input) | Time interval in minutes | ||||||
| STARTINITIALLOSS | (Input) | Starting value for initial abstraction, depth units; same units of depth as precip and excess. All precipitation will be lost until this amount is satisfied | ||||||
| ENDINITIALLOSS | (Output) | State of initial abstraction after end of precipitation, depth units | ||||||
| MOISTUREDEFICIT | (Input) | moisture deficit as beginning of precipitation event, volume.volume | ||||||
| SUCTION | (Input) | Wetting front suction, depth units. | ||||||
| CONDUCTIVITY | (Input) | Hydraulic Conductivity, depth/hour | ||||||
| STARTINFILTRATION | (Input) | Cumulative infiltration occurring before first value in precip array, depth units. Set this value to zero at the beginning of an event | ||||||
| FINALINFILTRATION | (Input) | Cumulative infiltration occurring through the last value in the precip array, depth units. | ||||||
| IMPERVIOUSAREARATIO | (Input) | Impervious area as a ratio of the basin area. | ||||||
| NUMBERPRECIP | (Input) | Number of precipitation values. | ||||||
| PRECIP | (Input) | Array of precipitation depths. Each value represents of precipitation occurring over the basin in each time interval. | ||||||
| EXCESS | (Output) | Array of precipitation excess depths, including excess from impervious area; represents the depth of precipitation excess occurring in each time interval. | ||||||
| ERRORCODE | (Output) | Coded integer indicating error number, severity and subroutine name. See subroutine DecodeErroCode | ||||||
| ERRORMESSAGE | (Output) | Errormessage. See Remarks. | ||||||
| Remarks: | ||||||||
| The Green and Ampt formula computes cumulative infiltration from the beginning of an event, so if this subroutine is called in the middle of an event, cumulative infiltration from the beginning of the event needs to be set. | ||||||||
| Error | severity | errorMessage | ||||||
| 0 | 0 | |||||||
| 11 | 4 | Moisture deficit, suction, or conductivity is zero or negative: xxx, xxx, xxx | ||||||
| 15 | 4 | Invalid value for impervious area ratio: XXX | ||||||
| Subroutines Called: | ||||||||
| GREENAMPTINFILTRATION | ||||||||
| GREENAMPTTIMECORRECTION | ||||||||
| GREENAMPTPONDTIME | ||||||||
| IMPERVIOUSAREAEXCESS | ||||||||

| 3.3 | LOSSINITIALCONSTANT | Initial Loss and Constant Loss Rate | ||||||
| Purpose: | ||||||||
| Computes precipitation excess using initial loss | ||||||||
| Calling Sequence: | ||||||||
| CALL LOSSINITIALCONSTANT(TIMEINTERVAL, STARTINITIALLOSS, ENDINITIALLOSS, CONSTANTLOSSRATE, IMPERVIOUSAREARATIO, NUMBERPRECIP, PRECIP, EXCESS, ERRORCODE, ERRORMESSAGE) | ||||||||
| Declarations: | ||||||||
| INTEGER | TIMEINTERVAL | |||||||
| DOUBLE PRECISION | STARTINITIALLOSS, ENDINITIALLOSS | |||||||
| DOUBLE PRECISION | CONSTANTLOSSRATE | |||||||
| DOUBLE PRECISION | IMPERVIOUSAREARATIO | |||||||
| INTEGER | NUMBERPRECIP | |||||||
| DOUBLE PRECISION | PRECIP(NUMBERPRECIP), EXCESS(NUMBERPRECIP) | |||||||
| INTEGER*4 | ERRORCODE | |||||||
| CHARACTER | ERRORMESSAGE*60 | |||||||
| Augument Description: | ||||||||
| TIMEINTERVAL | (Input) | Time interval in minutes | ||||||
| STARTINITIALLOSS | (Input) | Starting value for initial abstraction, depth units; same units of depth as precip and excess. All precipitation will be lost until this amount is satisfied. | ||||||
| ENDINITIALLOSS | (Output) | State of initial abstraction after end of precipitation, depth units. | ||||||
| CONSTANTLOSSRATE | (Input) | Constant loss rate, depth units/hour | ||||||
| IMPERVIOUSAREARATIO | (Input) | Impervious area as a ratio of the basin area. | ||||||
| NUMBERPRECIP | (Input) | Number of precipitation values. | ||||||
| PRECIP | (Input) | Array of precipitation depths. Each value represents of precipitation occurring over the basin in each time interval. | ||||||
| EXCESS | (Output) | Array of precipitation excess values; represents the depth of precipitation excess occurring in each time interval. | ||||||
| ERRORCODE | (Output) | Coded integer indicating error number, severity and subroutine name. See subroutine DecodeErroCode | ||||||
| ERRORMESSAGE | (Output) | Errormessage. See Remarks. | ||||||
| Remarks: | ||||||||
| Error | severity | errorMessage | ||||||
| 0 | 0 | |||||||
| 15 | 4 | Invalid value for impervious area ratio: XXX | ||||||
| Subroutines Called: | ||||||||
| IMPERVIOUSAREAEXCESS | ||||||||
Soil Conservation Service(SCS) Curve Number(CN) model estimates precipitation excess as a function of cumulative precipitation, soil cover, land use, and antecedent moisture, using the following equation:
Pe =
Accumulated precipitation excess at time t (mm)
P
= Accumulated rainfall depth at time t (mm)
Ia =
the initial abstraction (initial loss) (mm)
S
= potential maximum retention (mm)
![]()
(For
SI Unit)
CN= Curve number (30 < CN < 100)
For estimating the CN, you can refer to several CN tables proposed by SCS (HEC-HMS
technical manual).
| 3.4 | LOSSSCSCURVENUMBER | SCS Curve number | ||||||
| Purpose: | ||||||||
| Computes precipitation excess based on SCS curve number. | ||||||||
| Calling Sequence: | ||||||||
| Call LOSSSCSCURVENUMBER(CURVENUMBER, INITIALABSTRACTION, INITIALCUMULATIVEPRECIP, FINALCUMULATIVEPRECIP, IMPERVIOUSAREARATION, NUMBERPRECIP, PRECIP(1), EXCESS(1), ERRORCODE, ERRORMESSAGE) | ||||||||
| Declarations: | ||||||||
| DOUBLE PRECISION | CURVENUMBER | |||||||
| DOUBLE PRECISION | INITIALABSTRACTION | |||||||
| DOUBLE PRECISION | INITIALCUMULATIVE PRECIP, FINALCUMULATIVEPRECIP | |||||||
| DOUBLE PRECISION | INPERVIOUSAREARATIO | |||||||
| INTEGER | NUMBERPRECIP | |||||||
| DOUBLE PRECISION | PRECIP(NUMBERPRECIP), EXCESS(NUMBERPRECIP) | |||||||
| INTEGER*4 | ERRORCODE | |||||||
| CHARACTER | ERRORMESSAGE*60 | |||||||
| Argument Description: | ||||||||
| CURVENUMBER | (Input) | SCS Curve Number | ||||||
| INITIALABSTRACTION | (Input) | Moisture deficit, mm | ||||||
| INITIALCUMULATIVEPRECIP | (Input) | Accumulated precipitation occurring before first value in precip array; mm | ||||||
| FINALCUMULATIVEPRECIP | (Output) | Accumulated precipitation occurring through last value in precip array; mm | ||||||
| IMPERVIOUSAREARATIO | (Input) | Impervious area as a ratio of the basin area. | ||||||
| NUMBERPRECIP | (Input) | Number of precipitation values. | ||||||
| PRECIP | (Input) | Array of precipitation depths. Each value represents of precipitation occurring over the basin in each time interval. | ||||||
| EXCESS | (Output) | Array of precipitation excess depths, including excess from impervious area; represents the depth of precipitation excess occurring in each time interval. | ||||||
| ERRORCODE | (Output) | Coded integer indicating error number, severity and subroutine name. See subroutine DecodeErroCode | ||||||
| ERRORMESSAGE | (Output) | Errormessage. See Remarks. | ||||||
| Remarks: | ||||||||
| Error | severity | errorMessage | ||||||
| 0 | 0 | |||||||
| 11 | 4 | Invalid curve number | ||||||
| 15 | 4 | Invalid value for impervious area ratio: XXX | ||||||
| Subroutines Called: | ||||||||
| IMPERVIOUSAREAEXCESS | ||||||||