CriticalVelocity Function

private function CriticalVelocity(d, dp, s) result(cv)

compute critical velocity for incipient motion (m/s)

References:

Yang, C.H., Stall, J.B., Unit stream power for sediment transport in natural rivers, University of Illinois Water Resources Center Research Report No. 88, 1974 url: http://web.extension.illinois.edu/iwrc/pdf/88.pdf

Arguments

Type IntentOptional Attributes Name
real(kind=float), intent(in) :: d

particle size of bed material (mm)

real(kind=float), intent(in) :: dp

water depth (m)

real(kind=float), intent(in) :: s

channel slope (m/m)

Return Value real(kind=float)

critical velocity (m/s)


Variables

Type Visibility Attributes Name Initial
real(kind=float), public :: Restar
real(kind=float), public :: kVisc = 0.000001004

kinematic viscosity of water at 20 °C(m2/s)


Source Code

FUNCTION CriticalVelocity &
!
(d, dp, s) &
!
RESULT (cv)

IMPLICIT NONE

!Arguments with intent in:
REAL (KIND = float), INTENT(IN) :: d !!particle size of bed material (mm)
REAL (KIND = float), INTENT(IN) :: dp !!water depth (m)
REAL (KIND = float), INTENT(IN) :: s !!channel slope (m/m)

!local declarations:
REAL (KIND = float) :: cv !!critical velocity (m/s)
REAL (KIND = float) :: kVisc = 0.000001004 !!kinematic viscosity of water at 20 °C(m2/s)
REAL (KIND = float) :: Restar


!------------end of declaration------------------------------------------------

Restar = ShearVelocity(dp,s) * (d/1000.) / kVisc

IF (Restar < 70.) THEN
   
   cv = FallVelocity(d) * ( 2.5 / (LOG (Restar) - 0.06) + 0.66 )

ELSE

   cv = FallVelocity(d) * 2.05

END IF



END FUNCTION CriticalVelocity