7 OGLACIER, OMEB_PATCH, PTSTEP, PRAIN, PSNOW)
62 LOGICAL,
INTENT(IN) :: OSURF_BUDGETC
68 INTEGER,
INTENT(IN) :: KNPATCH
70 LOGICAL,
INTENT(IN) :: OGLACIER
71 LOGICAL,
DIMENSION(:),
INTENT(IN) :: OMEB_PATCH
73 REAL,
INTENT(IN) :: PTSTEP
74 REAL,
DIMENSION(:),
INTENT(IN) :: PRAIN
75 REAL,
DIMENSION(:),
INTENT(IN) :: PSNOW
82 INTEGER :: ISIZE_LMEB_PATCH
83 REAL(KIND=JPRB) :: ZHOOK_HANDLE
90 IF (
lhook)
CALL dr_hook(
'AVERAGE_DIAG_EVAP_ISBA_N',0,zhook_handle)
92 isize_lmeb_patch=
count(omeb_patch(:))
97 IF (de%LSURF_EVAP_BUDGET)
THEN 102 IF(de%LWATER_BUDGET)
THEN 106 de%XRAINFALL (:) = prain(:) * ptstep
107 de%XSNOWFALL (:) = psnow(:) * ptstep
119 DO ji=1,np%AL(jp)%NSIZE_P
120 imask = np%AL(jp)%NR_P(ji)
121 de%XICEFLUX(imask) = de%XICEFLUX(imask) + np%AL(jp)%XPATCH(ji) * nde%AL(jp)%XICEFLUX(ji)
132 IF (osurf_budgetc)
THEN 137 IF (isize_lmeb_patch>0)
THEN 143 IF(de%LWATER_BUDGET)
THEN 147 dec%XRAINFALL (:) = dec%XRAINFALL (:) + prain(:) * ptstep
148 dec%XSNOWFALL (:) = dec%XSNOWFALL (:) + psnow(:) * ptstep
160 DO ji=1,np%AL(jp)%NSIZE_P
161 imask = np%AL(jp)%NR_P(ji)
162 dec%XICEFLUX(imask) = dec%XICEFLUX(imask) + np%AL(jp)%XPATCH(ji) * ndec%AL(jp)%XICEFLUX(ji)
170 IF (
lhook)
CALL dr_hook(
'AVERAGE_DIAG_EVAP_ISBA_N',1,zhook_handle)
179 REAL(KIND=JPRB) :: ZHOOK_HANDLE
180 IF (
lhook)
CALL dr_hook(
'AVERAGE_DIAG_EVAP_ISBA_N:MAKE_AVERAGE_EVAP',0,zhook_handle)
183 DO ji=1,np%AL(jp)%NSIZE_P
184 imask = np%AL(jp)%NR_P(ji)
187 dea%XLEG (imask) = dea%XLEG (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLEG(ji)
190 dea%XLEGI(imask) = dea%XLEGI(imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLEGI(ji)
193 dea%XLEV (imask) = dea%XLEV (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLEV(ji)
196 dea%XLES (imask) = dea%XLES (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLES(ji)
199 dea%XLESL(imask) = dea%XLESL(imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLESL(ji)
202 dea%XLER (imask) = dea%XLER (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLER(ji)
205 dea%XLETR(imask) = dea%XLETR(imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLETR(ji)
208 dea%XSNDRIFT(imask) = dea%XSNDRIFT(imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XSNDRIFT(ji)
211 dea%XDRAIN (imask) = dea%XDRAIN (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XDRAIN(ji)
214 dea%XQSB (imask) = dea%XQSB (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XQSB(ji)
217 dea%XRUNOFF(imask) = dea%XRUNOFF(imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XRUNOFF(ji)
220 dea%XHORT (imask) = dea%XHORT (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XHORT(ji)
223 dea%XDRIP (imask) = dea%XDRIP (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XDRIP(ji)
226 dea%XRRVEG (imask) = dea%XRRVEG (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XRRVEG(ji)
229 dea%XMELT (imask) = dea%XMELT (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XMELT(ji)
232 dea%XIFLOOD(imask) = dea%XIFLOOD(imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XIFLOOD(ji)
235 dea%XPFLOOD(imask) = dea%XPFLOOD(imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XPFLOOD(ji)
238 dea%XLE_FLOOD (imask) = dea%XLE_FLOOD (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLE_FLOOD (ji)
239 dea%XLEI_FLOOD(imask) = dea%XLEI_FLOOD(imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLEI_FLOOD(ji)
242 dea%XIRRIG_FLUX(imask) = dea%XIRRIG_FLUX(imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XIRRIG_FLUX(ji)
245 dea%XGPP (imask) = dea%XGPP (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XGPP(ji)
248 dea%XRESP_AUTO(imask) = dea%XRESP_AUTO(imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XRESP_AUTO(ji)
251 dea%XRESP_ECO (imask) = dea%XRESP_ECO (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XRESP_ECO(ji)
253 IF (isize_lmeb_patch>0)
THEN 254 dea%XLELITTER (imask) = dea%XLELITTER (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLELITTER (ji)
255 dea%XLELITTERI(imask) = dea%XLELITTERI(imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLELITTERI(ji)
256 dea%XDRIPLIT (imask) = dea%XDRIPLIT (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XDRIPLIT (ji)
257 dea%XRRLIT (imask) = dea%XRRLIT (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XRRLIT (ji)
259 dea%XLEV_CV (imask) = dea%XLEV_CV (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLEV_CV (ji)
260 dea%XLES_CV (imask) = dea%XLES_CV (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLES_CV (ji)
261 dea%XLETR_CV (imask) = dea%XLETR_CV (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLETR_CV (ji)
262 dea%XLER_CV (imask) = dea%XLER_CV (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLER_CV (ji)
263 dea%XLE_CV (imask) = dea%XLE_CV (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLE_CV (ji)
264 dea%XH_CV (imask) = dea%XH_CV (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XH_CV (ji)
265 dea%XMELT_CV (imask) = dea%XMELT_CV (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XMELT_CV (ji)
266 dea%XFRZ_CV (imask) = dea%XFRZ_CV (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XFRZ_CV (ji)
268 dea%XLETR_GV (imask) = dea%XLETR_GV (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLETR_GV (ji)
269 dea%XLER_GV (imask) = dea%XLER_GV (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLER_GV (ji)
270 dea%XLE_GV (imask) = dea%XLE_GV (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLE_GV (ji)
271 dea%XH_GV (imask) = dea%XH_GV (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XH_GV (ji)
273 dea%XLE_GN (imask) = dea%XLE_GN (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLE_GN (ji)
274 dea%XEVAP_GN (imask) = dea%XEVAP_GN (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XEVAP_GN (ji)
275 dea%XH_GN (imask) = dea%XH_GN (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XH_GN (ji)
276 dea%XSR_GN (imask) = dea%XSR_GN (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XSR_GN (ji)
277 dea%XSWDOWN_GN(imask) = dea%XSWDOWN_GN(imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XSWDOWN_GN(ji)
278 dea%XLWDOWN_GN(imask) = dea%XLWDOWN_GN(imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLWDOWN_GN(ji)
280 dea%XEVAP_G (imask) = dea%XEVAP_G (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XEVAP_G (ji)
281 dea%XLE_CA (imask) = dea%XLE_CA (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLE_CA (ji)
282 dea%XH_CA (imask) = dea%XH_CA (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XH_CA (ji)
284 dea%XSWNET_V (imask) = dea%XSWNET_V (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XSWNET_V(ji)
285 dea%XSWNET_G (imask) = dea%XSWNET_G (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XSWNET_G(ji)
286 dea%XSWNET_N (imask) = dea%XSWNET_N (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XSWNET_N(ji)
287 dea%XSWNET_NS (imask) = dea%XSWNET_NS (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XSWNET_NS(ji)
288 dea%XLWNET_V (imask) = dea%XLWNET_V (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLWNET_V(ji)
289 dea%XLWNET_G (imask) = dea%XLWNET_G (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLWNET_G(ji)
290 dea%XLWNET_N (imask) = dea%XLWNET_N (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XLWNET_N(ji)
297 IF(de%LWATER_BUDGET)
THEN 300 DO ji=1,np%AL(jp)%NSIZE_P
301 imask = np%AL(jp)%NR_P(ji)
303 dea%XDWG (imask) = dea%XDWG (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XDWG (ji)
304 dea%XDWGI (imask) = dea%XDWGI (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XDWGI (ji)
305 dea%XDWR (imask) = dea%XDWR (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XDWR (ji)
306 dea%XDSWE (imask) = dea%XDSWE (imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XDSWE (ji)
307 dea%XWATBUD(imask) = dea%XWATBUD(imask) + np%AL(jp)%XPATCH(ji) * ndea%AL(jp)%XWATBUD(ji)
314 IF (
lhook)
CALL dr_hook(
'AVERAGE_DIAG_EVAP_ISBA_N:MAKE_AVERAGE_EVAP',1,zhook_handle)
subroutine average_diag_evap_isba_n(OSURF_BUDGETC, DE, DEC, NDE, NDEC, NP, KNPATCH, OGLACIER, OMEB_PATCH, PTSTEP, PRAIN, PSNOW)
subroutine init_meb_bud(DEA)
subroutine init_water_bud(DEA)
subroutine make_average_evap(DEA, NDEA)
subroutine init_evap_bud(DEA)