Compute potential evapotranspiration at daily time scale with Hargreaves Samani model modified by Ravazzani et al. (2012) to include an elevation correction factor
References: Hargreaves, G.H., and Z.A. Samani (1982). Estimating potential evapotranspiration. J. Irrig. Drain. Eng., ASCE, 108(3), 223-230
Ravazzani, G., Corbari, C., Morella, S., Gianoli, P., & Mancini, M.. (2012). Modified Hargreaves-Samani equation for the assessment of reference evapotranspiration in Alpine river basins. Journal of irrigation and drainage engineering, 138(7), 592–599.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(DateTime), | intent(in) | :: | time |
simulation time |
||
real(kind=float), | intent(in) | :: | Tavg |
average daily temperature [°C] |
||
real(kind=float), | intent(in) | :: | Tmax |
maximum daily temperature [°C] |
||
real(kind=float), | intent(in) | :: | Tmin |
minimum daily temperature [°C] |
||
real(kind=float), | intent(in) | :: | etRad |
extra terrestrial solar radiation [mm/day] |
||
real(kind=float), | intent(in) | :: | elevation |
elevation above sea level [m] |
||
real(kind=float), | intent(out) | :: | pet |
potential evapotranspiration [m/s] |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=float), | public, | parameter | :: | HC | = | 0.0023 |
empirical coefficient |
real(kind=float), | public, | parameter | :: | HE | = | 0.5 |
empirical exponent |
real(kind=float), | public, | parameter | :: | HT | = | 17.8 |
empirical temperature coefficient |
real(kind=float), | public, | parameter | :: | c0 | = | 0.817 |
empirical coefficient for elevation correlation |
real(kind=float), | public, | parameter | :: | c1 | = | 0.00022 |
empirical coefficient for elevation correlation |
SUBROUTINE HargreavesSamaniModified & ! (time, Tavg, Tmax, Tmin, etrad, elevation, pet) IMPLICIT NONE !Arguments with intent(in): TYPE(DateTime) , INTENT(in) :: time !!simulation time REAL (KIND = float), INTENT(in) :: Tavg !!average daily temperature [°C] REAL (KIND = float), INTENT(in) :: Tmax !!maximum daily temperature [°C] REAL (KIND = float), INTENT(in) :: Tmin !!minimum daily temperature [°C] REAL (KIND = float), INTENT(in) :: etRad !!extra terrestrial solar radiation [mm/day] REAL (KIND = float), INTENT(in) :: elevation !!elevation above sea level [m] !Arguments with intent(out): REAL (KIND = float), INTENT(out) :: pet !! potential evapotranspiration [m/s] !local declarations. REAL (KIND = float), PARAMETER :: HC = 0.0023 !!empirical coefficient REAL (KIND = float), PARAMETER :: HE = 0.5 !!empirical exponent REAL (KIND = float), PARAMETER :: HT = 17.8 !!empirical temperature coefficient REAL (KIND = float), PARAMETER :: c0 = 0.817 !!empirical coefficient for elevation correlation REAL (KIND = float), PARAMETER :: c1 = 0.00022 !!empirical coefficient for elevation correlation !-----------------------------------------end of declarations------------------ !calculate evapotranspiration IF ( ( Tmax - Tmin) < 0.) THEN CALL Catch ('warning', 'Evapotranspiration', '(Tmax - Tmin) < 0.' ) pet = 0. RETURN ELSE pet = (c0 + c1 * elevation) * HC * etRad * (Tmax - Tmin) ** HE * (Tavg + HT) END IF !conversion from mm/day to m/s pet = pet * millimeter / day RETURN END SUBROUTINE HargreavesSamaniModified