14 function etfunc_lin(efflndsrf, extdp, resid_pet, deriv_et, trhs, thcof, &
19 real(dp),
intent(in) :: efflndsrf
20 real(dp),
intent(in) :: extdp
21 real(dp),
intent(in) :: resid_pet
22 real(dp),
intent(inout) :: deriv_et
23 real(dp),
intent(inout) :: trhs
24 real(dp),
intent(inout) :: thcof
25 real(dp),
intent(in) :: hgwf
26 real(dp),
intent(in) :: celtop
27 real(dp),
intent(in) :: celbot
31 real(dp) :: depth, scale, thick, lin_scaling_fac
39 if (hgwf > (efflndsrf - extdp) .and. hgwf < efflndsrf)
THEN
41 etgw = resid_pet * lin_scaling_fac
43 trhs = resid_pet - resid_pet * efflndsrf / extdp
44 thcof = -resid_pet / extdp
45 etgw = trhs - (thcof * hgwf)
48 else if (hgwf >= efflndsrf)
then
59 depth = hgwf - (efflndsrf - extdp)
60 thick = celtop - celbot
61 if (depth > thick) depth = thick
64 call scubic(depth, range, deriv_et, scale)
67 etgw = trhs - (thcof * hgwf)
68 deriv_et = -deriv_et * etgw
77 real(dp),
intent(in) :: hgwf
78 real(dp),
intent(in) :: lndsrf
79 real(dp),
intent(in) :: extdp
83 sclfac = (hgwf - (lndsrf - extdp)) / extdp
This module contains simulation constants.
real(dp), parameter dem4
real constant 1e-4
real(dp), parameter dzero
real constant zero
real(dp), parameter done
real constant 1
This module defines variable data types.
subroutine scubic(x, range, dydx, y)
@ brief sCubic
real(dp) function, public etfunc_lin(efflndsrf, extdp, resid_pet, deriv_et, trhs, thcof, hgwf, celtop, celbot)
Calculate gwf et using linear ET function from mf-2005.
pure real(dp) function, public calc_lin_scaling_fac(hgwf, lndsrf, extdp)
Calculate the linear scaling factor.