6 EvapMethod, state_is, WetThresh_is, capStore_is, & !input
7 vpd_hPa, avdens, avcp, qn_e, s_hPa, psyc_hPa, RS, RA, RB, tlv, &
29 INTEGER,
INTENT(in) :: EvapMethod
31 REAL(KIND(1D0)),
INTENT(in) :: state_is
32 REAL(KIND(1D0)),
INTENT(in) :: WetThresh_is
33 REAL(KIND(1D0)),
INTENT(in) :: capStore_is
35 REAL(KIND(1D0)),
INTENT(in) :: vpd_hPa
36 REAL(KIND(1D0)),
INTENT(in) :: avdens
37 REAL(KIND(1D0)),
INTENT(in) :: avcp
38 REAL(KIND(1D0)),
INTENT(in) :: qn_e
39 REAL(KIND(1D0)),
INTENT(in) :: s_hPa
40 REAL(KIND(1D0)),
INTENT(in) :: psyc_hPa
41 REAL(KIND(1D0)),
INTENT(in) :: RS
43 REAL(KIND(1D0)),
INTENT(in) :: RA
44 REAL(KIND(1D0)),
INTENT(in) :: RB
45 REAL(KIND(1D0)),
INTENT(in) :: tlv
47 REAL(KIND(1D0)),
INTENT(out) :: RSS
48 REAL(KIND(1D0)),
INTENT(out) :: ev
49 REAL(KIND(1D0)),
INTENT(out) :: qe
51 REAL(KIND(1D0)) :: numPM
52 REAL(KIND(1D0)) :: RB_SG
53 REAL(KIND(1D0)) :: rsrbsg
54 REAL(KIND(1D0)) :: flag_dry
59 REAL(KIND(1D0)),
PARAMETER :: NAN = -999
66 numpm = s_hpa*qn_e + vpd_hpa*avdens*avcp/ra
68 IF (state_is <= 0.001)
THEN
70 qe = numpm/(s_hpa + psyc_hpa*(1 + rs/ra))
82 IF (evapmethod == 2)
THEN
83 rb_sg = rb*(s_hpa/psyc_hpa + 1)
88 IF (state_is >= wetthresh_is .OR. rs < 25)
THEN
92 r = (rs/ra)*(ra - rb)/rsrbsg
93 w = (r - 1)/(r - (wetthresh_is/state_is))
99 rss = (1/((w/rb_sg) + ((1 - w)/rsrbsg))) - rb_sg
102 qe = numpm/(s_hpa + psyc_hpa*(1 + rss/ra))
107 ELSEIF (evapmethod == 1)
THEN
108 qe = numpm/(s_hpa + psyc_hpa)
111 x = merge(1d0, state_is/capstore_is, state_is > capstore_is)
121 sfr_multi, state_multi, WetThresh_multi, capStore_multi, & !input
122 vpd_hPa, avdens, avcp, qn_e_multi, s_hPa, psyc_hPa, RS, RA, RB, tlv, &
123 RSS_multi, ev_multi, qe_multi)
125 INTEGER,
INTENT(in) :: EvapMethod
127 REAL(KIND(1D0)),
DIMENSION(:),
INTENT(in) :: sfr_multi
128 REAL(KIND(1D0)),
DIMENSION(:),
INTENT(in) :: state_multi
129 REAL(KIND(1D0)),
DIMENSION(:),
INTENT(in) :: WetThresh_multi
130 REAL(KIND(1D0)),
DIMENSION(:),
INTENT(in) :: capStore_multi
131 REAL(KIND(1D0)),
DIMENSION(:),
INTENT(in) :: qn_e_multi
133 REAL(KIND(1D0)),
INTENT(in) :: vpd_hPa
134 REAL(KIND(1D0)),
INTENT(in) :: avdens
135 REAL(KIND(1D0)),
INTENT(in) :: avcp
136 REAL(KIND(1D0)),
INTENT(in) :: s_hPa
137 REAL(KIND(1D0)),
INTENT(in) :: psyc_hPa
138 REAL(KIND(1D0)),
INTENT(in) :: RS
139 REAL(KIND(1D0)),
INTENT(in) :: RA
140 REAL(KIND(1D0)),
INTENT(in) :: RB
141 REAL(KIND(1D0)),
INTENT(in) :: tlv
143 REAL(KIND(1D0)),
DIMENSION(:),
INTENT(out) :: RSS_multi
144 REAL(KIND(1D0)),
DIMENSION(:),
INTENT(out) :: ev_multi
145 REAL(KIND(1D0)),
DIMENSION(:),
INTENT(out) :: qe_multi
157 REAL(KIND(1D0)),
PARAMETER :: NAN = -999
159 n_facet =
SIZE(sfr_multi)
163 evapmethod, state_multi(i), wetthresh_multi(i), capstore_multi(i), &
164 vpd_hpa, avdens, avcp, qn_e_multi(i), s_hpa, psyc_hpa, rs, ra, rb, tlv, &
165 rss_multi(i), ev_multi(i), qe_multi(i))
subroutine cal_evap_multi(evapmethod, sfr_multi, state_multi, wetthresh_multi, capstore_multi, vpd_hpa, avdens, avcp, qn_e_multi, s_hpa, psyc_hpa, rs, ra, rb, tlv, rss_multi, ev_multi, qe_multi)
subroutine cal_evap(evapmethod, state_is, wetthresh_is, capstore_is, vpd_hpa, avdens, avcp, qn_e, s_hpa, psyc_hpa, rs, ra, rb, tlv, rss, ev, qe)