7 pdir_sw, psca_sw, pzenith, pazim, &
8 pbld, pgarden, proad_dir, proad, pfrac_gr, &
9 pwall_o_hor, pcan_hw_ratio, &
11 palb_road, psvf_road, palb_wall, psvf_wall, &
12 pfrac_panel, palb_panel, &
13 palb_garden, psvf_garden, &
15 pasnow_roof, pasnow_road, &
16 pdn_roof, pdf_roof, pdn_road, pdf_road, &
17 pgr, pabs_win, pshgc, pshgc_sh, palb_win, &
18 pabs_sw_roof, pabs_sw_road, &
19 pabs_sw_wall_a, pabs_sw_wall_b, &
20 pabs_sw_garden, pabs_sw_greenroof, &
21 pabs_sw_snow_roof, pabs_sw_snow_road, &
22 pabs_sw_solar_panel, &
23 prec_sw_road, prec_sw_snow_road, &
24 prec_sw_wall_a, prec_sw_wall_b, &
25 prec_sw_garden, prec_sw_roof, &
26 pdir_alb_town, psca_alb_town, &
27 psw_rad_garden, pabs_sw_win, prec_sw_win, &
29 pref_sw_grnd, pref_sw_fac, ptr_sw_win, &
30 pe_shading, oshad_day, &
202 USE modi_window_shading
205 USE yomhook
,ONLY : lhook, dr_hook
206 USE parkind1
,ONLY : jprb
212 CHARACTER(LEN=3) ,
INTENT(IN) :: hbem
213 CHARACTER(LEN=4),
INTENT(IN) :: hroad_dir
217 CHARACTER(LEN=4),
INTENT(IN) :: hwall_opt
220 REAL,
DIMENSION(:),
INTENT(IN) :: pdir_sw
221 REAL,
DIMENSION(:),
INTENT(IN) :: psca_sw
222 REAL,
DIMENSION(:),
INTENT(IN) :: pzenith
223 REAL,
DIMENSION(:),
INTENT(IN) :: pazim
225 REAL,
DIMENSION(:),
INTENT(IN) :: pbld
226 REAL,
DIMENSION(:),
INTENT(IN) :: pgarden
227 REAL,
DIMENSION(:),
INTENT(IN) :: proad_dir
229 REAL,
DIMENSION(:),
INTENT(IN) :: proad
230 REAL,
DIMENSION(:),
INTENT(IN) :: pfrac_gr
231 REAL,
DIMENSION(:),
INTENT(IN) :: pwall_o_hor
232 REAL,
DIMENSION(:),
INTENT(IN) :: pcan_hw_ratio
233 REAL,
DIMENSION(:),
INTENT(IN) :: palb_roof
234 REAL,
DIMENSION(:),
INTENT(IN) :: palb_road
235 REAL,
DIMENSION(:),
INTENT(IN) :: psvf_road
236 REAL,
DIMENSION(:),
INTENT(IN) :: palb_wall
237 REAL,
DIMENSION(:),
INTENT(IN) :: psvf_wall
238 REAL,
DIMENSION(:),
INTENT(IN) :: pfrac_panel
239 REAL,
DIMENSION(:),
INTENT(IN) :: palb_panel
240 REAL,
DIMENSION(:),
INTENT(IN) :: palb_garden
241 REAL,
DIMENSION(:),
INTENT(IN) :: psvf_garden
242 REAL,
DIMENSION(:),
INTENT(IN) :: palb_greenroof
243 REAL,
DIMENSION(:),
INTENT(IN) :: pasnow_roof
244 REAL,
DIMENSION(:),
INTENT(IN) :: pasnow_road
245 REAL,
DIMENSION(:),
INTENT(IN) :: pdn_roof
246 REAL,
DIMENSION(:),
INTENT(IN) :: pdf_roof
247 REAL,
DIMENSION(:),
INTENT(IN) :: pdn_road
248 REAL,
DIMENSION(:),
INTENT(IN) :: pdf_road
250 REAL,
DIMENSION(:),
INTENT(IN) :: pgr
251 REAL,
DIMENSION(:),
INTENT(IN) :: pabs_win
254 REAL,
DIMENSION(:),
INTENT(IN) :: pshgc
255 REAL,
DIMENSION(:),
INTENT(IN) :: pshgc_sh
257 REAL,
DIMENSION(:),
INTENT(OUT) :: palb_win
259 REAL,
DIMENSION(:),
INTENT(OUT) :: pabs_sw_roof
261 REAL,
DIMENSION(:),
INTENT(OUT) :: pabs_sw_road
263 REAL,
DIMENSION(:),
INTENT(OUT) :: pabs_sw_wall_a
264 REAL,
DIMENSION(:),
INTENT(OUT) :: pabs_sw_wall_b
266 REAL,
DIMENSION(:),
INTENT(OUT) :: pabs_sw_garden
268 REAL,
DIMENSION(:),
INTENT(OUT) :: pabs_sw_greenroof
269 REAL,
DIMENSION(:),
INTENT(OUT) :: pabs_sw_snow_roof
271 REAL,
DIMENSION(:),
INTENT(OUT) :: pabs_sw_snow_road
273 REAL,
DIMENSION(:),
INTENT(OUT) :: pabs_sw_solar_panel
275 REAL,
DIMENSION(:),
INTENT(OUT) :: prec_sw_road
277 REAL,
DIMENSION(:),
INTENT(OUT) :: prec_sw_wall_a
278 REAL,
DIMENSION(:),
INTENT(OUT) :: prec_sw_wall_b
280 REAL,
DIMENSION(:),
INTENT(OUT) :: prec_sw_garden
282 REAL,
DIMENSION(:),
INTENT(OUT) :: prec_sw_roof
284 REAL,
DIMENSION(:),
INTENT(OUT) :: prec_sw_snow_road
286 REAL,
DIMENSION(:),
INTENT(OUT) :: pdir_alb_town
287 REAL,
DIMENSION(:),
INTENT(OUT) :: psca_alb_town
289 REAL,
DIMENSION(:),
INTENT(OUT) :: psw_rad_garden
290 REAL,
DIMENSION(:),
INTENT(OUT) :: pabs_sw_win
291 REAL,
DIMENSION(:),
INTENT(OUT) :: prec_sw_win
293 REAL,
DIMENSION(:),
INTENT(OUT) :: pref_sw_grnd
294 REAL,
DIMENSION(:),
INTENT(OUT) :: pref_sw_fac
295 REAL,
DIMENSION(:),
INTENT(OUT) :: ptr_sw_win
298 REAL,
DIMENSION(:),
INTENT(OUT) :: pe_shading
302 LOGICAL,
DIMENSION(:),
INTENT(INOUT):: oshad_day
303 LOGICAL,
DIMENSION(:),
INTENT(IN) :: oshade
305 REAL,
DIMENSION(:),
INTENT(IN) :: ptran_win
310 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zdir_sw
311 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zsca_sw
312 REAL,
DIMENSION(SIZE(PDIR_SW)) :: ztanzen
313 REAL,
DIMENSION(SIZE(PDIR_SW)) :: ztheta0
318 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zaalb_road
319 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zdir_sw_road
320 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zdir_sw_wall_a
321 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zdir_sw_wall_b
322 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zdir_sw_garden
323 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zdir_sw_wall
324 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zsca_sw_road
325 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zsca_sw_wall
326 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zsca_sw_garden
328 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zabs_dir_sw_roof
329 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zabs_dir_sw_road
330 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zabs_dir_sw_wall_a
331 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zabs_dir_sw_wall_b
332 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zabs_dir_sw_wall
333 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zabs_dir_sw_garden
334 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zabs_dir_sw_greenroof
335 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zabs_dir_sw_panel
336 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zabs_dir_sw_win
337 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zabs_dir_sw_snow_roof
338 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zabs_dir_sw_snow_road
339 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zabs_sca_sw_roof
340 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zabs_sca_sw_road
341 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zabs_sca_sw_wall
342 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zabs_sca_sw_garden
343 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zabs_sca_sw_greenroof
344 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zabs_sca_sw_panel
345 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zabs_sca_sw_win
346 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zabs_sca_sw_snow_roof
347 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zabs_sca_sw_snow_road
348 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zdw
351 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zroad
352 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zroad_dir
354 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zgarden
356 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zrec_dir_sw_win
357 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zrec_sca_sw_win
358 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zaalb_wall
360 REAL,
DIMENSION(SIZE(PDIR_SW)) :: ztran_win
361 REAL,
DIMENSION(SIZE(PDIR_SW)) :: zabs_win
362 LOGICAL,
DIMENSION(SIZE(PDIR_SW)) :: g_eff_shad
365 REAL(KIND=JPRB) :: zhook_handle
368 IF (lhook) CALL dr_hook(
'URBAN_SOLAR_ABS',0,zhook_handle)
371 pabs_sw_wall_a(:) = 0.
372 pabs_sw_wall_b(:) = 0.
373 pabs_sw_garden(:) = 0.
374 pabs_sw_greenroof(:) = 0.
375 pabs_sw_snow_roof(:) = 0.
376 pabs_sw_snow_road(:) = 0.
381 prec_sw_wall_a(:) = 0.
382 prec_sw_wall_b(:) = 0.
383 prec_sw_garden(:) = 0.
384 prec_sw_snow_road(:) = 0.
387 zdir_sw = max(pdir_sw,0.)
388 zsca_sw = max(psca_sw,0.000001)
390 zroad_dir = proad_dir(:) * xpi/180.
394 IF (proad(jj)+pgarden(jj).NE.0.)
THEN
395 zroad(jj) = proad(jj) / (proad(jj)+pgarden(jj))
396 zgarden(jj) = pgarden(jj) / (proad(jj)+pgarden(jj))
409 zabs_dir_sw_panel(jj) = zdir_sw(jj) * (1. - palb_panel(jj))
410 zabs_sca_sw_panel(jj) = zsca_sw(jj) * (1. - palb_panel(jj))
413 zabs_dir_sw_roof(jj) = zdir_sw(jj) * (1. - palb_roof(jj)) * (1.-pfrac_panel(jj))
414 zabs_dir_sw_snow_roof(jj) = zdir_sw(jj) * (1. - pasnow_roof(jj)) * (1.-pfrac_panel(jj))
415 zabs_dir_sw_greenroof(jj) = zdir_sw(jj) * (1. - palb_greenroof(jj)) * (1.-pfrac_panel(jj))
416 zabs_sca_sw_roof(jj) = zsca_sw(jj) * (1. - palb_roof(jj)) * (1.-pfrac_panel(jj))
417 zabs_sca_sw_snow_roof(jj) = zsca_sw(jj) * (1. - pasnow_roof(jj)) * (1.-pfrac_panel(jj))
418 zabs_sca_sw_greenroof(jj) = zsca_sw(jj) * (1. - palb_greenroof(jj)) * (1.-pfrac_panel(jj))
425 IF (abs(0.5*xpi-pzenith(jj)) < 1.e-6)
THEN
426 IF(0.5*xpi-pzenith(jj) > 0.) ztanzen(jj)=tan(0.5*xpi-1.e-6)
427 IF(0.5*xpi-pzenith(jj) <= 0.) ztanzen(jj)=tan(0.5*xpi+1.e-6)
428 ELSEIF (abs(pzenith(jj)) < 1.e-6)
THEN
429 ztanzen(jj)=sign(1.,pzenith(jj))*tan(1.e-6)
431 ztanzen(jj) = tan(pzenith(jj))
435 IF (pbld(jj) .GT. 0.)
THEN
440 IF (hroad_dir==
'UNIF')
THEN
441 ztheta0(jj) = asin( min(abs( 1./ztanzen(jj))/pcan_hw_ratio(jj), 1. ) )
446 zdir_sw_road(jj) = ( zdir_sw(jj) * 2. * ztheta0(jj) / xpi &
447 - zdir_sw(jj) * 2. * ztanzen(jj) / xpi &
448 * pcan_hw_ratio(jj) * (1.-cos(ztheta0(jj))) )
450 zdir_sw_garden(jj) = ( zdir_sw(jj) * 2. * ztheta0(jj) / xpi &
451 - zdir_sw(jj) * 2. * ztanzen(jj) / xpi &
452 * pcan_hw_ratio(jj) * (1.-cos(ztheta0(jj))) )
454 zdir_sw_road(jj) = zdir_sw(jj) * max(0., &
455 1.-pcan_hw_ratio(jj)*ztanzen(jj)*abs(sin(pazim(jj)-zroad_dir(jj))) &
457 zdir_sw_garden(jj) = zdir_sw_road(jj)
464 zdir_sw_wall(jj) = (zdir_sw(jj) - (zdir_sw_road(jj)*zroad(jj)+zdir_sw_garden(jj)*zgarden(jj))) &
465 * 0.5 / pcan_hw_ratio(jj)
470 zdir_sw_road(jj) = zdir_sw(jj)
471 zdir_sw_garden(jj) = zdir_sw(jj)
472 zdir_sw_wall(jj) = 0.
476 IF (hroad_dir==
'UNIF' .OR. hwall_opt==
'UNIF')
THEN
478 zdir_sw_wall_a(jj) = zdir_sw_wall(jj)
479 zdir_sw_wall_b(jj) = zdir_sw_wall(jj)
489 IF (sin(pazim(jj)-zroad_dir(jj))>0.)
THEN
490 zdir_sw_wall_a(jj) = 2.* zdir_sw_wall(jj)
491 zdir_sw_wall_b(jj) = 0.
493 zdir_sw_wall_a(jj) = 0.
494 zdir_sw_wall_b(jj) = 2.* zdir_sw_wall(jj)
503 zsca_sw_road(jj) = zsca_sw(jj) * psvf_road(jj)
505 zsca_sw_garden(jj) = zsca_sw(jj) * psvf_garden(jj)
510 zsca_sw_wall(jj) = zsca_sw(jj) * psvf_wall(jj)
515 psw_rad_garden(jj) = zdir_sw_garden(jj) + zsca_sw_garden(jj)
520 zaalb_road(jj) = pdf_road(jj) * palb_road(jj) &
521 + pdn_road(jj) * pasnow_road(jj)
529 IF (hbem==
'BEM')
THEN
531 ztran_win(:) = ptran_win(:)
533 g_eff_shad(:) = oshade(:) .AND. &
534 (zdir_sw_wall(:) + zsca_sw_wall(:) > xwin_sw_max)
536 oshad_day(:) = g_eff_shad(:) .OR. oshad_day(:)
539 pabs_win, zabs_win, palb_win, ztran_win )
549 zaalb_wall(:) = pgr(:) * palb_win(:) + (1.-pgr(:)) * palb_wall(:)
557 zabs_dir_sw_road, zabs_dir_sw_snow_road, &
558 zabs_dir_sw_wall, zabs_dir_sw_garden, zabs_dir_sw_win )
560 IF (hroad_dir==
'UNIF' .OR. hwall_opt==
'UNIF')
THEN
562 zabs_dir_sw_wall_a = zabs_dir_sw_wall
563 zabs_dir_sw_wall_b = zabs_dir_sw_wall
568 zdw = (1.-palb_wall(:)) * zaalb_wall(:) * (1.-2.*psvf_wall(:)) &
569 / (1.+zaalb_wall(:)*(1.-2.*psvf_wall(:))) &
570 * 0.5 * (zdir_sw_wall_a(:)-zdir_sw_wall_b(:)) &
571 + 0.5 * (1.-palb_wall(:)) * (zdir_sw_wall_a-zdir_sw_wall_b)
572 zabs_dir_sw_wall_a = zabs_dir_sw_wall + zdw
573 zabs_dir_sw_wall_b = zabs_dir_sw_wall - zdw
580 zabs_sca_sw_road, zabs_sca_sw_snow_road, &
581 zabs_sca_sw_wall, zabs_sca_sw_garden, zabs_sca_sw_win )
585 pref_sw_grnd = zroad * palb_road / (1. - palb_road ) * &
586 (zabs_dir_sw_road + zabs_sca_sw_road) &
587 + zgarden * palb_garden / (1. - palb_garden) * &
588 (zabs_dir_sw_garden + zabs_sca_sw_garden)
590 pref_sw_fac = (1 - pgr) * palb_wall / (1. - palb_wall) * &
591 (zabs_dir_sw_wall + zabs_sca_sw_wall) &
592 + pgr * palb_win / (1 - palb_win ) * &
593 (zabs_dir_sw_win + zabs_sca_sw_win)
603 CALL
town_albedo(zdir_sw,zabs_dir_sw_roof,zabs_dir_sw_snow_roof, &
604 zabs_dir_sw_road, zabs_dir_sw_snow_road,zabs_dir_sw_wall, &
605 zabs_dir_sw_garden, zabs_dir_sw_greenroof, zabs_dir_sw_win,&
606 zabs_dir_sw_panel, pdir_alb_town )
611 CALL
town_albedo(zsca_sw,zabs_sca_sw_roof,zabs_sca_sw_snow_roof, &
612 zabs_sca_sw_road, zabs_sca_sw_snow_road,zabs_sca_sw_wall, &
613 zabs_sca_sw_garden, zabs_sca_sw_greenroof, zabs_sca_sw_win,&
614 zabs_sca_sw_panel, psca_alb_town )
621 WHERE(pdir_sw(:)==0.)
622 zabs_dir_sw_roof(:) = 0.
623 zabs_dir_sw_road(:) = 0.
624 zabs_dir_sw_wall_a(:) = 0.
625 zabs_dir_sw_wall_b(:) = 0.
626 zabs_dir_sw_garden(:) = 0.
627 zabs_dir_sw_greenroof(:) = 0.
628 zabs_dir_sw_panel(:) = 0.
629 zabs_dir_sw_win(:) = 0.
630 zabs_dir_sw_snow_roof(:) = 0.
631 zabs_dir_sw_snow_road(:) = 0.
634 WHERE(psca_sw(:)==0.)
635 zabs_sca_sw_roof(:) = 0.
636 zabs_sca_sw_road(:) = 0.
637 zabs_sca_sw_wall(:) = 0.
638 zabs_sca_sw_garden(:) = 0.
639 zabs_sca_sw_greenroof(:) = 0.
640 zabs_sca_sw_panel(:) = 0.
641 zabs_sca_sw_win(:) = 0.
642 zabs_sca_sw_snow_roof(:) = 0.
643 zabs_sca_sw_snow_road(:) = 0.
646 WHERE (pdir_alb_town==xundef) pdir_alb_town = psca_alb_town
657 pabs_sw_roof(jj) = zabs_dir_sw_roof(jj) + zabs_sca_sw_roof(jj)
661 pabs_sw_road(jj) = zabs_dir_sw_road(jj) + zabs_sca_sw_road(jj)
665 pabs_sw_garden(jj) = zabs_dir_sw_garden(jj) + zabs_sca_sw_garden(jj)
669 pabs_sw_greenroof(jj) = zabs_dir_sw_greenroof(jj) + zabs_sca_sw_greenroof(jj)
673 pabs_sw_solar_panel(jj)= zabs_dir_sw_panel(jj) + zabs_sca_sw_panel(jj)
677 pabs_sw_wall_a(jj) = zabs_dir_sw_wall_a(jj) + zabs_sca_sw_wall(jj)
678 pabs_sw_wall_b(jj) = zabs_dir_sw_wall_b(jj) + zabs_sca_sw_wall(jj)
682 zrec_dir_sw_win(jj) = zabs_dir_sw_win(jj) / (1.-palb_win(jj))
683 zrec_sca_sw_win(jj) = zabs_sca_sw_win(jj) / (1.-palb_win(jj))
685 pabs_sw_win(jj) = (zrec_dir_sw_win(jj) + zrec_sca_sw_win(jj)) * zabs_win(jj)
690 pabs_sw_snow_roof(jj) = zabs_dir_sw_snow_roof(jj) + zabs_sca_sw_snow_roof(jj)
694 pabs_sw_snow_road(jj) = zabs_dir_sw_snow_road(jj) + zabs_sca_sw_snow_road(jj)
701 prec_sw_road(jj) = pabs_sw_road(jj)/(1.-palb_road(jj))
703 prec_sw_snow_road(jj) = pabs_sw_snow_road(jj)/(1.-pasnow_road(jj))
705 prec_sw_wall_a(jj) = pabs_sw_wall_a(jj)/(1.-palb_wall(jj))
706 prec_sw_wall_b(jj) = pabs_sw_wall_b(jj)/(1.-palb_wall(jj))
708 prec_sw_win(jj) = zrec_dir_sw_win(jj) + zrec_sca_sw_win(jj)
710 prec_sw_garden(jj) = pabs_sw_garden(jj)/(1.-palb_garden(jj))
714 prec_sw_roof(jj) = (pdir_sw(jj) + psca_sw(jj)) * (1.-pfrac_panel(jj))
722 ptr_sw_win(jj) = prec_sw_win(jj) * ztran_win(jj)
724 pe_shading(jj) = prec_sw_win(jj) * (1. - palb_win(jj) - zabs_win(jj) - ztran_win(jj))
731 IF (lhook) CALL dr_hook(
'URBAN_SOLAR_ABS',1,zhook_handle)
736 zabs_sw_road,zabs_sw_snow_road, &
738 zabs_sw_garden, zabs_sw_win )
740 REAL,
DIMENSION(:),
INTENT(IN) :: zsw_road
741 REAL,
DIMENSION(:),
INTENT(IN) :: zsw_wall
742 REAL,
DIMENSION(:),
INTENT(IN) :: zsw_garden
743 REAL,
DIMENSION(:),
INTENT(OUT):: zabs_sw_road
744 REAL,
DIMENSION(:),
INTENT(OUT):: zabs_sw_snow_road
745 REAL,
DIMENSION(:),
INTENT(OUT):: zabs_sw_wall
746 REAL,
DIMENSION(:),
INTENT(OUT):: zabs_sw_garden
747 REAL,
DIMENSION(:),
INTENT(OUT):: zabs_sw_win
749 REAL,
DIMENSION(SIZE(ZSW_ROAD)) :: zref0_sw_road
750 REAL,
DIMENSION(SIZE(ZSW_ROAD)) :: zref0_sw_wall
751 REAL,
DIMENSION(SIZE(ZSW_ROAD)) :: zref0_sw_garden
752 REAL,
DIMENSION(SIZE(ZSW_ROAD)) :: zsref_sw_road
753 REAL,
DIMENSION(SIZE(ZSW_ROAD)) :: zsref_sw_wall
754 REAL,
DIMENSION(SIZE(ZSW_ROAD)) :: zsref_sw_garden
756 REAL,
DIMENSION(SIZE(ZSW_ROAD)) :: zwork1, zwork2, zdenom
758 REAL(KIND=JPRB) :: zhook_handle
760 IF (lhook) CALL dr_hook(
'SOLAR_REFLECTIONS',0,zhook_handle)
762 DO jj=1,
SIZE(zsw_road)
766 zref0_sw_road(jj) = zaalb_road(jj) * zsw_road(jj)
768 zref0_sw_garden(jj) = palb_garden(jj) * zsw_garden(jj)
770 zref0_sw_wall(jj) = zaalb_wall(jj) * zsw_wall(jj)
776 zdenom(jj) = 1. - (1.-2.*psvf_wall(jj)) * palb_wall(jj) &
777 - (1. - psvf_road(jj))* &
778 psvf_wall(jj)*palb_wall(jj)*zaalb_road(jj)*zroad(jj) &
779 - (1. - psvf_garden(jj))* &
780 psvf_wall(jj)*palb_wall(jj)*palb_garden(jj)*zgarden(jj)
782 zwork1(jj) = psvf_wall(jj) * palb_wall(jj) * zroad(jj)
783 zwork2(jj) = psvf_wall(jj) * palb_wall(jj) * zgarden(jj)
786 zsref_sw_wall(jj) = ( zref0_sw_wall(jj) &
787 + zwork1(jj) *zref0_sw_road(jj) &
788 + zwork2(jj) *zref0_sw_garden(jj)) &
791 zsref_sw_road(jj) = ( (1.- psvf_road(jj) ) * zaalb_road(jj) &
792 * zref0_sw_wall(jj) &
793 +(1.- psvf_road(jj) ) * zaalb_road(jj) &
795 * zref0_sw_road(jj) &
796 +(1.- psvf_road(jj) ) * zaalb_road(jj) &
798 * zref0_sw_garden(jj) )&
802 zsref_sw_garden(jj) = ( (1.- psvf_garden(jj)) * palb_garden(jj) &
803 * zref0_sw_wall(jj) &
804 +(1.- psvf_garden(jj)) * palb_garden(jj) &
806 * zref0_sw_road(jj) &
807 +(1.- psvf_garden(jj)) * palb_garden(jj) &
809 * zref0_sw_garden(jj) )&
811 + zref0_sw_garden(jj)
817 zabs_sw_road(jj) = (1.-palb_road(jj) ) &
819 + zsref_sw_wall(jj) * (1.- psvf_road(jj) ) )
821 zabs_sw_snow_road(jj) = (1.-pasnow_road(jj) ) &
823 + zsref_sw_wall(jj) * (1.- psvf_road(jj) ) )
825 zabs_sw_garden(jj) = (1.-palb_garden(jj)) &
827 + zsref_sw_wall(jj) * (1.- psvf_garden(jj)) )
833 zabs_sw_wall(jj) = (1.-palb_wall(jj)) &
835 + zsref_sw_road(jj) * psvf_wall(jj)*zroad(jj) &
836 + zsref_sw_garden(jj) * psvf_wall(jj)*zgarden(jj) &
837 + zsref_sw_wall(jj) * (1.-2.*psvf_wall(jj)) )
839 zabs_sw_win(jj) = (1.-palb_win(jj)) &
841 + zsref_sw_road(jj) * psvf_wall(jj)*zroad(jj) &
842 + zsref_sw_garden(jj) * psvf_wall(jj)*zgarden(jj) &
843 + zsref_sw_wall(jj) * (1.-2.*psvf_wall(jj)) )
847 IF (lhook) CALL dr_hook(
'SOLAR_REFLECTIONS',1,zhook_handle)
854 zabs_sw_road, zabs_sw_snow_road,zabs_sw_wall, &
855 zabs_sw_garden, zabs_sw_greenroof, zabs_sw_win,&
856 zabs_sw_panel, zalbedo )
858 REAL,
DIMENSION(:),
INTENT(IN) :: zsw
859 REAL,
DIMENSION(:),
INTENT(IN) :: zabs_sw_roof
860 REAL,
DIMENSION(:),
INTENT(IN) :: zabs_sw_road
861 REAL,
DIMENSION(:),
INTENT(IN) :: zabs_sw_wall
862 REAL,
DIMENSION(:),
INTENT(IN) :: zabs_sw_win
863 REAL,
DIMENSION(:),
INTENT(IN) :: zabs_sw_garden
864 REAL,
DIMENSION(:),
INTENT(IN) :: zabs_sw_greenroof
865 REAL,
DIMENSION(:),
INTENT(IN) :: zabs_sw_snow_roof
866 REAL,
DIMENSION(:),
INTENT(IN) :: zabs_sw_snow_road
867 REAL,
DIMENSION(:),
INTENT(IN) :: zabs_sw_panel
868 REAL,
DIMENSION(:),
INTENT(OUT):: zalbedo
870 REAL,
DIMENSION(SIZE(ZSW)) :: zsw_up
872 REAL(KIND=JPRB) :: zhook_handle
874 IF (lhook) CALL dr_hook(
'TOWN_ALBEDO',0,zhook_handle)
877 zsw_up(jj) = zsw(jj) &
878 - ( pbld(jj) *(1.-pfrac_gr(jj))*pdf_roof(jj) *zabs_sw_roof(jj) &
879 +pbld(jj) *(1.-pfrac_gr(jj))*pdn_roof(jj) *zabs_sw_snow_roof(jj)&
880 +pbld(jj) * pfrac_gr(jj) *zabs_sw_greenroof(jj)&
881 +pbld(jj) * pfrac_panel(jj) *zabs_sw_panel(jj) &
882 +proad(jj) *pdf_road(jj) *zabs_sw_road(jj) &
883 +proad(jj) *pdn_road(jj) *zabs_sw_snow_road(jj)&
884 +pgarden(jj) *zabs_sw_garden(jj) &
885 +pwall_o_hor(jj) *(1.-pgr(jj)) *zabs_sw_wall(jj) &
886 +pwall_o_hor(jj) * pgr(jj) *zabs_sw_win(jj) )
889 zalbedo(jj) = zsw_up(jj) / zsw(jj)
895 IF (lhook) CALL dr_hook(
'TOWN_ALBEDO',1,zhook_handle)
subroutine window_shading(PSHGC, PSHGC_SH, O_SHADE, PALB_WALL, PABS_WIN, PABS_WINSH, PALB_WIN, PTRAN_WIN)
subroutine solar_reflections(ZSW_ROAD, ZSW_WALL, ZSW_GARDEN, ZABS_SW_ROAD, ZABS_SW_SNOW_ROAD, ZABS_SW_WALL, ZABS_SW_GARDEN, ZABS_SW_WIN)
subroutine town_albedo(ZSW, ZABS_SW_ROOF, ZABS_SW_SNOW_ROOF, ZABS_SW_ROAD, ZABS_SW_SNOW_ROAD, ZABS_SW_WALL, ZABS_SW_GARDEN, ZABS_SW_GREENROOF, ZABS_SW_WIN, ZABS_SW_PANEL, ZALBEDO)
subroutine urban_solar_abs(HBEM, HROAD_DIR, HWALL_OPT, PDIR_SW, PSCA_SW, PZENITH, PAZIM, PBLD, PGARDEN, PROAD_DIR, PROAD, PFRAC_GR, PWALL_O_HOR, PCAN_HW_RATIO, PALB_ROOF, PALB_ROAD, PSVF_ROAD, PALB_WALL, PSVF_WALL, PFRAC_PANEL, PALB_PANEL, PALB_GARDEN, PSVF_GARDEN, PALB_GREENROOF, PASNOW_ROOF, PASNOW_ROAD, PDN_ROOF, PDF_ROOF, PDN_ROAD, PDF_ROAD, PGR, PABS_WIN, PSHGC, PSHGC_SH, PALB_WIN, PABS_SW_ROOF, PABS_SW_ROAD, PABS_SW_WALL_A, PABS_SW_WALL_B, PABS_SW_GARDEN, PABS_SW_GREENROOF, PABS_SW_SNOW_ROOF, PABS_SW_SNOW_ROAD, PABS_SW_SOLAR_PANEL, PREC_SW_ROAD, PREC_SW_SNOW_ROAD, PREC_SW_WALL_A, PREC_SW_WALL_B, PREC_SW_GARDEN, PREC_SW_ROOF, PDIR_ALB_TOWN, PSCA_ALB_TOWN, PSW_RAD_GARDEN, PABS_SW_WIN, PREC_SW_WIN, PTRAN_WIN, PREF_SW_GRND, PREF_SW_FAC, PTR_SW_WIN, PE_SHADING, OSHAD_DAY, OSHADE)