63 INTEGER,
INTENT(IN) :: KI
64 TYPE(
bem_t),
INTENT(INOUT) :: B
66 REAL,
DIMENSION(KI) :: ZR_IW
67 REAL,
DIMENSION(KI) :: ZR_OW
68 REAL,
DIMENSION(KI) :: ZR_IS
69 REAL,
DIMENSION(KI) :: ZR_OS
70 REAL,
DIMENSION(KI) :: ZFRAC
71 REAL,
DIMENSION(KI) :: ZTRAN_WIN_NORM
72 REAL,
DIMENSION(KI) :: ZALB_WIN_NORM
73 REAL,
DIMENSION(KI) :: ZFAC_TRAN
74 REAL,
DIMENSION(KI) :: ZFAC_ALB
75 REAL(KIND=JPRB) :: ZHOOK_HANDLE
77 REAL:: TA, RA, TBCD, RBCD, TD, RD, TE, RE, TFGHI, RFGHI, TFH, RFH, TJ, RJ
83 ta = 0.9237767331 ; ra = 1.6911265959
84 tbcd = 0.8802058937 ; rbcd = 1.5239470129
85 td = 0.893430955 ; rd = 1.0888507586
86 te = 0.8743096978 ; re = 1.5494187256
87 tfh = 0.8424427652 ; rfh = 1.0983010317
88 tfghi = 0.8327695761 ; rfghi = 1.3316554732
89 tj = 0.7889001341 ; rj = 1.0837577691
91 WHERE (b%XU_WIN <= 1.42)
98 WHERE (b%XSHGC<0.45 .AND. b%XSHGC>0.35)
99 zfac_tran = tj+(b%XSHGC-0.35)*(te-tj)/(0.45-0.35)
100 zfac_alb = rj+(b%XSHGC-0.35)*(re-rj)/(0.45-0.35)
110 WHERE (b%XU_WIN>1.42 .AND. b%XU_WIN<1.70)
112 WHERE (b%XSHGC>=0.55)
117 WHERE (b%XSHGC>0.5 .AND. b%XSHGC<0.55)
118 zfac_tran = te+(b%XU_WIN-1.42)*((tfghi+(b%XSHGC-0.5)*(te-tfghi)/(0.55-0.50))-te)/(1.70-1.42)
119 zfac_alb = re+(b%XU_WIN-1.42)*((rfghi+(b%XSHGC-0.5)*(re-rfghi)/(0.55-0.50))-re)/(1.70-1.42)
122 WHERE (b%XSHGC>=0.45 .AND. b%XSHGC<=0.5)
123 zfac_tran = te+(b%XU_WIN-1.42)*(tfghi-te)/(1.70-1.42)
124 zfac_alb = re+(b%XU_WIN-1.42)*(rfghi-re)/(1.70-1.42)
127 WHERE (b%XSHGC>0.35 .AND. b%XSHGC<0.45)
128 zfac_tran = (tj+(b%XSHGC-0.35)*(te-tj)/(0.45-0.35))+ &
129 (b%XU_WIN-1.42)*(tfghi-(tj+(b%XSHGC-0.35)*(te-tj)/(0.45-0.35)))/(1.70-1.42)
131 zfac_alb = (rj+(b%XSHGC-0.35)*(re-rj)/(0.45-0.35))+&
132 (b%XU_WIN-1.42)*(rfghi-(rj+(b%XSHGC-0.35)*(re-rj)/(0.45-0.35)))/(1.70-1.42)
135 WHERE (b%XSHGC>=0.30 .AND. b%XSHGC<=0.35)
136 zfac_tran = tj+(b%XU_WIN-1.42)*(tfghi-tj)/(1.70-1.42)
137 zfac_alb = rj+(b%XU_WIN-1.42)*(rfghi-rj)/(1.70-1.42)
140 WHERE (b%XSHGC>0.25 .AND. b%XSHGC<0.35)
141 zfac_tran = tj+(b%XU_WIN-1.42)*((tfh+(b%XSHGC-0.25)*(tj-tfh)/(0.30-0.25))-tj)/(1.70-1.42)
142 zfac_alb = rj+(b%XU_WIN-1.42)*((rfh+(b%XSHGC-0.25)*(rj-rfh)/(0.30-0.25))-rj)/(1.70-1.42)
145 WHERE (b%XSHGC<=0.25)
146 zfac_tran = tj+(b%XU_WIN-1.42)*(tfh-tj)/(1.70-1.42)
147 zfac_alb = rj+(b%XU_WIN-1.42)*(rfh-rj)/(1.70-1.42)
154 WHERE (b%XU_WIN>=1.70 .AND. b%XU_WIN<=3.41)
156 WHERE (b%XSHGC>=0.55)
161 WHERE (b%XSHGC > 0.5 .AND. b%XSHGC<0.55)
162 zfac_tran = tfghi+(b%XSHGC-0.50)*(te-tfghi)/(0.55-0.50)
163 zfac_alb = rfghi+(b%XSHGC-0.50)*(re-rfghi)/(0.55-0.50)
166 WHERE (b%XSHGC>=0.30 .AND. b%XSHGC<=0.50)
172 WHERE (b%XSHGC > 0.25 .AND. b%XSHGC<0.30)
173 zfac_tran = tfh+(b%XSHGC-0.25)*(tfghi-tfh)/(0.30-0.25)
174 zfac_alb = rfghi+(b%XSHGC-0.25)*(rfghi-rfh)/(0.30-0.25)
177 WHERE (b%XSHGC<=0.25)
184 WHERE (b%XU_WIN>3.41 .AND. b%XU_WIN<4.54)
186 WHERE (b%XSHGC>=0.65)
187 zfac_tran = te+(b%XU_WIN-3.41)*(ta-te)/(4.54-3.41)
188 zfac_alb = re+(b%XU_WIN-3.41)*(ra-re)/(4.54-3.41)
191 WHERE (b%XSHGC>0.60 .AND. b%XSHGC<0.65)
192 zfac_tran = te+(b%XU_WIN-3.41)*((tbcd+(b%XSHGC-0.60)*(ta-tbcd)/(0.65-0.60))-te)/(4.54-3.41)
193 zfac_alb = re+(b%XU_WIN-3.41)*((rbcd+(b%XSHGC-0.60)*(ra-rbcd)/(0.65-0.60))-re)/(4.54-3.41)
196 WHERE (b%XSHGC>=0.55 .AND. b%XSHGC<=0.60)
197 zfac_tran = te+(b%XU_WIN-3.41)*(tbcd-te)/(4.54-3.41)
198 zfac_alb = re+(b%XU_WIN-3.41)*(rbcd-re)/(4.54-3.41)
201 WHERE (b%XSHGC>0.50 .AND. b%XSHGC<0.55)
202 zfac_tran = (tfghi+(b%XSHGC-0.50)*(te-tfghi)/(0.55-0.50)) + &
203 (b%XU_WIN-3.41)*(tbcd-(tfghi+(b%XSHGC-0.50)*(te-tfghi)/(0.55-0.50)))/(4.54-3.41)
205 zfac_alb = (rfghi+(b%XSHGC-0.50)*(re-rfghi)/(0.55-0.50)) + &
206 (b%XU_WIN-3.41)*(rbcd-(rfghi+(b%XSHGC-0.50)*(re-rfghi)/(0.55-0.50)))/(4.54-3.41)
209 WHERE (b%XSHGC>=0.45 .AND. b%XSHGC<=0.50)
210 zfac_tran = tfghi+(b%XU_WIN-3.41)*(tbcd-tfghi)/(4.54-3.41)
211 zfac_alb = rfghi+(b%XU_WIN-3.41)*(rbcd-rfghi)/(4.54-3.41)
214 WHERE (b%XSHGC>0.30 .AND. b%XSHGC<0.45)
215 zfac_tran = tfghi+(b%XU_WIN-3.41)*((ta+(b%XSHGC-0.30)*(tbcd-ta)/(0.45-0.30))-tfghi)/(4.54-3.41)
216 zfac_alb = rfghi+(b%XU_WIN-3.41)*((ra+(b%XSHGC-0.30)*(rbcd-ra)/(0.45-0.30))-rfghi)/(4.54-3.41)
219 WHERE (b%XSHGC>0.25 .AND. b%XSHGC<0.30)
220 zfac_tran = (tfh+(b%XSHGC-0.25)*(tfghi-tfh)/(0.30-0.25)) + &
221 (b%XU_WIN-3.41)*(td-(tfh+(b%XSHGC-0.30)*(tfghi-tfh)/(0.30-0.25)))/(4.54-3.41)
222 zfac_alb = (rfh+(b%XSHGC-0.25)*(rfghi-rfh)/(0.30-0.25)) + &
223 (b%XU_WIN-3.41)*(rd-(rfh+(b%XSHGC-0.30)*(rfghi-rfh)/(0.30-0.25)))/(4.54-3.41)
226 WHERE (b%XSHGC<=0.25)
227 zfac_tran = tfh+(b%XU_WIN-3.41)*(td-tfh)/(4.54-3.41)
228 zfac_alb = rfh+(b%XU_WIN-3.41)*(rd-rfh)/(4.54-3.41)
234 WHERE (b%XU_WIN>=4.54)
236 WHERE (b%XSHGC>=0.65)
241 WHERE (b%XSHGC >= 0.60 .AND. b%XSHGC<=0.65)
242 zfac_tran = tbcd+(b%XSHGC-0.60)*(ta-tbcd)/(0.65-0.60)
243 zfac_alb = rbcd+(b%XSHGC-0.60)*(ra-rbcd)/(0.65-0.60)
246 WHERE (b%XSHGC>=0.45 .AND. b%XSHGC<=0.60)
251 WHERE (b%XSHGC >= 0.30 .AND. b%XSHGC<=0.45)
252 zfac_tran = td+(b%XSHGC-0.30)*(tbcd-td)/(0.45-0.30)
253 zfac_alb = rd+(b%XSHGC-0.30)*(rbcd-rd)/(0.45-0.30)
256 WHERE (b%XSHGC<=0.30)
269 WHERE (b%XU_WIN(:) < 5.85)
270 zr_iw(:) = 1. / (0.359073*log(b%XU_WIN(:)) + 6.949915)
272 zr_iw(:) = 1. / (1.788041* b%XU_WIN(:) - 2.886625)
275 zr_ow(:) = 1. / (0.025342*b%XU_WIN(:) + 29.163853)
277 b%XUGG_WIN(:) = 1./(1./b%XU_WIN(:) - zr_iw(:) - zr_ow(:))
282 WHERE (b%XU_WIN(:) > 4.5)
283 WHERE (b%XSHGC(:) < 0.7206)
284 ztran_win_norm(:) = 0.939998 * b%XSHGC(:)**2 + 0.20332 * b%XSHGC(:)
286 ztran_win_norm(:) = 1.30415 * b%XSHGC(:) - 0.30515
290 WHERE (b%XU_WIN(:) < 3.4)
291 WHERE (b%XSHGC(:) <= 0.15)
292 ztran_win_norm(:) = 0.41040 * b%XSHGC(:)
294 ztran_win_norm(:) = 0.085775 * b%XSHGC(:)**2 + 0.963954 * b%XSHGC(:) - 0.084958
298 WHERE (b%XU_WIN(:) >= 3.4 .AND. b%XU_WIN(:) <=4.5)
299 WHERE(b%XSHGC(:) <= 0.15)
300 ztran_win_norm(:) = 0.5* (0.939998 * b%XSHGC(:)**2 + (0.20332+0.41040) * b%XSHGC(:))
302 WHERE(b%XSHGC(:) > 0.15 .AND. b%XSHGC(:) < 0.7206)
303 ztran_win_norm(:) = 0.5 * &
304 ((0.939998+0.085775) * b%XSHGC(:)**2 + (0.20332 + 0.963954) * b%XSHGC(:) - 0.084958)
306 ztran_win_norm(:) = 0.5 * &
307 (0.085775 * b%XSHGC(:)**2 + (0.963954+1.30415) * b%XSHGC(:) - (0.084958+0.30515))
316 WHERE (b%XU_WIN(:) > 4.5)
317 zr_is(:) = 1. / ( 29.436546*(b%XSHGC(:)-ztran_win_norm(:))**3 &
318 - 21.943415*(b%XSHGC(:)-ztran_win_norm(:))**2 &
319 + 9.945872 *(b%XSHGC(:)-ztran_win_norm(:)) + 7.426151 )
321 zr_os(:) = 1./ ( 2.225824*(b%XSHGC(:)-ztran_win_norm(:)) + 20.57708 )
323 WHERE(b%XU_WIN(:) >= 3.4)
325 1. / ( 29.436546*(b%XSHGC(:)-ztran_win_norm(:))**3 &
326 - 21.943415*(b%XSHGC(:)-ztran_win_norm(:))**2 &
327 + 9.945872 *(b%XSHGC(:)-ztran_win_norm(:)) + 7.426151 ) &
328 + 1./ (199.8208128*(b%XSHGC(:)-ztran_win_norm(:))**3 &
329 - 90.639733*(b%XSHGC(:)-ztran_win_norm(:))**2 &
330 + 19.737055*(b%XSHGC(:)-ztran_win_norm(:)) + 6.766575) )
333 1./ ( 2.225824*(b%XSHGC(:)-ztran_win_norm(:)) + 20.57708 ) &
334 + 1./ ( 5.763355*(b%XSHGC(:)-ztran_win_norm(:)) + 20.541528 ) )
337 zr_is(:) = 1./ (199.8208128*(b%XSHGC(:)-ztran_win_norm(:))**3 &
338 - 90.639733*(b%XSHGC(:)-ztran_win_norm(:))**2 &
339 + 19.737055*(b%XSHGC(:)-ztran_win_norm(:)) + 6.766575)
341 zr_os(:) = 1./ ( 5.763355*(b%XSHGC(:)-ztran_win_norm(:)) + 20.541528 )
346 zfrac(:) = (zr_os(:) + 0.5*(1./b%XUGG_WIN(:))) / &
347 (zr_os(:) + 1./b%XUGG_WIN(:) + zr_is(:))
349 zalb_win_norm(:) = 1. - ztran_win_norm(:) - (b%XSHGC(:)-ztran_win_norm(:)) / zfrac(:)
355 b%XTRAN_WIN(:) = ztran_win_norm(:) * zfac_tran
356 b%XALB_WIN(:) = zalb_win_norm(:) * zfac_alb
358 b%XABS_WIN(:) = 1. - b%XALB_WIN(:) - b%XTRAN_WIN(:)
subroutine window_data(KI, B)