5 SUBROUTINE facade_e_budget(TOP, T, B, DMT, PTSTEP, PDN_RD, PRHOA, PAC_WL, PAC_BLD, &
6 PLW_RAD, PPS, PEXNS, PT_CANYON, PTS_RD, PTSN_RD, PTS_GD, &
7 PTS_FL, PLW_WA_TO_WB, PLW_R_TO_WA, PLW_R_TO_WB, &
8 PLW_G_TO_WA, PLW_G_TO_WB, PLW_S_TO_WA, PLW_S_TO_WB, &
9 PLW_NR_TO_WA,PLW_NR_TO_WB, PLW_WIN_TO_WA, PLW_WIN_TO_WB, &
10 PLW_S_TO_WIN, PLW_WA_TO_WIN, PLW_WB_TO_WIN, PLW_R_TO_WIN,&
11 PLW_G_TO_WIN, PLW_NR_TO_WIN, PFLX_BLD_WL_A, PDQS_WL_A, &
12 PFLX_BLD_WL_B, PDQS_WL_B, PEMIT_LW_FAC, PIMB_WL, &
13 PRADHT_IN, PRAD_RF_WL, PRAD_RF_WIN, PRAD_WL_FL, &
14 PRAD_WL_MA, PRAD_WIN_FL, PRAD_WIN_MA, PCONV_WL_BLD, &
15 PCONV_WIN_BLD, PAC_WIN, PLOAD_IN_WL, PLOAD_IN_WIN )
68 USE modi_wall_layer_e_budget
69 USE modi_window_e_budget
78 TYPE(
teb_t),
INTENT(INOUT) :: T
79 TYPE(
bem_t),
INTENT(INOUT) :: B
82 REAL,
INTENT(IN) :: PTSTEP
83 REAL,
DIMENSION(:),
INTENT(IN) :: PDN_RD
84 REAL,
DIMENSION(:),
INTENT(IN) :: PRHOA
85 REAL,
DIMENSION(:),
INTENT(IN) :: PAC_WL
87 REAL,
DIMENSION(:),
INTENT(IN) :: PAC_BLD
89 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_RAD
90 REAL,
DIMENSION(:),
INTENT(IN) :: PPS
91 REAL,
DIMENSION(:),
INTENT(IN) :: PEXNS
92 REAL,
DIMENSION(:),
INTENT(IN) :: PT_CANYON
93 REAL,
DIMENSION(:),
INTENT(IN) :: PTS_RD
94 REAL,
DIMENSION(:),
INTENT(IN) :: PTSN_RD
95 REAL,
DIMENSION(:),
INTENT(IN) :: PTS_GD
96 REAL,
DIMENSION(:),
INTENT(IN) :: PTS_FL
98 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_WA_TO_WB
99 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_R_TO_WA
100 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_R_TO_WB
101 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_G_TO_WA
102 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_G_TO_WB
103 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_S_TO_WA
104 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_S_TO_WB
105 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_NR_TO_WA
106 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_NR_TO_WB
107 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_WA_TO_WIN
109 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_WB_TO_WIN
111 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_S_TO_WIN
113 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_WIN_TO_WA
115 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_WIN_TO_WB
117 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_R_TO_WIN
119 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_G_TO_WIN
120 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_NR_TO_WIN
122 REAL,
DIMENSION(:),
INTENT(OUT) :: PFLX_BLD_WL_A
123 REAL,
DIMENSION(:),
INTENT(INOUT) :: PDQS_WL_A
124 REAL,
DIMENSION(:),
INTENT(OUT) :: PFLX_BLD_WL_B
125 REAL,
DIMENSION(:),
INTENT(INOUT) :: PDQS_WL_B
126 REAL,
DIMENSION(:),
INTENT(OUT) :: PEMIT_LW_FAC
127 REAL,
DIMENSION(:),
INTENT(OUT) :: PIMB_WL
129 REAL,
DIMENSION(:),
INTENT(IN) :: PRADHT_IN
131 REAL,
DIMENSION(:),
INTENT(IN) :: PRAD_RF_WL
132 REAL,
DIMENSION(:),
INTENT(IN) :: PRAD_RF_WIN
133 REAL,
DIMENSION(:),
INTENT(OUT) :: PRAD_WL_FL
134 REAL,
DIMENSION(:),
INTENT(OUT) :: PRAD_WL_MA
135 REAL,
DIMENSION(:),
INTENT(OUT) :: PRAD_WIN_FL
136 REAL,
DIMENSION(:),
INTENT(OUT) :: PRAD_WIN_MA
137 REAL,
DIMENSION(:),
INTENT(OUT) :: PCONV_WL_BLD
138 REAL,
DIMENSION(:),
INTENT(OUT) :: PCONV_WIN_BLD
139 REAL,
DIMENSION(:),
INTENT(IN) :: PAC_WIN
141 REAL,
DIMENSION(:),
INTENT(IN) :: PLOAD_IN_WL
142 REAL,
DIMENSION(:),
INTENT(IN) :: PLOAD_IN_WIN
145 REAL,
DIMENSION(SIZE(B%XTI_BLD)) :: ZRAD_WL_WIN
146 REAL,
DIMENSION(SIZE(B%XTI_BLD)) :: ZRAD_WL_A_WIN
147 REAL,
DIMENSION(SIZE(B%XTI_BLD)) :: ZEMIS_WIN
148 REAL,
DIMENSION(SIZE(B%XTI_BLD)) :: ZEMIT_LW_WIN
149 REAL,
DIMENSION(SIZE(B%XTI_BLD)) :: ZEMIT_LW_WL_A
150 REAL,
DIMENSION(SIZE(B%XTI_BLD)) :: ZEMIT_LW_WL_B
151 REAL,
DIMENSION(SIZE(B%XTI_BLD)) :: ZTS_WL_A
152 REAL,
DIMENSION(SIZE(B%XTI_BLD)) :: ZTS_WL_B
153 REAL,
DIMENSION(SIZE(B%XTI_BLD)) :: ZTI_WL_A
154 REAL,
DIMENSION(SIZE(B%XTI_BLD)) :: ZTI_WL_B
155 REAL,
DIMENSION(SIZE(B%XTI_BLD)) :: ZTS_WL
156 REAL,
DIMENSION(SIZE(B%XTI_BLD)) :: ZIMB_WL
157 REAL,
DIMENSION(SIZE(B%XTI_BLD)) :: ZRAD_WL_FL
158 REAL,
DIMENSION(SIZE(B%XTI_BLD)) :: ZRAD_WL_MA
159 REAL,
DIMENSION(SIZE(B%XTI_BLD)) :: ZCONV_WL_BLD
160 REAL,
DIMENSION(SIZE(B%XTI_BLD)) :: ZLW_W_TO_WIN
162 REAL(KIND=JPRB) :: ZHOOK_HANDLE
164 IF (
lhook)
CALL dr_hook(
'FACADE_E_BUDGET',0,zhook_handle)
176 zts_wl_a(:) = t%XT_WALL_A(:,1)
177 zts_wl_b(:) = t%XT_WALL_B(:,1)
178 iwl =
SIZE(t%XT_WALL_A,2)
179 zti_wl_a(:) = t%XT_WALL_A(:,iwl)
180 zti_wl_b(:) = t%XT_WALL_B(:,iwl)
190 prhoa, pac_wl, pac_bld, plw_rad, pps, pexns, dmt%XABS_SW_WALL_A,&
191 pt_canyon, pts_rd, ptsn_rd, pts_gd, pts_fl, plw_wa_to_wb, &
192 plw_r_to_wa, plw_g_to_wa, plw_nr_to_wa, plw_win_to_wa, &
193 plw_s_to_wa, pflx_bld_wl_a, pdqs_wl_a, dmt%XABS_LW_WALL_A, &
194 zemit_lw_wl_a, dmt%XH_WALL_A, zimb_wl, pradht_in, prad_rf_wl, &
195 zrad_wl_a_win, zrad_wl_fl, zrad_wl_ma, zconv_wl_bld, &
198 pimb_wl = 0.5 * zimb_wl
199 prad_wl_fl = 0.5 * zrad_wl_fl
200 prad_wl_ma = 0.5 * zrad_wl_ma
201 pconv_wl_bld = 0.5 * zconv_wl_bld
202 zrad_wl_win = 0.5 * zrad_wl_a_win
207 IF (top%CWALL_OPT/=
'UNIF')
THEN 209 prhoa, pac_wl, pac_bld, plw_rad, pps, pexns, dmt%XABS_SW_WALL_B, &
210 pt_canyon, pts_rd, ptsn_rd, pts_gd, pts_fl, plw_wa_to_wb, &
211 plw_r_to_wb, plw_g_to_wb, plw_nr_to_wb, plw_win_to_wb, &
212 plw_s_to_wb, pflx_bld_wl_b, pdqs_wl_b, dmt%XABS_LW_WALL_B, &
213 zemit_lw_wl_b, dmt%XH_WALL_B, zimb_wl, pradht_in, prad_rf_wl,&
214 zrad_wl_a_win, zrad_wl_fl, zrad_wl_ma, zconv_wl_bld, &
217 t%XT_WALL_B = t%XT_WALL_A
218 dmt%XH_WALL_B = dmt%XH_WALL_A
219 dmt%XABS_LW_WALL_B = dmt%XABS_LW_WALL_A
220 pdqs_wl_b = pdqs_wl_a
221 pflx_bld_wl_b = pflx_bld_wl_a
222 zemit_lw_wl_b = zemit_lw_wl_a
225 pimb_wl = pimb_wl + 0.5 * zimb_wl
226 prad_wl_fl = prad_wl_fl + 0.5 * zrad_wl_fl
227 prad_wl_ma = prad_wl_ma + 0.5 * zrad_wl_ma
228 pconv_wl_bld = pconv_wl_bld + 0.5 * zconv_wl_bld
229 zrad_wl_win = zrad_wl_win + 0.5 * zrad_wl_a_win
236 IF (top%CBEM ==
'DEF')
THEN 240 IF (top%CBEM ==
'BEM')
THEN 243 zlw_w_to_win(:) = plw_wa_to_win(:) + plw_wb_to_win(:)
245 WHERE (zlw_w_to_win(:)>0.) &
246 zts_wl(:) = ( plw_wa_to_win(:)*t%XT_WALL_A(:,1)+plw_wb_to_win(:)*t%XT_WALL_B(:,1) ) / zlw_w_to_win(:)
247 CALL window_e_budget(b, zemis_win, zlw_w_to_win, plw_r_to_win, plw_g_to_win, plw_nr_to_win, &
248 plw_s_to_win, prad_rf_win, zrad_wl_win, dmt%XABS_SW_WIN, plw_rad, pac_win, &
249 pradht_in, pts_fl, prhoa, pdn_rd, pt_canyon, zts_wl, pts_rd, ptsn_rd, &
250 pts_gd, prad_win_fl, prad_win_ma, pconv_win_bld, zemit_lw_win, &
251 dmt%XABS_LW_WIN, pload_in_win )
258 pemit_lw_fac(:) = 0.5*(zemit_lw_wl_a(:)+zemit_lw_wl_b(:)) * (1-b%XGR(:)) + zemit_lw_win(:) * b%XGR(:)
261 IF (
lhook)
CALL dr_hook(
'FACADE_E_BUDGET',1,zhook_handle)
subroutine facade_e_budget(TOP, T, B, DMT, PTSTEP, PDN_RD, PRHOA, PAC_WL, PAC_BLD, PLW_RAD, PPS, PEXNS, PT_CANYON, PTS_RD, PTSN_RD, PTS_GD, PTS_FL, 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, PFLX_BLD_WL_A, PDQS_WL_A, PFLX_BLD_WL_B, PDQS_WL_B, PEMIT_LW_FAC, PIMB_WL, PRADHT_IN, PRAD_RF_WL, PRAD_RF_WIN, PRAD_WL_FL, PRAD_WL_MA, PRAD_WIN_FL, PRAD_WIN_MA, PCONV_WL_BLD, PCONV_WIN_BLD, PAC_WIN, PLOAD_IN_WL, PLOAD_IN_WIN)
subroutine wall_layer_e_budget(TOP, T, B, PT_WL, PTS_WL_B, PTI_WL_B, PTSTEP, PDN_RD, PRHOA, PAC_WL, PAC_BLD, PLW_RAD, PPS, PEXNS, PABS_SW_WL, PT_CANYON, PTS_RD, PTSNOW_RD, PTS_GD, PTS_FL, PLW_WA_TO_WB, PLW_R_TO_W, PLW_G_TO_W, PLW_NR_TO_W, PLW_WIN_TO_W, PLW_S_TO_W, PFLX_BLD_WL, PDQS_WL, PABS_LW_WL, PEMIT_LW_WL, PH_WL, PIMB_WL, PRADHT_IN, PRAD_RF_WL, PRAD_WL_WIN, PRAD_WL_FL, PRAD_WL_MA, PCONV_WL_BLD, PLOAD_IN_WL)
subroutine window_e_budget(B, PEMIS_WIN, PLW_W_TO_WIN, PLW_R_TO_WIN, PLW_G_TO_WIN, PLW_NR_TO_WIN, PLW_S_TO_WIN, PRAD_RF_WIN, PRAD_WL_WIN, PABS_SW_WIN, PLW_RAD, PAC_WL, PRADHT_IN, PTS_FL, PRHOA, PDN_RD, PT_CANYON, PTS_WL, PTS_RD, PTSN_RD, PTS_GD, PRAD_WIN_FL, PRAD_WIN_MA, PCONV_WIN_BLD, PEMIT_LW_WIN, PABS_LW_WIN, PLOAD_IN_WIN)