current version 1.1 - 16th June 2016
version | date | comment |
---|---|---|
1.0 | 28/May/2014 | Original code |
1.1 | 16/Jun/2016 | added CurveNumber function |
license: GNU GPL http://www.gnu.org/licenses/
Implement models to compute infiltration rate:
Philip model
GreenAmpt model
SCScurveNumber model
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=short), | public, | parameter | :: | GREEN_AMPT | = | 3 |
Green Ampt |
integer(kind=short), | public, | parameter | :: | PHILIPEQ | = | 2 |
Philip's equation |
integer(kind=short), | public, | parameter | :: | ROSS_BC | = | 4 |
Richards equations solution by Ross with Broooks and Corey SWRC |
integer(kind=short), | public, | parameter | :: | ROSS_VG | = | 5 |
Richards equations solution by Ross with Van Genuchten SWRC |
integer(kind=short), | public, | parameter | :: | SCS_CN | = | 1 |
Soil Conservation Service Curve Number |
type(grid_real), | public | :: | abstractionRatio |
initial abstraction ratio of the SCS-CN [-] default = 0.2 |
|||
type(grid_real), | public | :: | cuminf |
cumulative infiltration [m] |
|||
type(grid_real), | public | :: | curveNumber |
curve number [-] |
|||
type(grid_real), | public | :: | fieldCapacity |
field capacity [m3/m3] |
|||
integer(kind=short), | public | :: | infiltrationModel | ||||
type(grid_real), | public | :: | ism |
soil moisture at the beginning of storm event [m3/m3] |
|||
type(grid_real), | public | :: | ksat |
saturated hydraulic conductivity [m/s] |
|||
type(grid_real), | public | :: | phy |
wetting front soil suction head [m] |
|||
type(grid_real), | public | :: | psdi |
pore size distribution index by Brooks and Corey [-] |
|||
type(grid_real), | public | :: | psic |
bubbling pressure, air entry value [m] |
|||
type(grid_real), | public | :: | raincum |
cumulated gross rainfall [mm] |
|||
type(grid_real), | public | :: | sEff |
effective soil retention capacity [mm] |
|||
integer(kind=short), | public | :: | soilDivisions |
number of subdivisions of soil layer |
|||
type(grid_real), | public | :: | storativity |
storativity of the SCS-CN [mm], default = 254 |
|||
type(grid_real), | public | :: | thetar |
residual water content [m3/m3] |
|||
type(grid_real), | public | :: | thetas |
saturated water content [m3/m3] |
|||
type(grid_real), | public | :: | wiltingPoint |
wilting point [m3/m3] |
|||
integer(kind=short), | private, | parameter | :: | FROM_DB | = | 2 | |
integer(kind=short), | private, | parameter | :: | FROM_FILES | = | 1 | |
type(grid_real), | private | :: | ksatMatrix |
saturated conductivity of soil "matrix", |
|||
type(grid_real), | private | :: | mvg |
m shape parameter for Van Genuchten SWRC [-] |
|||
type(grid_real), | private | :: | nvg |
n shape parameter for Van Genuchten SWRC [-] |
|||
integer(kind=short), | private | :: | parameterAssigningMethod |
1 = read each parameter from single file; 2 = assign parameter from soil type map |
|||
type(grid_real), | private | :: | ptort |
tortuosity index [-] |
|||
type(grid_real), | private | :: | smax |
maximum soil storage [m] DEBUG non so chi usa questo parametro |
|||
type(grid_integer), | private | :: | soilTypeMap | ||||
type(SoilType), | private, | ALLOCATABLE | :: | soils(:) |
calculates the actual rate of infiltration (m/s) according to Green-Ampt equation for unsteady rainfall.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=short), | intent(in) | :: | storm |
when = 1 first steo of storm event |
||
real(kind=float), | intent(in) | :: | rain |
rainfall rate (m/s) |
||
real(kind=float), | intent(in) | :: | ksat |
saturated hydraulic conductivity (m/s) |
||
real(kind=float), | intent(in) | :: | theta |
volumetric water content (m3/m3) |
||
real(kind=float), | intent(in) | :: | thetas |
saturated volumetric water content (m3/m3) |
||
real(kind=float), | intent(in) | :: | thetar |
residual volumetric water content (m3/m3) |
||
real(kind=float), | intent(in) | :: | phy |
suction head across the wetting front (m) |
||
real(kind=float), | intent(in) | :: | itheta |
initial soil moisture |
||
integer(kind=short), | intent(in) | :: | dt |
time step (s) |
||
real(kind=float), | intent(inout) | :: | cuminf |
cumulative infiltration (m) |
infiltration rate (m/s)
calculates the actual rate of infiltration (m/s) according to Philip's equation. Use time compression approximation.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=float), | intent(in) | :: | rain |
rainfall rate (m/s) |
||
real(kind=float), | intent(in) | :: | psic |
bubbling pressure (m) |
||
real(kind=float), | intent(in) | :: | ksat |
saturated hydraulic conductivity (m/s) |
||
real(kind=float), | intent(in) | :: | theta |
volumetric water content (m3/m3) |
||
real(kind=float), | intent(in) | :: | thetas |
saturated volumetric water content (m3/m3) |
||
real(kind=float), | intent(in) | :: | thetar |
residual volumetric water content (m3/m3) |
||
real(kind=float), | intent(in) | :: | psdi |
Brooks & Corey pore size distribution index (-) |
||
real(kind=float), | intent(in) | :: | itheta |
initial soil moisture |
||
integer(kind=short), | intent(in) | :: | dt |
time step (s) |
||
real(kind=float), | intent(inout) | :: | cuminf |
cumulative infiltration (m) |
infiltration rate (m/s)
calculates the actual rate of infiltration (m/s) according to Curve Number model modified for continuous simulation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=float), | intent(in) | :: | rain |
rainfall rate (m/s) |
||
real(kind=float), | intent(inout) | :: | raincum |
cumulated rainfall from start of storm (mm) is used and updated to be ready for the following step |
||
real(kind=float), | intent(in) | :: | c |
initial abstraction ratio (-) |
||
real(kind=float), | intent(in) | :: | s |
soil retention capacity (mm) |
||
integer(kind=short), | intent(in) | :: | dt |
time step (s) |
||
real(kind=double), | intent(out) | :: | runoff |
runoff rate (m/s) |
infiltration rate (m/s)
compute actual soil retention capacity S of the SCS-CN method
given soil saturation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=float), | intent(in) | :: | cn2 |
curve number for mean soil moisture |
||
real(kind=float), | intent(in) | :: | s0 |
storativity (mm) |
||
real(kind=float), | intent(in) | :: | soilsat |
soil saturation |
||
real(kind=float), | intent(out) | :: | scn |
soil retention capacity [mm] |
read soil types from external file
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | inifile |
stores configuration information |
set parameter maps from soil database
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(IniList), | intent(in) | :: | iniDB | |||
integer(kind=short), | intent(in) | :: | model |
set parameter maps from separate files
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(IniList), | intent(in) | :: | iniDB | |||
integer(kind=short), | intent(in) | :: | model |