6 SUBROUTINE teb_garden (DTCO, G, TOP, T, BOP, B, TPN, TIR, DMT, GDM, GRM, KTEB_P, &
7 HIMPLICIT_WIND, PTSUN, PT_CAN, PQ_CAN, PU_CAN, PT_LOWCAN, PQ_LOWCAN, &
8 PU_LOWCAN, PZ_LOWCAN, PPEW_A_COEF, PPEW_B_COEF, PPEW_A_COEF_LOWCAN, &
9 PPEW_B_COEF_LOWCAN, PPS, PPA, PEXNS, PEXNA, PTA, PQA, PRHOA, PCO2, &
10 PLW_RAD, PDIR_SW, PSCA_SW, PSW_BANDS, KSW, PZENITH, PAZIM, PRR, PSR, &
11 PZREF, PUREF, PVMOD, PH_TRAFFIC, PLE_TRAFFIC, PTSTEP, PLEW_RF, PLEW_RD,&
12 PLE_WL_A, PLE_WL_B, PRNSN_RF, PHSN_RF, PLESN_RF, PGSN_RF, PMELT_RF, &
13 PRNSN_RD, PHSN_RD, PLESN_RD, PGSN_RD, PMELT_RD, PRN_GRND, PH_GRND, &
14 PLE_GRND, PGFLX_GRND, PRN_TWN, PH_TWN, PLE_TWN, PGFLX_TWN, PEVAP_TWN, &
15 PSFCO2, PUW_GRND, PUW_RF, PDUWDU_GRND, PDUWDU_RF, &
16 PUSTAR_TWN, PCD, PCDN, PCH_TWN, PRI_TWN, PTS_TWN, PEMIS_TWN, &
17 PDIR_ALB_TWN, PSCA_ALB_TWN, PRESA_TWN, PAC_RD, PAC_GD, PAC_GR, &
18 PAC_RD_WAT, PAC_GD_WAT, PAC_GR_WAT, KDAY, PEMIT_LW_FAC, PEMIT_LW_GRND, &
19 PT_RAD_IND, PREF_SW_GRND, PREF_SW_FAC, PHU_BLD, PTIME, PPROD_BLD )
80 USE modd_snow_par
, ONLY: xemissn, xansmax
86 USE modi_teb_veg_properties
87 USE modi_window_shading_availability
88 USE modi_urban_solar_abs
89 USE modi_urban_lw_coef
93 USE modi_avg_urban_fluxes
94 USE modi_bld_occ_calendar
105 TYPE(
grid_t),
INTENT(INOUT) :: G
108 TYPE(
teb_t),
INTENT(INOUT) :: T
110 TYPE(
bem_t),
INTENT(INOUT) :: B
118 INTEGER,
INTENT(IN) :: KTEB_P
120 CHARACTER(LEN=*),
INTENT(IN) :: HIMPLICIT_WIND
123 REAL,
DIMENSION(:),
INTENT(IN) :: PTSUN
125 REAL,
DIMENSION(:) ,
INTENT(INOUT) :: PT_CAN
126 REAL,
DIMENSION(:) ,
INTENT(INOUT) :: PQ_CAN
127 REAL,
DIMENSION(:) ,
INTENT(IN) :: PU_CAN
128 REAL,
DIMENSION(:) ,
INTENT(IN) :: PU_LOWCAN
129 REAL,
DIMENSION(:) ,
INTENT(IN) :: PT_LOWCAN
130 REAL,
DIMENSION(:) ,
INTENT(IN) :: PQ_LOWCAN
131 REAL,
DIMENSION(:) ,
INTENT(IN) :: PZ_LOWCAN
132 REAL,
DIMENSION(:) ,
INTENT(IN) :: PPEW_A_COEF
133 REAL,
DIMENSION(:) ,
INTENT(IN) :: PPEW_B_COEF
134 REAL,
DIMENSION(:) ,
INTENT(IN) :: PPEW_A_COEF_LOWCAN
135 REAL,
DIMENSION(:) ,
INTENT(IN) :: PPEW_B_COEF_LOWCAN
136 REAL,
DIMENSION(:) ,
INTENT(IN) :: PPS
137 REAL,
DIMENSION(:) ,
INTENT(IN) :: PPA
138 REAL,
DIMENSION(:) ,
INTENT(IN) :: PEXNS
139 REAL,
DIMENSION(:) ,
INTENT(IN) :: PTA
140 REAL,
DIMENSION(:) ,
INTENT(IN) :: PQA
141 REAL,
DIMENSION(:) ,
INTENT(IN) :: PVMOD
142 REAL,
DIMENSION(:) ,
INTENT(IN) :: PEXNA
143 REAL,
DIMENSION(:) ,
INTENT(IN) :: PRHOA
144 REAL,
DIMENSION(:) ,
INTENT(IN) :: PCO2
145 REAL,
DIMENSION(:) ,
INTENT(IN) :: PLW_RAD
146 REAL,
DIMENSION(:,:),
INTENT(IN) :: PDIR_SW
147 REAL,
DIMENSION(:,:),
INTENT(IN) :: PSCA_SW
148 REAL,
DIMENSION(:) ,
INTENT(IN) :: PSW_BANDS
149 INTEGER,
INTENT(IN) :: KSW
150 REAL,
DIMENSION(:) ,
INTENT(IN) :: PZENITH
151 REAL,
DIMENSION(:) ,
INTENT(IN) :: PAZIM
153 REAL,
DIMENSION(:) ,
INTENT(IN) :: PRR
154 REAL,
DIMENSION(:) ,
INTENT(IN) :: PSR
155 REAL,
DIMENSION(:) ,
INTENT(IN) :: PH_TRAFFIC
156 REAL,
DIMENSION(:) ,
INTENT(IN) :: PLE_TRAFFIC
157 REAL,
DIMENSION(:) ,
INTENT(IN) :: PZREF
158 REAL,
DIMENSION(:) ,
INTENT(IN) :: PUREF
159 REAL ,
INTENT(IN) :: PTSTEP
161 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PLEW_RF
162 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PLEW_RD
163 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PLE_WL_A
164 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PLE_WL_B
167 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PRNSN_RF
168 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PHSN_RF
169 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PLESN_RF
170 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PGSN_RF
171 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PMELT_RF
172 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PRNSN_RD
173 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PHSN_RD
174 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PLESN_RD
175 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PGSN_RD
176 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PMELT_RD
178 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PRN_GRND
179 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PH_GRND
180 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PLE_GRND
181 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PGFLX_GRND
182 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PRN_TWN
183 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PH_TWN
184 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PLE_TWN
185 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PGFLX_TWN
186 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PEVAP_TWN
187 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PSFCO2
188 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PUW_GRND
189 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PUW_RF
190 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PDUWDU_GRND
191 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PDUWDU_RF
192 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PUSTAR_TWN
193 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PCD
194 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PCDN
195 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PCH_TWN
196 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PRI_TWN
197 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PTS_TWN
198 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PEMIS_TWN
199 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PDIR_ALB_TWN
200 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PSCA_ALB_TWN
201 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PRESA_TWN
202 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PAC_RD
203 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PAC_GD
204 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PAC_GR
205 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PAC_RD_WAT
206 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PAC_GD_WAT
207 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PAC_GR_WAT
211 INTEGER ,
INTENT(IN) :: KDAY
213 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PEMIT_LW_GRND
214 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PEMIT_LW_FAC
215 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PT_RAD_IND
216 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PREF_SW_GRND
217 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PREF_SW_FAC
218 REAL,
DIMENSION(:) ,
INTENT(OUT) :: PHU_BLD
221 REAL ,
INTENT(IN) :: PTIME
225 REAL,
DIMENSION(:),
INTENT(OUT) :: PPROD_BLD
229 TYPE(
diag_t),
POINTER :: GDDK
233 TYPE(
diag_t),
POINTER :: GRDK
237 REAL,
DIMENSION(SIZE(PTA)) :: ZTA
238 REAL,
DIMENSION(SIZE(PTA)) :: ZQA
240 REAL,
DIMENSION(SIZE(PTA)) :: ZDN_RF
241 REAL,
DIMENSION(SIZE(PTA)) :: ZDN_RD
242 REAL,
DIMENSION(SIZE(PTA)) :: ZDF_RF
243 REAL,
DIMENSION(SIZE(PTA)) :: ZDF_RD
244 REAL,
DIMENSION(SIZE(PTA)) :: ZDELT_RD
245 REAL,
DIMENSION(SIZE(PTA)) :: ZDELT_RF
246 REAL,
DIMENSION(SIZE(PTA)) :: ZAC_RF
247 REAL,
DIMENSION(SIZE(PTA)) :: ZAC_RF_WAT
248 REAL,
DIMENSION(SIZE(PTA)) :: ZAC_WL
249 REAL,
DIMENSION(SIZE(PTA)) :: ZAC_TOP
250 REAL,
DIMENSION(SIZE(PTA)) :: ZQSAT_RD
251 REAL,
DIMENSION(SIZE(PTA)) :: ZQSAT_GD
252 REAL,
DIMENSION(SIZE(PTA)) :: ZQSAT_RF
253 REAL,
DIMENSION(SIZE(PTA)) :: ZQSAT_GR
257 REAL,
DIMENSION(SIZE(PTA)) :: ZTSSN_RF
258 REAL,
DIMENSION(SIZE(PTA)) :: ZTSSN_RD
259 REAL,
DIMENSION(SIZE(PTA)) :: ZESN_RF
260 REAL,
DIMENSION(SIZE(PTA)) :: ZESN_RD
264 REAL,
DIMENSION(SIZE(PTA)) :: ZDIR_SW
265 REAL,
DIMENSION(SIZE(PTA)) :: ZSCA_SW
270 REAL,
DIMENSION(SIZE(PTA)) :: ZALB_GD
271 REAL,
DIMENSION(SIZE(PTA)) :: ZEMIS_GD
272 REAL,
DIMENSION(SIZE(PTA)) :: ZALB_GR
273 REAL,
DIMENSION(SIZE(PTA)) :: ZEMIS_GR
275 REAL,
DIMENSION(SIZE(PTA)) :: ZALBNIR_TVEG_GD
276 REAL,
DIMENSION(SIZE(PTA)) :: ZALBVIS_TVEG_GD
277 REAL,
DIMENSION(SIZE(PTA)) :: ZALBNIR_TSOIL_GD
278 REAL,
DIMENSION(SIZE(PTA)) :: ZALBVIS_TSOIL_GD
280 REAL,
DIMENSION(SIZE(PTA)) :: ZALBNIR_TVEG_GR
281 REAL,
DIMENSION(SIZE(PTA)) :: ZALBVIS_TVEG_GR
282 REAL,
DIMENSION(SIZE(PTA)) :: ZALBNIR_TSOIL_GR
283 REAL,
DIMENSION(SIZE(PTA)) :: ZALBVIS_TSOIL_GR
287 REAL,
DIMENSION(SIZE(PTA)) :: ZREC_SW_RD
288 REAL,
DIMENSION(SIZE(PTA)) :: ZREC_SW_WL_A
289 REAL,
DIMENSION(SIZE(PTA)) :: ZREC_SW_WL_B
290 REAL,
DIMENSION(SIZE(PTA)) :: ZREC_SW_GD
291 REAL,
DIMENSION(SIZE(PTA)) :: ZREC_SW_SN_RD
293 REAL,
DIMENSION(SIZE(PTA)) :: ZREC_LW_GD
295 REAL,
DIMENSION(SIZE(PTA)) :: ZSW_RAD_GD
296 REAL,
DIMENSION(SIZE(PTA)) :: ZREC_SW_RF
300 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_WA_TO_WB
301 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_WA_TO_R
302 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_WB_TO_R
303 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_WA_TO_G
304 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_WB_TO_G
305 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_WA_TO_WIN
306 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_WB_TO_WIN
308 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_WA_TO_NR
309 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_WB_TO_NR
310 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_R_TO_WA
311 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_R_TO_WB
312 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_R_TO_WIN
314 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_G_TO_WA
315 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_G_TO_WB
316 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_G_TO_WIN
318 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_WIN_TO_WA
320 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_WIN_TO_WB
322 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_WIN_TO_R
324 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_WIN_TO_G
326 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_WIN_TO_NR
328 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_S_TO_WA
329 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_S_TO_WB
330 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_S_TO_R
331 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_S_TO_G
332 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_S_TO_WIN
334 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_S_TO_NR
335 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_NR_TO_WA
336 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_NR_TO_WB
337 REAL,
DIMENSION(SIZE(PTA)) :: ZLW_NR_TO_WIN
339 REAL,
DIMENSION(SIZE(PTA)) :: ZREC_SW_WIN
340 REAL,
DIMENSION(SIZE(PTA)) :: ZT_SKY
341 REAL,
DIMENSION(SIZE(PTA)) :: ZREC_LW_RF
345 REAL,
DIMENSION(SIZE(PTA)) :: ZPET_A_COEF
346 REAL,
DIMENSION(SIZE(PTA)) :: ZPET_B_COEF
347 REAL,
DIMENSION(SIZE(PTA)) :: ZPEQ_A_COEF
348 REAL,
DIMENSION(SIZE(PTA)) :: ZPEQ_B_COEF
350 REAL,
DIMENSION(SIZE(PTA)) :: ZUW_RD
351 REAL,
DIMENSION(SIZE(PTA)) :: ZUW_GD
352 REAL,
DIMENSION(SIZE(PTA)) :: ZUW_GR
353 REAL,
DIMENSION(SIZE(PTA)) :: ZDUWDU_RD
355 REAL,
DIMENSION(SIZE(PTA)) :: ZAC_AGG_GD
356 REAL,
DIMENSION(SIZE(PTA)) :: ZHU_AGG_GD
357 REAL,
DIMENSION(SIZE(PTA)) :: ZAC_AGG_GR
358 REAL,
DIMENSION(SIZE(PTA)) :: ZHU_AGG_GR
362 REAL,
DIMENSION(SIZE(PTA)) :: ZRF_FRAC
363 REAL,
DIMENSION(SIZE(PTA)) :: ZWL_FRAC
364 REAL,
DIMENSION(SIZE(PTA)) :: ZRD_FRAC
365 REAL,
DIMENSION(SIZE(PTA)) :: ZGD_FRAC
366 REAL,
DIMENSION(SIZE(PTA)) :: ZTOTS_O_HORS
368 REAL,
DIMENSION(SIZE(PTA)) :: ZWL_O_RD
369 REAL,
DIMENSION(SIZE(PTA)) :: ZWL_O_GRND
373 REAL,
DIMENSION(SIZE(PTA)) :: ZMTC_O_GR_R1
378 REAL,
DIMENSION(SIZE(PTA)) :: ZSFCO2_GD
379 REAL,
DIMENSION(SIZE(PTA)) :: ZEMIT_LW_GD
380 REAL,
DIMENSION(SIZE(PTA)) :: ZSFCO2_GR
383 REAL,
DIMENSION(SIZE(PTA)) :: ZEMIT_LW_RD
386 REAL,
DIMENSION(SIZE(PTA)) :: ZEMIT_LWDN_PANEL
387 REAL,
DIMENSION(SIZE(PTA)) :: ZEMIT_LWUP_PANEL
388 REAL,
DIMENSION(SIZE(PTA)) :: ZEMIT_LW_RF
390 REAL,
DIMENSION(SIZE(PTA)) :: ZRN_GD, ZH_GD, ZLE_GD, ZGFLUX_GD, ZEVAP_GD, ZTSRAD_GD, ZRUNOFF_GD
391 REAL,
DIMENSIOn(SIZE(PTA)) :: ZRN_GR, ZH_GR, ZLE_GR, ZGFLUX_GR
392 REAL,
DIMENSION(SIZE(PTA)) :: ZEVAP_GR, ZTSRAD_GR, ZRUNOFF_GR, ZDRAIN_GR
395 REAL,
DIMENSION(SIZE(PTA)) :: ZE_SHADING
397 LOGICAL,
DIMENSION(SIZE(PTA)) :: GSHADE
401 REAL(KIND=JPRB) :: ZHOOK_HANDLE
412 gddk => gdm%VD%ND%AL(kteb_p)
413 gddek => gdm%VD%NDE%AL(kteb_p)
414 gddmk => gdm%VD%NDM%AL(kteb_p)
416 grdk => grm%VD%ND%AL(kteb_p)
417 grdek => grm%VD%NDE%AL(kteb_p)
418 grdmk => grm%VD%NDM%AL(kteb_p)
424 DO jj=1,
SIZE(pdir_sw,1)
425 zdir_sw(jj) = zdir_sw(jj) + pdir_sw(jj,jswb)
426 zsca_sw(jj) = zsca_sw(jj) + psca_sw(jj,jswb)
434 DO jj=1,
SIZE(t%XROAD)
435 IF (t%XROAD(jj) .GT. 0.)
THEN 436 ztots_o_hors(jj) = 1. + t%XWALL_O_HOR(jj)
437 zrf_frac(jj) = t%XBLD (jj) / ztots_o_hors(jj)
438 zwl_frac(jj) = t%XWALL_O_HOR(jj) / ztots_o_hors(jj)
439 zrd_frac(jj) = t%XROAD (jj) / ztots_o_hors(jj)
440 zgd_frac(jj) = t%XGARDEN (jj) / ztots_o_hors(jj)
441 zwl_o_rd(jj) = zwl_frac(jj) / zrd_frac(jj)
442 zwl_o_grnd(jj) = zwl_frac(jj) / (zrd_frac(jj)+zgd_frac(jj))
443 ELSEIF (t%XBLD(jj) .EQ. 0. .AND. t%XROAD(jj) .EQ. 0.)
THEN 444 ztots_o_hors(jj) = 1. + t%XWALL_O_HOR(jj)
446 zwl_frac(jj) = t%XWALL_O_HOR(jj) / ztots_o_hors(jj)
448 zgd_frac(jj) = t%XGARDEN (jj) / ztots_o_hors(jj)
450 zwl_o_grnd(jj) = zwl_frac(jj) / zgd_frac(jj)
461 CALL snow_frac_road(t%TSNOW_ROAD%WSNOW(:,1),psr(:)>0.,zdn_rd,zdf_rd)
462 CALL snow_frac_roof(t%TSNOW_ROOF%WSNOW(:,1),psr(:)>0.,zdn_rf,zdf_rf)
466 WHERE (t%TSNOW_ROAD%WSNOW(:,1)==0. .AND. psr(:)>0.) t%TSNOW_ROAD%ALB(:) = xansmax
467 WHERE (t%TSNOW_ROOF%WSNOW(:,1)==0. .AND. psr(:)>0.) t%TSNOW_ROOF%ALB(:) = xansmax
472 WHERE (t%TSNOW_ROAD%WSNOW(:,1)==0. .AND. psr(:)>0.)
473 t%TSNOW_ROAD%ALB (:) = xansmax
474 t%TSNOW_ROAD%EMIS(:) = xemissn
475 t%TSNOW_ROAD%TS (:) = min(t%XT_ROAD(:,1),
xtt)
477 WHERE (t%TSNOW_ROOF%WSNOW(:,1)==0. .AND. psr(:)>0.)
478 t%TSNOW_ROOF%ALB (:) = xansmax
479 t%TSNOW_ROOF%EMIS(:) = xemissn
480 t%TSNOW_ROOF%TS (:) = min(t%XT_ROOF(:,1),
xtt)
486 zesn_rf(:) = t%TSNOW_ROOF%EMIS(:)
487 zesn_rd(:) = t%TSNOW_ROAD%EMIS(:)
488 ztssn_rf(:) = t%TSNOW_ROOF%TS (:)
489 ztssn_rd(:) = t%TSNOW_ROAD%TS (:)
496 zta(:) = pta(:) * pexns(:) / pexna(:)
497 zqa(:) = pqa(:) *
qsat(zta(:),pps(:)) /
qsat(pta(:),ppa(:))
509 IF (top%LGARDEN)
THEN 511 pdir_sw, psca_sw, psw_bands, ksw, &
512 ztsrad_gd, zemis_gd, zalb_gd, &
514 palbnir_tveg=zalbnir_tveg_gd, &
515 palbvis_tveg=zalbvis_tveg_gd, &
516 palbnir_tsoil=zalbnir_tsoil_gd, &
517 palbvis_tsoil=zalbvis_tsoil_gd )
526 IF (top%LGREENROOF)
THEN 528 pdir_sw, psca_sw, psw_bands, ksw, &
529 ztsrad_gr, zemis_gr, zalb_gr, &
531 palbnir_tveg=zalbnir_tveg_gr, &
532 palbvis_tveg=zalbvis_tveg_gr, &
533 palbnir_tsoil=zalbnir_tsoil_gr, &
534 palbvis_tsoil=zalbvis_tsoil_gr )
544 IF (top%CBEM==
"BEM")
THEN 545 CALL bld_occ_calendar(top%TTIME, ptsun, t, b, 1., dmt%XTCOOL_TARGET, dmt%XTHEAT_TARGET, dmt%XQIN )
561 IF (top%CBEM==
"BEM")
THEN 566 WHERE (ptsun .LT. ptstep + 1e-3) b%LSHAD_DAY(:) = .false.
573 CALL urban_solar_abs(top, t, b, dmt, zdir_sw, zsca_sw, pzenith, pazim, &
574 tpn%XFRAC_PANEL, tpn%XALB_PANEL, zalb_gd, &
575 t%XSVF_GARDEN, zalb_gr, zdn_rf, zdf_rf, &
576 zdn_rd, zdf_rd, zrec_sw_rd, zrec_sw_sn_rd, &
577 zrec_sw_wl_a, zrec_sw_wl_b, zrec_sw_gd, &
578 zrec_sw_rf, pdir_alb_twn, psca_alb_twn, &
579 zsw_rad_gd, zrec_sw_win,pref_sw_grnd, &
580 pref_sw_fac, ze_shading, b%LSHAD_DAY, gshade )
587 CALL urban_lw_coef(b, t, plw_rad, zemis_gd, t%TSNOW_ROAD%TS, ztsrad_gd, &
588 zlw_wa_to_wb, zlw_wa_to_r, zlw_wb_to_r, &
589 zlw_wa_to_nr, zlw_wb_to_nr, zlw_wa_to_g, &
590 zlw_wb_to_g, zlw_wa_to_win, zlw_wb_to_win, &
591 zlw_r_to_wa, zlw_r_to_wb, zlw_r_to_win, &
592 zlw_g_to_wa, zlw_g_to_wb, zlw_g_to_win, &
593 zlw_s_to_wa, zlw_s_to_wb, zlw_s_to_r, &
594 zlw_s_to_nr, zlw_s_to_g,zlw_s_to_win, &
595 zlw_win_to_wa, zlw_win_to_wb, zlw_win_to_r, &
596 zlw_win_to_nr, zlw_win_to_g, zlw_nr_to_wa, &
597 zlw_nr_to_wb, zlw_nr_to_win )
617 IF (top%LGARDEN)
THEN 618 zt_sky(:) = (plw_rad(:)/
xstefan)**0.25
619 zrec_lw_gd(:) = (zlw_s_to_g(:) * (zt_sky(:) - ztsrad_gd(:)) &
620 + zlw_wa_to_g(:) * (t%XT_WALL_A(:,1)- ztsrad_gd(:)) &
621 + zlw_wb_to_g(:) * (t%XT_WALL_B(:,1)- ztsrad_gd(:)) &
622 + zlw_win_to_g(:) * (b%XT_WIN1(:) - ztsrad_gd(:)) ) &
623 / zemis_gd(:) +
xstefan * ztsrad_gd(:)**4
631 IF (top%LSOLAR_PANEL)
THEN 636 zemit_lwdn_panel =
xstefan * pta**4
640 zrec_lw_rf = (1.-tpn%XFRAC_PANEL(:)) * plw_rad + tpn%XFRAC_PANEL(:) * zemit_lwdn_panel
658 zpet_b_coef(:) = pt_lowcan(:) / pexns(:)
660 zpeq_b_coef(:) = pq_lowcan(:)
665 IF (top%LGARDEN)
THEN 667 CALL garden(dtco, g, t, top, tir, gdm%DTV, gdm%GB, gddk, gddek, gddmk, &
668 gdm%O, gdm%S, gdm%K, gdm%P, gdm%NPE%AL(kteb_p), &
669 himplicit_wind, top%TTIME, ptsun, ppew_a_coef_lowcan, ppew_b_coef_lowcan, &
670 zpet_a_coef, zpeq_a_coef, zpet_b_coef, zpeq_b_coef, ptstep, pz_lowcan, &
671 pt_lowcan, pq_lowcan, pexns, prhoa, pco2, pps, prr, psr, pzenith, &
672 zrec_sw_gd, zrec_lw_gd, pu_lowcan, zalbnir_tveg_gd, zalbvis_tveg_gd, &
673 zalbnir_tsoil_gd, zalbvis_tsoil_gd, zrn_gd, zh_gd, zle_gd, zgflux_gd, &
674 zsfco2_gd, zevap_gd, zuw_gd, zrunoff_gd, pac_gd, zqsat_gd, ztsrad_gd, &
675 zac_agg_gd, zhu_agg_gd, dmt%XIRRIG_GARDEN )
677 pac_gd_wat(:) = pac_gd(:)
678 dmt%XABS_SW_GARDEN(:) = (1.-zalb_gd(:)) * zrec_sw_gd
679 dmt%XABS_LW_GARDEN(:) = zemis_gd(:) * zrec_lw_gd(:) -
xstefan * zemis_gd(:) * ztsrad_gd(:)**4
680 zemit_lw_gd(:) =
xstefan * ztsrad_gd(:)**4 + (1 - zemis_gd(:)) / zemis_gd(:) * dmt%XABS_LW_GARDEN(:)
702 dmt%XABS_SW_GARDEN (:) =
xundef 703 dmt%XABS_LW_GARDEN (:) =
xundef 705 dmt%XIRRIG_GARDEN (:) = 0.
712 IF (top%LGREENROOF)
THEN 714 CALL greenroof(dtco, g, t, top, tir, grm%DTV, grm%GB, grdk, grdek, &
715 grdmk, grm%O, grm%S, grm%K, grm%P, grm%NPE%AL(kteb_p), &
716 himplicit_wind, top%TTIME, ptsun, ppew_a_coef, ppew_b_coef, &
717 zpet_a_coef, zpeq_a_coef, zpet_b_coef, zpeq_b_coef, ptstep, pzref, &
718 puref, pta, pqa, pexns, pexna,prhoa, pco2, pps, prr, psr, pzenith, &
719 zrec_sw_rf, zrec_lw_rf, pvmod,zalbnir_tveg_gr, zalbvis_tveg_gr, &
720 zalbnir_tsoil_gr, zalbvis_tsoil_gr, zrn_gr, zh_gr, zle_gr, &
721 zgflux_gr, zsfco2_gr, zevap_gr, zuw_gr, zrunoff_gr, zdrain_gr, &
722 pac_gr, zqsat_gr, ztsrad_gr, zac_agg_gr, zhu_agg_gr, &
723 dmt%XG_GREENROOF_ROOF, dmt%XIRRIG_GREENROOF )
725 pac_gr_wat(:) = pac_gr(:)
726 dmt%XABS_SW_GREENROOF(:) = (1.-zalb_gr(:)) * zrec_sw_rf
727 dmt%XABS_LW_GREENROOF(:) = zemis_gr * zrec_lw_rf -
xstefan * zemis_gr * ztsrad_gr**4
749 dmt%XIRRIG_GREENROOF (:) = 0.
750 dmt%XABS_SW_GREENROOF(:) =
xundef 751 dmt%XABS_LW_GREENROOF(:) =
xundef 752 dmt%XG_GREENROOF_ROOF(:) =
xundef 763 CALL teb (top, t, bop, b, tir, dmt, himplicit_wind, &
764 ptsun, pt_can, pq_can, pu_can, pt_lowcan, pq_lowcan, pu_lowcan, &
765 pz_lowcan, ppew_a_coef, ppew_b_coef, ppew_a_coef_lowcan, &
766 ppew_b_coef_lowcan, pps, ppa, pexns, pexna, pta, pqa, prhoa, plw_rad, &
767 prr, psr, pzref, puref, pvmod, ph_traffic, ple_traffic, ptstep, &
768 zdf_rf, zdn_rf, zdf_rd, zdn_rd, zqsat_rf, zqsat_rd, zdelt_rf, &
769 zdelt_rd, ztsrad_gd, plew_rf, zuw_gr, plew_rd, ple_wl_a, &
770 ple_wl_b, prnsn_rf, phsn_rf, plesn_rf, pgsn_rf, pmelt_rf, &
771 zrn_gr, zh_gr, zle_gr, zgflux_gr, zdrain_gr, zrunoff_gr, &
772 prnsn_rd, phsn_rd, plesn_rd, pgsn_rd, pmelt_rd, zuw_rd, puw_rf, &
773 zduwdu_rd, pduwdu_rf, pustar_twn, pcd, pcdn, pch_twn, pri_twn, presa_twn, &
774 zac_rf, pac_rd, zac_wl, zac_top, pac_gd, zac_rf_wat, pac_rd_wat, &
775 zlw_wa_to_wb, zlw_wa_to_r, zlw_wb_to_r, zlw_wa_to_nr, zlw_wb_to_nr, &
776 zlw_r_to_wa, zlw_r_to_wb, zlw_g_to_wa, zlw_g_to_wb, zlw_s_to_wa, &
777 zlw_s_to_wb, zlw_s_to_r, zlw_s_to_nr, zlw_nr_to_wa, zlw_nr_to_wb, &
778 zlw_nr_to_win, zlw_wa_to_win, zlw_wb_to_win, zlw_g_to_win, &
779 zlw_r_to_win, zlw_s_to_win, zlw_win_to_wa, zlw_win_to_wb, &
780 zlw_win_to_r, zlw_win_to_nr, kday, pemit_lw_fac, zemit_lw_rd, &
781 pt_rad_ind, phu_bld, ptime, ze_shading )
788 IF (top%LSOLAR_PANEL)
THEN 792 zemit_lw_rf = zrec_lw_rf &
793 - ( t%XGREENROOF(:) * dmt%XABS_LW_GREENROOF(:) &
794 + (1.-t%XGREENROOF(:)) * zdf_rf(:) * dmt%XABS_LW_ROOF(:) &
795 + (1.-t%XGREENROOF(:)) * zdn_rf(:) * dmt%XABS_LW_SNOW_ROOF(:) )
799 CALL solar_panel(tpn, dmt, ptstep, ptsun, t%XRESIDENTIAL, zemit_lw_rf, zemit_lwdn_panel, &
800 plw_rad, pta, b%XN_FLOOR, pprod_bld )
810 pts_twn, pemis_twn, pt_can, pq_can, pt_lowcan, pq_lowcan, &
811 zta, zqa, prhoa, pps, ph_traffic, ple_traffic, zwl_o_grnd, &
812 zesn_rf, zemis_gr, plw_rad, zac_rf, zac_rf_wat, zac_wl, pac_rd, &
813 pac_rd_wat, zac_top, pac_gd, zqsat_gd, zac_agg_gd, zhu_agg_gd, &
814 zqsat_rf, zqsat_rd, zdelt_rf, zdelt_rd, zrf_frac, zwl_frac, &
815 zrd_frac, zgd_frac, ztots_o_hors, zdf_rf, zdn_rf, zdf_rd, zdn_rd, &
816 ple_wl_a, ple_wl_b, plew_rf, plesn_rf, plew_rd, plesn_rd, phsn_rd, &
817 ztsrad_gd, zrn_gd, zh_gd, zle_gd, zgflux_gd, zevap_gd, &
818 zrunoff_gd, zevap_gr, zrunoff_gr, zdrain_gr, &
819 prn_grnd, ph_grnd, ple_grnd, pgflx_grnd, prn_twn, ph_twn, ple_twn, &
820 pgflx_twn, pevap_twn, zemit_lw_rd,zemit_lw_gd, pemit_lw_grnd, zemis_gd )
822 psfco2(:) = t%XGARDEN(:) * zsfco2_gd(:) + t%XBLD(:) * t%XGREENROOF(:) * zsfco2_gr(:)
829 puw_grnd(:) = (t%XROAD(:)*zuw_rd(:) + t%XGARDEN(:)*zuw_gd(:)) / (t%XROAD(:)+t%XGARDEN(:))
subroutine bld_occ_calendar(TPTIME, PTSUN, T, B, PQIN_FRAC, PTCOOL_TARGET, PTHEAT_TARGET, PQIN)
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)
subroutine snow_frac_road(PWSNOW_ROAD, OSNOW, PDN_ROAD, PDF_ROAD)
subroutine urban_solar_abs(TOP, T, B, DMT, PDIR_SW, PSCA_SW, PZENITH, PAZIM, PFRAC_PANEL, PALB_PANEL, PALB_GD, PSVF_GD, PALB_GRF, PDN_RF, PDF_RF, PDN_RD, PDF_RD, PREC_SW_RD, PREC_SW_SN_RD, PREC_SW_WL_A, PREC_SW_WL_B, PREC_SW_GD, PREC_SW_RF, PDIR_ALB_TWN, PSCA_ALB_TWN, PSW_RAD_GD, PREC_SW_WIN, PREF_SW_GRND, PREF_SW_FAC, PE_SHADING, OSHAD_DAY, OSHADE, OALB_ONLY)
subroutine window_shading_availability(OSHADE, PTI_BLD, PTCOOL_TAR
subroutine teb(TOP, T, BOP, B, TIR, DMT, HIMPLICIT_WIND, PTSUN, PT_CANYON, PQ_CANYON, PU_CANYON, PT_LOWCAN, PQ_LOWCAN, PU_LOWCAN, PZ_LOWCAN, PPEW_A_COEF, PPEW_B_COEF, PPEW_A_COEF_LOWCAN, PPEW_B_COEF_LOWCAN, PPS, PPA, PEXNS, PEXNA, PTA, PQA, PRHOA, PLW_RAD, PRR, PSR, PZREF, PUREF, PVMOD, PH_TRAFFIC, PLE_TRAFFIC, PTSTEP, PDF_RF, PDN_RF, PDF_RD, PDN_RD, PQSAT_RF, PQSAT_RD, PDELT_RF, PDELT_RD, PTS_GARDEN, PLEW_RF, PUW_GR, PLEW_RD, PLE_WL_A, PLE_WL_B, PRNSN_RF, PHSN_RF, PLESN_RF, PGSN_RF, PMELT_RF, PRN_GR, PH_GR, PLE_GR, PGFLUX_GR, PDRAIN_GR, PRUNOFF_GR, PRNSN_RD, PHSN_RD, PLESN_RD, PGSN_RD, PMELT_RD, PUW_RD, PUW_RF, PDUWDU_RD, PDUWDU_RF, PUSTAR_TWN, PCD, PCDN, PCH_TWN, PRI_TWN, PRESA_TWN, PAC_RF, PAC_RD, PAC_WL, PAC_TOP, PAC_GARDEN, PAC_RF_WAT, PAC_RD_WAT, PLW_WA_TO_WB, PLW_WA_TO_R, PLW_WB_TO_R, PLW_WA_TO_NR, PLW_WB_TO_NR, PLW_R_TO_WA, PLW_R_TO_WB, PLW_G_TO_WA, PLW_G_TO_WB, PLW_S_TO_WA, PLW_S_TO_WB, PLW_S_TO_R, PLW_S_TO_NR, PLW_NR_TO_WA, PLW_NR_TO_WB, PLW_NR_TO_WIN, PLW_WA_TO_WIN, PLW_WB_TO_WIN, PLW_G_TO_WIN, PLW_R_TO_WIN, PLW_S_TO_WIN, PLW_WIN_TO_WA, PLW_WIN_TO_WB, PLW_WIN_TO_R, PLW_WIN_TO_NR, KDAY, PEMIT_LW_FAC, PEMIT_LW_RD, PT_RAD_IND, PHU_BLD, PTIME, PE_SHADING)
subroutine urban_lw_coef(B, T, PLW_RAD, PEMIS_G, PTS_SR, PTS_G, PLW_WA_TO_WB, PLW_WA_TO_R, PLW_WB_TO_R, PLW_WA_TO_NR, PLW_WB_TO_NR, PLW_WA_TO_G, PLW_WB_TO_G, PLW_WA_TO_WIN, PLW_WB_TO_WIN, PLW_R_TO_WA, PLW_R_TO_WB, PLW_R_TO_WIN, PLW_G_TO_WA, PLW_G_TO_WB, PLW_G_TO_WIN, PLW_S_TO_WA, PLW_S_TO_WB, PLW_S_TO_R, PLW_S_TO_NR, PLW_S_TO_G, PLW_S_TO_WIN, PLW_WIN_TO_WA, PLW_WIN_TO_WB, PLW_WIN_TO_R, PLW_WIN_TO_NR, PLW_WIN_TO_G, PLW_NR_TO_WA, PLW_NR_TO_WB, PLW_NR_TO_WIN)
subroutine teb_garden(DTCO, G, TOP, T, BOP, B, TPN, TIR, DMT, GDM, GRM, KTEB_P, HIMPLICIT_WIND, PTSUN, PT_CAN, PQ_CAN, PU_CAN, PT_LOWCAN, PQ_LOWCAN, PU_LOWCAN, PZ_LOWCAN, PPEW_A_COEF, PPEW_B_COEF, PPEW_A_COEF_LOWCAN, PPEW_B_COEF_LOWCAN, PPS, PPA, PEXNS, PEXNA, PTA, PQA, PRHOA, PCO2, PLW_RAD, PDIR_SW, PSCA_SW, PSW_BANDS, KSW, PZENITH, PAZIM, PRR, PSR, PZREF, PUREF, PVMOD, PH_TRAFFIC, PLE_TRAFFIC, PTSTEP, PLEW_RF, PLEW_RD, PLE_WL_A, PLE_WL_B, PRNSN_RF, PHSN_RF, PLESN_RF, PGSN_RF, PMELT_RF, PRNSN_RD, PHSN_RD, PLESN_RD, PGSN_RD, PMELT_RD, PRN_GRND, PH_GRND, PLE_GRND, PGFLX_GRND, PRN_TWN, PH_TWN, PLE_TWN, PGFLX_TWN, PEVAP_TWN, PSFCO2, PUW_GRND, PUW_RF, PDUWDU_GRND, PDUWDU_RF, PUSTAR_TWN, PCD, PCDN, PCH_TWN, PRI_TWN, PTS_TWN, PEMIS_TWN, PDIR_ALB_TWN, PSCA_ALB_TWN, PRESA_TWN, PAC_RD, PAC_GD, PAC_GR, PAC_RD_WAT, PAC_GD_WAT, PAC_GR_WAT, KDAY, PEMIT_LW_FAC, PEMIT_LW_GRND, PT_RAD_IND, PREF_SW_GRND, PREF_SW_FAC, PHU_BLD, PTIME, PPROD_BLD)
subroutine teb_veg_properties(PMASK, IO, PEK, PDIR_SW, PSCA_SW, P
subroutine garden(DTCO, G, T, TOP, TIR, DTV, GB, DK, DEK, DMK, GDO, S, K, P, PEK, HIMPLICIT_WIND, TPTIME, PTSUN, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, PTSTEP, PZREF, PTA, PQA, PEXNS, PRHOA, PCO2, PPS, PRR, PSR, PZENITH, PSW, PLW, PVMOD, PALBNIR_TVEG, PALBVIS_TVEG, PALBNIR_TSOIL, PALBVIS_TSOIL, PRN, PH, PLE, PGFLUX, PSFCO2, PEVAP, PUW, PRUNOFF, PAC, PQSAT, PTSRAD, PAC_AGG, PHU_AGG, PIRRIG)
subroutine greenroof(DTCO, G, T, TOP, TIR, DTV, GB, DK, DEK, DMK, GRO, S, K, P, PEK, HIMPLICIT_WIND, TPTIME, PTSUN, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, PTSTEP, PZREF, PUREF, PTA, PQA, PEXNS, PEXNA, PRHOA, PCO2, PPS, PRR, PSR, PZENITH, PSW, PLW, PVMOD, PALBNIR_TVEG, PALBVIS_TVEG, PALBNIR_TSOIL, PALBVIS_TSOIL, PRN, PH, PLE, PGFLUX, PSFCO2, PEVAP, PUW, PRUNOFF, PDRAIN, PAC, PQSAT, PTSRAD, PAC_AGG, PHU_AGG, PDEEP_FLUX, PIRRIG)
subroutine solar_panel(TPN, DMT, PTSTEP, PTSUN, PRESIDENTIAL, PEMIT_LW_ROOF, PEMIT_LWDN_PANEL, PLW_RAD, PTA, PN_FLOOR, PPROD_BLD)
subroutine snow_frac_roof(PWSNOW_ROOF, OSNOW, PDN_ROOF, PDF_ROOF)