17 real(DP) :: etfunc_lin
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
40 lin_scaling_fac = calc_lin_scaling_fac(hgwf, efflndsrf, extdp)
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
62 if (depth < dzero) depth = dzero
64 call scubic(depth, range, deriv_et, scale)
67 etgw = trhs - (thcof * hgwf)
68 deriv_et = -deriv_et * etgw