Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer | :: | inum1 | ||||
real(kind=dp), | intent(in) | :: | da9 | |||
real(kind=dp), | intent(inout) | :: | er | |||
real(kind=dp), | intent(in) | :: | yd |
subroutine river_erosion_enritchment_ratio(inum1, da9, er, yd)
!**** THIS SUBROUTINE CALCULATES ENRICHMENT RATIO
!**** CALLED IN: ROUTE
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! PARAMETERS & VARIABLES
!
! >>>>> COMMON PARAMETERS & VARIABLES
! da9 = drainage area, ha
! er = enrichment coefficient
! sdtsav(ir) = water storage in the reach, m3
! xxqd = surface flow - daily input in reaches, m3
! ydi = yd, daily soil loss caused by water erosion, t,
! in route before call river_route_erosion
! yd = daily soil loss caused by water erosion, t, recalc in river_route_erosion
! >>>>>
! >>>>> STATIC PARAMETERS
! cy = local par
! dr = local par
! qdin = inflow + watre storage
! x1 = local par
! x2 = local par
! >>>>>
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!**** Include common parameters
real(dp), intent(in) :: da9
real(dp), intent(inout) :: er
real(dp), intent(in) :: yd
integer inum1
real(dp) cy, dr, qdin, x1, x2
qdin = xxqd + sdtsav(inum1)
if (qdin .le. 0.1E-20) return
!**** CALC enrichment coefficient
dr = yd / (ydi + 1.e-10)
if (dr .le. 0.01) dr = .01
if (dr .ge. 10.) dr = 10.
cy = 100000. * ydi / (da9 * qdin)
x2 = - log10(dr) / 2.699
x1 = 1. / .25 ** x2
er = x1 * (cy + 1.e-10) ** x2
if (er .lt. 1.) er = 1.
if (er .gt. 3.) er = 3.
return
end subroutine river_erosion_enritchment_ratio