7 PTS_TWN, PEMIS_TWN, PT_CAN, &
8 PQ_CAN, PT_LOWCAN, PQ_LOWCAN, PTA, PQA, PRHOA, PPS,&
9 PH_TRAFFIC, PLE_TRAFFIC, PWL_O_GRND, PESN_RF, &
10 PEMIS_GR, PLW_RAD, PAC_RF, PAC_RF_WAT, PAC_WL, &
11 PAC_RD, PAC_RD_WAT, PAC_TOP, PAC_GD, PQSAT_GD, &
12 PAC_AGG_GD, PHU_AGG_GD, PQSAT_RF, PQSAT_RD, &
13 PDELT_RF, PDELT_RD, PRF_FRAC, PWL_FRAC, PRD_FRAC, &
14 PGD_FRAC, PTOTS_O_HORS, PDF_RF, PDN_RF, PDF_RD, &
15 PDN_RD, PLE_WL_A, PLE_WL_B, PLEW_RF, PLESN_RF, &
16 PLEW_RD, PLESN_RD, PHSN_RD, &
17 PTSRAD_GD, PRN_GD, PH_GD, PLE_GD, PGFLUX_GD, PEVAP_GD,&
18 PRUNOFF_GD, PEVAP_GR, PRUNOFF_GR, PDRAIN_GR, &
19 PRN_GRND, PH_GRND, PLE_GRND, PGFLX_GRND, &
20 PRN_TWN, PH_TWN, PLE_TWN, PGFLX_TWN, PEVAP_TWN, &
21 PEMIT_LW_RD, PEMIT_LW_GD, PEMIT_LW_GRND, PEMIS_GD )
90 TYPE(
teb_t),
INTENT(INOUT) :: T
91 TYPE(
bem_t),
INTENT(INOUT) :: B
95 REAL,
DIMENSION(:),
INTENT(OUT) :: PTS_TWN
96 REAL,
DIMENSION(:),
INTENT(OUT) :: PEMIS_TWN
97 REAL,
DIMENSION(:),
INTENT(INOUT) :: PT_CAN
98 REAL,
DIMENSION(:),
INTENT(INOUT) :: PQ_CAN
99 REAL,
DIMENSION(:),
INTENT(IN) :: PT_LOWCAN
100 REAL,
DIMENSION(:),
INTENT(IN) :: PQ_LOWCAN
102 REAL,
DIMENSION(:),
INTENT(IN) :: PTA
103 REAL,
DIMENSION(:),
INTENT(IN) :: PQA
105 REAL,
DIMENSION(:),
INTENT(IN) :: PRHOA
107 REAL,
DIMENSION(:),
INTENT(IN) :: PPS
108 REAL,
DIMENSION(:),
INTENT(IN) :: PH_TRAFFIC
110 REAL,
DIMENSION(:),
INTENT(IN) :: PLE_TRAFFIC
112 REAL,
DIMENSION(:),
INTENT(IN) :: PWL_O_GRND
114 REAL,
DIMENSION(:),
INTENT(IN) :: PESN_RF
116 REAL,
DIMENSION(:),
INTENT(IN) :: PEMIS_GR
118 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_RAD
120 REAL,
DIMENSION(:),
INTENT(IN) :: PAC_RF
123 REAL,
DIMENSION(:),
INTENT(IN) :: PAC_RF_WAT
126 REAL,
DIMENSION(:),
INTENT(IN) :: PAC_WL
129 REAL,
DIMENSION(:),
INTENT(IN) :: PAC_RD
132 REAL,
DIMENSION(:),
INTENT(IN) :: PAC_RD_WAT
135 REAL,
DIMENSION(:),
INTENT(IN) :: PAC_TOP
138 REAL,
DIMENSION(:),
INTENT(IN) :: PAC_GD
141 REAL,
DIMENSION(:),
INTENT(IN) :: PQSAT_GD
142 REAL,
DIMENSION(:),
INTENT(IN) :: PAC_AGG_GD
143 REAL,
DIMENSION(:),
INTENT(IN) :: PHU_AGG_GD
145 REAL,
DIMENSION(:),
INTENT(IN) :: PQSAT_RF
146 REAL,
DIMENSION(:),
INTENT(IN) :: PQSAT_RD
147 REAL,
DIMENSION(:),
INTENT(IN) :: PDELT_RF
148 REAL,
DIMENSION(:),
INTENT(IN) :: PDELT_RD
149 REAL,
DIMENSION(:),
INTENT(IN) :: PRF_FRAC
150 REAL,
DIMENSION(:),
INTENT(IN) :: PWL_FRAC
151 REAL,
DIMENSION(:),
INTENT(IN) :: PRD_FRAC
152 REAL,
DIMENSION(:),
INTENT(IN) :: PGD_FRAC
153 REAL,
DIMENSION(:),
INTENT(IN) :: PTOTS_O_HORS
155 REAL,
DIMENSION(:),
INTENT(IN) :: PDF_RF
156 REAL,
DIMENSION(:),
INTENT(IN) :: PDN_RF
157 REAL,
DIMENSION(:),
INTENT(IN) :: PDF_RD
158 REAL,
DIMENSION(:),
INTENT(IN) :: PDN_RD
160 REAL,
DIMENSION(:),
INTENT(IN) :: PLE_WL_A
161 REAL,
DIMENSION(:),
INTENT(IN) :: PLE_WL_B
163 REAL,
DIMENSION(:),
INTENT(IN) :: PLEW_RF
164 REAL,
DIMENSION(:),
INTENT(IN) :: PLESN_RF
165 REAL,
DIMENSION(:),
INTENT(IN) :: PLEW_RD
166 REAL,
DIMENSION(:),
INTENT(IN) :: PLESN_RD
167 REAL,
DIMENSION(:),
INTENT(IN) :: PHSN_RD
169 REAL,
DIMENSION(:),
INTENT(IN) :: PTSRAD_GD
170 REAL,
DIMENSION(:),
INTENT(IN) :: PRN_GD
171 REAL,
DIMENSION(:),
INTENT(IN) :: PH_GD
172 REAL,
DIMENSION(:),
INTENT(IN) :: PLE_GD
173 REAL,
DIMENSION(:),
INTENT(IN) :: PGFLUX_GD
174 REAL,
DIMENSION(:),
INTENT(IN) :: PEVAP_GD
175 REAL,
DIMENSION(:),
INTENT(IN) :: PRUNOFF_GD
176 REAL,
DIMENSION(:),
INTENT(IN) :: PEVAP_GR
177 REAL,
DIMENSION(:),
INTENT(IN) :: PRUNOFF_GR
178 REAL,
DIMENSION(:),
INTENT(IN) :: PDRAIN_GR
181 REAL,
DIMENSION(:),
INTENT(OUT) :: PRN_GRND
182 REAL,
DIMENSION(:),
INTENT(OUT) :: PH_GRND
183 REAL,
DIMENSION(:),
INTENT(OUT) :: PLE_GRND
184 REAL,
DIMENSION(:),
INTENT(OUT) :: PGFLX_GRND
185 REAL,
DIMENSION(:),
INTENT(OUT) :: PRN_TWN
186 REAL,
DIMENSION(:),
INTENT(OUT) :: PH_TWN
187 REAL,
DIMENSION(:),
INTENT(OUT) :: PLE_TWN
188 REAL,
DIMENSION(:),
INTENT(OUT) :: PGFLX_TWN
189 REAL,
DIMENSION(:),
INTENT(OUT) :: PEVAP_TWN
191 REAL,
DIMENSION(:),
INTENT(IN) :: PEMIT_LW_RD
192 REAL,
DIMENSION(:),
INTENT(IN) :: PEMIT_LW_GD
193 REAL,
DIMENSION(:),
INTENT(OUT) :: PEMIT_LW_GRND
195 REAL,
DIMENSION(:),
INTENT(IN) :: PEMIS_GD
199 REAL,
DIMENSION(SIZE(PLW_RAD)) :: ZLW_UP
200 REAL,
DIMENSION(SIZE(T%XROAD)) :: ZQSAT_CAN
201 REAL,
DIMENSION(SIZE(T%XROAD)) :: ZRD, ZGD
205 REAL(KIND=JPRB) :: ZHOOK_HANDLE
208 IF (
lhook)
CALL dr_hook(
'AVG_URBAN_FLUXES',0,zhook_handle)
213 DO jj=1,
SIZE(t%XROAD)
215 IF (t%XROAD(jj)+t%XGARDEN(jj).NE.0.)
THEN 216 zrd(jj) = t%XROAD(jj) / (t%XROAD(jj)+t%XGARDEN(jj))
217 zgd(jj) = t%XGARDEN(jj) / (t%XROAD(jj)+t%XGARDEN(jj))
226 prn_grnd(jj) = zrd(jj) * dmt%XRN_ROAD (jj) + zgd(jj) * prn_gd(jj)
228 ph_grnd(jj) = zrd(jj) * dmt%XH_ROAD (jj) + zgd(jj) * ph_gd(jj) + ph_traffic(jj) / (1.-t%XBLD (jj))
230 ple_grnd(jj) = zrd(jj) * dmt%XLE_ROAD (jj) + zgd(jj) * ple_gd(jj) + ple_traffic(jj) / (1.-t%XBLD (jj))
232 pgflx_grnd(jj) = zrd(jj) * dmt%XGFLUX_ROAD(jj) + zgd(jj) * pgflux_gd(jj)
235 pemit_lw_grnd(jj) = t%XROAD_O_GRND(jj) * pemit_lw_rd(jj) + t%XGARDEN_O_GRND(jj) * pemit_lw_gd(jj)
241 prn_twn(jj) = ptots_o_hors(jj) * ( &
242 + prf_frac(jj) * dmt%XRN_ROOF (jj) &
243 + prd_frac(jj) * dmt%XRN_ROAD (jj) &
244 + pgd_frac(jj) * prn_gd(jj) &
245 + pwl_frac(jj) * dmt%XRN_WALL_A (jj) * 0.5 &
246 + pwl_frac(jj) * dmt%XRN_WALL_B (jj) * 0.5 )
248 ph_twn(jj) = ptots_o_hors(jj) * ( &
249 + prf_frac(jj) * dmt%XH_ROOF (jj) &
250 + prd_frac(jj) * dmt%XH_ROAD (jj) &
251 + pgd_frac(jj) * ph_gd(jj) &
252 + pwl_frac(jj) * dmt%XH_WALL_A (jj) * 0.5 &
253 + pwl_frac(jj) * dmt%XH_WALL_B (jj) * 0.5 ) &
254 + ph_traffic(jj) + t%XH_INDUSTRY(jj)
256 ple_twn(jj) = ptots_o_hors(jj) * ( &
257 prf_frac(jj) * dmt%XLE_ROOF (jj) &
258 + prd_frac(jj) * dmt%XLE_ROAD (jj) &
259 + pgd_frac(jj) * ple_gd(jj) &
260 + pwl_frac(jj) * ple_wl_a(jj) * 0.5 &
261 + pwl_frac(jj) * ple_wl_b(jj) * 0.5 ) &
262 + ple_traffic(jj) + t%XLE_INDUSTRY(jj)
264 pgflx_twn(jj)= ptots_o_hors(jj) * ( &
265 prf_frac(jj) * dmt%XGFLUX_ROOF (jj) &
266 + prd_frac(jj) * dmt%XGFLUX_ROAD (jj) &
267 + pgd_frac(jj) * pgflux_gd(jj) &
268 + pwl_frac(jj) * dmt%XGFLUX_WALL_A(jj) * 0.5 &
269 + pwl_frac(jj) * dmt%XGFLUX_WALL_B(jj) * 0.5 )
271 IF (top%LSOLAR_PANEL)
THEN 272 prn_twn(jj) = prn_twn(jj) + ptots_o_hors(jj) * (prf_frac(jj) * dmt%XRN_PANEL(jj) * tpn%XFRAC_PANEL(jj))
273 ph_twn(jj) = ph_twn(jj) + ptots_o_hors(jj) * (prf_frac(jj) * dmt%XH_PANEL (jj) * tpn%XFRAC_PANEL(jj))
283 zlw_up(jj) = plw_rad(jj) &
284 - ( prf_frac(jj) * (1.-t%XGREENROOF(jj)) * pdf_rf(jj) * dmt%XABS_LW_ROOF (jj) &
285 +prf_frac(jj) * (1.-t%XGREENROOF(jj)) * pdn_rf(jj) * dmt%XABS_LW_SNOW_ROOF(jj) &
286 +prf_frac(jj) * t%XGREENROOF(jj) * dmt%XABS_LW_GREENROOF(jj) &
287 +prd_frac(jj) * pdf_rd(jj) * dmt%XABS_LW_ROAD (jj) &
288 +prd_frac(jj) * pdn_rd(jj) * dmt%XABS_LW_SNOW_ROAD(jj) &
289 +pgd_frac(jj) * dmt%XABS_LW_GARDEN (jj) &
290 +pwl_frac(jj)* 0.5 * dmt%XABS_LW_WALL_A (jj) &
291 +pwl_frac(jj)* 0.5 * dmt%XABS_LW_WALL_B (jj) &
294 IF (top%LSOLAR_PANEL)
THEN 295 zlw_up(jj) = zlw_up(jj) - ptots_o_hors(jj) * (prf_frac(jj) * dmt%XABS_LW_PANEL(jj) * tpn%XFRAC_PANEL(jj))
301 pemis_twn(jj) = t%XBLD (jj) * (1.-t%XGREENROOF(jj)) * pdf_rf(jj) * t%XEMIS_ROOF(jj) * (1.-tpn%XFRAC_PANEL(jj)) &
302 + t%XBLD (jj) * (1.-t%XGREENROOF(jj)) * pdn_rf(jj) * pesn_rf(jj) * (1.-tpn%XFRAC_PANEL(jj)) &
303 + t%XBLD (jj) * t%XGREENROOF(jj) * pemis_gr(jj) * (1.-tpn%XFRAC_PANEL(jj)) &
304 + t%XBLD (jj) * tpn%XEMIS_PANEL(jj) * tpn%XFRAC_PANEL(jj) &
305 + t%XROAD (jj) * ( t%XSVF_ROAD(jj) * pdf_rd(jj) * t%XEMIS_ROAD(jj) &
306 + t%XSVF_ROAD(jj) * pdn_rd(jj) * t%TSNOW_ROAD%EMIS(jj)) &
307 + t%XGARDEN (jj) * t%XSVF_GARDEN(jj) * pemis_gd(jj) &
308 + t%XWALL_O_HOR(jj) * t%XSVF_WALL (jj) * t%XEMIS_WALL(jj)
313 pts_twn(jj) = ((zlw_up(jj) - plw_rad(jj)*(1.-pemis_twn(jj))) /pemis_twn(jj)/
xstefan)**0.25
320 pevap_twn(jj) = ptots_o_hors(jj)*( &
321 prf_frac(jj) * pdf_rf(jj) * (1.-t%XGREENROOF(jj)) * plew_rf(jj) /
xlvtt &
322 + prf_frac(jj) * pdn_rf(jj) * (1.-t%XGREENROOF(jj)) * plesn_rf(jj) /
xlstt &
323 + prf_frac(jj) * t%XGREENROOF(jj) * pevap_gr(jj) &
324 + prd_frac(jj) * pdf_rd(jj) * plew_rd(jj) /
xlvtt &
325 + prd_frac(jj) * pdn_rd(jj) * plesn_rd(jj) /
xlstt &
326 + pgd_frac(jj) * pevap_gd(jj) &
327 + pwl_frac(jj) * 0.5 * (ple_wl_a(jj) + ple_wl_b(jj)) /
xlvtt )&
328 + ple_traffic(jj) /
xlvtt &
329 + t%XLE_INDUSTRY(jj) /
xlvtt 331 IF (top%CBEM==
"BEM")
THEN 332 pevap_twn(jj) = pevap_twn(jj) + prf_frac(jj) * (1.-b%XF_WASTE_CAN(jj)) * dmt%XLE_WASTE(jj) /
xlvtt 339 dmt%XRUNOFF_TOWN(jj) = ((1.-t%XGREENROOF(jj))* dmt%XRUNOFF_STRLROOF (jj) &
340 + t%XGREENROOF(jj) *(prunoff_gr(jj) + pdrain_gr(jj))) * t%XBLD(jj) &
341 + t%XROAD (jj) * dmt%XRUNOFF_ROAD(jj) &
342 + t%XGARDEN (jj) * prunoff_gd(jj)
348 IF (.NOT. top%LCANOPY)
THEN 349 zinter = pac_rd(jj) * pdf_rd(jj) * zrd(jj) + pac_gd(jj) * zgd(jj) + pac_wl(jj) * pwl_o_grnd(jj) + pac_top(jj)
350 pt_can(jj) = ( t%XT_ROAD (jj,1) * pac_rd(jj) * pdf_rd(jj) * zrd(jj) &
351 + t%XT_WALL_A(jj,1) * pac_wl(jj) * (1.-b%XGR(jj)) * pwl_o_grnd(jj) * 0.5 &
352 + t%XT_WALL_B(jj,1) * pac_wl(jj) * (1.-b%XGR(jj)) * pwl_o_grnd(jj) * 0.5 &
353 + b%XT_WIN1 (jj) * pac_wl(jj) * b%XGR(jj) * pwl_o_grnd(jj) &
354 + pta(jj) * pac_top(jj) &
355 + ph_traffic(jj) / (1.-t%XBLD (jj)) / prhoa(jj) /
xcpd &
356 + phsn_rd(jj) * pdn_rd(jj) / prhoa(jj) /
xcpd ) &
359 pt_can(jj) = pt_can(jj) + ( ptsrad_gd(jj) * pac_gd(jj) * zgd(jj) ) / zinter
361 IF (top%CBEM==
"BEM")
THEN 362 pt_can(jj) = pt_can(jj) + (dmt%XH_WASTE(jj) * b%XF_WASTE_CAN(jj) / (1-t%XBLD(jj)) / prhoa(jj) /
xcpd) / zinter
369 zinter = pac_rd_wat(jj) * pdf_rd(jj) * pdelt_rd(jj) * zrd(jj) + pac_agg_gd(jj) * phu_agg_gd(jj) * zgd(jj) + pac_top(jj)
370 pq_can(jj) = ( pqsat_rd(jj) * pac_rd_wat(jj) * pdf_rd(jj) * zrd(jj) * pdelt_rd(jj) &
371 + pqsat_gd(jj) * pac_agg_gd(jj) * phu_agg_gd(jj) * zgd(jj) &
372 + pqa(jj) * pac_top(jj) &
373 + ple_traffic(jj) / (1.-t%XBLD(jj)) / prhoa(jj) /
xlvtt &
374 + plesn_rd(jj) * pdn_rd(jj) / prhoa(jj) /
xlvtt * zrd(jj) ) / zinter
376 IF (top%CBEM==
"BEM")
THEN 377 pq_can(jj) = pq_can(jj) + (dmt%XLE_WASTE(jj) * b%XF_WASTE_CAN(jj) / (1-t%XBLD(jj)) / prhoa(jj) /
xlvtt) / zinter
386 zqsat_can(:) =
qsat(pt_can(:), pps(:))
387 WHERE (pq_can(:) > zqsat_can(:))
388 pq_can(:) = zqsat_can(:)
391 IF (
lhook)
CALL dr_hook(
'AVG_URBAN_FLUXES',1,zhook_handle)
subroutine avg_urban_fluxes(TOP, T, B, TPN, DMT, PTS_TWN, PEMIS_TWN, PT_CAN, PQ_CAN, PT_LOWCAN, PQ_LOWCAN, PTA, PQA, PRHOA, PPS, PH_TRAFFIC, PLE_TRAFFIC, PWL_O_GRND, PESN_RF, PEMIS_GR, PLW_RAD, PAC_RF, PAC_RF_WAT, PAC_WL, PAC_RD, PAC_RD_WAT, PAC_TOP, PAC_GD, PQSAT_GD, PAC_AGG_GD, PHU_AGG_GD, PQSAT_RF, PQSAT_RD, PDELT_RF, PDELT_RD, PRF_FRAC, PWL_FRAC, PRD_FRAC, PGD_FRAC, PTOTS_O_HORS, PDF_RF, PDN_RF, PDF_RD, PDN_RD, PLE_WL_A, PLE_WL_B, PLEW_RF, PLESN_RF, PLEW_RD, PLESN_RD, PHSN_RD, PTSRAD_GD, PRN_GD, PH_GD, PLE_GD, PGFLUX_GD, PEVAP_GD, PRUNOFF_GD, PEVAP_GR, PRUNOFF_GR, PDRAIN_GR, PRN_GRND, PH_GRND, PLE_GRND, PGFLX_GRND, PRN_TWN, PH_TWN, PLE_TWN, PGFLX_TWN, PEVAP_TWN, PEMIT_LW_RD, PEMIT_LW_GD, PEMIT_LW_GRND, PEMIS_GD)