Soil Water Balance (SWB2)
Loading...
Searching...
No Matches
runoff__curve_number Module Reference

Functions/Subroutines

subroutine, public runoff_curve_number_initialize (cell_is_active)
elemental integer(c_int) function return_landuse_index_fn (ilandusecode)
elemental real(c_float) function prob_runoff_enhancement (fcfgi, fcfgi_ul, fcfgi_ll)
subroutine, public update_previous_5_day_rainfall (infil, indx)
elemental real(c_float) function, public update_curve_number_fn (ilanduseindex, isoilsindex, cell_index, it_is_growing_season, fsoilstorage_max, fcfgi, fcfgi_ll, fcfgi_ul)
elemental real(c_float) function cn_ii_to_cn_iii (cn_ii)
elemental real(c_float) function cn_ii_to_cn_i (cn_ii)
elemental subroutine, public runoff_curve_number_calculate (runoff, curve_num_adj, cell_index, landuse_index, soil_group, it_is_growing_season, inflow, soil_storage_max, continuous_frozen_ground_index, cfgi_lower_limit, cfgi_upper_limit)
 Calculate the runoff by means of the curve number method.

Variables

real(c_float), dimension(:,:), allocatable, public cn_arciii
real(c_float), dimension(:,:), allocatable, public cn_arcii
real(c_float), dimension(:,:), allocatable, public cn_arci
real(c_float), dimension(:,:), allocatable, public prev_5_days_rain
integer(c_int), dimension(:), allocatable ilandusecodes
integer(c_int) daycount
integer(c_int), parameter, public five_day_sum = 6
real(c_float), parameter amc_dry_growing = 1.40_c_float
real(c_float), parameter amc_dry_dormant = 0.50_c_float
real(c_float), parameter amc_wet_growing = 2.10_c_float
real(c_float), parameter amc_wet_dormant = 1.10_c_float
type(datetime_tdate_last_updated

Function/Subroutine Documentation

◆ cn_ii_to_cn_i()

elemental real (c_float) function runoff__curve_number::cn_ii_to_cn_i ( real (c_float), intent(in) cn_ii)
private

Definition at line 348 of file runoff__curve_number.F90.

◆ cn_ii_to_cn_iii()

elemental real (c_float) function runoff__curve_number::cn_ii_to_cn_iii ( real (c_float), intent(in) cn_ii)
private

Definition at line 334 of file runoff__curve_number.F90.

◆ prob_runoff_enhancement()

elemental real (c_float) function runoff__curve_number::prob_runoff_enhancement ( real (c_float), intent(in) fcfgi,
real (c_float), intent(in) fcfgi_ul,
real (c_float), intent(in) fcfgi_ll )
private

Definition at line 133 of file runoff__curve_number.F90.

◆ return_landuse_index_fn()

elemental integer (c_int) function runoff__curve_number::return_landuse_index_fn ( integer (c_int), intent(in) ilandusecode)
private

Definition at line 114 of file runoff__curve_number.F90.

◆ runoff_curve_number_calculate()

elemental subroutine, public runoff__curve_number::runoff_curve_number_calculate ( real (c_float), intent(inout) runoff,
real (c_float), intent(inout) curve_num_adj,
integer (c_int), intent(in) cell_index,
integer (c_int), intent(in) landuse_index,
integer (c_int), intent(in) soil_group,
logical (c_bool), intent(in) it_is_growing_season,
real (c_float), intent(in) inflow,
real (c_float), intent(in) soil_storage_max,
real (c_float), intent(in) continuous_frozen_ground_index,
real (c_float), intent(in) cfgi_lower_limit,
real (c_float), intent(in) cfgi_upper_limit )

Calculate the runoff by means of the curve number method.

Runoff is calculated using a modification of the curve number method. Specifically, the initial abstraction is defined as 0.05 * SMax rather than the standard 0.20 * SMax of the original method. This redefinition of the initial abstraction term was found to be more appropriate for long-term continuous simulations than the standard 0.2 * SMax of the original.

Parameters
[in]iLanduseIndexPre-configured index number corresponding to a line in the landuse lookup table.
[in]iSoilsGroupThe numerical index associated with the soils group of interest.
[in]fInflowThe sum of net rainfall, snowmelt, and runon from upslope cells (and possibly irrigation).
[in]fCFGIThe current value of the continuous frozen-ground index.
[in]lIsGrowingSeasonLogical value indicating whether dormant season or growing season criteria values are to be used when calculating runoff.
Return values
fRunoffDaily runoff calculated by means of the SCS Curve Number method.
Note
Reference: Woodward, D. E., R. H. Hawkins, R. Jiang, A. Hjelmfeldt Jr, J. Van Mullem, and Q. D. Quan. "Runoff Curve Number Method: Examination of the Initial Abstraction Ratio." In Conference Proceeding Paper, World Water and Environmental Resources Congress, 2003.

Definition at line 381 of file runoff__curve_number.F90.

Here is the call graph for this function:

◆ runoff_curve_number_initialize()

subroutine, public runoff__curve_number::runoff_curve_number_initialize ( logical (c_bool), dimension(:,:), intent(in) cell_is_active)

Determine how many soil groups are present

Determine how many landuse codes are present

Definition at line 40 of file runoff__curve_number.F90.

Here is the call graph for this function:

◆ update_curve_number_fn()

elemental real (c_float) function, public runoff__curve_number::update_curve_number_fn ( integer (c_int), intent(in) ilanduseindex,
integer (c_int), intent(in) isoilsindex,
integer (c_int), intent(in) cell_index,
logical (c_bool), intent(in) it_is_growing_season,
real (c_float), intent(in) fsoilstorage_max,
real (c_float), intent(in) fcfgi,
real (c_float), intent(in) fcfgi_ll,
real (c_float), intent(in) fcfgi_ul )

Definition at line 250 of file runoff__curve_number.F90.

Here is the call graph for this function:

◆ update_previous_5_day_rainfall()

subroutine, public runoff__curve_number::update_previous_5_day_rainfall ( real (c_float), intent(in) infil,
integer (c_int), intent(in) indx )

Definition at line 153 of file runoff__curve_number.F90.

Variable Documentation

◆ amc_dry_dormant

real (c_float), parameter runoff__curve_number::amc_dry_dormant = 0.50_c_float
private

Definition at line 32 of file runoff__curve_number.F90.

◆ amc_dry_growing

real (c_float), parameter runoff__curve_number::amc_dry_growing = 1.40_c_float
private

Definition at line 31 of file runoff__curve_number.F90.

◆ amc_wet_dormant

real (c_float), parameter runoff__curve_number::amc_wet_dormant = 1.10_c_float
private

Definition at line 34 of file runoff__curve_number.F90.

◆ amc_wet_growing

real (c_float), parameter runoff__curve_number::amc_wet_growing = 2.10_c_float
private

Definition at line 33 of file runoff__curve_number.F90.

◆ cn_arci

real (c_float), dimension(:,:), allocatable, public runoff__curve_number::cn_arci

Definition at line 17 of file runoff__curve_number.F90.

◆ cn_arcii

real (c_float), dimension(:,:), allocatable, public runoff__curve_number::cn_arcii

Definition at line 16 of file runoff__curve_number.F90.

◆ cn_arciii

real (c_float), dimension(:,:), allocatable, public runoff__curve_number::cn_arciii

Definition at line 15 of file runoff__curve_number.F90.

◆ date_last_updated

type (datetime_t) runoff__curve_number::date_last_updated
private

Definition at line 36 of file runoff__curve_number.F90.

◆ daycount

integer (c_int) runoff__curve_number::daycount
private

Definition at line 20 of file runoff__curve_number.F90.

◆ five_day_sum

integer (c_int), parameter, public runoff__curve_number::five_day_sum = 6

Definition at line 21 of file runoff__curve_number.F90.

◆ ilandusecodes

integer (c_int), dimension(:), allocatable runoff__curve_number::ilandusecodes
private

Definition at line 19 of file runoff__curve_number.F90.

◆ prev_5_days_rain

real (c_float), dimension(:,:), allocatable, public runoff__curve_number::prev_5_days_rain

Definition at line 18 of file runoff__curve_number.F90.