6 SUBROUTINE teb (HZ0H, HIMPLICIT_WIND, HWALL_OPT, HBEM, TPTIME, PTSUN, &
7 pt_canyon, pq_canyon, pu_canyon, &
8 pt_lowcan, pq_lowcan, pu_lowcan, pz_lowcan, pti_bld, &
9 pt_roof, pt_road, pt_wall_a, pt_wall_b,pws_roof, pws_road,&
10 hsnow_roof, pwsnow_roof, ptsnow_roof, prsnow_roof, &
11 pasnow_roof, ptssnow_roof, pesnow_roof, &
12 hsnow_road, pwsnow_road, ptsnow_road, prsnow_road, &
13 pasnow_road, ptssnow_road, pesnow_road, &
14 ppew_a_coef, ppew_b_coef, &
15 ppew_a_coef_lowcan, ppew_b_coef_lowcan, &
16 pps, ppa, pexns, pexna, pta, pqa, prhoa, plw_rad, &
17 prr, psr, pzref, puref, &
18 pvmod, ph_traffic, ple_traffic, ph_industry, ple_industry,&
19 ptstep, pz0_town, pbld, pgarden, proad, pfrac_gr, &
20 pbld_height, pwall_o_hor, pcan_hw_ratio, pwall_o_grnd, &
21 pdf_roof, pdn_roof, pdf_road, &
22 pdn_road, pqsat_roof, pqsat_road, pdelt_roof, pdelt_road, &
23 pemis_roof, phc_roof, ptc_roof, pd_roof, &
24 pemis_road, phc_road, ptc_road, &
25 pd_road, pemis_wall, pts_garden, &
26 phc_wall, ptc_wall, pd_wall, prn_roof, ph_roof, ple_roof, &
27 plew_roof, pgflux_roof, prunoff_roof, &
28 prn_greenroof, ph_greenroof, ple_greenroof, &
29 pgflux_greenroof, puw_greenroof, &
30 prunoff_greenroof, pdrain_greenroof, &
31 prn_strlroof, ph_strlroof, ple_strlroof, pgflux_strlroof, &
34 ple_road, plew_road, pgflux_road, prunoff_road, &
35 prn_wall_a, ph_wall_a, ple_wall_a, pgflux_wall_a, &
36 prn_wall_b, ph_wall_b, ple_wall_b, pgflux_wall_b, &
37 prn_blt, ph_blt, ple_blt, pgflux_blt, &
38 prnsnow_roof, phsnow_roof, plesnow_roof, pgsnow_roof, &
40 prnsnow_road, phsnow_road, plesnow_road, pgsnow_road, &
43 puw_road, puw_roof, pduwdu_road, pduwdu_roof, &
44 pustar_town, pcd, pcdn, pch_town, pri_town, &
45 presa_town, pdqs_town, pqf_town, pqf_bld, pflx_bld, &
46 pac_roof, pac_road, pac_wall, pac_top, pac_garden, &
47 pac_roof_wat, pac_road_wat, pabs_sw_roof, pabs_lw_roof, &
48 pabs_sw_snow_roof, pabs_lw_snow_roof, pabs_sw_road, &
49 pabs_lw_road, pabs_sw_snow_road, pabs_lw_snow_road, &
50 pabs_sw_wall_a,pabs_lw_wall_a, &
51 pabs_sw_wall_b,pabs_lw_wall_b, &
53 plw_wa_to_r, plw_wb_to_r, &
54 plw_wa_to_nr, plw_wb_to_nr, &
55 plw_r_to_wa, plw_r_to_wb, &
56 plw_g_to_wa, plw_g_to_wb, &
57 plw_s_to_wa, plw_s_to_wb, plw_s_to_r, &
58 plw_s_to_nr, plw_nr_to_wa, plw_nr_to_wb, &
59 plw_nr_to_win, plw_wa_to_win, plw_wb_to_win, plw_g_to_win,&
60 plw_r_to_win, plw_s_to_win, plw_win_to_wa, plw_win_to_wb, &
61 plw_win_to_r, plw_win_to_nr, &
63 hcool_coil, pf_water_cond, hheat_coil, oautosize, &
64 kday, paux_max, pt_floor, pt_mass, ph_bld_cool, &
65 pt_bld_cool, ph_bld_heat, ple_bld_cool, ple_bld_heat, &
66 ph_waste, ple_waste, pf_waste_can, phvac_cool, phvac_heat,&
67 pqin, pqin_frad, pqin_flat, pgr, peff_heat, &
68 pinf, ptcool_target, ptheat_target, phr_target, pt_win2, &
69 pqi_bld, pv_vent, pcap_sys_heat, pcap_sys_rat, pt_adp, &
70 pm_sys_rat, pcop_rat, pcap_sys, pm_sys, pcop, pq_sys, &
71 pt_sys, ptr_sw_win, pfan_power, phc_floor, ptc_floor, &
73 pt_win1, pabs_sw_win, pabs_lw_win, pugg_win, pemit_lw_fac,&
74 pemit_lw_road, pt_rad_ind, phu_bld, ptime, pe_shading, &
75 onatvent_night, pn_floor, pwall_o_bld, pglaz_o_bld, pmass_o_bld, &
76 pfloor_hw_ratio, pf_floor_mass, pf_floor_wall, &
77 pf_floor_win, pf_floor_roof, pf_wall_floor, pf_wall_mass, &
78 pf_wall_win, pf_win_floor, pf_win_mass, pf_win_wall, &
79 pf_mass_floor, pf_mass_wall, pf_mass_win, ocanopy, &
80 hch_bem, prough_roof, prough_wall, pf_win_win, &
81 opar_rd_irrig, prd_start_month, prd_end_month, &
82 prd_start_hour, prd_end_hour, prd_24h_irrig, pirrig_road )
240 USE modd_csts, ONLY : xtt, xstefan, xcpd, xlvtt
243 xansmax_road,xwcrn_roof,xwcrn_road
248 USE modi_snow_cover_1layer
250 USE modi_urban_snow_evol
251 USE modi_roof_layer_e_budget
252 USE modi_road_layer_e_budget
253 USE modi_facade_e_budget
254 USE modi_urban_fluxes
256 USE modi_bld_e_budget
257 USE modi_wind_threshold
261 USE yomhook
,ONLY : lhook, dr_hook
262 USE parkind1
,ONLY : jprb
269 CHARACTER(LEN=6),
INTENT(IN) :: hz0h
273 CHARACTER(LEN=*),
INTENT(IN) :: himplicit_wind
276 CHARACTER(LEN=4),
INTENT(IN) :: hwall_opt
279 CHARACTER(LEN=3),
INTENT(IN) :: hbem
281 REAL,
DIMENSION(:),
INTENT(IN) :: ptsun
282 REAL,
DIMENSION(:),
INTENT(INOUT) :: pt_canyon
283 REAL,
DIMENSION(:),
INTENT(INOUT) :: pq_canyon
284 REAL,
DIMENSION(:),
INTENT(IN) :: pu_canyon
285 REAL,
DIMENSION(:),
INTENT(IN) :: pu_lowcan
286 REAL,
DIMENSION(:),
INTENT(IN) :: pt_lowcan
287 REAL,
DIMENSION(:),
INTENT(IN) :: pq_lowcan
288 REAL,
DIMENSION(:),
INTENT(IN) :: pz_lowcan
289 REAL,
DIMENSION(:),
INTENT(INOUT) :: pti_bld
290 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: pt_roof
291 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: pt_road
292 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: pt_wall_a
293 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: pt_wall_b
294 REAL,
DIMENSION(:),
INTENT(INOUT) :: pws_roof
295 REAL,
DIMENSION(:),
INTENT(INOUT) :: pws_road
296 CHARACTER(LEN=*),
INTENT(IN) :: hsnow_roof
300 CHARACTER(LEN=*),
INTENT(IN) :: hsnow_road
304 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: pwsnow_roof
305 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: ptsnow_roof
306 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: prsnow_roof
307 REAL,
DIMENSION(:),
INTENT(INOUT) :: pasnow_roof
308 REAL,
DIMENSION(:),
INTENT(INOUT) :: pesnow_roof
309 REAL,
DIMENSION(:),
INTENT(INOUT) :: ptssnow_roof
310 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: pwsnow_road
311 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: ptsnow_road
312 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: prsnow_road
313 REAL,
DIMENSION(:),
INTENT(INOUT) :: pasnow_road
314 REAL,
DIMENSION(:),
INTENT(INOUT) :: pesnow_road
315 REAL,
DIMENSION(:),
INTENT(INOUT) :: ptssnow_road
316 REAL,
DIMENSION(:),
INTENT(IN) :: ppew_a_coef
317 REAL,
DIMENSION(:),
INTENT(IN) :: ppew_b_coef
318 REAL,
DIMENSION(:),
INTENT(IN) :: ppew_a_coef_lowcan
319 REAL,
DIMENSION(:),
INTENT(IN) :: ppew_b_coef_lowcan
320 REAL,
DIMENSION(:),
INTENT(IN) :: pps
321 REAL,
DIMENSION(:),
INTENT(IN) :: ppa
322 REAL,
DIMENSION(:),
INTENT(IN) :: pexns
323 REAL,
DIMENSION(:),
INTENT(IN) :: pta
324 REAL,
DIMENSION(:),
INTENT(IN) :: pqa
326 REAL,
DIMENSION(:),
INTENT(IN) :: pvmod
327 REAL,
DIMENSION(:),
INTENT(IN) :: pexna
329 REAL,
DIMENSION(:),
INTENT(IN) :: prhoa
331 REAL,
DIMENSION(:),
INTENT(IN) :: plw_rad
332 REAL,
DIMENSION(:),
INTENT(IN) :: prr
333 REAL,
DIMENSION(:),
INTENT(IN) :: psr
334 REAL,
DIMENSION(:),
INTENT(IN) :: ph_traffic
336 REAL,
DIMENSION(:),
INTENT(IN) :: ple_traffic
338 REAL,
DIMENSION(:),
INTENT(IN) :: ph_industry
340 REAL,
DIMENSION(:),
INTENT(IN) :: ple_industry
342 REAL,
DIMENSION(:),
INTENT(IN) :: pzref
344 REAL,
DIMENSION(:),
INTENT(IN) :: puref
346 REAL,
INTENT(IN) :: ptstep
347 REAL,
DIMENSION(:),
INTENT(IN) :: pz0_town
349 REAL,
DIMENSION(:),
INTENT(IN) :: pbld
350 REAL,
DIMENSION(:),
INTENT(IN) :: pgarden
351 REAL,
DIMENSION(:),
INTENT(IN) :: proad
352 REAL,
DIMENSION(:),
INTENT(IN) :: pfrac_gr
353 REAL,
DIMENSION(:),
INTENT(IN) :: pbld_height
354 REAL,
DIMENSION(:),
INTENT(IN) :: pwall_o_hor
355 REAL,
DIMENSION(:),
INTENT(IN) :: pcan_hw_ratio
356 REAL,
DIMENSION(:),
INTENT(IN) :: pwall_o_grnd
358 REAL,
DIMENSION(:),
INTENT(INOUT) :: pdf_roof
359 REAL,
DIMENSION(:),
INTENT(INOUT) :: pdn_roof
360 REAL,
DIMENSION(:),
INTENT(INOUT) :: pdf_road
361 REAL,
DIMENSION(:),
INTENT(INOUT) :: pdn_road
362 REAL,
DIMENSION(:),
INTENT(OUT) :: pqsat_roof
363 REAL,
DIMENSION(:),
INTENT(OUT) :: pqsat_road
364 REAL,
DIMENSION(:),
INTENT(OUT) :: pdelt_roof
365 REAL,
DIMENSION(:),
INTENT(OUT) :: pdelt_road
367 REAL,
DIMENSION(:),
INTENT(IN) :: pemis_roof
368 REAL,
DIMENSION(:,:),
INTENT(IN) :: phc_roof
369 REAL,
DIMENSION(:,:),
INTENT(IN) :: ptc_roof
370 REAL,
DIMENSION(:,:),
INTENT(IN) :: pd_roof
371 REAL,
DIMENSION(:),
INTENT(IN) :: pemis_road
372 REAL,
DIMENSION(:,:),
INTENT(IN) :: phc_road
373 REAL,
DIMENSION(:,:),
INTENT(IN) :: ptc_road
374 REAL,
DIMENSION(:,:),
INTENT(IN) :: pd_road
375 REAL,
DIMENSION(:),
INTENT(IN) :: pemis_wall
376 REAL,
DIMENSION(:,:),
INTENT(IN) :: phc_wall
377 REAL,
DIMENSION(:,:),
INTENT(IN) :: ptc_wall
378 REAL,
DIMENSION(:,:),
INTENT(IN) :: pd_wall
379 REAL,
DIMENSION(:),
INTENT(IN) :: pts_garden
381 REAL,
DIMENSION(:),
INTENT(IN) :: pg_greenroof_roof
383 REAL,
DIMENSION(:),
INTENT(OUT) :: prn_roof
384 REAL,
DIMENSION(:),
INTENT(OUT) :: ph_roof
385 REAL,
DIMENSION(:),
INTENT(OUT) :: ple_roof
386 REAL,
DIMENSION(:),
INTENT(OUT) :: plew_roof
387 REAL,
DIMENSION(:),
INTENT(OUT) :: pgflux_roof
388 REAL,
DIMENSION(:),
INTENT(OUT) :: prunoff_strlroof
389 REAL,
DIMENSION(:),
INTENT(OUT) :: prunoff_roof
390 REAL,
DIMENSION(:),
INTENT(OUT) :: prn_road
391 REAL,
DIMENSION(:),
INTENT(OUT) :: ph_road
392 REAL,
DIMENSION(:),
INTENT(OUT) :: ple_road
393 REAL,
DIMENSION(:),
INTENT(OUT) :: plew_road
394 REAL,
DIMENSION(:),
INTENT(OUT) :: pgflux_road
395 REAL,
DIMENSION(:),
INTENT(OUT) :: prunoff_road
396 REAL,
DIMENSION(:),
INTENT(OUT) :: prn_wall_a
397 REAL,
DIMENSION(:),
INTENT(OUT) :: ph_wall_a
398 REAL,
DIMENSION(:),
INTENT(OUT) :: ple_wall_a
399 REAL,
DIMENSION(:),
INTENT(OUT) :: pgflux_wall_a
400 REAL,
DIMENSION(:),
INTENT(OUT) :: prn_wall_b
401 REAL,
DIMENSION(:),
INTENT(OUT) :: ph_wall_b
402 REAL,
DIMENSION(:),
INTENT(OUT) :: ple_wall_b
403 REAL,
DIMENSION(:),
INTENT(OUT) :: pgflux_wall_b
404 REAL,
DIMENSION(:),
INTENT(OUT) :: prn_blt
405 REAL,
DIMENSION(:),
INTENT(OUT) :: ph_blt
406 REAL,
DIMENSION(:),
INTENT(OUT) :: ple_blt
407 REAL,
DIMENSION(:),
INTENT(OUT) :: pgflux_blt
409 REAL,
DIMENSION(:),
INTENT(IN) :: prn_greenroof
410 REAL,
DIMENSION(:),
INTENT(IN) :: ph_greenroof
411 REAL,
DIMENSION(:),
INTENT(IN) :: ple_greenroof
412 REAL,
DIMENSION(:),
INTENT(IN) :: pgflux_greenroof
413 REAL,
DIMENSION(:),
INTENT(IN) :: puw_greenroof
414 REAL,
DIMENSION(:),
INTENT(IN) :: prunoff_greenroof
415 REAL,
DIMENSION(:),
INTENT(IN) :: pdrain_greenroof
417 REAL,
DIMENSION(:),
INTENT(OUT) :: prn_strlroof
418 REAL,
DIMENSION(:),
INTENT(OUT) :: ph_strlroof
419 REAL,
DIMENSION(:),
INTENT(OUT) :: ple_strlroof
420 REAL,
DIMENSION(:),
INTENT(OUT) :: pgflux_strlroof
422 REAL,
DIMENSION(:),
INTENT(OUT) :: prnsnow_roof
423 REAL,
DIMENSION(:),
INTENT(OUT) :: phsnow_roof
424 REAL,
DIMENSION(:),
INTENT(OUT) :: plesnow_roof
425 REAL,
DIMENSION(:),
INTENT(OUT) :: pgsnow_roof
426 REAL,
DIMENSION(:),
INTENT(OUT) :: pmelt_roof
427 REAL,
DIMENSION(:),
INTENT(OUT) :: prnsnow_road
428 REAL,
DIMENSION(:),
INTENT(OUT) :: phsnow_road
429 REAL,
DIMENSION(:),
INTENT(OUT) :: plesnow_road
430 REAL,
DIMENSION(:),
INTENT(OUT) :: pgsnow_road
431 REAL,
DIMENSION(:),
INTENT(OUT) :: pmelt_road
433 REAL,
DIMENSION(:),
INTENT(OUT) :: puw_road
434 REAL,
DIMENSION(:),
INTENT(OUT) :: puw_roof
435 REAL,
DIMENSION(:),
INTENT(OUT) :: pduwdu_road
436 REAL,
DIMENSION(:),
INTENT(OUT) :: pduwdu_roof
437 REAL,
DIMENSION(:),
INTENT(OUT) :: pustar_town
438 REAL,
DIMENSION(:),
INTENT(OUT) :: pcd
439 REAL,
DIMENSION(:),
INTENT(OUT) :: pcdn
440 REAL,
DIMENSION(:),
INTENT(OUT) :: pch_town
442 REAL,
DIMENSION(:),
INTENT(OUT) :: pri_town
443 REAL,
DIMENSION(:),
INTENT(OUT) :: presa_town
444 REAL,
DIMENSION(:),
INTENT(OUT) :: pdqs_town
445 REAL,
DIMENSION(:),
INTENT(OUT) :: pqf_town
446 REAL,
DIMENSION(:),
INTENT(OUT) :: pqf_bld
448 REAL,
DIMENSION(:),
INTENT(OUT) :: pflx_bld
449 REAL,
DIMENSION(:),
INTENT(OUT) :: pac_roof
450 REAL,
DIMENSION(:),
INTENT(INOUT) :: pac_road
451 REAL,
DIMENSION(:),
INTENT(OUT) :: pac_wall
452 REAL,
DIMENSION(:),
INTENT(OUT) :: pac_top
453 REAL,
DIMENSION(:),
INTENT(IN) :: pac_garden
454 REAL,
DIMENSION(:),
INTENT(OUT) :: pac_roof_wat
455 REAL,
DIMENSION(:),
INTENT(OUT) :: pac_road_wat
457 REAL,
DIMENSION(:),
INTENT(IN) :: pabs_sw_roof
458 REAL,
DIMENSION(:),
INTENT(IN) :: pabs_sw_snow_roof
459 REAL,
DIMENSION(:),
INTENT(IN) :: pabs_sw_road
460 REAL,
DIMENSION(:),
INTENT(IN) :: pabs_sw_snow_road
461 REAL,
DIMENSION(:),
INTENT(IN) :: pabs_sw_wall_a
462 REAL,
DIMENSION(:),
INTENT(IN) :: pabs_sw_wall_b
463 REAL,
DIMENSION(:),
INTENT(OUT) :: pabs_lw_roof
464 REAL,
DIMENSION(:),
INTENT(OUT) :: pabs_lw_snow_roof
465 REAL,
DIMENSION(:),
INTENT(OUT) :: pabs_lw_road
466 REAL,
DIMENSION(:),
INTENT(OUT) :: pabs_lw_snow_road
467 REAL,
DIMENSION(:),
INTENT(OUT) :: pabs_lw_wall_a
468 REAL,
DIMENSION(:),
INTENT(OUT) :: pabs_lw_wall_b
470 REAL,
DIMENSION(:),
INTENT(IN) :: plw_wa_to_wb
471 REAL,
DIMENSION(:),
INTENT(IN) :: plw_wa_to_r
472 REAL,
DIMENSION(:),
INTENT(IN) :: plw_wb_to_r
473 REAL,
DIMENSION(:),
INTENT(IN) :: plw_wa_to_nr
474 REAL,
DIMENSION(:),
INTENT(IN) :: plw_wb_to_nr
475 REAL,
DIMENSION(:),
INTENT(IN) :: plw_r_to_wa
476 REAL,
DIMENSION(:),
INTENT(IN) :: plw_r_to_wb
477 REAL,
DIMENSION(:),
INTENT(IN) :: plw_g_to_wa
478 REAL,
DIMENSION(:),
INTENT(IN) :: plw_g_to_wb
479 REAL,
DIMENSION(:),
INTENT(IN) :: plw_nr_to_wa
480 REAL,
DIMENSION(:),
INTENT(IN) :: plw_nr_to_wb
481 REAL,
DIMENSION(:),
INTENT(IN) :: plw_s_to_wa
482 REAL,
DIMENSION(:),
INTENT(IN) :: plw_s_to_wb
483 REAL,
DIMENSION(:),
INTENT(IN) :: plw_s_to_r
484 REAL,
DIMENSION(:),
INTENT(IN) :: plw_s_to_nr
488 CHARACTER(LEN=4),
DIMENSION(:),
INTENT(IN) :: hnatvent
489 CHARACTER(LEN=6),
INTENT(IN) :: hcool_coil
490 REAL,
DIMENSION(:),
INTENT(IN) :: pf_water_cond
491 CHARACTER(LEN=6),
INTENT(IN) :: hheat_coil
492 LOGICAL,
INTENT(IN) :: oautosize
493 INTEGER,
INTENT(IN) :: kday
494 REAL,
DIMENSION(:),
INTENT(INOUT) :: paux_max
495 REAL,
DIMENSION(:,:),
INTENT(INOUT):: pt_floor
496 REAL,
DIMENSION(:,:),
INTENT(INOUT):: pt_mass
497 REAL,
DIMENSION(:),
INTENT(OUT) :: ph_bld_cool
499 REAL,
DIMENSION(:),
INTENT(OUT) :: pt_bld_cool
501 REAL,
DIMENSION(:),
INTENT(OUT) :: ph_bld_heat
503 REAL,
DIMENSION(:),
INTENT(OUT) :: ple_bld_cool
505 REAL,
DIMENSION(:),
INTENT(OUT) :: ple_bld_heat
507 REAL,
DIMENSION(:),
INTENT(OUT) :: ph_waste
509 REAL,
DIMENSION(:),
INTENT(OUT) :: ple_waste
511 REAL,
DIMENSION(:),
INTENT(IN) :: pf_waste_can
512 REAL,
DIMENSION(:),
INTENT(OUT) :: phvac_cool
514 REAL,
DIMENSION(:),
INTENT(OUT) :: phvac_heat
516 REAL,
DIMENSION(:),
INTENT(IN) :: pqin
517 REAL,
DIMENSION(:),
INTENT(IN) :: pqin_frad
518 REAL,
DIMENSION(:),
INTENT(IN) :: pqin_flat
519 REAL,
DIMENSION(:),
INTENT(IN) :: pgr
520 REAL,
DIMENSION(:),
INTENT(IN) :: peff_heat
521 REAL,
DIMENSION(:),
INTENT(IN) :: pinf
522 REAL,
DIMENSION(:),
INTENT(IN) :: ptcool_target
523 REAL,
DIMENSION(:),
INTENT(IN) :: ptheat_target
524 REAL,
DIMENSION(:),
INTENT(IN) :: phr_target
525 REAL,
DIMENSION(:),
INTENT(INOUT):: pt_win2
526 REAL,
DIMENSION(:),
INTENT(INOUT):: pqi_bld
527 REAL,
DIMENSION(:),
INTENT(IN) :: pv_vent
528 REAL,
DIMENSION(:),
INTENT(IN) :: pcap_sys_heat
530 REAL,
DIMENSION(:),
INTENT(INOUT):: pcap_sys_rat
532 REAL,
DIMENSION(:),
INTENT(IN) :: pt_adp
534 REAL,
DIMENSION(:),
INTENT(INOUT):: pm_sys_rat
536 REAL,
DIMENSION(:),
INTENT(IN) :: pcop_rat
537 REAL,
DIMENSION(:),
INTENT(OUT) :: pcap_sys
539 REAL,
DIMENSION(:),
INTENT(OUT) :: pm_sys
541 REAL,
DIMENSION(:),
INTENT(OUT) :: pcop
542 REAL,
DIMENSION(:),
INTENT(OUT) :: pq_sys
543 REAL,
DIMENSION(:),
INTENT(OUT) :: pt_sys
544 REAL,
DIMENSION(:),
INTENT(IN) :: ptr_sw_win
546 REAL,
DIMENSION(:),
INTENT(OUT) :: pfan_power
547 REAL,
DIMENSION(:,:),
INTENT(IN) :: phc_floor
548 REAL,
DIMENSION(:,:),
INTENT(IN) :: ptc_floor
550 REAL,
DIMENSION(:,:),
INTENT(IN) :: pd_floor
551 REAL,
DIMENSION(:),
INTENT(IN) :: plw_wa_to_win
553 REAL,
DIMENSION(:),
INTENT(IN) :: plw_wb_to_win
555 REAL,
DIMENSION(:),
INTENT(IN) :: plw_g_to_win
557 REAL,
DIMENSION(:),
INTENT(IN) :: plw_r_to_win
559 REAL,
DIMENSION(:),
INTENT(IN) :: plw_s_to_win
561 REAL,
DIMENSION(:),
INTENT(IN) :: plw_win_to_wa
563 REAL,
DIMENSION(:),
INTENT(IN) :: plw_win_to_wb
565 REAL,
DIMENSION(:),
INTENT(IN) :: plw_win_to_r
567 REAL,
DIMENSION(:),
INTENT(IN) :: plw_nr_to_win
569 REAL,
DIMENSION(:),
INTENT(IN) :: plw_win_to_nr
571 REAL,
DIMENSION(:),
INTENT(INOUT):: pt_win1
572 REAL,
DIMENSION(:),
INTENT(IN) :: pabs_sw_win
573 REAL,
DIMENSION(:),
INTENT(OUT) :: pabs_lw_win
574 REAL,
DIMENSION(:),
INTENT(IN) :: pugg_win
576 REAL,
DIMENSION(:),
INTENT(OUT) :: pemit_lw_road
577 REAL,
DIMENSION(:),
INTENT(OUT) :: pemit_lw_fac
578 REAL,
DIMENSION(:),
INTENT(OUT) :: pt_rad_ind
579 REAL,
DIMENSION(:),
INTENT(OUT) :: phu_bld
580 REAL,
INTENT(IN) :: ptime
581 REAL,
DIMENSION(:),
INTENT(IN) :: pe_shading
583 LOGICAL,
DIMENSION(:),
INTENT(INOUT) :: onatvent_night
586 REAL,
DIMENSION(:) ,
INTENT(IN) :: pn_floor
587 REAL,
DIMENSION(:) ,
INTENT(IN) :: pwall_o_bld
588 REAL,
DIMENSION(:) ,
INTENT(IN) :: pglaz_o_bld
589 REAL,
DIMENSION(:) ,
INTENT(IN) :: pmass_o_bld
590 REAL,
DIMENSION(:) ,
INTENT(IN) :: pfloor_hw_ratio
591 REAL,
DIMENSION(:) ,
INTENT(IN) :: pf_floor_mass
592 REAL,
DIMENSION(:) ,
INTENT(IN) :: pf_floor_wall
593 REAL,
DIMENSION(:) ,
INTENT(IN) :: pf_floor_win
594 REAL,
DIMENSION(:) ,
INTENT(IN) :: pf_floor_roof
595 REAL,
DIMENSION(:) ,
INTENT(IN) :: pf_wall_floor
596 REAL,
DIMENSION(:) ,
INTENT(IN) :: pf_wall_mass
597 REAL,
DIMENSION(:) ,
INTENT(IN) :: pf_wall_win
598 REAL,
DIMENSION(:) ,
INTENT(IN) :: pf_win_floor
599 REAL,
DIMENSION(:) ,
INTENT(IN) :: pf_win_mass
600 REAL,
DIMENSION(:) ,
INTENT(IN) :: pf_win_wall
601 REAL,
DIMENSION(:) ,
INTENT(IN) :: pf_mass_floor
602 REAL,
DIMENSION(:) ,
INTENT(IN) :: pf_mass_wall
603 REAL,
DIMENSION(:) ,
INTENT(IN) :: pf_mass_win
604 LOGICAL,
INTENT(IN) :: ocanopy
605 CHARACTER(LEN=5),
INTENT(IN) :: hch_bem
607 REAL,
DIMENSION(:) ,
INTENT(IN) :: prough_roof
608 REAL,
DIMENSION(:) ,
INTENT(IN) :: prough_wall
609 REAL,
DIMENSION(:) ,
INTENT(IN) :: pf_win_win
613 LOGICAL,
INTENT(IN) :: opar_rd_irrig
614 REAL,
DIMENSION(:),
INTENT(IN) :: prd_start_month
615 REAL,
DIMENSION(:),
INTENT(IN) :: prd_end_month
616 REAL,
DIMENSION(:),
INTENT(IN) :: prd_start_hour
617 REAL,
DIMENSION(:),
INTENT(IN) :: prd_end_hour
618 REAL,
DIMENSION(:),
INTENT(IN) :: prd_24h_irrig
619 REAL,
DIMENSION(:),
INTENT(OUT) :: pirrig_road
623 REAL,
DIMENSION(SIZE(PTA)) :: zvmod
624 REAL,
DIMENSION(SIZE(PTA)) :: zws_roof_max
625 REAL,
DIMENSION(SIZE(PTA)) :: zws_road_max
627 REAL,
DIMENSION(SIZE(PTA)) :: zac_bld
628 REAL,
DIMENSION(SIZE(PTA)) :: zta
629 REAL,
DIMENSION(SIZE(PTA)) :: zqa
631 REAL,
DIMENSION(SIZE(PTA)) :: zdqs_road
632 REAL,
DIMENSION(SIZE(PTA)) :: zdqs_roof
633 REAL,
DIMENSION(SIZE(PTA)) :: zdqs_wall_a
634 REAL,
DIMENSION(SIZE(PTA)) :: zdqs_wall_b
635 REAL,
DIMENSION(SIZE(PTA)) :: zflx_bld_roof
636 REAL,
DIMENSION(SIZE(PTA)) :: zflx_bld_wall_a
637 REAL,
DIMENSION(SIZE(PTA)) :: zflx_bld_wall_b
638 REAL,
DIMENSION(SIZE(PTA)) :: zflx_bld_floor
639 REAL,
DIMENSION(SIZE(PTA)) :: zflx_bld_mass
641 REAL,
DIMENSION(SIZE(PTA)) :: zdqs_snow_roof
642 REAL,
DIMENSION(SIZE(PTA)) :: zdqs_snow_road
643 REAL,
DIMENSION(SIZE(PTA)) :: zmelt_blt
647 REAL,
DIMENSION(SIZE(PTA)) :: ztssnow_road
651 REAL,
DIMENSION(SIZE(PTA)) :: zimb_roof
654 REAL,
DIMENSION(SIZE(PTA)) :: zimb_road
656 REAL,
DIMENSION(SIZE(PTA)) :: zimb_wall
658 REAL,
DIMENSION(SIZE(PTA)) :: zts_road
660 REAL,
DIMENSION(SIZE(PTA)) :: zts_wall_a
662 REAL,
DIMENSION(SIZE(PTA)) :: zts_wall_b
664 REAL,
DIMENSION(SIZE(PTA)) :: zts_wall
666 REAL,
DIMENSION(SIZE(PTA)) :: zts_roof
668 REAL,
DIMENSION(SIZE(PTA),SIZE(PT_WALL_A,2)) :: zt_wall
670 INTEGER :: iwall, iroof
671 REAL,
DIMENSION(SIZE(PTA)) :: zradht_in
673 REAL,
DIMENSION(SIZE(PTA)) :: zts_floor
674 REAL,
DIMENSION(SIZE(PTA)) :: zrad_roof_wall
675 REAL,
DIMENSION(SIZE(PTA)) :: zrad_roof_win
676 REAL,
DIMENSION(SIZE(PTA)) :: zrad_roof_floor
677 REAL,
DIMENSION(SIZE(PTA)) :: zrad_roof_mass
678 REAL,
DIMENSION(SIZE(PTA)) :: zconv_roof_bld
679 REAL,
DIMENSION(SIZE(PTA)) :: zrad_wall_floor
680 REAL,
DIMENSION(SIZE(PTA)) :: zrad_wall_mass
681 REAL,
DIMENSION(SIZE(PTA)) :: zrad_win_floor
682 REAL,
DIMENSION(SIZE(PTA)) :: zrad_win_mass
683 REAL,
DIMENSION(SIZE(PTA)) :: zconv_wall_bld
684 REAL,
DIMENSION(SIZE(PTA)) :: zconv_win_bld
685 REAL,
DIMENSION(SIZE(PTA)) :: zac_win
687 REAL,
DIMENSION(SIZE(PTA)) :: zload_in_roof
688 REAL,
DIMENSION(SIZE(PTA)) :: zload_in_floor
689 REAL,
DIMENSION(SIZE(PTA)) :: zload_in_wall
690 REAL,
DIMENSION(SIZE(PTA)) :: zload_in_win
691 REAL,
DIMENSION(SIZE(PTA)) :: zload_in_mass
693 REAL(KIND=JPRB) :: zhook_handle
702 IF (lhook) CALL dr_hook(
'TEB',0,zhook_handle)
709 ztssnow_road(:)=ptssnow_road(:)
716 IF (hbem==
'DEF') zac_bld=1. / 0.123 / (xcpd * prhoa(:))
722 iwall =
SIZE(pt_wall_a,2)
723 iroof =
SIZE(pt_roof,2)
725 zts_wall_a(:)=pt_wall_a(:,1)
726 zts_wall_b(:)=pt_wall_b(:,1)
727 zts_wall(:)=0.5 * (zts_wall_a(:)+zts_wall_b(:))
728 zts_road(:)=pt_road(:,1)
729 zts_roof(:)=pt_roof(:,1)
735 IF (hbem==
'BEM')
THEN
737 zload_in_roof = pf_floor_win * ptr_sw_win + pqin * pn_floor * (1-pqin_flat) * pqin_frad &
738 / (2 + pwall_o_bld + pglaz_o_bld + pmass_o_bld )
739 zload_in_floor = pf_floor_win * ptr_sw_win + pqin * pn_floor * (1-pqin_flat) * pqin_frad &
740 / (2 + pwall_o_bld + pglaz_o_bld + pmass_o_bld )
741 zload_in_mass = pf_mass_win * ptr_sw_win + pqin * pn_floor * (1-pqin_flat) * pqin_frad &
742 / (2 + pwall_o_bld + pglaz_o_bld + pmass_o_bld )
743 zload_in_wall = pf_wall_win * ptr_sw_win + pqin * pn_floor * (1-pqin_flat) * pqin_frad &
744 / (2 + pwall_o_bld + pglaz_o_bld + pmass_o_bld )
745 zload_in_win = pf_win_win * ptr_sw_win + pqin * pn_floor * (1-pqin_flat) * pqin_frad &
746 / (2 + pwall_o_bld + pglaz_o_bld + pmass_o_bld )
762 zws_roof_max(:) = zws_roof_max(:) * pdf_roof(:)
763 zws_road_max(:) = zws_road_max(:) * pdf_road(:)
770 CALL
urban_drag(hz0h, himplicit_wind, ptstep, pt_canyon, pq_canyon, &
771 pu_canyon, pt_lowcan, pq_lowcan, pu_lowcan, &
772 pz_lowcan, zts_roof, zts_road, zts_wall, &
773 pts_garden, pdn_roof, pdn_road, &
774 pexns, pexna, pta, pqa, pps, prhoa, &
775 pzref, puref, pvmod, &
777 pbld, pgarden, proad, &
778 pbld_height, pcan_hw_ratio, &
780 pws_roof, pws_road, &
781 zws_roof_max, zws_road_max, &
782 ppew_a_coef, ppew_b_coef, &
783 ppew_a_coef_lowcan, ppew_b_coef_lowcan, &
784 pqsat_roof, pqsat_road, pdelt_roof, pdelt_road, &
785 pcd, pcdn, pac_roof, pac_roof_wat, &
786 pac_wall, pac_road, pac_road_wat, pac_top, &
787 pac_garden, pri_town, &
788 puw_road, puw_roof, pduwdu_road, pduwdu_roof, &
789 pustar_town, ocanopy, pt_win1, zac_win, hch_bem, &
790 prough_roof, prough_wall )
796 pch_town(:) = (pbld(:) * pac_roof(:) + (1.-pbld(:)) * pac_top(:)) / zvmod(:)
800 puw_roof(:) = (1-pfrac_gr(:)) * puw_roof(:) + pfrac_gr(:) * puw_greenroof(:)
801 WHERE (pvmod(:)/=0.) pduwdu_roof(:) = 2. * puw_roof(:) / pvmod(:)
808 zta(:) = pta(:) * pexns(:) / pexna(:)
809 zqa(:) = pqa(:) *
qsat(pta(:),pps(:)) /
qsat(zta(:),ppa(:))
817 zts_roof,zts_road,zts_wall_a, zts_wall_b, &
818 pt_roof, pd_roof, ptc_roof, phc_roof, &
820 pwsnow_roof, ptsnow_roof, prsnow_roof, pasnow_roof, &
821 ptssnow_roof, pesnow_roof, &
823 pwsnow_road, ptsnow_road, prsnow_road, pasnow_road, &
824 ptssnow_road, pesnow_road, &
825 pps, zta, zqa, prhoa, &
827 psr, pzref, puref, pvmod, &
830 pdn_roof, pabs_sw_snow_roof, pabs_lw_snow_roof, &
831 pdn_road, pabs_sw_snow_road, pabs_lw_snow_road, &
832 prnsnow_roof, phsnow_roof, plesnow_roof, pgsnow_roof, &
834 prnsnow_road, phsnow_road, plesnow_road, pgsnow_road, &
836 plw_wa_to_nr, plw_wb_to_nr, plw_s_to_nr, plw_win_to_nr, &
837 zdqs_snow_roof, zdqs_snow_road, pt_win1 )
844 pdf_road(:) = 1. - pdn_road(:)
852 zt_wall(:,:)=0.5 * (pt_wall_a(:,:)+pt_wall_b(:,:))
856 zts_floor(:) = 19. + xtt
857 pt_rad_ind(:) = (pwall_o_hor(:) / pbld(:) * zt_wall(:,iwall) + &
858 pt_roof(:,iroof) + zts_floor(:)) &
859 / (pwall_o_hor(:) / pbld(:) + 1. + 1.)
860 zradht_in(:) = xundef
862 zts_floor(:) = pt_floor(:,1)
863 pt_rad_ind(:) = (pt_mass(:,1)*pmass_o_bld(:) + zt_wall(:,iwall)*pwall_o_bld(:) &
864 + zts_floor(:) + pt_roof(:,iroof) + pt_win2(:) * pglaz_o_bld(:)) &
865 /(pmass_o_bld(:) + pwall_o_bld(:) + 1. + 1. + pglaz_o_bld(:))
867 zradht_in(:) = 0.9 * 0.9 * 4 * xstefan * pt_rad_ind(:)**3
878 hbem, phc_roof, ptc_roof, pd_roof, pdn_roof, &
879 prhoa, pac_roof, pac_roof_wat, plw_rad, pps, &
880 pdelt_roof, zta, zqa, pexna, pexns, &
881 pabs_sw_roof, pgsnow_roof, pemis_roof, &
882 zflx_bld_roof, zdqs_roof, pabs_lw_roof, &
883 ph_roof, plew_roof, zimb_roof, &
884 pfrac_gr, pg_greenroof_roof, &
885 pf_floor_mass, pf_floor_wall, pf_floor_win, &
886 pf_floor_roof, zradht_in, &
887 pt_mass(:,1), pt_win2, zts_floor(:), &
888 zt_wall(:,iwall), zrad_roof_wall, &
889 zrad_roof_win, zrad_roof_floor, zrad_roof_mass,&
901 CALL
teb_irrig(opar_rd_irrig, ptstep, tptime%TDATE%MONTH, ptsun, &
902 prd_start_month, prd_end_month, prd_start_hour, &
903 prd_end_hour, prd_24h_irrig, pirrig_road )
908 pdn_road, prhoa, pac_road, pac_road_wat, &
909 plw_rad, pps, pqsat_road, pdelt_road, pexns, &
910 pabs_sw_road, pgsnow_road, pq_lowcan, pt_lowcan, &
911 zts_wall_a, zts_wall_b, ztssnow_road, &
912 pts_garden, pt_win1, &
913 plw_wa_to_r, plw_wb_to_r, plw_s_to_r, plw_win_to_r, &
914 pemis_road, pemit_lw_road, zdqs_road, pabs_lw_road, &
915 ph_road, plew_road, zimb_road, prr+pirrig_road )
923 pt_wall_a, pt_wall_b, ptstep, &
924 phc_wall, ptc_wall, pd_wall, &
925 pdn_road, prhoa, pac_wall, &
926 zac_bld, pti_bld, plw_rad, pps, pexns, &
927 pabs_sw_wall_a, pabs_sw_wall_b, pt_canyon, &
928 zts_road, ztssnow_road, pts_garden, pugg_win, pgr, &
929 pabs_sw_win, pf_win_mass, pf_win_wall, &
930 pf_win_floor, pt_mass(:,1), zts_floor(:), &
933 plw_r_to_wa, plw_r_to_wb, plw_g_to_wa, plw_g_to_wb, &
934 plw_s_to_wa, plw_s_to_wb, plw_nr_to_wa,plw_nr_to_wb,&
935 plw_win_to_wa, plw_win_to_wb, &
936 plw_s_to_win, plw_wa_to_win, plw_wb_to_win, &
937 plw_r_to_win, plw_g_to_win, plw_nr_to_win, pt_win1, &
938 zflx_bld_wall_a, zdqs_wall_a, &
939 zflx_bld_wall_b, zdqs_wall_b, &
940 pt_win2, pemit_lw_fac, &
941 pabs_lw_wall_a, pabs_lw_wall_b, pabs_lw_win, &
942 ph_wall_a, ph_wall_b, &
943 zimb_wall, pf_wall_mass, pf_wall_floor, &
944 pf_wall_win, zradht_in, zrad_roof_wall, &
945 zrad_roof_win, zrad_wall_floor, zrad_wall_mass, &
946 zrad_win_floor, zrad_win_mass, zconv_wall_bld, &
947 zconv_win_bld, zac_win, &
948 zload_in_wall, zload_in_win )
956 zt_wall(:,:)=0.5 * (pt_wall_a(:,:)+pt_wall_b(:,:))
962 prhoa, pt_roof, zt_wall, pti_bld, zts_floor(:) )
965 pqi_bld = 0.5 *
qsat(pti_bld, pps)
969 zflx_bld_floor(:) = 0.
970 zflx_bld_mass(:) = 0.
972 ph_bld_cool(:) = xundef
973 ple_bld_cool(:)= xundef
974 pt_bld_cool(:) = xundef
975 ph_bld_heat(:) = xundef
976 ple_bld_heat(:)= xundef
977 phvac_cool(:) = xundef
978 phvac_heat(:) = xundef
983 pfan_power(:) = xundef
987 CALL
bem(ptstep, ptsun, hcool_coil, hheat_coil, &
988 oautosize, kday, hnatvent, &
989 pps, prhoa, pt_canyon, pq_canyon, pu_canyon, &
990 pt_roof, pt_wall_a, pt_wall_b, pbld, pbld_height, pwall_o_hor,&
991 phc_floor, ptc_floor, pd_floor, &
992 pt_win2, pgr, pqin, pqin_frad, pqin_flat, &
993 peff_heat, pinf, ptcool_target, ptheat_target, phr_target, &
994 pf_water_cond, pv_vent, pcap_sys_heat, pt_adp, pcop_rat, &
995 paux_max, pt_floor, pt_mass, pti_bld, pqi_bld, &
996 pcap_sys_rat, pm_sys_rat, onatvent_night, &
997 ph_bld_cool, ph_bld_heat, ple_bld_cool, ple_bld_heat, &
998 pt_bld_cool, phvac_cool, pt_sys, pq_sys, ph_waste, ple_waste, &
999 pfan_power, phvac_heat, pm_sys, pcop, pcap_sys, phu_bld, &
1000 ptr_sw_win, pt_rad_ind, zflx_bld_floor, zflx_bld_mass, &
1001 pf_floor_mass, pf_floor_wall, pf_floor_win, &
1002 zradht_in, pn_floor, pwall_o_bld, pglaz_o_bld, pmass_o_bld, &
1003 pfloor_hw_ratio, pf_floor_roof, pf_mass_floor, pf_mass_wall, &
1004 pf_mass_win, zrad_roof_mass, zrad_roof_floor, zrad_wall_mass, &
1005 zrad_wall_floor, zrad_win_mass, zrad_win_floor, &
1006 zconv_roof_bld, zconv_wall_bld, zconv_win_bld, &
1007 zload_in_floor, zload_in_mass )
1009 ph_waste = ph_waste * pbld
1010 ple_waste = ple_waste * pbld
1018 CALL
urban_fluxes(himplicit_wind, ocanopy, pt_canyon, &
1019 ppew_a_coef, ppew_b_coef, &
1020 pexns, prhoa, pvmod, &
1021 ph_traffic, ple_traffic, ph_industry, ple_industry, &
1022 pbld, proad, pwall_o_hor, pfrac_gr, &
1023 pabs_sw_roof, pabs_lw_roof, &
1024 pabs_sw_wall_a, pabs_lw_wall_a, &
1025 pabs_sw_wall_b, pabs_lw_wall_b, &
1026 pabs_sw_road, pabs_lw_road, &
1028 pdf_roof, pdn_roof, pdf_road, pdn_road, &
1029 prnsnow_roof, phsnow_roof, plesnow_roof, pgsnow_roof, &
1030 prnsnow_road, phsnow_road, plesnow_road, pgsnow_road, &
1031 pmelt_roof, zdqs_roof, &
1032 pmelt_road, zdqs_road, &
1033 zdqs_wall_a, zdqs_wall_b, &
1034 zflx_bld_roof, zflx_bld_wall_a, zflx_bld_wall_b, &
1036 zflx_bld_mass, pe_shading, hbem, pgr, pt_win1, ph_waste, &
1037 ple_waste, pf_waste_can, pabs_sw_win, pabs_lw_win, pqin, &
1038 pn_floor, plew_roof, plew_road, &
1039 prn_greenroof, ph_greenroof, ple_greenroof, &
1041 ph_roof, ph_road, ph_wall_a, ph_wall_b, &
1042 prn_roof,ple_roof, &
1043 pgflux_roof, prn_road, ple_road, pgflux_road, &
1044 prn_wall_a, ple_wall_a, pgflux_wall_a, &
1045 prn_wall_b, ple_wall_b, pgflux_wall_b, &
1046 prn_strlroof, ph_strlroof, ple_strlroof, &
1048 prn_blt, ph_blt, ple_blt, &
1049 pgflux_blt, zmelt_blt, pqf_bld, pflx_bld, pdqs_town, &
1050 pqf_town, pustar_town, phvac_cool, phvac_heat )
1055 WHERE (pmelt_roof(:) .GT. 0.)
1056 pws_roof(:) = min(zws_roof_max,pws_roof(:) + pmelt_roof(:)*ptstep)
1059 WHERE (pmelt_road(:) .GT. 0.)
1060 pws_road(:) = min(zws_road_max,pws_road(:) + pmelt_road(:)*ptstep)
1068 CALL
urban_hydro(zws_roof_max,zws_road_max, pws_roof, pws_road, &
1069 prr, pirrig_road, ptstep, pbld, ple_roof, ple_road, &
1073 prunoff_roof(:) = ( 1. - pfrac_gr(:) ) * prunoff_strlroof(:) &
1074 + pfrac_gr(:) * ( prunoff_greenroof(:) + pdrain_greenroof(:) )
1082 presa_town(:) = 1. / ( pbld(:) * pac_roof(:) + ( 1. - pbld(:)) * pac_top(:))
1084 IF (lhook) CALL dr_hook(
'TEB',1,zhook_handle)
subroutine urban_snow_evol(PT_LOWCAN, PQ_LOWCAN, PU_LOWCAN, PTS_ROOF, PTS_ROAD, PTS_WALL_A, PTS_WALL_B, PT_ROOF, PD_ROOF, PTC_ROOF, PHC_ROOF, HSNOW_ROOF, PWSNOW_ROOF, PTSNOW_ROOF, PRSNOW_ROOF, PASNOW_ROOF, PTSSNOW_ROOF, PESNOW_ROOF, HSNOW_ROAD, PWSNOW_ROAD, PTSNOW_ROAD, PRSNOW_ROAD, PASNOW_ROAD, PTSSNOW_ROAD, PESNOW_ROAD, PPS, PTA, PQA, PRHOA, PLW_RAD, PSR, PZREF, PUREF, PVMOD, PTSTEP, PZ_LOWCAN, PDN_ROOF, PABS_SW_SNOW_ROOF, PABS_LW_SNOW_ROOF, PDN_ROAD, PABS_SW_SNOW_ROAD, PABS_LW_SNOW_ROAD, PRNSNOW_ROOF, PHSNOW_ROOF, PLESNOW_ROOF, PGSNOW_ROOF, PMELT_ROOF, PRNSNOW_ROAD, PHSNOW_ROAD, PLESNOW_ROAD, PGSNOW_ROAD, PMELT_ROAD, PLW_WA_TO_NR, PLW_WB_TO_NR, PLW_S_TO_NR, PLW_WIN_TO_NR, PDQS_SNOW_ROOF, PDQS_SNOW_ROAD, PT_WIN1)
subroutine facade_e_budget(HWALL_OPT, HBEM, PT_WALL_A, PT_WALL_B, PTSTEP, PHC_WALL, PTC_WALL, PD_WALL, PDN_ROAD, PRHOA, PAC_WALL, PAC_BLD, PTI_BLD, PLW_RAD, PPS, PEXNS, PABS_SW_WALL_A, PABS_SW_WALL_B, PT_CANYON, PTS_ROAD, PTSNOW_ROAD, PTS_GARDEN, PU_WIN, PGR, PABS_SW_WIN, PF_WIN_MASS, PF_WIN_WALL, PF_WIN_FLOOR, PTS_MASS, PTS_FLOOR, PEMIS_WALL, PLW_WA_TO_WB, 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_NR_TO_WA, PLW_NR_TO_WB, PLW_WIN_TO_WA, PLW_WIN_TO_WB, PLW_S_TO_WIN, PLW_WA_TO_WIN, PLW_WB_TO_WIN, PLW_R_TO_WIN, PLW_G_TO_WIN, PLW_NR_TO_WIN, PT_WIN1, PFLX_BLD_WALL_A, PDQS_WALL_A, PFLX_BLD_WALL_B, PDQS_WALL_B, PT_WIN2, PEMIT_LW_FAC, PABS_LW_WALL_A, PABS_LW_WALL_B, PABS_LW_WIN, PH_WALL_A, PH_WALL_B, PIMB_WALL, PF_WALL_MASS, PF_WALL_FLOOR, PF_WALL_WIN, PRADHT_IN, PRAD_ROOF_WALL, PRAD_ROOF_WIN, PRAD_WALL_FLOOR, PRAD_WALL_MASS, PRAD_WIN_FLOOR, PRAD_WIN_MASS, PCONV_WALL_BLD, PCONV_WIN_BLD, PAC_WIN, PLOAD_IN_WALL, PLOAD_IN_WIN)
subroutine bem(PTSTEP, PSUNTIME, HCOOL_COIL, HHEAT_COIL, OAUTOSIZE, KDAY, HNATVENT, PPS, PRHOA, PT_CANYON, PQ_CANYON, PU_CANYON, PT_ROOF, PT_WALL_A, PT_WALL_B, PBLD, PBLD_HEIGHT, PWALL_O_HOR, PHC_FLOOR, PTC_FLOOR, PD_FLOOR, PT_WIN2, PGR, PQIN, PQIN_FRAD, PQIN_FLAT, PEFF_HEAT, PINF, PTCOOL_TARGET, PTHEAT_TARGET, PHR_TARGET, PF_WATER_COND, PV_VENT, PCAP_SYS_HEAT, PT_ADP, PCOP_RAT, PAUX_MAX, PT_FLOOR, PT_MASS, PTI_BLD, PQI_BLD, PCAP_SYS_RAT, PM_SYS_RAT, ONATVENT_NIGHT, PH_BLD_COOL, PH_BLD_HEAT, PLE_BLD_COOL, PLE_BLD_HEAT, PT_BLD_COOL, PHVAC_COOL, PT_SYS, PQ_SYS, PH_WASTE, PLE_WASTE, PFAN_POWER, PHVAC_HEAT, PM_SYS, PCOP, PCAP_SYS, PHU_BLD, PTR_SW_WIN, PT_RAD_IND, PFLX_BLD_FLOOR, PFLX_BLD_MASS, PF_FLOOR_MASS, PF_FLOOR_WALL, PF_FLOOR_WIN, PRADHT_IN, PN_FLOOR, PWALL_O_BLD, PGLAZ_O_BLD, PMASS_O_BLD, PFLOOR_HW_RATIO, PF_FLOOR_ROOF, PF_MASS_FLOOR, PF_MASS_WALL, PF_MASS_WIN, PRAD_ROOF_MASS, PRAD_ROOF_FLOOR, PRAD_WALL_MASS, PRAD_WALL_FLOOR, PRAD_WIN_MASS, PRAD_WIN_FLOOR, PCONV_ROOF_BLD, PCONV_WALL_BLD, PCONV_WIN_BLD, PLOAD_IN_FLOOR, PLOAD_IN_MASS)
real function, dimension(size(pwind)) wind_threshold(PWIND, PUREF)
subroutine urban_hydro(PWS_ROOF_MAX, PWS_ROAD_MAX, PWS_ROOF, PWS_ROAD, PRR, PIRRIG_ROAD, PTSTEP, PBLD, PLE_ROOF, PLE_ROAD, PRUNOFF_STRLROOF, PRUNOFF_ROAD)
subroutine bld_e_budget(OTI_EVOL, PTSTEP, PBLD, PWALL_O_HOR, PRHOA, PT_ROOF, PT_WALL, PTI_BLD, PTS_FLOOR)
subroutine urban_drag(HZ0H, HIMPLICIT_WIND, PTSTEP, PT_CANYON, PQ_CANYON, PU_CANYON, PT_LOWCAN, PQ_LOWCAN, PU_LOWCAN, PZ_LOWCAN, PTS_ROOF, PTS_ROAD, PTS_WALL, PTS_GARDEN, PDELT_SNOW_ROOF, PDELT_SNOW_ROAD, PEXNS, PEXNA, PTA, PQA, PPS, PRHOA, PZREF, PUREF, PVMOD, PZ0_TOWN, PBLD, PGARDEN, PROAD, PBLD_HEIGHT, PCAN_HW_RATIO, PWALL_O_GRND, PWS_ROOF, PWS_ROAD, PWS_ROOF_MAX, PWS_ROAD_MAX, PPEW_A_COEF, PPEW_B_COEF, PPEW_A_COEF_LOWCAN, PPEW_B_COEF_LOWCAN, PQSAT_ROOF, PQSAT_ROAD, PDELT_ROOF, PDELT_ROAD, PCD, PCDN, PAC_ROOF, PAC_ROOF_WAT, PAC_WALL, PAC_ROAD, PAC_ROAD_WAT, PAC_TOP, PAC_GARDEN, PRI, PUW_ROAD, PUW_ROOF, PDUWDU_ROAD, PDUWDU_ROOF, PUSTAR_TOWN, OCANOPY, PTS_WIN, PAC_WIN, HCH_BEM, PROUGH_ROOF, PROUGH_WALL)
subroutine road_layer_e_budget(PT_ROAD, PTSTEP, PHC_ROAD, PTC_ROAD, PD_ROAD, PDN_ROAD, PRHOA, PAC_ROAD, PAC_ROAD_WAT, PLW_RAD, PPS, PQSAT_ROAD, PDELT_ROAD, PEXNS, PABS_SW_ROAD, PGSNOW_ROAD, PQ_LOWCAN, PT_LOWCAN, PTS_WALL_A, PTS_WALL_B, PTSNOW_ROAD, PTS_GARDEN, PTS_WIN, PLW_WA_TO_R, PLW_WB_TO_R, PLW_S_TO_R, PLW_WIN_TO_R, PEMIS_ROAD, PEMIT_LW_ROAD, PDQS_ROAD, PABS_LW_ROAD, PHFREE_ROAD, PLEFREE_ROAD, PIMB_ROAD, PRR)
subroutine roof_layer_e_budget(PT_ROOF, PQSAT_ROOF, PTI_BLD, PAC_BLD, PTSTEP, HBLD, PHC_ROOF, PTC_ROOF, PD_ROOF, PDN_ROOF, PRHOA, PAC_ROOF, PAC_ROOF_WAT, PLW_RAD, PPS, PDELT_ROOF, PTA, PQA, PEXNA, PEXNS, PABS_SW_ROOF, PGSNOW_ROOF, PEMIS_ROOF, PFLX_BLD_ROOF, PDQS_ROOF, PABS_LW_ROOF, PHFREE_ROOF, PLEFREE_ROOF, PIMB_ROOF, PFRAC_GR, PG_GREENROOF_ROOF, PF_FLOOR_MASS, PF_FLOOR_WALL, PF_FLOOR_WIN, PF_FLOOR_ROOF, PRADHT_IN, PTS_MASS, PT_WIN2, PTS_FLOOR, PTI_WALL, PRAD_ROOF_WALL, PRAD_ROOF_WIN, PRAD_ROOF_FLOOR, PRAD_ROOF_MASS, PCONV_ROOF_BLD, PRR, PLOAD_IN_ROOF)
subroutine urban_fluxes(HIMPLICIT_WIND, OCANOPY, PT_CANYON, PPEW_A_COEF, PPEW_B_COEF, PEXNS, PRHOA, PVMOD, PH_TRAFFIC, PLE_TRAFFIC, PH_INDUSTRY, PLE_INDUSTRY, PBLD, PROAD, PWALL_O_HOR, PFRAC_GR, PABS_SW_ROOF, PABS_LW_ROOF, PABS_SW_WALL_A, PABS_LW_WALL_A, PABS_SW_WALL_B, PABS_LW_WALL_B, PABS_SW_ROAD, PABS_LW_ROAD, PAC_WALL, PCD, PDF_ROOF, PDN_ROOF, PDF_ROAD, PDN_ROAD, PRNSNOW_ROOF, PHSNOW_ROOF, PLESNOW_ROOF, PGSNOW_ROOF, PRNSNOW_ROAD, PHSNOW_ROAD, PLESNOW_ROAD, PGSNOW_ROAD, PMELT_ROOF, PDQS_ROOF, PMELT_ROAD, PDQS_ROAD, PDQS_WALL_A, PDQS_WALL_B, PFLX_BLD_ROOF, PFLX_BLD_WALL_A, PFLX_BLD_WALL_B, PFLX_BLD_FLOOR, PFLX_BLD_MASS, PE_SHADING, HBEM, PGR, PT_WIN1, PH_WASTE, PLE_WASTE, PF_WASTE_CAN, PABS_SW_WIN, PABS_LW_WIN, PQIN, PN_FLOOR, PLEW_ROOF, PLEW_ROAD, PRN_GREENROOF, PH_GREENROOF, PLE_GREENROOF, PGFLUX_GREENROOF, PH_ROOF, PH_ROAD, PH_WALL_A, PH_WALL_B, PRN_ROOF, PLE_ROOF, PGFLUX_ROOF, PRN_ROAD, PLE_ROAD, PGFLUX_ROAD, PRN_WALL_A, PLE_WALL_A, PGFLUX_WALL_A, PRN_WALL_B, PLE_WALL_B, PGFLUX_WALL_B, PRN_STRLROOF, PH_STRLROOF, PLE_STRLROOF, PGFLUX_STRLROOF, PRN_BLT, PH_BLT, PLE_BLT, PGFLUX_BLT, PMELT_BLT, PQF_BLD, PFLX_BLD, PDQS_BLT, PQF_TOWN, PUSTAR_TOWN, PHVAC_COOL, PHVAC_HEAT)
subroutine teb_irrig(OIRRIG, PTSTEP, KMONTH, PSOLAR_TIME, PSTART_MONTH, PEND_MONTH, PSTART_HOUR, PEND_HOUR, P24H_IRRIG, PIRRIG)
subroutine teb(HZ0H, HIMPLICIT_WIND, HWALL_OPT, HBEM, TPTIME, PTSUN, PT_CANYON, PQ_CANYON, PU_CANYON, PT_LOWCAN, PQ_LOWCAN, PU_LOWCAN, PZ_LOWCAN, PTI_BLD, PT_ROOF, PT_ROAD, PT_WALL_A, PT_WALL_B, PWS_ROOF, PWS_ROAD, HSNOW_ROOF, PWSNOW_ROOF, PTSNOW_ROOF, PRSNOW_ROOF, PASNOW_ROOF, PTSSNOW_ROOF, PESNOW_ROOF, HSNOW_ROAD, PWSNOW_ROAD, PTSNOW_ROAD, PRSNOW_ROAD, PASNOW_ROAD, PTSSNOW_ROAD, PESNOW_ROAD, 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, PH_INDUSTRY, PLE_INDUSTRY, PTSTEP, PZ0_TOWN, PBLD, PGARDEN, PROAD, PFRAC_GR, PBLD_HEIGHT, PWALL_O_HOR, PCAN_HW_RATIO, PWALL_O_GRND, PDF_ROOF, PDN_ROOF, PDF_ROAD, PDN_ROAD, PQSAT_ROOF, PQSAT_ROAD, PDELT_ROOF, PDELT_ROAD, PEMIS_ROOF, PHC_ROOF, PTC_ROOF, PD_ROOF, PEMIS_ROAD, PHC_ROAD, PTC_ROAD, PD_ROAD, PEMIS_WALL, PTS_GARDEN, PHC_WALL, PTC_WALL, PD_WALL, PRN_ROOF, PH_ROOF, PLE_ROOF, PLEW_ROOF, PGFLUX_ROOF, PRUNOFF_ROOF, PRN_GREENROOF, PH_GREENROOF, PLE_GREENROOF, PGFLUX_GREENROOF, PUW_GREENROOF, PRUNOFF_GREENROOF, PDRAIN_GREENROOF, PRN_STRLROOF, PH_STRLROOF, PLE_STRLROOF, PGFLUX_STRLROOF, PRUNOFF_STRLROOF, PRN_ROAD, PH_ROAD, PLE_ROAD, PLEW_ROAD, PGFLUX_ROAD, PRUNOFF_ROAD, PRN_WALL_A, PH_WALL_A, PLE_WALL_A, PGFLUX_WALL_A, PRN_WALL_B, PH_WALL_B, PLE_WALL_B, PGFLUX_WALL_B, PRN_BLT, PH_BLT, PLE_BLT, PGFLUX_BLT, PRNSNOW_ROOF, PHSNOW_ROOF, PLESNOW_ROOF, PGSNOW_ROOF, PMELT_ROOF, PRNSNOW_ROAD, PHSNOW_ROAD, PLESNOW_ROAD, PGSNOW_ROAD, PMELT_ROAD, PG_GREENROOF_ROOF, PUW_ROAD, PUW_ROOF, PDUWDU_ROAD, PDUWDU_ROOF, PUSTAR_TOWN, PCD, PCDN, PCH_TOWN, PRI_TOWN, PRESA_TOWN, PDQS_TOWN, PQF_TOWN, PQF_BLD, PFLX_BLD, PAC_ROOF, PAC_ROAD, PAC_WALL, PAC_TOP, PAC_GARDEN, PAC_ROOF_WAT, PAC_ROAD_WAT, PABS_SW_ROOF, PABS_LW_ROOF, PABS_SW_SNOW_ROOF, PABS_LW_SNOW_ROOF, PABS_SW_ROAD, PABS_LW_ROAD, PABS_SW_SNOW_ROAD, PABS_LW_SNOW_ROAD, PABS_SW_WALL_A, PABS_LW_WALL_A, PABS_SW_WALL_B, PABS_LW_WALL_B, 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, HNATVENT, HCOOL_COIL, PF_WATER_COND, HHEAT_COIL, OAUTOSIZE, KDAY, PAUX_MAX, PT_FLOOR, PT_MASS, PH_BLD_COOL, PT_BLD_COOL, PH_BLD_HEAT, PLE_BLD_COOL, PLE_BLD_HEAT, PH_WASTE, PLE_WASTE, PF_WASTE_CAN, PHVAC_COOL, PHVAC_HEAT, PQIN, PQIN_FRAD, PQIN_FLAT, PGR, PEFF_HEAT, PINF, PTCOOL_TARGET, PTHEAT_TARGET, PHR_TARGET, PT_WIN2, PQI_BLD, PV_VENT, PCAP_SYS_HEAT, PCAP_SYS_RAT, PT_ADP, PM_SYS_RAT, PCOP_RAT, PCAP_SYS, PM_SYS, PCOP, PQ_SYS, PT_SYS, PTR_SW_WIN, PFAN_POWER, PHC_FLOOR, PTC_FLOOR, PD_FLOOR, PT_WIN1, PABS_SW_WIN, PABS_LW_WIN, PUGG_WIN, PEMIT_LW_FAC, PEMIT_LW_ROAD, PT_RAD_IND, PHU_BLD, PTIME, PE_SHADING, ONATVENT_NIGHT, PN_FLOOR, PWALL_O_BLD, PGLAZ_O_BLD, PMASS_O_BLD, PFLOOR_HW_RATIO, PF_FLOOR_MASS, PF_FLOOR_WALL, PF_FLOOR_WIN, PF_FLOOR_ROOF, PF_WALL_FLOOR, PF_WALL_MASS, PF_WALL_WIN, PF_WIN_FLOOR, PF_WIN_MASS, PF_WIN_WALL, PF_MASS_FLOOR, PF_MASS_WALL, PF_MASS_WIN, OCANOPY, HCH_BEM, PROUGH_ROOF, PROUGH_WALL, PF_WIN_WIN, OPAR_RD_IRRIG, PRD_START_MONTH, PRD_END_MONTH, PRD_START_HOUR, PRD_END_HOUR, PRD_24H_IRRIG, PIRRIG_ROAD)