SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
window_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 window_e_budget(PU_WIN, PEMIS_WIN, PF_WIN_FLOOR, PF_WIN_WALL, PF_WIN_MASS, &
6  plw_w_to_win, plw_r_to_win, plw_g_to_win, &
7  plw_nr_to_win, plw_s_to_win, prad_roof_win, prad_wall_win, &
8  pabs_sw_win, plw_rad, pac_wall, &
9  pradht_in, pti_bld, pts_mass, pts_floor, prhoa, pdn_road, &
10  pt_canyon, pts_wall, pts_road, ptsnow_road, &
11  pts_garden, pt_win1, pt_win2, prad_win_floor, &
12  prad_win_mass, pconv_win_bld, pemit_lw_win, pabs_lw_win, pload_in_win)
13 !###################################################################################################################################
14 !
15 !!**** *WINDOW_E_BUDGET*
16 !!
17 !! PURPOSE
18 !! -------
19 !
20 ! Computes the evoultion of window temperature
21 !
22 !
23 !!** METHOD
24 ! ------
25 !
26 ! window is supposed double pane with no thermal capacity
27 ! a steady state energy balance is applied to both layers that exchanges U_WIN(T1 - T2)
28 !
29 !! EXTERNAL
30 !! --------
31 !!
32 !!
33 !! IMPLICIT ARGUMENTS
34 !! ------------------
35 !!
36 !! MODD_CST
37 !!
38 !!
39 !! REFERENCE
40 !! ---------
41 !!
42 !!
43 !! AUTHOR
44 !! ------
45 !!
46 !! B. Bueno * Meteo-France *
47 !!
48 !! MODIFICATIONS
49 !! -------------
50 !! Original 04/2011
51 !! G. Pigeon 10/11/2011 exteranlized window balance from wall_layer_e_budget to window_e_budget and use fluxes from layers for
52 ! which the balance has been computed before (roof and wall) and returns the fluxes to the compartments
53 ! computed afterwards (floor, mass, bld)
54 !! G. Pigeon 09/2012 new indoor conv. coef
55 !! G. Pigeon 10/2012 separate abs from outdoor on both side of window
56 !! + add loads for indoor face of the window
57 !-------------------------------------------------------------------------------
58 !
59 !* 0. DECLARATIONS
60 ! ------------
61 !
62 USE modd_csts,ONLY : xcpd, xstefan
63 USE mode_conv_doe
64 USE yomhook ,ONLY : lhook, dr_hook
65 USE parkind1 ,ONLY : jprb
66 !
67 IMPLICIT NONE
68 !
69 !* 0.1 declarations of arguments
70 !
71 REAL, DIMENSION(:), INTENT(IN) :: pu_win ! window U-factor [W m-2 K-1]
72 REAL, DIMENSION(:), INTENT(IN) :: pemis_win ! window emissivity
73 REAL, DIMENSION(:), INTENT(IN) :: pf_win_floor ! window floor view factor
74 REAL, DIMENSION(:), INTENT(IN) :: pf_win_wall ! window wall view factor
75 REAL, DIMENSION(:), INTENT(IN) :: pf_win_mass ! window mass view factor
76 REAL, DIMENSION(:), INTENT(IN) :: plw_w_to_win ! Radiative heat trasfer coeff window-wall outdoor
77  ! [W K-1 m-2]
78 REAL, DIMENSION(:), INTENT(IN) :: plw_r_to_win ! Radiative heat trasfer coeff window-road
79  ! [W K-1 m-2]
80 REAL, DIMENSION(:), INTENT(IN) :: plw_g_to_win ! Radiative heat trasfer coeff window-garden
81 REAL, DIMENSION(:), INTENT(IN) :: plw_nr_to_win! Radiative heat trasfer coeff window-snow
82 REAL, DIMENSION(:), INTENT(IN) :: plw_s_to_win ! Radiative heat trasfer coeff window-sky
83  ! [W K-1 m-2]
84 REAL, DIMENSION(:), INTENT(IN) :: prad_roof_win ! rad. fluxes from roof to win [W m-2(roof)]
85 REAL, DIMENSION(:), INTENT(IN) :: prad_wall_win ! rad. fluxes from wall to win [W m-2(roof)]
86 REAL, DIMENSION(:), INTENT(IN) :: pabs_sw_win ! window absorbed shortwave radiation [W m-2]
87 REAL, DIMENSION(:), INTENT(IN) :: plw_rad ! atmospheric infrared radiation
88 REAL, DIMENSION(:), INTENT(IN) :: pac_wall ! aerodynamical conductance between wall and canyon
89 REAL, DIMENSION(:), INTENT(IN) :: pradht_in ! Indoor radiant heat transfer coefficient
90  ! [W K-1 m-2]
91 REAL, DIMENSION(:), INTENT(IN) :: pti_bld ! inside building temperature
92 REAL, DIMENSION(:), INTENT(IN) :: pts_mass ! surface mass temperature [K]
93 REAL, DIMENSION(:), INTENT(IN) :: pts_floor ! floor layers temperatures [K]
94 REAL, DIMENSION(:), INTENT(IN) :: prhoa ! rho
95 REAL, DIMENSION(:), INTENT(IN) :: pdn_road ! snow-covered fraction on roads
96 REAL, DIMENSION(:), INTENT(IN) :: pt_canyon ! air canyon temperature
97 REAL, DIMENSION(:), INTENT(IN) :: pts_wall ! wall outdoor surface temperature
98 REAL, DIMENSION(:), INTENT(IN) :: pts_road ! road surface temperature
99 REAL, DIMENSION(:), INTENT(IN) :: ptsnow_road ! road snow temperature
100 REAL, DIMENSION(:), INTENT(IN) :: pts_garden ! green area surface temperature
101 REAL, DIMENSION(:), INTENT(OUT) :: pt_win1 ! outdoor window temperature [K]
102 REAL, DIMENSION(:), INTENT(INOUT) :: pt_win2 ! indoor window temperature [K]
103 REAL, DIMENSION(:), INTENT(OUT) :: prad_win_floor ! rad. fluxes from window to floor [W m-2(window)]
104 REAL, DIMENSION(:), INTENT(OUT) :: prad_win_mass ! rad. fluxes from window to mass [W m-2(window)]
105 REAL, DIMENSION(:), INTENT(OUT) :: pconv_win_bld ! conv. fluxes from window to bld [W m-2(window)]
106 REAL, DIMENSION(:), INTENT(OUT) :: pemit_lw_win ! Longwave radiation emitted by the window [W m-2(window)]
107 REAL, DIMENSION(:), INTENT(OUT) :: pabs_lw_win ! Longwave radiation absorbed by the window [W m-2(window)]
108 REAL, DIMENSION(:), INTENT(IN) :: pload_in_win ! solar + internal heat gain
109 !
110 !* 0.2 declarations of local variables
111 !
112 REAL, DIMENSION(SIZE(PT_CANYON)) :: zt_sky ! sky temperature [K]
113 REAL, DIMENSION(SIZE(PT_CANYON)) :: za12 !
114 REAL, DIMENSION(SIZE(PT_CANYON)) :: zb2 ! auxiliar variables for window temperature
115 REAL, DIMENSION(SIZE(PT_CANYON)) :: zb1 ! calculations
116 REAL, DIMENSION(SIZE(PT_CANYON)) :: za21 !
117 REAL, DIMENSION(SIZE(PT_CANYON)) :: zchtc_in_win ! indoor convective heat transfer coef. window [W m-2 K-1]
118 INTEGER :: jj
119 
120 !* Preliminaries
121 ! -------------
122 zchtc_in_win = chtc_vert_doe(pt_win2, pti_bld)
123 DO jj=1,SIZE(zchtc_in_win)
124  zchtc_in_win(jj) = max(1., zchtc_in_win(jj))
125 ENDDO
126 
127 !* 1. Sky temperature
128 ! ---------------
129 zt_sky(:) = (plw_rad(:)/xstefan)**0.25
130 !
131 za12(:) = zchtc_in_win(:) &
132  + pradht_in(:) * pf_win_mass(:) &
133  + pradht_in(:) * pf_win_floor(:) &
134  + pu_win(:)
135 !
136 zb1(:) = zchtc_in_win(:) * pti_bld(:) &
137  + pradht_in(:) * pf_win_mass(:) * pts_mass(:) &
138  + pf_win_wall(:) * prad_wall_win(:) &
139  + pf_win_floor(:) * prad_roof_win(:) &
140  + pradht_in(:) * pf_win_floor(:)* pts_floor(:) &
141  + pload_in_win(:) + pabs_sw_win(:) /2.
142 !
143 za21(:) = - pac_wall(:) * prhoa(:)*xcpd &
144  - plw_s_to_win(:) &
145  - plw_w_to_win(:) &
146  - plw_r_to_win(:) *(1.-pdn_road(:))&
147  - plw_g_to_win(:) &
148  - plw_nr_to_win(:) * pdn_road(:) &
149  - pu_win(:)
150 !
151 zb2(:) = - pac_wall(:) * prhoa(:)*xcpd*pt_canyon(:) &
152  - plw_s_to_win(:) * zt_sky(:) &
153  - plw_w_to_win(:) * pts_wall(:) &
154  - plw_r_to_win(:) *(1.-pdn_road(:)) * pts_road(:) &
155  - plw_g_to_win(:) * pts_garden(:) &
156  - plw_nr_to_win(:) * pdn_road(:) * ptsnow_road(:) &
157  - pabs_sw_win(:) /2.
158 !
159 ! compute outdoor temperature
160 pt_win1(:) = ( zb2(:) - zb1(:)*pu_win(:)/za12(:) ) / &
161  ( za21(:) + pu_win(:)**2/za12(:) )
162 !
163 ! compute indoor temperature
164 pt_win2(:) = (zb1(:) + pu_win(:)*pt_win1(:) ) / za12(:)
165 !
166 ! outdoor infrared radiation absorded by the window
167 pabs_lw_win(:) = plw_s_to_win(:) * (zt_sky(:) - pt_win1(:)) + &
168  (1.-pdn_road(:))* plw_r_to_win(:) * (pts_road(:) - pt_win1(:)) + &
169  plw_g_to_win(:) * (pts_garden(:) - pt_win1(:)) + &
170  plw_w_to_win(:) * (pts_wall(:) - pt_win1(:)) + &
171  pdn_road(:) * plw_nr_to_win(:) * (ptsnow_road(:) - pt_win1(:))
172 !
173 ! outdoor infrared radiation emited by the window
174 pemit_lw_win(:) = xstefan * pt_win1(:)**4 + (1 - pemis_win(:))/pemis_win(:) * pabs_lw_win(:)
175 !
176 prad_win_floor(:) = pradht_in(:) * (pt_win2(:) - pts_floor(:))
177 prad_win_mass(:) = pradht_in(:) * (pt_win2(:) - pts_mass(:))
178 pconv_win_bld(:) = zchtc_in_win(:) * (pt_win2(:) - pti_bld(:))
179 !
180 END SUBROUTINE window_e_budget
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)