SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
teb_garden.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! #########
6  SUBROUTINE teb_garden (DTCO, DTI, IG, I, TM, GDM, GRM, &
7  ogarden, ogreenroof, osolar_panel, &
8  hz0h, himplicit_wind, hroad_dir, hwall_opt, tptime, &
9  ptsun, pt_canyon, pq_canyon, pu_canyon, &
10  pt_lowcan, pq_lowcan, pu_lowcan, pz_lowcan, pti_bld, &
11  pt_roof, pt_road, pt_wall_a, pt_wall_b, &
12  pws_roof,pws_road, &
13  hsnow_roof, &
14  pwsnow_roof, ptsnow_roof, prsnow_roof, pasnow_roof, &
15  ptssnow_roof, pesnow_roof, &
16  hsnow_road, &
17  pwsnow_road, ptsnow_road, prsnow_road, pasnow_road, &
18  ptssnow_road, pesnow_road, &
19  ppew_a_coef, ppew_b_coef, &
20  ppew_a_coef_lowcan, ppew_b_coef_lowcan, &
21  pps, ppa, pexns, pexna, &
22  pta, pqa, prhoa, pco2, &
23  plw_rad, pdir_sw, psca_sw, psw_bands, ksw, &
24  pzenith, pazim, &
25  prr, psr, &
26  pzref, puref, pvmod, &
27  ph_traffic, ple_traffic, ph_industry, ple_industry, &
28  ptstep, pz0_town, pbld, pgarden, proad_dir, proad, &
29  pfrac_gr, &
30  pbld_height, pwall_o_hor, pcan_hw_ratio, &
31  proad_o_grnd, pgarden_o_grnd, pwall_o_grnd, &
32  palb_roof, pemis_roof, &
33  phc_roof,ptc_roof,pd_roof, &
34  palb_road, pemis_road, psvf_road, &
35  phc_road,ptc_road,pd_road, &
36  palb_wall, pemis_wall, psvf_wall, &
37  psvf_garden, &
38  phc_wall,ptc_wall,pd_wall, &
39  prn_roof, ph_roof, ple_roof, plew_roof, pgflux_roof, &
40  prunoff_roof, &
41  prn_road, ph_road, ple_road, plew_road, pgflux_road, &
42  prunoff_road, &
43  prn_wall_a, ph_wall_a, ple_wall_a, pgflux_wall_a, &
44  prn_wall_b, ph_wall_b, ple_wall_b, pgflux_wall_b, &
45  prn_garden,ph_garden,ple_garden, pgflux_garden, &
46  prunoff_garden, pdrain_garden, pirrig_garden, &
47  prn_greenroof,ph_greenroof,ple_greenroof, pgflux_greenroof, &
48  prn_strlroof,ph_strlroof,ple_strlroof, pgflux_strlroof, &
49  prunoff_strlroof, &
50  prn_blt,ph_blt,ple_blt, pgflux_blt, &
51  prnsnow_roof, phsnow_roof, plesnow_roof, pgsnow_roof, &
52  pmelt_roof, &
53  prnsnow_road, phsnow_road, plesnow_road, pgsnow_road, &
54  pmelt_road, &
55  prn_grnd, ph_grnd, ple_grnd, pgflux_grnd, &
56  prn_town, ph_town, ple_town, pgflux_town, pevap_town, &
57  prunoff_town, psfco2, &
58  puw_grnd, puw_roof, pduwdu_grnd, pduwdu_roof, &
59  pustar_town, pcd, pcdn, pch_town, pri_town, &
60  pts_town, pemis_town, pdir_alb_town, psca_alb_town, &
61  presa_town, pdqs_town, pqf_town, pqf_bld, &
62  pflx_bld, pac_road, pac_garden, pac_greenroof, &
63  pac_road_wat, pac_garden_wat, pac_greenroof_wat, &
64  pabs_sw_roof,pabs_lw_roof, &
65  pabs_sw_snow_roof,pabs_lw_snow_roof, &
66  pabs_sw_road,pabs_lw_road, &
67  pabs_sw_snow_road,pabs_lw_snow_road, &
68  pabs_sw_wall_a,pabs_lw_wall_a, &
69  pabs_sw_wall_b,pabs_lw_wall_b, &
70  pabs_sw_panel,pabs_lw_panel, &
71  pabs_sw_garden,pabs_lw_garden, &
72  pabs_sw_greenroof,pabs_lw_greenroof, &
73  pg_greenroof_roof,prunoff_greenroof,pdrain_greenroof, &
74  pirrig_greenroof, hcool_coil, pf_water_cond, hheat_coil, &
75  hnatvent, kday, paux_max, pt_floor, &
76  pt_mass, ph_bld_cool, pt_bld_cool, ph_bld_heat, &
77  ple_bld_cool, ple_bld_heat, ph_waste, ple_waste, &
78  pf_waste_can, phvac_cool, phvac_heat, pqin, pqin_frad, &
79  pqin_flat, pgr, peff_heat, pinf, &
80  ptcool_target, ptheat_target, phr_target, pt_win2, &
81  pqi_bld, pv_vent, pcap_sys_heat, pcap_sys_rat, pt_adp, &
82  pm_sys_rat, pcop_rat, pcap_sys, pm_sys, pcop, pq_sys, &
83  pt_sys, ptr_sw_win, pfan_power, phc_floor, ptc_floor, &
84  pd_floor, pt_win1, pabs_sw_win, pabs_lw_win, pshgc, &
85  pshgc_sh, pugg_win, palb_win, pabs_win, pemit_lw_fac, &
86  pemit_lw_grnd, pt_rad_ind, pref_sw_grnd, pref_sw_fac, &
87  phu_bld, ptime, oshade, oshad_day, onatvent_night, hbem, &
88  pn_floor, pwall_o_bld, pglaz_o_bld, pmass_o_bld, &
89  pfloor_hw_ratio, pf_floor_mass, pf_floor_wall, &
90  pf_floor_win, pf_floor_roof, pf_wall_floor, pf_wall_mass,&
91  pf_wall_win, pf_win_floor, pf_win_mass, pf_win_wall, &
92  pf_mass_floor, pf_mass_wall, pf_mass_win, ocanopy, &
93  ptran_win, hch_bem, prough_roof, prough_wall, pf_win_win,&
94  opar_rd_irrig, prd_start_month, prd_end_month, &
95  prd_start_hour, prd_end_hour, prd_24h_irrig, pirrig_road,&
96  pemis_panel, palb_panel, peff_panel, pfrac_panel, &
97  presidential, &
98  pther_prod_panel, pphot_prod_panel, pprod_panel, &
99  pther_prod_bld , pphot_prod_bld , pprod_bld , &
100  pther_prodc_day, ph_panel, prn_panel, &
101  pdt_res, pdt_off, &
102  pcur_tcool_target, pcur_theat_target, pcur_qin )
103 ! ##########################################################################
104 !
105 !!**** *TEB_GARDEN*
106 !!
107 !! PURPOSE
108 !! -------
109 !
110 !
111 !!** METHOD
112 ! ------
113 !
114 !
115 !! EXTERNAL
116 !! --------
117 !!
118 !!
119 !! IMPLICIT ARGUMENTS
120 !! ------------------
121 !!
122 !!
123 !! REFERENCE
124 !! ---------
125 !!
126 !!
127 !! AUTHOR
128 !! ------
129 !!
130 !! A. Lemonsu * Meteo-France *
131 !!
132 !! MODIFICATIONS
133 !! -------------
134 !! Original 05/2009
135 !! 04/2012 add PTRAN_WIN
136 !! modified 08/2012 HCH_BEM/ ROUGH_WALL and ROUGH_ROOF for buildind conv coef.
137 !! modified 10/2012 add PF_WIN_WIN as arg
138 !-------------------------------------------------------------------------------
139 !
140 !* 0. DECLARATIONS
141 ! ------------
142 !
143 !
144 !
145 !
146 !
147 !
149 USE modd_data_isba_n, ONLY : data_isba_t
150 USE modd_isba_grid_n, ONLY : isba_grid_t
151 USE modd_isba_n, ONLY : isba_t
152 USE modd_surfex_n, ONLY : teb_model_t
155 !
157 USE modd_csts, ONLY: xtt, xstefan
158 USE modd_surf_par, ONLY: xundef
159 USE modd_snow_par, ONLY: xemissn, xansmax
160 !
161 USE mode_thermos
163 !
164 USE modi_solar_panel
165 USE modi_garden_properties
166 USE modi_greenroof_properties
167 USE modi_window_shading_availability
168 USE modi_urban_solar_abs
169 USE modi_urban_lw_coef
170 USE modi_garden
171 USE modi_greenroof
172 USE modi_teb
173 USE modi_avg_urban_fluxes
174 USE modi_bld_occ_calendar
175 !
176 USE yomhook ,ONLY : lhook, dr_hook
177 USE parkind1 ,ONLY : jprb
178 !
179 IMPLICIT NONE
180 !
181 !* 0.1 Declarations of arguments
182 !
183 !
184 !
185 TYPE(data_cover_t), INTENT(INOUT) :: dtco
186 TYPE(data_isba_t), INTENT(INOUT) :: dti
187 TYPE(isba_grid_t), INTENT(INOUT) :: ig
188 TYPE(isba_t), INTENT(INOUT) :: i
189 TYPE(teb_model_t), INTENT(INOUT) :: tm
190 TYPE(teb_garden_model_t), INTENT(INOUT) :: gdm
191 TYPE(teb_greenroof_model_t), INTENT(INOUT) :: grm
192 !
193  LOGICAL, INTENT(IN) :: ogarden ! Flag to use a garden model inside the canyon
194  LOGICAL, INTENT(IN) :: ogreenroof ! Flag to use a greenroof model on roofs
195  LOGICAL, INTENT(IN) :: osolar_panel ! Flag to use a Solar Panel model on roofs
196  CHARACTER(LEN=6) , INTENT(IN) :: hz0h ! TEB option for z0h roof & road
197 ! ! 'MASC95' : Mascart et al 1995
198 ! ! 'BRUT82' : Brustaert 1982
199 ! ! 'KAND07' : Kanda 2007
200  CHARACTER(LEN=*), INTENT(IN) :: himplicit_wind ! wind implicitation option
201 ! ! 'OLD' = direct
202 ! ! 'NEW' = Taylor serie, order 1
203  CHARACTER(LEN=4) , INTENT(IN) :: hroad_dir ! TEB option for road direction
204  ! 'UNIF' : uniform roads
205  ! 'ORIE' : specified
206  ! road orientation
207  CHARACTER(LEN=4) , INTENT(IN) :: hwall_opt ! TEB option for walls representation
208  ! 'UNIF' : uniform walls
209  ! 'TWO ' : 2 opposite walls
210 TYPE(date_time) , INTENT(IN) :: tptime ! current date and time from teb
211 REAL, DIMENSION(:), INTENT(IN) :: ptsun ! solar time (s from midnight)
212 
213 !
214 REAL, DIMENSION(:) , INTENT(INOUT) :: pt_canyon ! canyon air temperature
215 REAL, DIMENSION(:) , INTENT(INOUT) :: pq_canyon ! canyon air specific humidity
216 REAL, DIMENSION(:) , INTENT(IN) :: pu_canyon ! canyon hor. wind
217 REAL, DIMENSION(:) , INTENT(IN) :: pu_lowcan ! wind near the road
218 REAL, DIMENSION(:) , INTENT(IN) :: pt_lowcan ! temp. near the road
219 REAL, DIMENSION(:) , INTENT(IN) :: pq_lowcan ! hum. near the road
220 REAL, DIMENSION(:) , INTENT(IN) :: pz_lowcan ! height of atm. var. near the road
221 REAL, DIMENSION(:) , INTENT(INOUT) :: pti_bld ! inside building temperature
222 REAL, DIMENSION(:,:), INTENT(INOUT) :: pt_roof ! roof layers temperatures
223 REAL, DIMENSION(:,:), INTENT(INOUT) :: pt_road ! road layers temperatures
224 REAL, DIMENSION(:,:), INTENT(INOUT) :: pt_wall_a ! wall layers temperatures
225 REAL, DIMENSION(:,:), INTENT(INOUT) :: pt_wall_b ! wall layers temperatures
226 REAL, DIMENSION(:) , INTENT(INOUT) :: pws_roof ! roof water reservoir
227 REAL, DIMENSION(:) , INTENT(INOUT) :: pws_road ! road water reservoir
228  CHARACTER(LEN=*) , INTENT(IN) :: hsnow_roof ! snow roof scheme 'NONE', 'D95 ', '1-L '
229  CHARACTER(LEN=*) , INTENT(IN) :: hsnow_road ! snow road scheme 'NONE', 'D95 ', '1-L '
230 REAL, DIMENSION(:,:), INTENT(INOUT) :: pwsnow_roof ! snow layers reservoir
231 REAL, DIMENSION(:,:), INTENT(INOUT) :: ptsnow_roof ! snow layers temperature
232 REAL, DIMENSION(:,:), INTENT(INOUT) :: prsnow_roof ! snow layers density
233 REAL, DIMENSION(:) , INTENT(INOUT) :: pasnow_roof ! snow albedo
234 REAL, DIMENSION(:) , INTENT(INOUT) :: pesnow_roof ! snow emissivity
235 REAL, DIMENSION(:) , INTENT(INOUT) :: ptssnow_roof ! snow surface temperature
236 REAL, DIMENSION(:,:), INTENT(INOUT) :: pwsnow_road ! snow layers reservoir
237 REAL, DIMENSION(:,:), INTENT(INOUT) :: ptsnow_road ! snow layers temperature
238 REAL, DIMENSION(:,:), INTENT(INOUT) :: prsnow_road ! snow layers density
239 REAL, DIMENSION(:) , INTENT(INOUT) :: pasnow_road ! snow albedo
240 REAL, DIMENSION(:) , INTENT(INOUT) :: pesnow_road ! snow emissivity
241 REAL, DIMENSION(:) , INTENT(INOUT) :: ptssnow_road ! snow surface temperature
242 REAL, DIMENSION(:) , INTENT(IN) :: ppew_a_coef ! implicit coefficients
243 REAL, DIMENSION(:) , INTENT(IN) :: ppew_b_coef ! for wind coupling
244 REAL, DIMENSION(:) , INTENT(IN) :: ppew_a_coef_lowcan ! implicit coefficients for wind coupling
245 REAL, DIMENSION(:) , INTENT(IN) :: ppew_b_coef_lowcan ! between low canyon wind and road
246 REAL, DIMENSION(:) , INTENT(IN) :: pps ! pressure at the surface
247 REAL, DIMENSION(:) , INTENT(IN) :: ppa ! pressure at the first atmospheric level
248 REAL, DIMENSION(:) , INTENT(IN) :: pexns ! surface exner function
249 REAL, DIMENSION(:) , INTENT(IN) :: pta ! temperature at the lowest level
250 REAL, DIMENSION(:) , INTENT(IN) :: pqa ! specific humidity at the lowest level
251 REAL, DIMENSION(:) , INTENT(IN) :: pvmod ! module of the horizontal wind
252 REAL, DIMENSION(:) , INTENT(IN) :: pexna ! exner function at the lowest level
253 REAL, DIMENSION(:) , INTENT(IN) :: prhoa ! air density at the lowest level
254 REAL, DIMENSION(:) , INTENT(IN) :: pco2 ! CO2 concentration in the air (kg/m3)
255 REAL, DIMENSION(:) , INTENT(IN) :: plw_rad ! atmospheric infrared radiation
256 REAL, DIMENSION(:,:), INTENT(IN) :: pdir_sw ! incoming direct solar rad on an horizontal surface
257 REAL, DIMENSION(:,:), INTENT(IN) :: psca_sw ! scattered incoming solar rad.
258 REAL, DIMENSION(:) , INTENT(IN) :: psw_bands ! mean wavelength of each shortwave band (m)
259 INTEGER, INTENT(IN) :: ksw ! number of short-wave spectral bands
260 REAL, DIMENSION(:) , INTENT(IN) :: pzenith ! solar zenithal angle
261 REAL, DIMENSION(:) , INTENT(IN) :: pazim ! solar azimuthal angle
262  ! (radian form N, clockwise)
263 REAL, DIMENSION(:) , INTENT(IN) :: prr ! rain rate
264 REAL, DIMENSION(:) , INTENT(IN) :: psr ! snow rate
265 REAL, DIMENSION(:) , INTENT(IN) :: ph_traffic ! anthropogenic sensible heat fluxes due to traffic
266 REAL, DIMENSION(:) , INTENT(IN) :: ple_traffic ! anthropogenic latent heat fluxes due to traffic
267 REAL, DIMENSION(:) , INTENT(IN) :: ph_industry ! anthropogenic sensible heat fluxes due to factories
268 REAL, DIMENSION(:) , INTENT(IN) :: ple_industry ! anthropogenic latent heat fluxes due to factories
269 REAL, DIMENSION(:) , INTENT(IN) :: pzref ! reference height of the first atm level (temperature)
270 REAL, DIMENSION(:) , INTENT(IN) :: puref ! reference height of the first atm level (wind)
271 REAL , INTENT(IN) :: ptstep ! time step
272 REAL, DIMENSION(:) , INTENT(IN) :: pz0_town ! town roughness length for momentum
273 REAL, DIMENSION(:) , INTENT(IN) :: pbld ! fraction of buildings
274 REAL, DIMENSION(:) , INTENT(IN) :: pgarden ! fraction of green areas
275 REAL, DIMENSION(:) , INTENT(IN) :: proad_dir ! road direction (deg from North, clockwise)
276 REAL, DIMENSION(:) , INTENT(IN) :: proad ! fraction of roads
277 REAL, DIMENSION(:) , INTENT(IN) :: pfrac_gr ! fraction of green roofs
278 REAL, DIMENSION(:) , INTENT(IN) :: pbld_height ! buildings h
279 REAL, DIMENSION(:) , INTENT(IN) :: pwall_o_hor ! wall surf. / hor. surf.
280 REAL, DIMENSION(:) , INTENT(IN) :: pcan_hw_ratio ! canyon h/W
281 REAL, DIMENSION(:) , INTENT(IN) :: proad_o_grnd ! road surf. / (road+garden surf.)
282 REAL, DIMENSION(:) , INTENT(IN) :: pgarden_o_grnd ! garden surf. / (road+garden surf.)
283 REAL, DIMENSION(:) , INTENT(IN) :: pwall_o_grnd ! wall surf. / (road+garden surf.)
284 REAL, DIMENSION(:) , INTENT(IN) :: palb_roof ! roof albedo
285 REAL, DIMENSION(:) , INTENT(IN) :: pemis_roof ! roof emissivity
286 REAL, DIMENSION(:,:), INTENT(IN) :: phc_roof ! heat capacity for roof layers
287 REAL, DIMENSION(:,:), INTENT(IN) :: ptc_roof ! thermal conductivity for roof layers
288 REAL, DIMENSION(:,:), INTENT(IN) :: pd_roof ! depth of roof layers
289 REAL, DIMENSION(:) , INTENT(IN) :: palb_road ! road albedo
290 REAL, DIMENSION(:) , INTENT(IN) :: pemis_road ! road emissivity
291 REAL, DIMENSION(:,:), INTENT(IN) :: phc_road ! heat capacity for road layers
292 REAL, DIMENSION(:,:), INTENT(IN) :: ptc_road ! thermal conductivity for road layers
293 REAL, DIMENSION(:,:), INTENT(IN) :: pd_road ! depth of road layers
294 REAL, DIMENSION(:) , INTENT(IN) :: psvf_road ! road sky view factor
295 REAL, DIMENSION(:) , INTENT(IN) :: palb_wall ! wall albedo
296 REAL, DIMENSION(:) , INTENT(IN) :: pemis_wall ! wall emissivity
297 REAL, DIMENSION(:,:), INTENT(IN) :: phc_wall ! heat capacity for wall layers
298 REAL, DIMENSION(:,:), INTENT(IN) :: ptc_wall ! thermal conductivity for wall layers
299 REAL, DIMENSION(:,:), INTENT(IN) :: pd_wall ! depth of wall layers
300 REAL, DIMENSION(:) , INTENT(IN) :: psvf_wall ! wall sky view factor
301 REAL, DIMENSION(:) , INTENT(IN) :: psvf_garden ! green area sky view factor
302  !
303 REAL, DIMENSION(:) , INTENT(OUT) :: prn_roof ! net radiation over roof
304 REAL, DIMENSION(:) , INTENT(OUT) :: ph_roof ! sensible heat flux over roof
305 REAL, DIMENSION(:) , INTENT(OUT) :: ple_roof ! latent heat flux over roof
306 REAL, DIMENSION(:) , INTENT(OUT) :: plew_roof ! latent heat flux over roof (snow)
307 REAL, DIMENSION(:) , INTENT(OUT) :: pgflux_roof ! flux through the roof
308 REAL, DIMENSION(:) , INTENT(OUT) :: prunoff_roof ! runoff over the ground
309 REAL, DIMENSION(:) , INTENT(OUT) :: prn_road ! net radiation over road
310 REAL, DIMENSION(:) , INTENT(OUT) :: ph_road ! sensible heat flux over road
311 REAL, DIMENSION(:) , INTENT(OUT) :: ple_road ! latent heat flux over road
312 REAL, DIMENSION(:) , INTENT(OUT) :: plew_road ! latent heat flux over road (snow)
313 REAL, DIMENSION(:) , INTENT(OUT) :: pgflux_road ! flux through the road
314 REAL, DIMENSION(:) , INTENT(OUT) :: prunoff_road ! runoff over the ground
315 REAL, DIMENSION(:) , INTENT(OUT) :: prn_wall_a ! net radiation over wall
316 REAL, DIMENSION(:) , INTENT(OUT) :: ph_wall_a ! sensible heat flux over wall
317 REAL, DIMENSION(:) , INTENT(OUT) :: ple_wall_a ! latent heat flux over wall
318 REAL, DIMENSION(:) , INTENT(OUT) :: pgflux_wall_a ! flux through the wall
319 REAL, DIMENSION(:) , INTENT(OUT) :: prn_wall_b ! net radiation over wall
320 REAL, DIMENSION(:) , INTENT(OUT) :: ph_wall_b ! sensible heat flux over wall
321 REAL, DIMENSION(:) , INTENT(OUT) :: ple_wall_b ! latent heat flux over wall
322 REAL, DIMENSION(:) , INTENT(OUT) :: pgflux_wall_b ! flux through the wall
323 REAL, DIMENSION(:) , INTENT(OUT) :: prn_garden ! net radiation over green areas
324 REAL, DIMENSION(:) , INTENT(OUT) :: ph_garden ! sensible heat flux over green areas
325 REAL, DIMENSION(:) , INTENT(OUT) :: ple_garden ! latent heat flux over green areas
326 REAL, DIMENSION(:) , INTENT(OUT) :: pgflux_garden ! flux through the green areas
327 REAL, DIMENSION(:) , INTENT(OUT) :: prunoff_garden ! runoff over garden
328 REAL, DIMENSION(:) , INTENT(OUT) :: pdrain_garden ! drainage over garden
329 REAL, DIMENSION(:) , INTENT(OUT) :: pirrig_garden ! water supply for irrigation over garden (kg/m2/s)
330 REAL, DIMENSION(:) , INTENT(OUT) :: prn_greenroof ! net radiation over greenroofs
331 REAL, DIMENSION(:) , INTENT(OUT) :: ph_greenroof ! sensible heat flux over greenroofs
332 REAL, DIMENSION(:) , INTENT(OUT) :: ple_greenroof ! latent heat flux over greenroofs
333 REAL, DIMENSION(:) , INTENT(OUT) :: pgflux_greenroof ! flux through the greenroofs
334 REAL, DIMENSION(:) , INTENT(OUT) :: prn_strlroof ! net radiation over structural roof
335 REAL, DIMENSION(:) , INTENT(OUT) :: ph_strlroof ! sensible heat flux over structural roof
336 REAL, DIMENSION(:) , INTENT(OUT) :: ple_strlroof ! latent heat flux over structural roof
337 REAL, DIMENSION(:) , INTENT(OUT) :: pgflux_strlroof ! flux through the structural roof
338 REAL, DIMENSION(:) , INTENT(OUT) :: prunoff_strlroof ! runoff aver structural roof
339 REAL, DIMENSION(:) , INTENT(OUT) :: prn_blt ! net radiation over built surf
340 REAL, DIMENSION(:) , INTENT(OUT) :: ph_blt ! sensible heat flux over built surf
341 REAL, DIMENSION(:) , INTENT(OUT) :: ple_blt ! latent heat flux over built surf
342 REAL, DIMENSION(:) , INTENT(OUT) :: pgflux_blt ! flux through the built surf
343 !
344 REAL, DIMENSION(:) , INTENT(OUT) :: prnsnow_roof ! net radiation over snow
345 REAL, DIMENSION(:) , INTENT(OUT) :: phsnow_roof ! sensible heat flux over snow
346 REAL, DIMENSION(:) , INTENT(OUT) :: plesnow_roof ! latent heat flux over snow
347 REAL, DIMENSION(:) , INTENT(OUT) :: pgsnow_roof ! flux under the snow
348 REAL, DIMENSION(:) , INTENT(OUT) :: pmelt_roof ! snow melt
349 REAL, DIMENSION(:) , INTENT(OUT) :: prnsnow_road ! net radiation over snow
350 REAL, DIMENSION(:) , INTENT(OUT) :: phsnow_road ! sensible heat flux over snow
351 REAL, DIMENSION(:) , INTENT(OUT) :: plesnow_road ! latent heat flux over snow
352 REAL, DIMENSION(:) , INTENT(OUT) :: pgsnow_road ! flux under the snow
353 REAL, DIMENSION(:) , INTENT(OUT) :: pmelt_road ! snow melt
354 !
355 REAL, DIMENSION(:) , INTENT(OUT) :: prn_grnd ! net radiation over ground
356 REAL, DIMENSION(:) , INTENT(OUT) :: ph_grnd ! sensible heat flux over ground
357 REAL, DIMENSION(:) , INTENT(OUT) :: ple_grnd ! latent heat flux over ground
358 REAL, DIMENSION(:) , INTENT(OUT) :: pgflux_grnd ! flux through the ground
359 REAL, DIMENSION(:) , INTENT(OUT) :: prn_town ! net radiation over town
360 REAL, DIMENSION(:) , INTENT(OUT) :: ph_town ! sensible heat flux over town
361 REAL, DIMENSION(:) , INTENT(OUT) :: ple_town ! latent heat flux over town
362 REAL, DIMENSION(:) , INTENT(OUT) :: pgflux_town ! flux through the ground
363 REAL, DIMENSION(:) , INTENT(OUT) :: pevap_town ! evaporation flux (kg/m2/s)
364 REAL, DIMENSION(:) , INTENT(OUT) :: prunoff_town ! runoff over the ground
365 REAL, DIMENSION(:) , INTENT(OUT) :: psfco2 ! flux of CO2 (m/s*kg_CO2/kg_air)
366 REAL, DIMENSION(:) , INTENT(OUT) :: puw_grnd ! momentum flux for ground built surf
367 REAL, DIMENSION(:) , INTENT(OUT) :: puw_roof ! momentum flux for roofs
368 REAL, DIMENSION(:) , INTENT(OUT) :: pduwdu_grnd !
369 REAL, DIMENSION(:) , INTENT(OUT) :: pduwdu_roof !
370 REAL, DIMENSION(:) , INTENT(OUT) :: pustar_town ! friciton velocity over town
371 REAL, DIMENSION(:) , INTENT(OUT) :: pcd ! town averaged drag coefficient
372 REAL, DIMENSION(:) , INTENT(OUT) :: pcdn ! town averaged neutral drag coefficient
373 REAL, DIMENSION(:) , INTENT(OUT) :: pch_town ! town averaged heat transfer coefficient
374 REAL, DIMENSION(:) , INTENT(OUT) :: pri_town ! town averaged Richardson number
375 REAL, DIMENSION(:) , INTENT(OUT) :: pts_town ! town surface temperature
376 REAL, DIMENSION(:) , INTENT(OUT) :: pemis_town ! town equivalent emissivity
377 REAL, DIMENSION(:) , INTENT(OUT) :: pdir_alb_town ! town equivalent direct albedo
378 REAL, DIMENSION(:) , INTENT(OUT) :: psca_alb_town ! town equivalent diffuse albedo
379 REAL, DIMENSION(:) , INTENT(OUT) :: presa_town ! town aerodynamical resistance
380 REAL, DIMENSION(:) , INTENT(OUT) :: pdqs_town ! heat storage inside town
381 REAL, DIMENSION(:) , INTENT(OUT) :: pqf_town ! total anthropogenic heat
382 REAL, DIMENSION(:) , INTENT(OUT) :: pqf_bld ! anthropogenic heat flux of domestic heating
383 REAL, DIMENSION(:) , INTENT(OUT) :: pflx_bld ! heat flx from inside bld through its structure
384 REAL, DIMENSION(:) , INTENT(OUT) :: pac_road ! road conductance
385 REAL, DIMENSION(:) , INTENT(OUT) :: pac_garden ! green area conductance
386 REAL, DIMENSION(:) , INTENT(OUT) :: pac_greenroof ! green roof conductance
387 REAL, DIMENSION(:) , INTENT(OUT) :: pac_road_wat ! road conductance for latent heat
388 REAL, DIMENSION(:) , INTENT(OUT) :: pac_garden_wat ! green area conductance for latent heat
389 REAL, DIMENSION(:) , INTENT(OUT) :: pac_greenroof_wat ! green roof conductance for latent heat
390 !
391 REAL, DIMENSION(:) , INTENT(OUT) :: pabs_sw_roof ! absorbed solar rad by roof
392 REAL, DIMENSION(:) , INTENT(OUT) :: pabs_sw_snow_roof ! absorbed solar rad by snow on roof
393 REAL, DIMENSION(:) , INTENT(OUT) :: pabs_lw_roof ! absorbed IR rad by roof
394 REAL, DIMENSION(:) , INTENT(OUT) :: pabs_lw_snow_roof ! absorbed IR rad by snow on roof
395 REAL, DIMENSION(:) , INTENT(OUT) :: pabs_sw_road ! absorbed solar rad by road
396 REAL, DIMENSION(:) , INTENT(OUT) :: pabs_sw_snow_road ! absorbed solar rad by snow on road
397 REAL, DIMENSION(:) , INTENT(OUT) :: pabs_lw_road ! absorbed IR rad by road
398 REAL, DIMENSION(:) , INTENT(OUT) :: pabs_lw_snow_road ! absorbed IR rad by snow on road
399 REAL, DIMENSION(:) , INTENT(OUT) :: pabs_sw_wall_a ! absorbed solar rad by wall
400 REAL, DIMENSION(:) , INTENT(OUT) :: pabs_lw_wall_a ! absorbed IR rad by wall
401 REAL, DIMENSION(:) , INTENT(OUT) :: pabs_sw_wall_b ! absorbed solar rad by wall
402 REAL, DIMENSION(:) , INTENT(OUT) :: pabs_lw_wall_b ! absorbed IR rad by wall
403 REAL, DIMENSION(:) , INTENT(OUT) :: pabs_sw_panel ! absorbed solar rad by solar panels
404 REAL, DIMENSION(:) , INTENT(OUT) :: pabs_lw_panel ! absorbed IR rad by solar panels
405 REAL, DIMENSION(:) , INTENT(OUT) :: pabs_sw_garden ! absorbed solar rad by green areas
406 REAL, DIMENSION(:) , INTENT(OUT) :: pabs_lw_garden ! absorbed IR rad by green areas
407 REAL, DIMENSION(:) , INTENT(OUT) :: pabs_sw_greenroof ! absorbed solar rad by green roofs
408 REAL, DIMENSION(:) , INTENT(OUT) :: pabs_lw_greenroof ! absorbed IR rad by green roofs
409 REAL, DIMENSION(:) , INTENT(OUT) :: pg_greenroof_roof ! heat flux between base of greenroof
410 ! ! and structural roof
411 REAL, DIMENSION(:) , INTENT(OUT) :: prunoff_greenroof ! greenroof surface runoff
412 REAL, DIMENSION(:) , INTENT(OUT) :: pdrain_greenroof ! greenroof total vertical drainage
413 REAL, DIMENSION(:) , INTENT(OUT) :: pirrig_greenroof ! water supply for greenroof ground irrigation
414 !
415 ! new arguments created after BEM
416 !
417  CHARACTER(LEN=6) , INTENT(IN) :: hcool_coil
418  CHARACTER(LEN=6) , INTENT(IN) :: hheat_coil
419 REAL, DIMENSION(:) , INTENT(IN) :: pf_water_cond ! fraction of evaporation for the condensers
420  CHARACTER(LEN=4), DIMENSION(:), INTENT(IN) :: hnatvent
421 INTEGER , INTENT(IN) :: kday ! Simulation day
422 REAL, DIMENSION(:) , INTENT(INOUT) :: paux_max ! Auxiliar variable for autosize calcs
423 REAL, DIMENSION(:,:), INTENT(INOUT) :: pt_floor ! Floor layers temperatures [K]
424 REAL, DIMENSION(:,:), INTENT(INOUT) :: pt_mass ! Internal mass layers temperatures [K]
425 REAL, DIMENSION(:) , INTENT(OUT) :: ph_bld_cool ! Sensible cooling energy demand
426  ! of the building [W m-2(bld)]
427 REAL, DIMENSION(:) , INTENT(OUT) :: pt_bld_cool ! Total cooling energy demand
428  ! of the building [W m-2(bld)]
429 REAL, DIMENSION(:) , INTENT(OUT) :: ph_bld_heat ! Heating energy demand
430  ! of the building [W m-2(bld)]
431 REAL, DIMENSION(: ), INTENT(OUT) :: ple_bld_cool ! Latent cooling energy demand
432  ! of the building [W m-2(bld)]
433 REAL, DIMENSION(:) , INTENT(OUT) :: ple_bld_heat ! Latent heating energy demand
434  ! of the building [W m-2(bld)]
435 REAL, DIMENSION(:) , INTENT(OUT) :: ph_waste ! Sensible waste heat from HVAC system
436  ! [W m-2(tot)]
437 REAL, DIMENSION(:) , INTENT(OUT) :: ple_waste ! Latent waste heat from HVAC system
438  ! [W m-2(tot)]
439 REAL, DIMENSION(:) , INTENT(IN) :: pf_waste_can ! fraction of waste heat released into the canyon
440 REAL, DIMENSION(:) , INTENT(OUT) :: phvac_cool ! Energy consumption of the cooling system
441  ! [W m-2(bld)]
442 REAL, DIMENSION(:) , INTENT(OUT) :: phvac_heat ! Energy consumption of the heating system
443  ! [W m-2(bld)]
444 REAL, DIMENSION(:) , INTENT(IN) :: pqin ! Internal heat gains [W m-2(floor)]
445 REAL, DIMENSION(:) , INTENT(IN) :: pqin_frad ! Radiant fraction of internal heat gains
446 REAL, DIMENSION(:) , INTENT(IN) :: pqin_flat ! Latent franction of internal heat gains
447 REAL, DIMENSION(:) , INTENT(IN) :: pgr ! Glazing ratio
448 REAL, DIMENSION(:) , INTENT(IN) :: peff_heat ! Efficiency of the heating system
449 REAL, DIMENSION(:) , INTENT(IN) :: pinf ! Infiltration flow rate [AC/H]
450 REAL, DIMENSION(:) , INTENT(IN) :: ptcool_target ! Cooling setpoint of HVAC system [K]
451 REAL, DIMENSION(:) , INTENT(IN) :: ptheat_target ! Heating setpoint of HVAC system [K]
452 REAL, DIMENSION(:) , INTENT(IN) :: phr_target ! Relative humidity setpoint
453 REAL, DIMENSION(:) , INTENT(INOUT) :: pt_win2 ! Indoor window temperature [K]
454 REAL, DIMENSION(:) , INTENT(INOUT) :: pqi_bld ! Indoor air specific humidity [kg kg-1]
455 REAL, DIMENSION(:) , INTENT(IN) :: pv_vent ! Ventilation flow rate [AC/H]
456 REAL, DIMENSION(:) , INTENT(IN) :: pcap_sys_heat ! Capacity of the heating system
457  ! [W m-2(bld)]
458 REAL, DIMENSION(:) , INTENT(INOUT) :: pcap_sys_rat ! Rated capacity of the cooling system
459  ! [W m-2(bld)]
460 REAL, DIMENSION(:) , INTENT(IN) :: pt_adp ! Apparatus dewpoint temperature of the
461  ! cooling coil [K]
462 REAL, DIMENSION(:) , INTENT(INOUT) :: pm_sys_rat ! Rated HVAC mass flow rate
463  ! [kg s-1 m-2(bld)]
464 REAL, DIMENSION(:) , INTENT(IN) :: pcop_rat ! Rated COP of the cooling system
465 REAL, DIMENSION(:) , INTENT(OUT) :: pcap_sys ! Actual capacity of the cooling system
466  ! [W m-2(bld)]
467 REAL, DIMENSION(:) , INTENT(OUT) :: pm_sys ! Actual HVAC mass flow rate
468  ! [kg s-1 m-2(bld)]
469 REAL, DIMENSION(:) , INTENT(OUT) :: pcop ! COP of the cooling system
470 REAL, DIMENSION(:) , INTENT(OUT) :: pq_sys ! Supply air specific humidity [kg kg-1]
471 REAL, DIMENSION(:) , INTENT(OUT) :: pt_sys ! Supply air temperature [K]
472 REAL, DIMENSION(:) , INTENT(OUT) :: ptr_sw_win ! Solar radiation transmitted throught
473  ! windows [W m-2(bld)]
474 REAL, DIMENSION(:) , INTENT(OUT) :: pfan_power ! HVAC fan power
475 REAL, DIMENSION(:,:), INTENT(IN) :: phc_floor ! heat capacity for road layers
476 REAL, DIMENSION(:,:), INTENT(IN) :: ptc_floor ! thermal conductivity for
477  ! road layers
478 REAL, DIMENSION(:,:), INTENT(IN) :: pd_floor ! depth of road layers
479 
480 REAL, DIMENSION(:) , INTENT(INOUT) :: pt_win1 ! outdoor window temperature [K]
481 REAL, DIMENSION(:) , INTENT(OUT) :: pabs_sw_win ! window absorbed shortwave radiation [W m-2]
482 REAL, DIMENSION(:) , INTENT(OUT) :: pabs_lw_win ! absorbed infrared rad. [W m-2]
483 REAL, DIMENSION(:) , INTENT(IN) :: pshgc ! window solar transmittance
484 REAL, DIMENSION(:) , INTENT(IN) :: pshgc_sh ! window + shading solar heat gain coef.
485 REAL, DIMENSION(:) , INTENT(IN) :: pugg_win ! window glass-to-glass U-factro [W m-2 K-1]
486 REAL, DIMENSION(:) , INTENT(OUT) :: palb_win ! window albedo
487 REAL, DIMENSION(:) , INTENT(IN) :: pabs_win ! window absortance
488 REAL, DIMENSION(:) , INTENT(IN) :: ptran_win ! window transmittance
489 !
490 ! new argument for the UTCI calculation
491 REAL, DIMENSION(:) , INTENT(OUT) :: pemit_lw_grnd ! LW flux emitted by the ground (W/m2 ground)
492 REAL, DIMENSION(:) , INTENT(OUT) :: pemit_lw_fac ! LW flux emitted by the facade (W/m2 ground)
493 REAL, DIMENSION(:) , INTENT(OUT) :: pt_rad_ind ! Indoor mean radiant temperature [K]
494 REAL, DIMENSION(:) , INTENT(OUT) :: pref_sw_grnd ! total solar rad reflected from ground
495 REAL, DIMENSION(:) , INTENT(OUT) :: pref_sw_fac ! total solar rad reflected from facade
496 REAL, DIMENSION(:) , INTENT(OUT) :: phu_bld ! Indoor relative humidity 0 < (-) < 1
497 !
498 ! new arguments for shading, schedule or natural ventilation
499 REAL , INTENT(IN) :: ptime ! current time since midnight (UTC, s)
500 LOGICAL,DIMENSION(:), INTENT(IN) :: oshade
501 LOGICAL,DIMENSION(:), INTENT(INOUT) :: oshad_day ! has shading been necessary this day ?
502 LOGICAL,DIMENSION(:), INTENT(INOUT) :: onatvent_night ! has natural ventilation been necessary/possible this night ?
503  CHARACTER(LEN=3) , INTENT(IN) :: hbem ! Building Energy model 'DEF' or 'BEM'
504 !
505 REAL, DIMENSION(:) , INTENT(IN) :: pn_floor ! Number of floors
506 REAL, DIMENSION(:) , INTENT(IN) :: pwall_o_bld ! Wall area [m2_wall/m2_bld]
507 REAL, DIMENSION(:) , INTENT(IN) :: pglaz_o_bld ! Window area [m2_win/m2_bld]
508 REAL, DIMENSION(:) , INTENT(IN) :: pmass_o_bld ! Mass area [m2_mass/m2_bld]
509 REAL, DIMENSION(:) , INTENT(IN) :: pfloor_hw_ratio ! H/W ratio of 1 floor level
510 REAL, DIMENSION(:) , INTENT(IN) :: pf_floor_mass ! View factor floor-mass
511 REAL, DIMENSION(:) , INTENT(IN) :: pf_floor_wall ! View factor floor-wall
512 REAL, DIMENSION(:) , INTENT(IN) :: pf_floor_win ! View factor floor-window
513 REAL, DIMENSION(:) , INTENT(IN) :: pf_floor_roof ! View factor floor-roof
514 REAL, DIMENSION(:) , INTENT(IN) :: pf_wall_floor ! View factor wall-floor
515 REAL, DIMENSION(:) , INTENT(IN) :: pf_wall_mass ! View factor wall-mass
516 REAL, DIMENSION(:) , INTENT(IN) :: pf_wall_win ! View factor wall-win
517 REAL, DIMENSION(:) , INTENT(IN) :: pf_win_floor ! View factor win-floor
518 REAL, DIMENSION(:) , INTENT(IN) :: pf_win_mass ! View factor win-mass
519 REAL, DIMENSION(:) , INTENT(IN) :: pf_win_wall ! View factor win-wall
520 REAL, DIMENSION(:) , INTENT(IN) :: pf_mass_floor ! View factor mass-floor
521 REAL, DIMENSION(:) , INTENT(IN) :: pf_mass_wall ! View factor mass-wall
522 REAL, DIMENSION(:) , INTENT(IN) :: pf_mass_win ! View factor mass-window
523 LOGICAL , INTENT(IN) :: ocanopy ! is canopy active ?
524  CHARACTER(LEN=5) , INTENT(IN) :: hch_bem ! TEB option for building outside conv. coef
525 REAL, DIMENSION(:) , INTENT(IN) :: prough_roof ! roof roughness coef.
526 REAL, DIMENSION(:) , INTENT(IN) :: prough_wall ! wall roughness coef.
527 REAL, DIMENSION(:) , INTENT(IN) :: pf_win_win ! indoor win to win view factor
528 !
529 !* arguments for road watering
530 !
531 LOGICAL, INTENT(IN) :: opar_rd_irrig ! True if there is potentially irrigation
532 REAL, DIMENSION(:), INTENT(IN) :: prd_start_month! First month of irrigation
533 REAL, DIMENSION(:), INTENT(IN) :: prd_end_month ! Last month of irrigation
534 REAL, DIMENSION(:), INTENT(IN) :: prd_start_hour ! First hour of irrigation (included)
535 REAL, DIMENSION(:), INTENT(IN) :: prd_end_hour ! Last hour of irrigation (excluded)
536 REAL, DIMENSION(:), INTENT(IN) :: prd_24h_irrig ! diurnal averaged irrigation flux (kg/m2/s)
537 REAL, DIMENSION(:), INTENT(OUT) :: pirrig_road ! man-made watering of roads (kg/m2/s)
538 !
539 !* arguments for solar panels
540 !
541 REAL, DIMENSION(:), INTENT(IN) :: pemis_panel ! Emissivity of solar panels (-)
542 REAL, DIMENSION(:), INTENT(IN) :: palb_panel ! Albedo of solar panels (-)
543 REAL, DIMENSION(:), INTENT(IN) :: peff_panel ! Efficiency of solar panel (-)
544 REAL, DIMENSION(:), INTENT(IN) :: pfrac_panel ! Fraction of solar panel on roofs (-)
545 REAL, DIMENSION(:), INTENT(OUT) :: pther_prod_panel ! Thermal Energy production of solar panel on roofs (W/m2 panel)
546 REAL, DIMENSION(:), INTENT(OUT) :: pphot_prod_panel ! Photovoltaic Energy production of solar panel on roofs (W/m2 panel)
547 REAL, DIMENSION(:), INTENT(OUT) :: pprod_panel ! Averaged Energy production of solar panel on roofs (W/m2 panel)
548 REAL, DIMENSION(:), INTENT(OUT) :: pther_prod_bld ! Thermal Energy production of solar panel on roofs (W/m2 bld )
549 REAL, DIMENSION(:), INTENT(OUT) :: pphot_prod_bld ! Photovoltaic Energy production of solar panel on roofs (W/m2 bld )
550 REAL, DIMENSION(:), INTENT(OUT) :: pprod_bld ! Averaged Energy production of solar panel on roofs (W/m2 bld )
551 REAL, DIMENSION(:), INTENT(OUT) :: pther_prodc_day ! Present day integrated thermal production of energy (J/m2 panel)
552 REAL, DIMENSION(:), INTENT(OUT) :: ph_panel ! Sensible heat flux from solar panels (W/m2 panel)
553 REAL, DIMENSION(:), INTENT(OUT) :: prn_panel ! Net radiation of solar panel (W/m2 panel)
554 !
555 !* arguments for building's use description
556 !
557 REAL, DIMENSION(:), INTENT(IN) :: presidential ! Fraction of residential use (-)
558 REAL, INTENT(IN) :: pdt_res ! target temperature change when unoccupied (K) (residential buildings)
559 REAL, INTENT(IN) :: pdt_off ! target temperature change when unoccupied (K) (office buildings)
560 REAL, DIMENSION(:), INTENT(OUT) :: pcur_tcool_target ! Cooling target temperature at current time (K)
561 REAL, DIMENSION(:), INTENT(OUT) :: pcur_theat_target ! Heating target temperature at current time (K)
562 REAL, DIMENSION(:), INTENT(OUT) :: pcur_qin ! Internal heat gains at current time (W/m2 floor)
563 !
564 !
565 !* 0.2 Declarations of local variables
566 !
567 REAL, DIMENSION(SIZE(PTA)) :: zta ! air temperature extrapolated at roof level
568 REAL, DIMENSION(SIZE(PTA)) :: zqa ! air humidity extrapolated at roof level
569 !
570 REAL, DIMENSION(SIZE(PTA)) :: zdn_roof ! snow fraction on roofs
571 REAL, DIMENSION(SIZE(PTA)) :: zdn_road ! snow fraction on roads
572 REAL, DIMENSION(SIZE(PTA)) :: zdf_roof ! free-snow fraction on roofs
573 REAL, DIMENSION(SIZE(PTA)) :: zdf_road ! free-snow fraction on roads
574 REAL, DIMENSION(SIZE(PTA)) :: zdelt_road ! fraction of water on roads
575 REAL, DIMENSION(SIZE(PTA)) :: zdelt_roof ! fraction of water on roofs
576 REAL, DIMENSION(SIZE(PTA)) :: zac_roof ! roof conductance
577 REAL, DIMENSION(SIZE(PTA)) :: zac_roof_wat ! roof water conductance
578 REAL, DIMENSION(SIZE(PTA)) :: zac_wall ! wall conductance
579 REAL, DIMENSION(SIZE(PTA)) :: zac_top ! top conductance
580 REAL, DIMENSION(SIZE(PTA)) :: zqsat_road ! hum of saturation for roads
581 REAL, DIMENSION(SIZE(PTA)) :: zqsat_garden ! hum of saturation for green areas
582 REAL, DIMENSION(SIZE(PTA)) :: zqsat_roof ! hum of saturation for roofs
583 REAL, DIMENSION(SIZE(PTA)) :: zqsat_greenroof! hum of saturation for green roofs
584 !
585 ! coefficients for LW computations over snow (from previous time-step)
586 !
587 REAL, DIMENSION(SIZE(PTA)) :: ztssnow_roof ! roof snow temp at previous time-step
588 REAL, DIMENSION(SIZE(PTA)) :: ztssnow_road ! road snow temp at previous time-step
589 REAL, DIMENSION(SIZE(PTA)) :: zesnow_roof ! snow emissivity at previous time-step
590 REAL, DIMENSION(SIZE(PTA)) :: zesnow_road ! snow emissivity at previous time-step
591 !
592 ! incoming shortwave radiation
593 !
594 REAL, DIMENSION(SIZE(PTA)) :: zdir_sw ! direct solar rad
595 REAL, DIMENSION(SIZE(PTA)) :: zsca_sw ! diffuse solar rad
596 INTEGER :: jswb
597 !
598 ! albedo & emissivity
599 !
600 REAL, DIMENSION(SIZE(PTA)) :: zalb_garden ! albedo for green areas
601 REAL, DIMENSION(SIZE(PTA)) :: zemis_garden ! emissivity for green areas
602 REAL, DIMENSION(SIZE(PTA)) :: zalb_greenroof ! albedo for green roofs
603 REAL, DIMENSION(SIZE(PTA)) :: zemis_greenroof! emissivity for green roofs
604 !
605 REAL, DIMENSION(SIZE(PTA)) :: zalbnir_tveg_garden ! nearIR veg tot albedo
606 REAL, DIMENSION(SIZE(PTA)) :: zalbvis_tveg_garden ! visible veg tot albedo
607 REAL, DIMENSION(SIZE(PTA)) :: zalbnir_tsoil_garden ! nearIR soil tot albedo
608 REAL, DIMENSION(SIZE(PTA)) :: zalbvis_tsoil_garden ! visible soil tot albedo
609 !
610 REAL, DIMENSION(SIZE(PTA)) :: zalbnir_tveg_greenroof ! nearIR veg tot albedo
611 REAL, DIMENSION(SIZE(PTA)) :: zalbvis_tveg_greenroof ! visible veg tot albedo
612 REAL, DIMENSION(SIZE(PTA)) :: zalbnir_tsoil_greenroof ! nearIR soil tot albedo
613 REAL, DIMENSION(SIZE(PTA)) :: zalbvis_tsoil_greenroof ! visible soil tot albedo
614 !
615 ! radiation received by surfaces
616 !
617 REAL, DIMENSION(SIZE(PTA)) :: zrec_sw_road ! solar rad received by roads
618 REAL, DIMENSION(SIZE(PTA)) :: zrec_sw_wall_a ! solar rad received by walls
619 REAL, DIMENSION(SIZE(PTA)) :: zrec_sw_wall_b ! solar rad received by walls
620 REAL, DIMENSION(SIZE(PTA)) :: zrec_sw_garden ! solar rad received by gardens
621 REAL, DIMENSION(SIZE(PTA)) :: zrec_sw_snow_road ! solar rad received by snow on roads
622 !
623 REAL, DIMENSION(SIZE(PTA)) :: zrec_lw_garden ! IR rad received by gardens
624 !
625 REAL, DIMENSION(SIZE(PTA)) :: zsw_rad_garden ! solar radiation reaching urban green areas
626 REAL, DIMENSION(SIZE(PTA)) :: zrec_sw_roof ! solar rad received by roofs in presence of solar panels
627 !
628 ! coefficients for LW contributions
629 !
630 REAL, DIMENSION(SIZE(PTA)) :: zlw_wa_to_wb ! LW contrib. wall -> opposite wall
631 REAL, DIMENSION(SIZE(PTA)) :: zlw_wa_to_r ! LW contrib. wall -> road
632 REAL, DIMENSION(SIZE(PTA)) :: zlw_wb_to_r ! LW contrib. wall -> road
633 REAL, DIMENSION(SIZE(PTA)) :: zlw_wa_to_g ! LW contrib. wall -> green
634 REAL, DIMENSION(SIZE(PTA)) :: zlw_wb_to_g ! LW contrib. wall -> green
635 REAL, DIMENSION(SIZE(PTA)) :: zlw_wa_to_win ! Radiative heat trasfer coeff wall-window
636 REAL, DIMENSION(SIZE(PTA)) :: zlw_wb_to_win ! Radiative heat trasfer coeff wall-window
637  ! [W K-1 m-2]
638 REAL, DIMENSION(SIZE(PTA)) :: zlw_wa_to_nr ! LW contrib. wall -> road(snow)
639 REAL, DIMENSION(SIZE(PTA)) :: zlw_wb_to_nr ! LW contrib. wall -> road(snow)
640 REAL, DIMENSION(SIZE(PTA)) :: zlw_r_to_wa ! LW contrib. road -> wall
641 REAL, DIMENSION(SIZE(PTA)) :: zlw_r_to_wb ! LW contrib. road -> wall
642 REAL, DIMENSION(SIZE(PTA)) :: zlw_r_to_win ! Radiative heat trasfer coeff road-window
643  ! [W K-1 m-2]
644 REAL, DIMENSION(SIZE(PTA)) :: zlw_g_to_wa ! LW contrib. green -> wall
645 REAL, DIMENSION(SIZE(PTA)) :: zlw_g_to_wb ! LW contrib. green -> wall
646 REAL, DIMENSION(SIZE(PTA)) :: zlw_g_to_win ! L.W. interactions GARDEN areas->road
647  !
648 REAL, DIMENSION(SIZE(PTA)) :: zlw_win_to_wa ! Radiative heat trasfer coeff window-wall
649  ! [W K-1 m-2]
650 REAL, DIMENSION(SIZE(PTA)) :: zlw_win_to_wb ! Radiative heat trasfer coeff window-wall
651  ! [W K-1 m-2]
652 REAL, DIMENSION(SIZE(PTA)) :: zlw_win_to_r ! Radiative heat trasfer coeff window-road
653  ! [W K-1 m-2]
654 REAL, DIMENSION(SIZE(PTA)) :: zlw_win_to_g ! Radiative heat trasfer coeff window-garden
655  ! [W K-1 m-2]
656 REAL, DIMENSION(SIZE(PTA)) :: zlw_win_to_nr ! Radiative heat trasfer coeff window-road(snow)
657  ! [W K-1 m-2]
658 REAL, DIMENSION(SIZE(PTA)) :: zlw_s_to_wa ! LW contrib. sky -> wall
659 REAL, DIMENSION(SIZE(PTA)) :: zlw_s_to_wb ! LW contrib. sky -> wall
660 REAL, DIMENSION(SIZE(PTA)) :: zlw_s_to_r ! LW contrib. sky -> road
661 REAL, DIMENSION(SIZE(PTA)) :: zlw_s_to_g ! LW contrib. sky -> green
662 REAL, DIMENSION(SIZE(PTA)) :: zlw_s_to_win ! Radiative heat trasfer coeff window-sky
663  ! [W K-1 m-2]
664 REAL, DIMENSION(SIZE(PTA)) :: zlw_s_to_nr ! LW contrib. sky -> road(snow)
665 REAL, DIMENSION(SIZE(PTA)) :: zlw_nr_to_wa ! LW contrib. road(snow) -> wall
666 REAL, DIMENSION(SIZE(PTA)) :: zlw_nr_to_wb ! LW contrib. road(snow) -> wall
667 REAL, DIMENSION(SIZE(PTA)) :: zlw_nr_to_win ! L.W. interactions snow(road)->GARDEN areas
668  !
669 REAL, DIMENSION(SIZE(PTA)) :: zrec_sw_win ! solar received by windows [W m-2(win)]
670 REAL, DIMENSION(SIZE(PTA)) :: zt_sky ! sky temperature [K]
671 REAL, DIMENSION(SIZE(PTA)) :: zrec_lw_roof ! Incoming LW on roofs in presence of solar panels
672 !
673 ! local variable at previous time-step
674 !
675 REAL, DIMENSION(SIZE(PTA)) :: zpet_a_coef
676 REAL, DIMENSION(SIZE(PTA)) :: zpet_b_coef
677 REAL, DIMENSION(SIZE(PTA)) :: zpeq_a_coef
678 REAL, DIMENSION(SIZE(PTA)) :: zpeq_b_coef
679 !
680 REAL, DIMENSION(SIZE(PTA)) :: zuw_road ! momentum flux for roads
681 REAL, DIMENSION(SIZE(PTA)) :: zuw_garden ! momentum flux for green areas
682 REAL, DIMENSION(SIZE(PTA)) :: zuw_greenroof ! momentum flux for green roofs
683 REAL, DIMENSION(SIZE(PTA)) :: zduwdu_road !
684 !
685 REAL, DIMENSION(SIZE(PTA)) :: zac_agg_garden ! aggreg. aeodynamic resistance for green areas
686 REAL, DIMENSION(SIZE(PTA)) :: zhu_agg_garden ! aggreg. relative humidity for green areas
687 REAL, DIMENSION(SIZE(PTA)) :: zac_agg_greenroof ! aggreg. aeodynamic resistance for green roofs
688 REAL, DIMENSION(SIZE(PTA)) :: zhu_agg_greenroof ! aggreg. relative humidity for green roofs
689 !
690 ! surfaces relative fractions
691 !
692 REAL, DIMENSION(SIZE(PTA)) :: zroof_frac ! roof, wall and
693 REAL, DIMENSION(SIZE(PTA)) :: zwall_frac ! road fractions
694 REAL, DIMENSION(SIZE(PTA)) :: zroad_frac ! of exchange surf.
695 REAL, DIMENSION(SIZE(PTA)) :: zgarden_frac !
696 REAL, DIMENSION(SIZE(PTA)) :: ztots_o_hors ! total canyon+roof surface
697 ! ! over horizontal surface
698 REAL, DIMENSION(SIZE(PTA)) :: zwall_o_road ! wall surface over road surface
699 REAL, DIMENSION(SIZE(PTA)) :: zwall_o_grnd ! wall surface over (road+green area) surface
700 !
701 ! surface temperatures
702 !
703 REAL, DIMENSION(SIZE(PTA)) :: zts_garden ! surface temperature of urban green areas at t
704 REAL, DIMENSION(SIZE(PTA)) :: zts_greenroof ! surface temperature of urban greenroofs at t
705 REAL, DIMENSION(SIZE(PTA)) :: zmtc_o_gr_r1 ! mean thermal conductivity over distance
706 ! ! between two layers (bottom GR & roof)
707 !
708 ! fluxes from green surfaces
709 !
710 REAL, DIMENSION(SIZE(PTA)) :: zevap_garden ! evaporation (kg/m2/s)
711 REAL, DIMENSION(SIZE(PTA)) :: zsfco2_garden ! CO2 fluxes (m/s*kg_CO2/kg_air)
712 REAL, DIMENSION(SIZE(PTA)) :: zemit_lw_garden ! LW flux emitted by the garden (W/m2 garden)
713 REAL, DIMENSION(SIZE(PTA)) :: zevap_greenroof ! evaporation over greenroofs (kg/m2/s)
714 REAL, DIMENSION(SIZE(PTA)) :: zsfco2_greenroof ! CO2 fluxes over greenroofs (m/s*kg_CO2/kg_air)
715 !
716 ! fluxes from built surfaces
717 REAL, DIMENSION(SIZE(PTA)) :: zemit_lw_road ! LW flux emitted by the road (W/m2 road)
718 !
719 ! fluxes from/to solar panel
720 REAL, DIMENSION(SIZE(PTA)) :: zemit_lwdn_panel ! LW flux emitted DOWNWARDS by the solar panel (W/m2 panel)
721 REAL, DIMENSION(SIZE(PTA)) :: zemit_lwup_panel ! LW flux emitted UPWARDS by the solar panel (W/m2 panel)
722 REAL, DIMENSION(SIZE(PTA)) :: zemit_lw_roof ! LW flux emitted UPWARDS by the roof (W/m2 roof )
723 !
724 !new local variables for shading
725 REAL, DIMENSION(SIZE(PTA)) :: ze_shading ! energy not ref., nor absorbed, nor
726  ! trans. by glazing [Wm-2(win)]
727 LOGICAL, DIMENSION(SIZE(PTA)) :: gshade ! describes if one encounters the
728 ! ! conditions to close windows
729 !
730 !
731 INTEGER :: jj
732 
733 REAL(KIND=JPRB) :: zhook_handle
734 !-------------------------------------------------------------------------------
735 !
736 !* 1. Initializations
737 ! ---------------
738 !
739 !* 1.0 broadband radiative fluxes
740 ! --------------------------
741 !
742 IF (lhook) CALL dr_hook('TEB_GARDEN',0,zhook_handle)
743 zdir_sw(:) = 0.
744 zsca_sw(:) = 0.
745 !
746 DO jswb=1,ksw
747  DO jj=1,SIZE(pdir_sw,1)
748  zdir_sw(jj) = zdir_sw(jj) + pdir_sw(jj,jswb)
749  zsca_sw(jj) = zsca_sw(jj) + psca_sw(jj,jswb)
750  ENDDO
751 END DO
752 !
753 !
754 !* 1.1 surfaces relative fractions
755 ! ---------------------------
756 !
757 DO jj=1,SIZE(proad)
758  IF (proad(jj) .GT. 0.) THEN
759  ztots_o_hors(jj) = 1. + pwall_o_hor(jj)
760  zroof_frac(jj) = pbld(jj) / ztots_o_hors(jj)
761  zwall_frac(jj) = pwall_o_hor(jj) / ztots_o_hors(jj)
762  zroad_frac(jj) = proad(jj) / ztots_o_hors(jj)
763  zgarden_frac(jj) = pgarden(jj) / ztots_o_hors(jj)
764  zwall_o_road(jj) = zwall_frac(jj) / zroad_frac(jj)
765  zwall_o_grnd(jj) = zwall_frac(jj) / (zroad_frac(jj)+zgarden_frac(jj))
766  ELSEIF (pbld(jj) .EQ. 0. .AND. proad(jj) .EQ. 0.) THEN
767  ztots_o_hors(jj) = 1. + pwall_o_hor(jj)
768  zroof_frac(jj) = 0.
769  zwall_frac(jj) = pwall_o_hor(jj) / ztots_o_hors(jj)
770  zroad_frac(jj) = 0.
771  zgarden_frac(jj) = pgarden(jj) / ztots_o_hors(jj)
772  zwall_o_road(jj) = 0.
773  zwall_o_grnd(jj) = zwall_frac(jj) / zgarden_frac(jj)
774  ENDIF
775 ENDDO
776 !
777 !-------------------------------------------------------------------------------
778 !
779 !* 2. Snow-covered surfaces relative effects
780 ! --------------------------------------
781 !
782 !* 2.1 Snow-covered surfaces relative fractions (at previous time-step)
783 ! ----------------------------------------
784  CALL snow_frac_road(pwsnow_road(:,1),psr(:)>0.,zdn_road,zdf_road)
785  CALL snow_frac_roof(pwsnow_roof(:,1),psr(:)>0.,zdn_roof,zdf_roof)
786 !
787 !* new snow albedo
788 !
789 WHERE (pwsnow_road(:,1)==0. .AND. psr(:)>0.) pasnow_road(:) = xansmax
790 WHERE (pwsnow_roof(:,1)==0. .AND. psr(:)>0.) pasnow_roof(:) = xansmax
791 !
792 !* 2.2 If snow was not present at previous time-step but is falling
793 ! ------------------------------------------------------------
794 !
795 WHERE (pwsnow_road(:,1)==0. .AND. psr(:)>0.)
796  pasnow_road(:) = xansmax
797  pesnow_road(:) = xemissn
798  ptssnow_road(:)= min(pt_road(:,1), xtt)
799 END WHERE
800 WHERE (pwsnow_roof(:,1)==0. .AND. psr(:)>0.)
801  pasnow_roof(:) = xansmax
802  pesnow_roof(:) = xemissn
803  ptssnow_roof(:)= min(pt_roof(:,1), xtt)
804 END WHERE
805 !
806 !* 2.3 Radiative snow variables at previous time-step
807 ! ----------------------------------------------
808 !
809 zesnow_roof(:) = pesnow_roof(:)
810 zesnow_road(:) = pesnow_road(:)
811 ztssnow_roof(:) = ptssnow_roof(:)
812 ztssnow_road(:) = ptssnow_road(:)
813 !
814 !-------------------------------------------------------------------------------
815 !
816 !* 3. Extrapolation of atmospheric T and q at roof level (for fluxes computation)
817 ! --------------------------------------------------
818 !
819 zta(:) = pta(:) * pexns(:) / pexna(:)
820 zqa(:) = pqa(:) * qsat(pta(:),pps(:)) / qsat(zta(:),ppa(:))
821 !
822 !-------------------------------------------------------------------------------
823 !
824 !* 4. Grid-averaged albedo and emissivity of green areas
825 ! --------------------------------------------------
826 !
827 zalb_garden = xundef
828 zemis_garden = xundef
829 zts_garden = xundef
830 !
831 IF (ogarden) THEN
832  CALL garden_properties(tm%T, gdm, &
833  pdir_sw, psca_sw, psw_bands, ksw, &
834  zts_garden, zemis_garden, zalb_garden, &
835  pta=pt_lowcan, &
836  palbnir_tveg=zalbnir_tveg_garden, &
837  palbvis_tveg=zalbvis_tveg_garden, &
838  palbnir_tsoil=zalbnir_tsoil_garden, &
839  palbvis_tsoil=zalbvis_tsoil_garden )
840 ENDIF
841 !
842 ! for greenroofs :
843 !
844 zalb_greenroof = xundef
845 zemis_greenroof = xundef
846 zts_greenroof = xundef
847 !
848 IF (ogreenroof) THEN
849  CALL greenroof_properties(tm%T, gdm%TVG, grm, &
850  pdir_sw, psca_sw, psw_bands, ksw, &
851  zts_greenroof, zemis_greenroof, &
852  zalb_greenroof, pta=pta, &
853  palbnir_tveg=zalbnir_tveg_greenroof, &
854  palbvis_tveg=zalbvis_tveg_greenroof, &
855  palbnir_tsoil=zalbnir_tsoil_greenroof, &
856  palbvis_tsoil=zalbvis_tsoil_greenroof )
857 ENDIF
858 !
859 !-------------------------------------------------------------------------------
860 !
861 !* 5. Occupation of buildings
862 ! -----------------------
863 !
864 !* when building in unoccupied, target temperature is modified
865 !
866 IF (hbem=="BEM") THEN
867  CALL bld_occ_calendar(tptime%TDATE%YEAR,tptime%TDATE%MONTH,tptime%TDATE%DAY,ptsun, &
868  presidential,ptcool_target, ptheat_target, pqin, &
869  pdt_res,pdt_off,1.,pcur_tcool_target, pcur_theat_target, pcur_qin )
870 ENDIF
871 !
872 !-------------------------------------------------------------------------------
873 !
874 !* 5. Solar radiation
875 ! ---------------
876 !
877 !
878 !* 5.1 Windows management
879 ! ------------------
880 !
881 !* checks if one encouters the conditions for closing the windows at day
882 ! (needs to be equiped of solar protections and not to be confortable inside)
883 !
884 gshade(:) = .false.
885 IF (hbem=="BEM") THEN
886  CALL window_shading_availability(oshade, pti_bld, pcur_tcool_target,gshade)
887 !
888 !* Reinitialize shading of windows when changing day
889 !
890  WHERE (ptsun .LT. ptstep + 1e-3) oshad_day(:) = .false.
891 END IF
892 !
893 !
894 !* 5.2 computes solar radiation exchanges
895 ! ----------------------------------
896 !
897  CALL urban_solar_abs(hbem, hroad_dir, hwall_opt, &
898  zdir_sw, zsca_sw, pzenith, pazim, &
899  pbld, pgarden, proad_dir, proad, pfrac_gr, &
900  pwall_o_hor, pcan_hw_ratio, &
901  palb_roof, &
902  palb_road, psvf_road, palb_wall, psvf_wall, &
903  pfrac_panel, palb_panel, &
904  zalb_garden, psvf_garden, &
905  zalb_greenroof, &
906  pasnow_roof, pasnow_road, &
907  zdn_roof, zdf_roof, zdn_road, zdf_road, &
908  pgr, pabs_win, pshgc, pshgc_sh, palb_win, &
909  pabs_sw_roof, pabs_sw_road, &
910  pabs_sw_wall_a, pabs_sw_wall_b, &
911  pabs_sw_garden, pabs_sw_greenroof, &
912  pabs_sw_snow_roof, pabs_sw_snow_road, &
913  pabs_sw_panel, &
914  zrec_sw_road, zrec_sw_snow_road, &
915  zrec_sw_wall_a, zrec_sw_wall_b, &
916  zrec_sw_garden, zrec_sw_roof, &
917  pdir_alb_town,psca_alb_town, &
918  zsw_rad_garden, pabs_sw_win, zrec_sw_win, &
919  ptran_win, &
920  pref_sw_grnd, pref_sw_fac, &
921  ptr_sw_win, ze_shading, oshad_day, &
922  gshade )
923 !
924 !-------------------------------------------------------------------------------
925 !
926 !* 6. LW properties
927 ! -------------
928 !
929  CALL urban_lw_coef(pgr, pbld, plw_rad, &
930  pemis_road, psvf_road, pemis_wall, psvf_wall, &
931  zemis_garden, proad, pgarden, &
932  pesnow_road, &
933  ptssnow_road, pt_wall_a(:,1), pt_wall_b(:,1), &
934  pt_road(:,1), zts_garden, pt_win1, &
935  zlw_wa_to_wb, zlw_wa_to_r, zlw_wb_to_r, &
936  zlw_wa_to_nr, zlw_wb_to_nr,zlw_wa_to_g,zlw_wb_to_g,&
937  zlw_wa_to_win, zlw_wb_to_win, &
938  zlw_r_to_wa, zlw_r_to_wb, zlw_r_to_win, &
939  zlw_g_to_wa, zlw_g_to_wb, zlw_g_to_win, &
940  zlw_s_to_wa, zlw_s_to_wb, zlw_s_to_r, &
941  zlw_s_to_nr, zlw_s_to_g,zlw_s_to_win, &
942  zlw_win_to_wa, zlw_win_to_wb, &
943  zlw_win_to_r, zlw_win_to_nr, zlw_win_to_g, &
944  zlw_nr_to_wa, zlw_nr_to_wb, zlw_nr_to_win )
945 !
946 !-------------------------------------------------------------------------------
947 !
948 ! The subroutine is splitted in 2 because of compilation optimization issues
949  CALL teb_garden2
950  CALL teb_garden3
951 !
952 IF (lhook) CALL dr_hook('TEB_GARDEN',1,zhook_handle)
953 !-------------------------------------------------------------------------------
954  CONTAINS
955 !-------------------------------------------------------------------------------
956 SUBROUTINE teb_garden2
957 !
958 !* 7. Terms of radiation absorption
959 ! -----------------------------
960 !
961 !* 7.1 IR rad received by gardens (snow free and snow covered separately)
962 ! --------------------------
963 !
964 IF (ogarden) THEN
965  zt_sky(:) = (plw_rad(:)/xstefan)**0.25
966  zrec_lw_garden(:) = (zlw_s_to_g(:) * (zt_sky(:) - zts_garden(:)) &
967  + zlw_wa_to_g(:) * (pt_wall_a(:,1)- zts_garden(:)) &
968  + zlw_wb_to_g(:) * (pt_wall_b(:,1)- zts_garden(:)) &
969  + zlw_win_to_g(:) * (pt_win1(:) - zts_garden(:)) ) &
970  / zemis_garden(:) + xstefan * zts_garden(:)**4
971 ELSE
972  zrec_lw_garden(:) = xundef
973 END IF
974 !
975 !* 7.2 Effect of solar panels on incoming LW on roofs
976 ! ----------------------------------------------
977 !
978 IF (osolar_panel) THEN
979  !
980  ! solar panels downwards surface is supposed to be at air temperature
981  ! and to be have an emissivity of 1.
982  !
983  zemit_lwdn_panel = xstefan * pta**4
984  !
985  ! note that, for the time being, one considers that the solar panel
986  ! intercept radiation both above roof and greenroofs (if any)
987  zrec_lw_roof = (1.-pfrac_panel(:)) * plw_rad &
988  + pfrac_panel(:) * zemit_lwdn_panel
989 ELSE
990  zemit_lwdn_panel = xundef
991  zrec_lw_roof = plw_rad
992 END IF
993 !
994 !-------------------------------------------------------------------------------
995 !
996 !* 8. Treatment of green areas
997 ! ------------------------
998 !
999 !* 8.1 Implicit coeefs for T and Q
1000 ! ---------------------------
1001 !
1002 !* explicit coupling for the time being.
1003 ! canopy may need implicitation if there is a lot a garden in the grid mesh
1004 !
1005 zpet_a_coef(:) = 0.
1006 zpet_b_coef(:) = pt_lowcan(:) / pexns(:)
1007 zpeq_a_coef(:) = 0.
1008 zpeq_b_coef(:) = pq_lowcan(:)
1009 !
1010 !* 8.2 Call ISBA for green areas
1011 ! -------------------------
1012 !
1013 IF (ogarden) THEN
1014 !
1015  CALL garden(dtco, dti, ig, i, tm%TG, tm%T, tm%TOP, grm%DTGR, grm%TGRO, gdm, &
1016  himplicit_wind, tptime, ptsun, ppew_a_coef_lowcan, ppew_b_coef_lowcan, &
1017  zpet_a_coef, zpeq_a_coef, zpet_b_coef, zpeq_b_coef, &
1018  ptstep, pz_lowcan, &
1019  pt_lowcan, pq_lowcan, pexns, prhoa, pco2, pps, prr, psr, pzenith, &
1020  zrec_sw_garden, zrec_lw_garden, pu_lowcan, &
1021  zalbnir_tveg_garden, zalbvis_tveg_garden, &
1022  zalbnir_tsoil_garden, zalbvis_tsoil_garden, &
1023  prn_garden,ph_garden,ple_garden,pgflux_garden, zsfco2_garden, &
1024  zevap_garden, zuw_garden,prunoff_garden, &
1025  pac_garden,zqsat_garden,zts_garden, &
1026  zac_agg_garden, zhu_agg_garden, &
1027  pdrain_garden, pirrig_garden )
1028 
1029  pac_garden_wat(:) = pac_garden(:)
1030  pabs_sw_garden(:) = (1.-zalb_garden(:)) * zrec_sw_garden
1031  pabs_lw_garden(:) = zemis_garden(:) * zrec_lw_garden(:) - &
1032  xstefan * zemis_garden(:) * zts_garden(:)**4
1033  zemit_lw_garden(:) = xstefan * zts_garden(:)**4 + &
1034  (1 - zemis_garden(:)) / zemis_garden(:) * pabs_lw_garden(:)
1035 
1036 ELSE
1037 !
1038  prn_garden(:) = 0.
1039  ph_garden(:) = 0.
1040  ple_garden(:) = 0.
1041  pgflux_garden(:) = 0.
1042  zuw_garden(:) = 0.
1043  pac_garden(:) = 0.
1044  pgflux_garden(:) = 0.
1045  zevap_garden(:) = 0.
1046  zsfco2_garden(:) = 0.
1047  zqsat_garden(:) = xundef
1048  zts_garden(:) = xundef
1049  zac_agg_garden(:) = xundef
1050  zhu_agg_garden(:) = xundef
1051  pac_garden_wat(:) = xundef
1052  pabs_sw_garden(:) = xundef
1053  pabs_lw_garden(:) = xundef
1054  zemit_lw_garden(:) = 0.
1055  prunoff_garden(:) = 0.
1056  pdrain_garden(:) = 0.
1057  pirrig_garden(:) = 0.
1058 !
1059 ENDIF
1060 !
1061 !* 8.3 Call ISBA for greenroofs
1062 ! -------------------------
1063 !
1064 IF (ogreenroof) THEN
1065 !
1066  !
1067  CALL greenroof(dtco, dti, ig, i, tm%TG, tm%T, tm%TOP, gdm%TVG, gdm%DTGD, gdm%TIR, grm, &
1068  himplicit_wind, tptime, ptsun, ppew_a_coef, ppew_b_coef, &
1069  zpet_a_coef, zpeq_a_coef, zpet_b_coef, zpeq_b_coef, &
1070  ptstep, pzref, puref, &
1071  pta, pqa, pexns, pexna,prhoa, pco2, pps, prr, psr, pzenith, &
1072  zrec_sw_roof, zrec_lw_roof, pvmod, &
1073  zalbnir_tveg_greenroof, zalbvis_tveg_greenroof, &
1074  zalbnir_tsoil_greenroof, zalbvis_tsoil_greenroof, &
1075  prn_greenroof,ph_greenroof,ple_greenroof,pgflux_greenroof, &
1076  zsfco2_greenroof,zevap_greenroof, zuw_greenroof, &
1077  pac_greenroof,zqsat_greenroof,zts_greenroof, &
1078  zac_agg_greenroof, zhu_agg_greenroof,pg_greenroof_roof, &
1079  prunoff_greenroof, pdrain_greenroof, pirrig_greenroof )
1080 !
1081  pac_greenroof_wat(:) = pac_greenroof(:)
1082  pabs_sw_greenroof(:) = (1.-zalb_greenroof(:)) * zrec_sw_roof
1083  pabs_lw_greenroof(:) = zemis_greenroof * zrec_lw_roof - xstefan * zemis_greenroof * zts_greenroof**4
1084 
1085 ELSE
1086 !
1087  prn_greenroof(:) = 0.
1088  ph_greenroof(:) = 0.
1089  ple_greenroof(:) = 0.
1090  pgflux_greenroof(:) = 0.
1091  zuw_greenroof(:) = 0.
1092  pac_greenroof(:) = 0.
1093  zevap_greenroof(:) = 0.
1094  zsfco2_greenroof(:) = 0.
1095  prunoff_greenroof(:) = 0.
1096  pdrain_greenroof(:) = 0.
1097  pirrig_greenroof(:) = 0.
1098  zqsat_greenroof(:) = xundef
1099  zts_greenroof(:) = xundef
1100  zac_agg_greenroof(:) = xundef
1101  zhu_agg_greenroof(:) = xundef
1102  pabs_sw_greenroof(:) = xundef
1103  pabs_lw_greenroof(:) = xundef
1104  zmtc_o_gr_r1(:) = xundef
1105  pg_greenroof_roof(:) = xundef
1106 !
1107 ENDIF
1108 
1109 END SUBROUTINE teb_garden2
1110 !-------------------------------------------------------------------------------
1111 SUBROUTINE teb_garden3
1112 !
1113 !* 9. Treatment of built covers
1114 ! -------------------------
1115 !
1116  CALL teb(hz0h, himplicit_wind, hwall_opt, hbem, tptime, ptsun, &
1117  pt_canyon, pq_canyon, pu_canyon, &
1118  pt_lowcan, pq_lowcan, pu_lowcan, pz_lowcan, &
1119  pti_bld, &
1120  pt_roof, pt_road, pt_wall_a, pt_wall_b, &
1121  pws_roof, pws_road, &
1122  hsnow_roof, &
1123  pwsnow_roof, ptsnow_roof, prsnow_roof, pasnow_roof, &
1124  ptssnow_roof, pesnow_roof, &
1125  hsnow_road, &
1126  pwsnow_road, ptsnow_road, prsnow_road, pasnow_road, &
1127  ptssnow_road, pesnow_road, &
1128  ppew_a_coef, ppew_b_coef, &
1129  ppew_a_coef_lowcan, ppew_b_coef_lowcan, &
1130  pps, ppa, pexns, pexna, &
1131  pta, pqa, prhoa, &
1132  plw_rad, &
1133  prr, psr, &
1134  pzref, puref, pvmod, &
1135  ph_traffic, ple_traffic, ph_industry, ple_industry, &
1136  ptstep, &
1137  pz0_town, &
1138  pbld, pgarden, proad, pfrac_gr, &
1139  pbld_height, pwall_o_hor, pcan_hw_ratio, pwall_o_grnd, &
1140  zdf_roof, zdn_roof, zdf_road, zdn_road, &
1141  zqsat_roof, zqsat_road, zdelt_roof, zdelt_road, &
1142  pemis_roof, &
1143  phc_roof,ptc_roof,pd_roof, &
1144  pemis_road, &
1145  phc_road,ptc_road,pd_road, &
1146  pemis_wall, &
1147  zts_garden, &
1148  phc_wall,ptc_wall,pd_wall, &
1149  prn_roof, ph_roof, ple_roof, plew_roof, pgflux_roof, &
1150  prunoff_roof, &
1151  prn_greenroof, ph_greenroof, ple_greenroof, &
1152  pgflux_greenroof, zuw_greenroof, &
1153  prunoff_greenroof, pdrain_greenroof, &
1154  prn_strlroof, ph_strlroof, ple_strlroof, pgflux_strlroof,&
1155  prunoff_strlroof, &
1156  prn_road, ph_road, ple_road, plew_road, pgflux_road, &
1157  prunoff_road, &
1158  prn_wall_a, ph_wall_a, ple_wall_a, pgflux_wall_a, &
1159  prn_wall_b, ph_wall_b, ple_wall_b, pgflux_wall_b, &
1160  prn_blt,ph_blt,ple_blt,pgflux_blt, &
1161  prnsnow_roof, phsnow_roof, plesnow_roof, pgsnow_roof, &
1162  pmelt_roof, &
1163  prnsnow_road, phsnow_road, plesnow_road, pgsnow_road, &
1164  pmelt_road, &
1165  pg_greenroof_roof, &
1166  zuw_road, puw_roof, zduwdu_road, pduwdu_roof, &
1167  pustar_town, pcd, pcdn, pch_town, pri_town, &
1168  presa_town, pdqs_town, pqf_town, pqf_bld, pflx_bld, &
1169  zac_roof, pac_road, zac_wall, zac_top, pac_garden, &
1170  zac_roof_wat, pac_road_wat, &
1171  pabs_sw_roof, pabs_lw_roof, &
1172  pabs_sw_snow_roof, pabs_lw_snow_roof, &
1173  pabs_sw_road, pabs_lw_road, &
1174  pabs_sw_snow_road, pabs_lw_snow_road, &
1175  pabs_sw_wall_a, pabs_lw_wall_a, &
1176  pabs_sw_wall_b, pabs_lw_wall_b, &
1177  zlw_wa_to_wb, &
1178  zlw_wa_to_r, zlw_wb_to_r, &
1179  zlw_wa_to_nr, zlw_wb_to_nr, &
1180  zlw_r_to_wa, zlw_r_to_wb, &
1181  zlw_g_to_wa, zlw_g_to_wb, &
1182  zlw_s_to_wa, zlw_s_to_wb, zlw_s_to_r, &
1183  zlw_s_to_nr, zlw_nr_to_wa, zlw_nr_to_wb, &
1184  zlw_nr_to_win, zlw_wa_to_win, zlw_wb_to_win, &
1185  zlw_g_to_win, &
1186  zlw_r_to_win, zlw_s_to_win, zlw_win_to_wa, zlw_win_to_wb,&
1187  zlw_win_to_r, zlw_win_to_nr, &
1188  hnatvent, &
1189  hcool_coil, pf_water_cond, hheat_coil, &
1190  .false., kday, paux_max, pt_floor, &
1191  pt_mass, ph_bld_cool, pt_bld_cool, &
1192  ph_bld_heat, ple_bld_cool, ple_bld_heat, &
1193  ph_waste, ple_waste, pf_waste_can, phvac_cool, &
1194  phvac_heat, pcur_qin, pqin_frad, pqin_flat, &
1195  pgr, peff_heat, pinf, pcur_tcool_target, &
1196  pcur_theat_target, phr_target, pt_win2, pqi_bld, &
1197  pv_vent, pcap_sys_heat, pcap_sys_rat, pt_adp, &
1198  pm_sys_rat, pcop_rat, pcap_sys, pm_sys, pcop, &
1199  pq_sys, pt_sys, ptr_sw_win, pfan_power, phc_floor, &
1200  ptc_floor, pd_floor, pt_win1, pabs_sw_win, pabs_lw_win, &
1201  pugg_win, pemit_lw_fac, zemit_lw_road, pt_rad_ind, &
1202  phu_bld, ptime, ze_shading, onatvent_night, &
1203  pn_floor, pwall_o_bld, pglaz_o_bld, &
1204  pmass_o_bld, pfloor_hw_ratio, &
1205  pf_floor_mass, pf_floor_wall, pf_floor_win, &
1206  pf_floor_roof, pf_wall_floor, pf_wall_mass, pf_wall_win, &
1207  pf_win_floor, pf_win_mass, pf_win_wall, pf_mass_floor, &
1208  pf_mass_wall, pf_mass_win, ocanopy, &
1209  hch_bem, prough_roof, prough_wall, pf_win_win, &
1210  opar_rd_irrig, prd_start_month, prd_end_month, &
1211  prd_start_hour, prd_end_hour, prd_24h_irrig, pirrig_road )
1212 !
1213 !-------------------------------------------------------------------------------
1214 !
1215 !* 10. Treatment of solar panels
1216 ! -------------------------
1217 !
1218 IF (osolar_panel) THEN
1219  !
1220  !* LW radiation coming upwards from roofs
1221  !
1222  zemit_lw_roof = zrec_lw_roof &
1223  - ( pfrac_gr(:) * pabs_lw_greenroof(:)&
1224  + (1.-pfrac_gr(:)) * zdf_roof(:) * pabs_lw_roof(:) &
1225  + (1.-pfrac_gr(:)) * zdn_roof(:) * pabs_lw_snow_roof(:)&
1226  )
1227  !
1228  ! note that, for the time being, one considers that the solar panel
1229  ! intercept radiation both above roof and greenroofs (if any)
1230  CALL solar_panel(ptstep, ptsun, presidential, &
1231  zemit_lw_roof,zemit_lwdn_panel, plw_rad, &
1232  pabs_sw_panel, pta, pn_floor, pfrac_panel, &
1233  pemis_panel, palb_panel, peff_panel, &
1234  pabs_lw_panel, ph_panel, prn_panel, &
1235  pther_prodc_day, &
1236  pther_prod_panel, pphot_prod_panel,pprod_panel,&
1237  pther_prod_bld, pphot_prod_bld, pprod_bld )
1238 ELSE
1239  pabs_lw_panel = xundef
1240  pther_prod_panel = xundef
1241  pphot_prod_panel = xundef
1242  pprod_panel = xundef
1243  pther_prod_bld = xundef
1244  pphot_prod_bld = xundef
1245  pprod_bld = xundef
1246  ph_panel = xundef
1247  prn_panel = xundef
1248 END IF
1249 !-------------------------------------------------------------------------------
1250 !
1251 !* 11. Aggregation
1252 ! -----------
1253 !
1254  CALL avg_urban_fluxes(pts_town, pemis_town, &
1255  pt_canyon, pq_canyon, &
1256  pt_lowcan, pq_lowcan, &
1257  pt_roof(:,1),pt_road(:,1),pt_wall_a(:,1), pt_wall_b(:,1), &
1258  zts_garden, &
1259  zta, zqa, prhoa, pps, &
1260  ph_traffic, ple_traffic, ph_industry, ple_industry, &
1261  pbld, proad, pgarden, pwall_o_hor, zwall_o_grnd, &
1262  pfrac_gr, &
1263  pemis_roof, zesnow_roof, zemis_greenroof, &
1264  plw_rad, &
1265  pabs_lw_roof, pabs_lw_wall_a, pabs_lw_wall_b, &
1266  pabs_lw_road, pabs_lw_garden, pabs_lw_greenroof, &
1267  pabs_lw_snow_roof, pabs_lw_snow_road, &
1268  zac_roof, zac_roof_wat, &
1269  zac_wall, pac_road, pac_road_wat, zac_top, &
1270  pac_garden, &
1271  zqsat_garden, zac_agg_garden, zhu_agg_garden, &
1272  zqsat_roof, zqsat_road, &
1273  zdelt_roof, zdelt_road, &
1274  zroof_frac, zwall_frac, zroad_frac, zgarden_frac, &
1275  ztots_o_hors, &
1276  zdf_roof, zdn_roof, zdf_road, zdn_road, &
1277  prn_roof, ph_roof, ple_roof, pgflux_roof, &
1278  prn_road, ph_road, ple_road, pgflux_road, &
1279  prn_garden, ph_garden, ple_garden, pgflux_garden, &
1280  prn_wall_a, ph_wall_a, ple_wall_a, pgflux_wall_a, &
1281  prn_wall_b, ph_wall_b, ple_wall_b, pgflux_wall_b, &
1282  plew_roof, plesnow_roof, &
1283  plew_road, plesnow_road, phsnow_road, &
1284  zevap_garden, zevap_greenroof, &
1285  prn_grnd, ph_grnd, ple_grnd, pgflux_grnd, &
1286  prn_town, ph_town, ple_town, pgflux_town, pevap_town, &
1287  prunoff_garden,prunoff_road,prunoff_strlroof, &
1288  prunoff_greenroof, pdrain_greenroof, prunoff_town, &
1289  pabs_lw_panel, pemis_panel, pfrac_panel, prn_panel, &
1290  ph_panel, &
1291  ph_waste, ple_waste, pf_waste_can, &
1292  pabs_lw_win, pt_win1, pgr, zemit_lw_road, zemit_lw_garden,&
1293  pemit_lw_grnd, hbem, psvf_road, psvf_garden, psvf_wall, &
1294  pgarden_o_grnd, proad_o_grnd, &
1295  pemis_road, pesnow_road, pemis_wall, zemis_garden, ocanopy)
1296 !
1297 psfco2(:) = pgarden(:) * zsfco2_garden(:) + pbld(:) * pfrac_gr(:) * zsfco2_greenroof(:) ! no CO2 flux from built and road yet.
1298 !
1299 !-------------------------------------------------------------------------------
1300 !
1301 !* 12. Momentum flux for ground built surfaces
1302 ! ---------------------------------------
1303 !
1304 puw_grnd(:) = (proad(:)*zuw_road(:) + pgarden(:)*zuw_garden(:)) / (proad(:)+pgarden(:))
1305 !
1306 pduwdu_grnd(:) = 0.
1307 !
1308 END SUBROUTINE teb_garden3
1309 !
1310 !-------------------------------------------------------------------------------
1311 !
1312 !
1313 END SUBROUTINE teb_garden
subroutine teb_garden(DTCO, DTI, IG, I, TM, GDM, GRM, OGARDEN, OGREENROOF, OSOLAR_PANEL, HZ0H, HIMPLICIT_WIND, HROAD_DIR, HWALL_OPT, 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, PCO2, PLW_RAD, PDIR_SW, PSCA_SW, PSW_BANDS, KSW, PZENITH, PAZIM, PRR, PSR, PZREF, PUREF, PVMOD, PH_TRAFFIC, PLE_TRAFFIC, PH_INDUSTRY, PLE_INDUSTRY, PTSTEP, PZ0_TOWN, PBLD, PGARDEN, PROAD_DIR, PROAD, PFRAC_GR, PBLD_HEIGHT, PWALL_O_HOR, PCAN_HW_RATIO, PROAD_O_GRND, PGARDEN_O_GRND, PWALL_O_GRND, PALB_ROOF, PEMIS_ROOF, PHC_ROOF, PTC_ROOF, PD_ROOF, PALB_ROAD, PEMIS_ROAD, PSVF_ROAD, PHC_ROAD, PTC_ROAD, PD_ROAD, PALB_WALL, PEMIS_WALL, PSVF_WALL, PSVF_GARDEN, PHC_WALL, PTC_WALL, PD_WALL, PRN_ROOF, PH_ROOF, PLE_ROOF, PLEW_ROOF, PGFLUX_ROOF, PRUNOFF_ROOF, 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_GARDEN, PH_GARDEN, PLE_GARDEN, PGFLUX_GARDEN, PRUNOFF_GARDEN, PDRAIN_GARDEN, PIRRIG_GARDEN, PRN_GREENROOF, PH_GREENROOF, PLE_GREENROOF, PGFLUX_GREENROOF, PRN_STRLROOF, PH_STRLROOF, PLE_STRLROOF, PGFLUX_STRLROOF, PRUNOFF_STRLROOF, 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, PRN_GRND, PH_GRND, PLE_GRND, PGFLUX_GRND, PRN_TOWN, PH_TOWN, PLE_TOWN, PGFLUX_TOWN, PEVAP_TOWN, PRUNOFF_TOWN, PSFCO2, PUW_GRND, PUW_ROOF, PDUWDU_GRND, PDUWDU_ROOF, PUSTAR_TOWN, PCD, PCDN, PCH_TOWN, PRI_TOWN, PTS_TOWN, PEMIS_TOWN, PDIR_ALB_TOWN, PSCA_ALB_TOWN, PRESA_TOWN, PDQS_TOWN, PQF_TOWN, PQF_BLD, PFLX_BLD, PAC_ROAD, PAC_GARDEN, PAC_GREENROOF, PAC_ROAD_WAT, PAC_GARDEN_WAT, PAC_GREENROOF_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, PABS_SW_PANEL, PABS_LW_PANEL, PABS_SW_GARDEN, PABS_LW_GARDEN, PABS_SW_GREENROOF, PABS_LW_GREENROOF, PG_GREENROOF_ROOF, PRUNOFF_GREENROOF, PDRAIN_GREENROOF, PIRRIG_GREENROOF, HCOOL_COIL, PF_WATER_COND, HHEAT_COIL, HNATVENT, 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, PSHGC, PSHGC_SH, PUGG_WIN, PALB_WIN, PABS_WIN, PEMIT_LW_FAC, PEMIT_LW_GRND, PT_RAD_IND, PREF_SW_GRND, PREF_SW_FAC, PHU_BLD, PTIME, OSHADE, OSHAD_DAY, ONATVENT_NIGHT, HBEM, 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, PTRAN_WIN, 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, PEMIS_PANEL, PALB_PANEL, PEFF_PANEL, PFRAC_PANEL, PRESIDENTIAL, PTHER_PROD_PANEL, PPHOT_PROD_PANEL, PPROD_PANEL, PTHER_PROD_BLD, PPHOT_PROD_BLD, PPROD_BLD, PTHER_PRODC_DAY, PH_PANEL, PRN_PANEL, PDT_RES, PDT_OFF, PCUR_TCOOL_TARGET, PCUR_THEAT_TARGET, PCUR_QIN)
Definition: teb_garden.F90:6
subroutine avg_urban_fluxes(PTS_TOWN, PEMIS_TOWN, PT_CANYON, PQ_CANYON, PT_LOWCAN, PQ_LOWCAN, PTS_ROOF, PTS_ROAD, PTS_WALL_A, PTS_WALL_B, PTS_GARDEN, PTA, PQA, PRHOA, PPS, PH_TRAFFIC, PLE_TRAFFIC, PH_INDUSTRY, PLE_INDUSTRY, PBLD, PROAD, PGARDEN, PWALL_O_HOR, PWALL_O_GRND, PFRAC_GR, PEMIS_ROOF, PESNOW_ROOF, PEMIS_GREENROOF, PLW_RAD, PABS_LW_ROOF, PABS_LW_WALL_A, PABS_LW_WALL_B, PABS_LW_ROAD, PABS_LW_GARDEN, PABS_LW_GREENROOF, PABS_LW_SNOW_ROOF, PABS_LW_SNOW_ROAD, PAC_ROOF, PAC_ROOF_WAT, PAC_WALL, PAC_ROAD, PAC_ROAD_WAT, PAC_TOP, PAC_GARDEN, PQSAT_GARDEN, PAC_AGG_GARDEN, PHU_AGG_GARDEN, PQSAT_ROOF, PQSAT_ROAD, PDELT_ROOF, PDELT_ROAD, PROOF_FRAC, PWALL_FRAC, PROAD_FRAC, PGARDEN_FRAC, PTOTS_O_HORS, PDF_ROOF, PDN_ROOF, PDF_ROAD, PDN_ROAD, PRN_ROOF, PH_ROOF, PLE_ROOF, PGFLUX_ROOF, PRN_ROAD, PH_ROAD, PLE_ROAD, PGFLUX_ROAD, PRN_GARDEN, PH_GARDEN, PLE_GARDEN, PGFLUX_GARDEN, PRN_WALL_A, PH_WALL_A, PLE_WALL_A, PGFLUX_WALL_A, PRN_WALL_B, PH_WALL_B, PLE_WALL_B, PGFLUX_WALL_B, PLEW_ROOF, PLESNOW_ROOF, PLEW_ROAD, PLESNOW_ROAD, PHSNOW_ROAD, PEVAP_GARDEN, PEVAP_GREENROOF, PRN_GRND, PH_GRND, PLE_GRND, PGFLUX_GRND, PRN_TOWN, PH_TOWN, PLE_TOWN, PGFLUX_TOWN, PEVAP_TOWN, PRUNOFF_GARDEN, PRUNOFF_ROAD, PRUNOFF_STRLROOF, PRUNOFF_GREENROOF, PDRAIN_GREENROOF, PRUNOFF_TOWN, PABS_LW_PANEL, PEMIS_PANEL, PFRAC_PANEL, PRN_PANEL, PH_PANEL, PH_WASTE, PLE_WASTE, PF_WASTE_CAN, PABS_LW_WIN, PT_WIN1, PGR, PEMIT_LW_ROAD, PEMIT_LW_GARDEN, PEMIT_LW_GRND, HBEM, PSVF_ROAD, PSVF_GARDEN, PSVF_WALL, PGARDEN_O_GRND, PROAD_O_GRND, PEMIS_ROAD, PESNOW_ROAD, PEMIS_WALL, PEMIS_GARDEN, OCANOPY)
subroutine greenroof(DTCO, DTI, IG, I, TG, T, TOP, TVG, DTGD, TIR, GRM, 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_GREENROOF, PH_GREENROOF, PLE_GREENROOF, PGFLUX_GREENROOF, PSFCO2, PEVAP_GREENROOF, PUW_GREENROOF, PAC_GREENROOF, PQSAT_GREENROOF, PTS_GREENROOF, PAC_AGG_GREENROOF, PHU_AGG_GREENROOF, PDEEP_FLUX, PRUNOFF_GREENROOF, PDRAIN_GREENROOF, PIRRIG_GREENROOF)
Definition: greenroof.F90:6
subroutine snow_frac_roof(PWSNOW_ROOF, OSNOW, PDN_ROOF, PDF_ROOF)
subroutine urban_lw_coef(PGR, PBLD, PLW_RAD, PEMIS_R, PSVF_R, PEMIS_W, PSVF_W, PEMIS_G, PROAD, PGARDEN, PESNOW_R, PTS_SR, PTS_W_A, PTS_W_B, PTS_R, PTS_G, PTS_WIN, 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 window_shading_availability(OSHADE, PTI_BLD, PTCOOL_TARGET, OSHADE_POSSIBLE)
subroutine teb_garden3
subroutine solar_panel(PTSTEP, PTSUN, PRESIDENTIAL, PEMIT_LW_ROOF, PEMIT_LWDN_PANEL, PLW_RAD, PABS_SW_PANEL, PTA, PN_FLOOR, PFRAC_PANEL, PEMIS_PANEL, PALB_PANEL, PEFF_PANEL, PABS_LW_PANEL, PH_PANEL, PRN_PANEL, PTHER_PRODC_DAY, PTHER_PROD_PANEL, PPHOT_PROD_PANEL, PPROD_PANEL, PTHER_PROD_BLD, PPHOT_PROD_BLD, PPROD_BLD)
Definition: solar_panel.F90:6
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)
subroutine garden_properties(T, GDM, PDIR_SW, PSCA_SW, PSW_BANDS, KSW, PTS, PEMIS, PALB, PTA, PALBNIR_TVEG, PALBVIS_TVEG, PALBNIR_TSOIL, PALBVIS_TSOIL)
subroutine teb_garden2
Definition: teb_garden.F90:956
subroutine greenroof_properties(T, TVG, GRM, PDIR_SW, PSCA_SW, PSW_BANDS, KSW, PTS, PEMIS, PALB, PTA, PALBNIR_TVEG, PALBVIS_TVEG, PALBNIR_TSOIL, PALBVIS_TSOIL)
subroutine bld_occ_calendar(KYEAR, KMONTH, KDAY, PTSUN, PRESIDENTIAL, PTCOOL_TARGET_IN, PTHEAT_TARGET_IN, PQIN_IN, PDT_RES, PDT_OFF, PQIN_FRAC, PTCOOL_TARGET, PTHEAT_TARGET, PQIN)
subroutine snow_frac_road(PWSNOW_ROAD, OSNOW, PDN_ROAD, PDF_ROAD)
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)
Definition: teb.F90:6
subroutine garden(DTCO, DTI, IG, I, TG, T, TOP, DTGR, TGRO, GDM, HIMPLICIT_WIND, TPTIME, PTSUN, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, PTSTEP, PZ_LOWCAN, PT_LOWCAN, PQ_LOWCAN, PEXNS, PRHOA, PCO2, PPS, PRR, PSR, PZENITH, PSW, PLW, PU_LOWCAN, PALBNIR_TVEG, PALBVIS_TVEG, PALBNIR_TSOIL, PALBVIS_TSOIL, PRN_GARDEN, PH_GARDEN, PLE_GARDEN, PGFLUX_GARDEN, PSFCO2, PEVAP_GARDEN, PUW_GARDEN, PRUNOFF_GARDEN, PAC_GARDEN, PQSAT_GARDEN, PTS_GARDEN, PAC_AGG_GARDEN, PHU_AGG_GARDEN, PDRAIN_GARDEN, PIRRIG_GARDEN)
Definition: garden.F90:6