5 SUBROUTINE window_e_budget(B, PEMIS_WIN, PLW_W_TO_WIN, PLW_R_TO_WIN, PLW_G_TO_WIN, &
6 PLW_NR_TO_WIN, PLW_S_TO_WIN, PRAD_RF_WIN, PRAD_WL_WIN, &
7 PABS_SW_WIN, PLW_RAD, PAC_WL, PRADHT_IN, PTS_FL, PRHOA, &
8 PDN_RD, PT_CANYON, PTS_WL, PTS_RD, PTSN_RD, PTS_GD, &
9 PRAD_WIN_FL, PRAD_WIN_MA, PCONV_WIN_BLD, PEMIT_LW_WIN, &
10 PABS_LW_WIN, PLOAD_IN_WIN)
71 TYPE(
bem_t),
INTENT(INOUT) :: B
73 REAL,
DIMENSION(:),
INTENT(IN) :: PEMIS_WIN
74 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_W_TO_WIN
76 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_R_TO_WIN
78 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_G_TO_WIN
79 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_NR_TO_WIN
80 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_S_TO_WIN
82 REAL,
DIMENSION(:),
INTENT(IN) :: PRAD_RF_WIN
83 REAL,
DIMENSION(:),
INTENT(IN) :: PRAD_WL_WIN
84 REAL,
DIMENSION(:),
INTENT(IN) :: PABS_SW_WIN
85 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_RAD
86 REAL,
DIMENSION(:),
INTENT(IN) :: PAC_WL
87 REAL,
DIMENSION(:),
INTENT(IN) :: PRADHT_IN
89 REAL,
DIMENSION(:),
INTENT(IN) :: PTS_FL
90 REAL,
DIMENSION(:),
INTENT(IN) :: PRHOA
91 REAL,
DIMENSION(:),
INTENT(IN) :: PDN_RD
92 REAL,
DIMENSION(:),
INTENT(IN) :: PT_CANYON
93 REAL,
DIMENSION(:),
INTENT(IN) :: PTS_WL
94 REAL,
DIMENSION(:),
INTENT(IN) :: PTS_RD
95 REAL,
DIMENSION(:),
INTENT(IN) :: PTSN_RD
96 REAL,
DIMENSION(:),
INTENT(IN) :: PTS_GD
97 REAL,
DIMENSION(:),
INTENT(OUT) :: PRAD_WIN_FL
98 REAL,
DIMENSION(:),
INTENT(OUT) :: PRAD_WIN_MA
99 REAL,
DIMENSION(:),
INTENT(OUT) :: PCONV_WIN_BLD
100 REAL,
DIMENSION(:),
INTENT(OUT) :: PEMIT_LW_WIN
101 REAL,
DIMENSION(:),
INTENT(OUT) :: PABS_LW_WIN
102 REAL,
DIMENSION(:),
INTENT(IN) :: PLOAD_IN_WIN
106 REAL,
DIMENSION(SIZE(PT_CANYON)) :: ZT_SKY
107 REAL,
DIMENSION(SIZE(PT_CANYON)) :: ZA12
108 REAL,
DIMENSION(SIZE(PT_CANYON)) :: ZB2
109 REAL,
DIMENSION(SIZE(PT_CANYON)) :: ZB1
110 REAL,
DIMENSION(SIZE(PT_CANYON)) :: ZA21
111 REAL,
DIMENSION(SIZE(PT_CANYON)) :: ZCHTC_IN_WIN
117 DO jj=1,
SIZE(zchtc_in_win)
118 zchtc_in_win(jj) = max(1., zchtc_in_win(jj))
123 zt_sky(:) = (plw_rad(:)/
xstefan)**0.25
125 za12(:) = zchtc_in_win(:) &
126 + pradht_in(:) * b%XF_WIN_MASS (:) &
127 + pradht_in(:) * b%XF_WIN_FLOOR(:) &
130 zb1(:) = zchtc_in_win(:) * b%XTI_BLD (:) &
131 + pradht_in(:) * b%XF_WIN_MASS(:) * b%XT_MASS(:,1) &
132 + b%XF_WIN_WALL (:) * prad_wl_win(:) &
133 + b%XF_WIN_FLOOR(:) * prad_rf_win(:) &
134 + pradht_in(:) * b%XF_WIN_FLOOR(:)* pts_fl(:) &
135 + pload_in_win(:) + pabs_sw_win(:) /2.
137 za21(:) = - pac_wl(:) * prhoa(:)*
xcpd &
140 - plw_r_to_win(:) *(1.-pdn_rd(:))&
142 - plw_nr_to_win(:) * pdn_rd(:) &
145 zb2(:) = - pac_wl(:) * prhoa(:)*
xcpd*pt_canyon(:) &
146 - plw_s_to_win(:) * zt_sky(:) &
147 - plw_w_to_win(:) * pts_wl(:) &
148 - plw_r_to_win(:) *(1.-pdn_rd(:)) * pts_rd(:) &
149 - plw_nr_to_win(:) * pdn_rd(:) * ptsn_rd(:) &
152 IF (
SIZE(pts_gd)>0)
THEN 153 zb2(:) = zb2(:) - plw_g_to_win(:) * pts_gd(:)
157 b%XT_WIN1(:) = ( zb2(:) - zb1(:)*b%XUGG_WIN(:)/za12(:) ) / &
158 ( za21(:) + b%XUGG_WIN(:)**2/za12(:) )
161 b%XT_WIN2(:) = (zb1(:) + b%XUGG_WIN(:)*b%XT_WIN1(:) ) / za12(:)
164 pabs_lw_win(:) = plw_s_to_win(:) * (zt_sky(:) - b%XT_WIN1(:)) + &
165 (1.-pdn_rd(:)) * plw_r_to_win(:) * (pts_rd(:) - b%XT_WIN1(:)) + &
166 plw_w_to_win(:) * (pts_wl(:) - b%XT_WIN1(:)) + &
167 pdn_rd(:) * plw_nr_to_win(:) * (ptsn_rd(:) - b%XT_WIN1(:))
169 IF (
SIZE(pts_gd)>0)
THEN 170 pabs_lw_win(:) = pabs_lw_win(:) + plw_g_to_win(:) * (pts_gd(:) - b%XT_WIN1(:))
174 pemit_lw_win(:) =
xstefan * b%XT_WIN1(:)**4 + (1 - pemis_win(:))/pemis_win(:) * pabs_lw_win(:)
176 prad_win_fl(:) = pradht_in(:) * (b%XT_WIN2(:) - pts_fl(:))
177 prad_win_ma(:) = pradht_in(:) * (b%XT_WIN2(:) - b%XT_MASS(:,1))
178 pconv_win_bld(:) = zchtc_in_win(:) * (b%XT_WIN2(:) - b%XTI_BLD(:))
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)