SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
facade_e_budget.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 SUBROUTINE facade_e_budget(HWALL_OPT, HBEM, &
6  pt_wall_a, pt_wall_b, ptstep, &
7  phc_wall, ptc_wall, pd_wall, &
8  pdn_road, prhoa, pac_wall, &
9  pac_bld, &
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, &
15  plw_wa_to_wb, &
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 )
31 !
32 ! ##########################################################################
33 !
34 !!**** *FACADE_E_BUDGET*
35 !!
36 !! PURPOSE
37 !! -------
38 !
39 ! Computes the evolution of wall and window temperature from
40 ! wall_layer_e_budget et window_e_budget
41 !
42 !
43 !!** METHOD
44 ! ------
45 !
46 !! EXTERNAL
47 !! --------
48 !!
49 !!
50 !! IMPLICIT ARGUMENTS
51 !! ------------------
52 !!
53 !! MODD_CST
54 !!
55 !!
56 !! REFERENCE
57 !! ---------
58 !!
59 !!
60 !! AUTHOR
61 !! ------
62 !!
63 !! G. Pigeon * Meteo-France *
64 !!
65 !! MODIFICATIONS
66 !! -------------
67 !! Original 10/11/2011
68 !! G. Pigeon /09/2012: new conv. coef for indoor/outdoor
69 !! G. Pigeon /10/2012: new arg. : solar heat load for indoor
70 !-------------------------------------------------------------------------------
71 !
72 !* 0. DECLARATIONS
73 ! ------------
74 !
75 USE modd_surf_par, ONLY : xundef
76 USE modd_csts, ONLY : xcpd
77 !
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
82 !
83 IMPLICIT NONE
84 !
85 !* 0.1 declarations of arguments
86 !
87  CHARACTER(LEN=4), INTENT(IN) :: hwall_opt ! TEB option for walls
88  ! 'UNIF' : uniform walls
89  ! 'TWO ' : two different opposite walls
90  CHARACTER(LEN=3), INTENT(IN) :: hbem ! Building Energy model 'DEF' or 'BEM'
91 REAL, DIMENSION(:,:), INTENT(INOUT) :: pt_wall_a ! wall A layers temperatures
92 REAL, DIMENSION(:,:), INTENT(INOUT) :: pt_wall_b ! wall B layers temperatures
93 REAL, INTENT(IN) :: ptstep ! time step
94 REAL, DIMENSION(:,:), INTENT(IN) :: phc_wall ! heat capacity for wall layers
95 REAL, DIMENSION(:,:), INTENT(IN) :: ptc_wall ! thermal conductivity for wall layers
96 REAL, DIMENSION(:,:), INTENT(IN) :: pd_wall ! depth of wall layers
97 REAL, DIMENSION(:), INTENT(IN) :: pdn_road ! snow-covered fraction on roads
98 REAL, DIMENSION(:), INTENT(IN) :: prhoa ! rho
99 REAL, DIMENSION(:), INTENT(IN) :: pac_wall ! aerodynamical conductance
100 ! ! between wall and canyon
101 REAL, DIMENSION(:), INTENT(IN) :: pac_bld ! aerodynamical conductance
102  ! inside the building itself
103 REAL, DIMENSION(:), INTENT(IN) :: pti_bld ! inside building temperature
104 REAL, DIMENSION(:), INTENT(IN) :: plw_rad ! atmospheric infrared radiation
105 REAL, DIMENSION(:), INTENT(IN) :: pps ! pressure at the surface
106 REAL, DIMENSION(:), INTENT(IN) :: pexns ! surface Exner function
107 REAL, DIMENSION(:), INTENT(IN) :: pabs_sw_wall_a! absorbed solar radiation
108 REAL, DIMENSION(:), INTENT(IN) :: pabs_sw_wall_b! absorbed solar radiation
109 REAL, DIMENSION(:), INTENT(IN) :: pt_canyon ! air canyon temperature
110 REAL, DIMENSION(:), INTENT(IN) :: pts_road ! road surface temperature
111 REAL, DIMENSION(:), INTENT(IN) :: ptsnow_road ! road snow temperature
112 REAL, DIMENSION(:), INTENT(IN) :: pts_garden ! green area surface temperature
113 REAL, DIMENSION(:), INTENT(IN) :: pu_win ! window U-factor [W m-2 K-1]
114 REAL, DIMENSION(:), INTENT(IN) :: pgr ! glazing ratio
115 REAL, DIMENSION(:), INTENT(IN) :: pabs_sw_win ! window absorbed shortwave radiation [W m-2]
116 REAL, DIMENSION(:), INTENT(IN) :: pf_win_mass ! window mass view factor
117 REAL, DIMENSION(:), INTENT(IN) :: pf_win_wall ! window wall view factor
118 REAL, DIMENSION(:), INTENT(IN) :: pf_win_floor ! window floor view factor
119 REAL, DIMENSION(:), INTENT(IN) :: pts_mass ! surface mass temperature [K]
120 REAL, DIMENSION(:), INTENT(IN) :: pts_floor ! floor layers temperatures [K]
121 REAL, DIMENSION(:), INTENT(IN) :: pemis_wall ! wall emissivity
122 !
123 REAL, DIMENSION(:), INTENT(IN) :: plw_wa_to_wb ! LW interactions wall -> wall (both versions)
124 REAL, DIMENSION(:), INTENT(IN) :: plw_r_to_wa ! LW interactions road -> wall ; DEF formulation
125 REAL, DIMENSION(:), INTENT(IN) :: plw_r_to_wb ! LW interactions road -> wall ; DEF formulation
126 REAL, DIMENSION(:), INTENT(IN) :: plw_g_to_wa ! LW interactions garden -> wall ; DEF formulation
127 REAL, DIMENSION(:), INTENT(IN) :: plw_g_to_wb ! LW interactions garden -> wall ; DEF formulation
128 REAL, DIMENSION(:), INTENT(IN) :: plw_s_to_wa ! LW interactions sky -> wall
129 REAL, DIMENSION(:), INTENT(IN) :: plw_s_to_wb ! LW interactions sky -> wall
130 REAL, DIMENSION(:), INTENT(IN) :: plw_nr_to_wa ! LW interactions road(snow) -> wall
131 REAL, DIMENSION(:), INTENT(IN) :: plw_nr_to_wb ! LW interactions road(snow) -> wall
132 REAL, DIMENSION(:), INTENT(IN) :: plw_wa_to_win! Radiative heat trasfer coeff wall-window
133  ! [W K-1 m-2]
134 REAL, DIMENSION(:), INTENT(IN) :: plw_wb_to_win! Radiative heat trasfer coeff wall-window
135  ! [W K-1 m-2]
136 REAL, DIMENSION(:), INTENT(IN) :: plw_s_to_win ! Radiative heat trasfer coeff window-sky
137  ! [W K-1 m-2]
138 REAL, DIMENSION(:), INTENT(IN) :: plw_win_to_wa! Radiative heat trasfer coeff window-wall
139  ! [W K-1 m-2]
140 REAL, DIMENSION(:), INTENT(IN) :: plw_win_to_wb! Radiative heat trasfer coeff window-wall
141  ! [W K-1 m-2]
142 REAL, DIMENSION(:), INTENT(IN) :: plw_r_to_win ! Radiative heat trasfer coeff window-road
143  ! [W K-1 m-2]
144 REAL, DIMENSION(:), INTENT(IN) :: plw_g_to_win ! Radiative heat trasfer coeff window-garden
145 REAL, DIMENSION(:), INTENT(IN) :: plw_nr_to_win! Radiative heat trasfer coeff window-snow
146 !
147 REAL, DIMENSION(:), INTENT(INOUT) :: pt_win1 ! outdoor window temperature [K]
148 REAL, DIMENSION(:), INTENT(OUT) :: pflx_bld_wall_a! flux from bld to wall
149 REAL, DIMENSION(:), INTENT(INOUT) :: pdqs_wall_a ! heat storage inside the wall
150 REAL, DIMENSION(:), INTENT(OUT) :: pflx_bld_wall_b! flux from bld to wall
151 REAL, DIMENSION(:), INTENT(INOUT) :: pdqs_wall_b ! heat storage inside the wall
152 REAL, DIMENSION(:), INTENT(INOUT) :: pt_win2 ! indoor window temperature [K]
153 REAL, DIMENSION(:), INTENT(OUT) :: pemit_lw_fac ! LW flux emitted by the facade (W/m2 of facade)
154 REAL, DIMENSION(:), INTENT(OUT) :: pabs_lw_wall_a ! absorbed infrared rad.
155 REAL, DIMENSION(:), INTENT(OUT) :: pabs_lw_wall_b ! absorbed infrared rad.
156 REAL, DIMENSION(:), INTENT(OUT) :: pabs_lw_win ! window absorbed shortwave radiation [W m-2]
157 REAL, DIMENSION(:), INTENT(OUT) :: ph_wall_a ! Sensible heat flux from wall to air [W/m2(wall)]
158  ! wall = facade - glazing
159 REAL, DIMENSION(:), INTENT(OUT) :: ph_wall_b ! Sensible heat flux from wall to air [W/m2(wall)]
160  ! wall = facade - glazing
161 REAL, DIMENSION(:), INTENT(OUT) :: pimb_wall ! wall residual energy imbalance
162  ! for verification [W m-2]
163 REAL, DIMENSION(:), INTENT(IN) :: pf_wall_floor ! View factor wall-floor
164 REAL, DIMENSION(:), INTENT(IN) :: pf_wall_mass ! View factor wall-mass
165 REAL, DIMENSION(:), INTENT(IN) :: pf_wall_win ! View factor wall-win
166 REAL, DIMENSION(:), INTENT(IN) :: pradht_in ! Indoor radiant heat transfer coefficient
167  ! [W K-1 m-2]
168 REAL, DIMENSION(:), INTENT(IN) :: prad_roof_wall ! rad. fluxes from roof to wall [W m-2(roof)]
169 REAL, DIMENSION(:), INTENT(IN) :: prad_roof_win ! rad. fluxes from roof to win [W m-2(roof)]
170 REAL, DIMENSION(:), INTENT(OUT) :: prad_wall_floor! rad. fluxes from wall to floor [W m-2(wall)]
171 REAL, DIMENSION(:), INTENT(OUT) :: prad_wall_mass ! rad. fluxes from wall to mass [W m-2(wall)]
172 REAL, DIMENSION(:), INTENT(OUT) :: prad_win_floor ! rad. fluxes from window to floor [W m-2(win)]
173 REAL, DIMENSION(:), INTENT(OUT) :: prad_win_mass ! rad. fluxes from window to mass [W m-2(win)]
174 REAL, DIMENSION(:), INTENT(OUT) :: pconv_wall_bld ! conv. fluxes from wall to bld [W m-2(wall)]
175 REAL, DIMENSION(:), INTENT(OUT) :: pconv_win_bld ! conv. fluxes from window to bld [W m-2(wind.)]
176 REAL, DIMENSION(:), INTENT(IN) :: pac_win ! window aerodynamic conductance
177 !
178 REAL, DIMENSION(:), INTENT(IN) :: pload_in_wall ! solar + inter. heat gains W/m2 [wall]
179 REAL, DIMENSION(:), INTENT(IN) :: pload_in_win ! solar + inter. heat gains W/m2 [win]
180 !* 0.2 declarations of local variables
181 !
182 REAL, DIMENSION(SIZE(PTI_BLD)) :: zrad_wall_win ! rad. fluxes between averaged wall and win [W m-2(wall)]
183 REAL, DIMENSION(SIZE(PTI_BLD)) :: zrad_wall_a_win ! rad. fluxes between one wall and win [W m-2(wall)]
184 REAL, DIMENSION(SIZE(PTI_BLD)) :: zemis_win ! window emissivity
185 REAL, DIMENSION(SIZE(PTI_BLD)) :: zemit_lw_win ! Longwave radiation emitted by the window [W m-2(window)]
186 REAL, DIMENSION(SIZE(PTI_BLD)) :: zemit_lw_wall_a ! Longwave radiation emitted by the wall [W m-2(wall)]
187 REAL, DIMENSION(SIZE(PTI_BLD)) :: zemit_lw_wall_b ! Longwave radiation emitted by the wall [W m-2(wall)]
188 REAL, DIMENSION(SIZE(PTI_BLD)) :: zts_wall_a ! surface temperature of wall A at previous time-step
189 REAL, DIMENSION(SIZE(PTI_BLD)) :: zts_wall_b ! surface temperature of wall B at previous time-step
190 REAL, DIMENSION(SIZE(PTI_BLD)) :: zti_wall_a ! internal temperature of wall A at previous time-step
191 REAL, DIMENSION(SIZE(PTI_BLD)) :: zti_wall_b ! internal temperature of wall B at previous time-step
192 REAL, DIMENSION(SIZE(PTI_BLD)) :: zts_wall ! surface temperature of averaged wall at new time-step
193 REAL, DIMENSION(SIZE(PTI_BLD)) :: zimb_wall ! wall residual energy imbalance for verification [W m-2]
194 REAL, DIMENSION(SIZE(PTI_BLD)) :: zrad_wall_floor! rad. fluxes from wall to floor [W m-2(wall)]
195 REAL, DIMENSION(SIZE(PTI_BLD)) :: zrad_wall_mass ! rad. fluxes from wall to mass [W m-2(wall)]
196 REAL, DIMENSION(SIZE(PTI_BLD)) :: zconv_wall_bld ! conv. fluxes from wall to bld [W m-2(wall)]
197 REAL, DIMENSION(SIZE(PTI_BLD)) :: zlw_w_to_win ! Radiative heat trasfer coeff wall-window [W K-1 m-2]
198 INTEGER :: iwall
199 REAL(KIND=JPRB) :: zhook_handle
200 !-------------------------------------------------------------------------------
201 IF (lhook) CALL dr_hook('FACADE_E_BUDGET',0,zhook_handle)
202 !-------------------------------------------------------------------------------
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
209 !
210 !* surface temperature of the opposite wall
211 ! ----------------------------------------
212 !
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)
218 !
219 ! *Convection heat transfer coefficients [W m-2 K-1] from EP Engineering Reference
220 ! --------------------------------------------------------------------------------
221 !
222 !
223 ! *opaque balance of the facade for wall A
224 ! ---------------------------------------
225 !
226  CALL wall_layer_e_budget(hbem, pt_wall_a, zts_wall_b, zti_wall_b, ptstep, &
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, &
236  pload_in_wall)
237 !
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
243 !
244 ! *opaque balance of the facade for wall B
245 ! ---------------------------------------
246 !
247 IF (hwall_opt/='UNIF') THEN
248  CALL wall_layer_e_budget(hbem, pt_wall_b, zts_wall_a, zti_wall_a, ptstep, &
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, &
258  pload_in_wall )
259 ELSE
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
266 END IF
267 !
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
273 !
274 !-------------------------------------------------------------------------------
275 !
276 ! *Energy Balance for windows (averaged on both walls)
277 ! ---------------------------------------------------
278 !
279 IF (hbem == 'DEF') THEN
280  zemit_lw_win(:) = 0.
281  pabs_lw_win(:) = xundef
282 END IF
283 !
284 IF (hbem == 'BEM') THEN
285  zemis_win(:) = 0.84 ! From Engineering Reference documentation p219
286  ! (see http://apps1.eere.energy.gov/buildings/energyplus/
287  zlw_w_to_win(:) = plw_wa_to_win(:) + plw_wb_to_win(:)
288  zts_wall(:) = xundef
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 )
298 ENDIF
299 
300 !* wall, and win emitted LW radiation on snow-free surfaces
301 ! ----------------------------------------------------------------
302 !
303 !
304 pemit_lw_fac(:) = 0.5*(zemit_lw_wall_a(:)+zemit_lw_wall_b(:)) * (1-pgr(:)) + zemit_lw_win(:) * pgr(:)
305 !
306 !-------------------------------------------------------------------------------
307 IF (lhook) CALL dr_hook('FACADE_E_BUDGET',1,zhook_handle)
308 END SUBROUTINE facade_e_budget
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)