6 pt_wall_a, pt_wall_b, ptstep, &
7 phc_wall, ptc_wall, pd_wall, &
8 pdn_road, prhoa, pac_wall, &
10 pti_bld, plw_rad, pps, pexns, &
11 pabs_sw_wall_a, pabs_sw_wall_b, pt_canyon, &
12 pts_road, ptsnow_road, pts_garden, pu_win, pgr, &
13 pabs_sw_win, pf_win_mass, pf_win_wall, &
14 pf_win_floor, pts_mass, pts_floor, pemis_wall, &
16 plw_r_to_wa, plw_r_to_wb, plw_g_to_wa, plw_g_to_wb, &
17 plw_s_to_wa, plw_s_to_wb, plw_nr_to_wa,plw_nr_to_wb,&
18 plw_win_to_wa, plw_win_to_wb, &
19 plw_s_to_win, plw_wa_to_win, plw_wb_to_win, &
20 plw_r_to_win, plw_g_to_win, plw_nr_to_win, pt_win1, &
21 pflx_bld_wall_a, pdqs_wall_a, &
22 pflx_bld_wall_b, pdqs_wall_b, &
23 pt_win2, pemit_lw_fac, &
24 pabs_lw_wall_a, pabs_lw_wall_b, pabs_lw_win, &
25 ph_wall_a, ph_wall_b, &
26 pimb_wall, pf_wall_mass, pf_wall_floor, &
27 pf_wall_win, pradht_in, prad_roof_wall, &
28 prad_roof_win, prad_wall_floor, prad_wall_mass, &
29 prad_win_floor, prad_win_mass, pconv_wall_bld, &
30 pconv_win_bld, pac_win, pload_in_wall, pload_in_win )
78 USE modi_wall_layer_e_budget
79 USE modi_window_e_budget
80 USE yomhook
,ONLY : lhook, dr_hook
81 USE parkind1
,ONLY : jprb
87 CHARACTER(LEN=4),
INTENT(IN) :: hwall_opt
90 CHARACTER(LEN=3),
INTENT(IN) :: hbem
91 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: pt_wall_a
92 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: pt_wall_b
93 REAL,
INTENT(IN) :: ptstep
94 REAL,
DIMENSION(:,:),
INTENT(IN) :: phc_wall
95 REAL,
DIMENSION(:,:),
INTENT(IN) :: ptc_wall
96 REAL,
DIMENSION(:,:),
INTENT(IN) :: pd_wall
97 REAL,
DIMENSION(:),
INTENT(IN) :: pdn_road
98 REAL,
DIMENSION(:),
INTENT(IN) :: prhoa
99 REAL,
DIMENSION(:),
INTENT(IN) :: pac_wall
101 REAL,
DIMENSION(:),
INTENT(IN) :: pac_bld
103 REAL,
DIMENSION(:),
INTENT(IN) :: pti_bld
104 REAL,
DIMENSION(:),
INTENT(IN) :: plw_rad
105 REAL,
DIMENSION(:),
INTENT(IN) :: pps
106 REAL,
DIMENSION(:),
INTENT(IN) :: pexns
107 REAL,
DIMENSION(:),
INTENT(IN) :: pabs_sw_wall_a
108 REAL,
DIMENSION(:),
INTENT(IN) :: pabs_sw_wall_b
109 REAL,
DIMENSION(:),
INTENT(IN) :: pt_canyon
110 REAL,
DIMENSION(:),
INTENT(IN) :: pts_road
111 REAL,
DIMENSION(:),
INTENT(IN) :: ptsnow_road
112 REAL,
DIMENSION(:),
INTENT(IN) :: pts_garden
113 REAL,
DIMENSION(:),
INTENT(IN) :: pu_win
114 REAL,
DIMENSION(:),
INTENT(IN) :: pgr
115 REAL,
DIMENSION(:),
INTENT(IN) :: pabs_sw_win
116 REAL,
DIMENSION(:),
INTENT(IN) :: pf_win_mass
117 REAL,
DIMENSION(:),
INTENT(IN) :: pf_win_wall
118 REAL,
DIMENSION(:),
INTENT(IN) :: pf_win_floor
119 REAL,
DIMENSION(:),
INTENT(IN) :: pts_mass
120 REAL,
DIMENSION(:),
INTENT(IN) :: pts_floor
121 REAL,
DIMENSION(:),
INTENT(IN) :: pemis_wall
123 REAL,
DIMENSION(:),
INTENT(IN) :: plw_wa_to_wb
124 REAL,
DIMENSION(:),
INTENT(IN) :: plw_r_to_wa
125 REAL,
DIMENSION(:),
INTENT(IN) :: plw_r_to_wb
126 REAL,
DIMENSION(:),
INTENT(IN) :: plw_g_to_wa
127 REAL,
DIMENSION(:),
INTENT(IN) :: plw_g_to_wb
128 REAL,
DIMENSION(:),
INTENT(IN) :: plw_s_to_wa
129 REAL,
DIMENSION(:),
INTENT(IN) :: plw_s_to_wb
130 REAL,
DIMENSION(:),
INTENT(IN) :: plw_nr_to_wa
131 REAL,
DIMENSION(:),
INTENT(IN) :: plw_nr_to_wb
132 REAL,
DIMENSION(:),
INTENT(IN) :: plw_wa_to_win
134 REAL,
DIMENSION(:),
INTENT(IN) :: plw_wb_to_win
136 REAL,
DIMENSION(:),
INTENT(IN) :: plw_s_to_win
138 REAL,
DIMENSION(:),
INTENT(IN) :: plw_win_to_wa
140 REAL,
DIMENSION(:),
INTENT(IN) :: plw_win_to_wb
142 REAL,
DIMENSION(:),
INTENT(IN) :: plw_r_to_win
144 REAL,
DIMENSION(:),
INTENT(IN) :: plw_g_to_win
145 REAL,
DIMENSION(:),
INTENT(IN) :: plw_nr_to_win
147 REAL,
DIMENSION(:),
INTENT(INOUT) :: pt_win1
148 REAL,
DIMENSION(:),
INTENT(OUT) :: pflx_bld_wall_a
149 REAL,
DIMENSION(:),
INTENT(INOUT) :: pdqs_wall_a
150 REAL,
DIMENSION(:),
INTENT(OUT) :: pflx_bld_wall_b
151 REAL,
DIMENSION(:),
INTENT(INOUT) :: pdqs_wall_b
152 REAL,
DIMENSION(:),
INTENT(INOUT) :: pt_win2
153 REAL,
DIMENSION(:),
INTENT(OUT) :: pemit_lw_fac
154 REAL,
DIMENSION(:),
INTENT(OUT) :: pabs_lw_wall_a
155 REAL,
DIMENSION(:),
INTENT(OUT) :: pabs_lw_wall_b
156 REAL,
DIMENSION(:),
INTENT(OUT) :: pabs_lw_win
157 REAL,
DIMENSION(:),
INTENT(OUT) :: ph_wall_a
159 REAL,
DIMENSION(:),
INTENT(OUT) :: ph_wall_b
161 REAL,
DIMENSION(:),
INTENT(OUT) :: pimb_wall
163 REAL,
DIMENSION(:),
INTENT(IN) :: pf_wall_floor
164 REAL,
DIMENSION(:),
INTENT(IN) :: pf_wall_mass
165 REAL,
DIMENSION(:),
INTENT(IN) :: pf_wall_win
166 REAL,
DIMENSION(:),
INTENT(IN) :: pradht_in
168 REAL,
DIMENSION(:),
INTENT(IN) :: prad_roof_wall
169 REAL,
DIMENSION(:),
INTENT(IN) :: prad_roof_win
170 REAL,
DIMENSION(:),
INTENT(OUT) :: prad_wall_floor
171 REAL,
DIMENSION(:),
INTENT(OUT) :: prad_wall_mass
172 REAL,
DIMENSION(:),
INTENT(OUT) :: prad_win_floor
173 REAL,
DIMENSION(:),
INTENT(OUT) :: prad_win_mass
174 REAL,
DIMENSION(:),
INTENT(OUT) :: pconv_wall_bld
175 REAL,
DIMENSION(:),
INTENT(OUT) :: pconv_win_bld
176 REAL,
DIMENSION(:),
INTENT(IN) :: pac_win
178 REAL,
DIMENSION(:),
INTENT(IN) :: pload_in_wall
179 REAL,
DIMENSION(:),
INTENT(IN) :: pload_in_win
182 REAL,
DIMENSION(SIZE(PTI_BLD)) :: zrad_wall_win
183 REAL,
DIMENSION(SIZE(PTI_BLD)) :: zrad_wall_a_win
184 REAL,
DIMENSION(SIZE(PTI_BLD)) :: zemis_win
185 REAL,
DIMENSION(SIZE(PTI_BLD)) :: zemit_lw_win
186 REAL,
DIMENSION(SIZE(PTI_BLD)) :: zemit_lw_wall_a
187 REAL,
DIMENSION(SIZE(PTI_BLD)) :: zemit_lw_wall_b
188 REAL,
DIMENSION(SIZE(PTI_BLD)) :: zts_wall_a
189 REAL,
DIMENSION(SIZE(PTI_BLD)) :: zts_wall_b
190 REAL,
DIMENSION(SIZE(PTI_BLD)) :: zti_wall_a
191 REAL,
DIMENSION(SIZE(PTI_BLD)) :: zti_wall_b
192 REAL,
DIMENSION(SIZE(PTI_BLD)) :: zts_wall
193 REAL,
DIMENSION(SIZE(PTI_BLD)) :: zimb_wall
194 REAL,
DIMENSION(SIZE(PTI_BLD)) :: zrad_wall_floor
195 REAL,
DIMENSION(SIZE(PTI_BLD)) :: zrad_wall_mass
196 REAL,
DIMENSION(SIZE(PTI_BLD)) :: zconv_wall_bld
197 REAL,
DIMENSION(SIZE(PTI_BLD)) :: zlw_w_to_win
199 REAL(KIND=JPRB) :: zhook_handle
201 IF (lhook) CALL dr_hook(
'FACADE_E_BUDGET',0,zhook_handle)
203 prad_wall_floor= xundef
204 prad_wall_mass = xundef
205 prad_win_floor = xundef
206 prad_win_mass = xundef
207 pconv_wall_bld = xundef
208 pconv_win_bld = xundef
213 zts_wall_a(:) = pt_wall_a(:,1)
214 zts_wall_b(:) = pt_wall_b(:,1)
215 iwall =
SIZE(pt_wall_a,2)
216 zti_wall_a(:) = pt_wall_a(:,iwall)
217 zti_wall_b(:) = pt_wall_b(:,iwall)
227 phc_wall, ptc_wall, pd_wall, pdn_road, prhoa, pac_wall, &
228 pac_bld, pti_bld, plw_rad, pps, pexns, pabs_sw_wall_a, pt_canyon, &
229 pts_road, ptsnow_road, pts_garden, pts_mass, pts_floor, pemis_wall, &
230 plw_wa_to_wb, plw_r_to_wa, plw_g_to_wa, plw_nr_to_wa, &
231 plw_win_to_wa, plw_s_to_wa, &
232 pt_win1, pflx_bld_wall_a, pdqs_wall_a, pt_win2, pabs_lw_wall_a, &
233 zemit_lw_wall_a, ph_wall_a, zimb_wall, pf_wall_mass, &
234 pf_wall_floor, pf_wall_win, pradht_in, prad_roof_wall, &
235 zrad_wall_a_win, zrad_wall_floor, zrad_wall_mass, zconv_wall_bld, &
238 pimb_wall = 0.5 * zimb_wall
239 prad_wall_floor = 0.5 * zrad_wall_floor
240 prad_wall_mass = 0.5 * zrad_wall_mass
241 pconv_wall_bld = 0.5 * zconv_wall_bld
242 zrad_wall_win = 0.5 * zrad_wall_a_win
247 IF (hwall_opt/=
'UNIF')
THEN
249 phc_wall, ptc_wall, pd_wall, pdn_road, prhoa, pac_wall, &
250 pac_bld, pti_bld, plw_rad, pps, pexns, pabs_sw_wall_b, pt_canyon, &
251 pts_road, ptsnow_road, pts_garden, pts_mass, pts_floor, pemis_wall, &
252 plw_wa_to_wb, plw_r_to_wb, plw_g_to_wb, plw_nr_to_wb, &
253 plw_win_to_wb, plw_s_to_wb, &
254 pt_win1, pflx_bld_wall_b, pdqs_wall_b, pt_win2, pabs_lw_wall_b, &
255 zemit_lw_wall_b, ph_wall_b, zimb_wall, pf_wall_mass, &
256 pf_wall_floor, pf_wall_win, pradht_in, prad_roof_wall, &
257 zrad_wall_a_win, zrad_wall_floor, zrad_wall_mass, zconv_wall_bld, &
260 pt_wall_b = pt_wall_a
261 ph_wall_b = ph_wall_a
262 pabs_lw_wall_b = pabs_lw_wall_a
263 pdqs_wall_b = pdqs_wall_a
264 pflx_bld_wall_b = pflx_bld_wall_a
265 zemit_lw_wall_b = zemit_lw_wall_a
268 pimb_wall = pimb_wall + 0.5 * zimb_wall
269 prad_wall_floor = prad_wall_floor + 0.5 * zrad_wall_floor
270 prad_wall_mass = prad_wall_mass + 0.5 * zrad_wall_mass
271 pconv_wall_bld = pconv_wall_bld + 0.5 * zconv_wall_bld
272 zrad_wall_win = zrad_wall_win + 0.5 * zrad_wall_a_win
279 IF (hbem ==
'DEF')
THEN
281 pabs_lw_win(:) = xundef
284 IF (hbem ==
'BEM')
THEN
287 zlw_w_to_win(:) = plw_wa_to_win(:) + plw_wb_to_win(:)
289 WHERE (zlw_w_to_win(:)>0.) &
290 zts_wall(:) = ( plw_wa_to_win(:)*pt_wall_a(:,1)+plw_wb_to_win(:)*pt_wall_b(:,1) ) / zlw_w_to_win(:)
291 CALL
window_e_budget(pu_win, zemis_win, pf_win_floor, pf_win_wall, pf_win_mass, &
292 zlw_w_to_win, plw_r_to_win, plw_g_to_win, plw_nr_to_win, plw_s_to_win, &
293 prad_roof_win, zrad_wall_win, pabs_sw_win, plw_rad, pac_win, &
294 pradht_in, pti_bld, pts_mass, pts_floor, prhoa, pdn_road, &
295 pt_canyon, zts_wall, pts_road, ptsnow_road, pts_garden, &
296 pt_win1, pt_win2, prad_win_floor, prad_win_mass, pconv_win_bld, &
297 zemit_lw_win, pabs_lw_win, pload_in_win )
304 pemit_lw_fac(:) = 0.5*(zemit_lw_wall_a(:)+zemit_lw_wall_b(:)) * (1-pgr(:)) + zemit_lw_win(:) * pgr(:)
307 IF (lhook) CALL dr_hook(
'FACADE_E_BUDGET',1,zhook_handle)
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 wall_layer_e_budget(HBEM, PT_WALL, PTS_WALL_B, PTI_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, PT_CANYON, PTS_ROAD, PTSNOW_ROAD, PTS_GARDEN, PTS_MASS, PTS_FLOOR, PEMIS_WALL, PLW_WA_TO_WB, PLW_R_TO_W, PLW_G_TO_W, PLW_NR_TO_W, PLW_WIN_TO_W, PLW_S_TO_W, PT_WIN1, PFLX_BLD_WALL, PDQS_WALL, PT_WIN2, PABS_LW_WALL, PEMIT_LW_WALL, PH_WALL, PIMB_WALL, PF_WALL_MASS, PF_WALL_FLOOR, PF_WALL_WIN, PRADHT_IN, PRAD_ROOF_WALL, PRAD_WALL_WIN, PRAD_WALL_FLOOR, PRAD_WALL_MASS, PCONV_WALL_BLD, PLOAD_IN_WALL)
subroutine window_e_budget(PU_WIN, PEMIS_WIN, PF_WIN_FLOOR, PF_WIN_WALL, PF_WIN_MASS, PLW_W_TO_WIN, PLW_R_TO_WIN, PLW_G_TO_WIN, PLW_NR_TO_WIN, PLW_S_TO_WIN, PRAD_ROOF_WIN, PRAD_WALL_WIN, PABS_SW_WIN, PLW_RAD, PAC_WALL, PRADHT_IN, PTI_BLD, PTS_MASS, PTS_FLOOR, PRHOA, PDN_ROAD, PT_CANYON, PTS_WALL, PTS_ROAD, PTSNOW_ROAD, PTS_GARDEN, PT_WIN1, PT_WIN2, PRAD_WIN_FLOOR, PRAD_WIN_MASS, PCONV_WIN_BLD, PEMIT_LW_WIN, PABS_LW_WIN, PLOAD_IN_WIN)