8 ptstep, kyear, kmonth, kday, ptime, ki, ksv, ksw, ptsun, pzenith, pazim, &
9 pzref, puref, pzs, pu, pv, pqa, pta, prhoa, psv, pco2, hsv, &
10 prain, psnow, plw, pdir_sw, psca_sw, psw_bands, pps, ppa, &
11 psftq, psfth, psfts, psfco2, psfu, psfv, &
12 ptrad, pdir_alb, psca_alb, pemis, ptsurf, pz0, pz0h, pqsurf, &
13 ppew_a_coef, ppew_b_coef, &
14 ppet_a_coef, ppeq_a_coef, ppet_b_coef, ppeq_b_coef, &
60 USE modd_csts, ONLY : xrd, xcpd, xp00, xlvtt, xpi, xkarman, xg
72 USE modi_goto_wrapper_teb_patch
75 USE modi_add_forecast_to_date_surf
76 USE modi_diag_inline_teb_n
77 USE modi_diag_misc_teb_n
84 USE yomhook
,ONLY : lhook, dr_hook
85 USE parkind1
,ONLY : jprb
89 USE modi_canopy_grid_update
92 USE modi_circumsolar_rad
102 TYPE(isba_grid_t
),
INTENT(INOUT) :: ig
103 TYPE(isba_t
),
INTENT(INOUT) :: i
104 TYPE(dst_t),
INTENT(INOUT) :: dst
105 TYPE(slt_t),
INTENT(INOUT) :: slt
110 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
111 CHARACTER(LEN=1),
INTENT(IN) :: hcoupling
114 INTEGER,
INTENT(IN) :: kyear
115 INTEGER,
INTENT(IN) :: kmonth
116 INTEGER,
INTENT(IN) :: kday
117 REAL,
INTENT(IN) :: ptime
118 INTEGER,
INTENT(IN) :: ki
119 INTEGER,
INTENT(IN) :: ksv
120 INTEGER,
INTENT(IN) :: ksw
121 REAL,
DIMENSION(KI),
INTENT(IN) :: ptsun
122 REAL,
INTENT(IN) :: ptstep
123 REAL,
DIMENSION(KI),
INTENT(IN) :: pzref
124 REAL,
DIMENSION(KI),
INTENT(IN) :: puref
126 REAL,
DIMENSION(KI),
INTENT(IN) :: pta
127 REAL,
DIMENSION(KI),
INTENT(IN) :: pqa
128 REAL,
DIMENSION(KI),
INTENT(IN) :: prhoa
129 REAL,
DIMENSION(KI,KSV),
INTENT(IN) :: psv
132 CHARACTER(LEN=6),
DIMENSION(KSV),
INTENT(IN):: hsv
133 REAL,
DIMENSION(KI),
INTENT(IN) :: pu
134 REAL,
DIMENSION(KI),
INTENT(IN) :: pv
135 REAL,
DIMENSION(KI,KSW),
INTENT(IN) :: pdir_sw
137 REAL,
DIMENSION(KI,KSW),
INTENT(IN) :: psca_sw
139 REAL,
DIMENSION(KSW),
INTENT(IN) :: psw_bands
140 REAL,
DIMENSION(KI),
INTENT(IN) :: pzenith
141 REAL,
DIMENSION(KI),
INTENT(IN) :: pazim
142 REAL,
DIMENSION(KI),
INTENT(IN) :: plw
144 REAL,
DIMENSION(KI),
INTENT(IN) :: pps
145 REAL,
DIMENSION(KI),
INTENT(IN) :: ppa
146 REAL,
DIMENSION(KI),
INTENT(IN) :: pzs
147 REAL,
DIMENSION(KI),
INTENT(IN) :: pco2
148 REAL,
DIMENSION(KI),
INTENT(IN) :: psnow
149 REAL,
DIMENSION(KI),
INTENT(IN) :: prain
152 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfth
153 REAL,
DIMENSION(KI),
INTENT(OUT) :: psftq
154 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfu
155 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfv
156 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfco2
157 REAL,
DIMENSION(KI,KSV),
INTENT(OUT):: psfts
159 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptrad
160 REAL,
DIMENSION(KI,KSW),
INTENT(OUT):: pdir_alb
161 REAL,
DIMENSION(KI,KSW),
INTENT(OUT):: psca_alb
162 REAL,
DIMENSION(KI),
INTENT(OUT) :: pemis
164 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptsurf
165 REAL,
DIMENSION(KI),
INTENT(OUT) :: pz0
166 REAL,
DIMENSION(KI),
INTENT(OUT) :: pz0h
167 REAL,
DIMENSION(KI),
INTENT(OUT) :: pqsurf
169 REAL,
DIMENSION(KI),
INTENT(IN) :: ppew_a_coef
170 REAL,
DIMENSION(KI),
INTENT(IN) :: ppew_b_coef
171 REAL,
DIMENSION(KI),
INTENT(IN) :: ppet_a_coef
172 REAL,
DIMENSION(KI),
INTENT(IN) :: ppeq_a_coef
173 REAL,
DIMENSION(KI),
INTENT(IN) :: ppet_b_coef
174 REAL,
DIMENSION(KI),
INTENT(IN) :: ppeq_b_coef
175 CHARACTER(LEN=2),
INTENT(IN) :: htest
182 REAL,
DIMENSION(KI) :: zqa
183 REAL,
DIMENSION(KI) :: zexna
184 REAL,
DIMENSION(KI) :: zexns
185 REAL,
DIMENSION(KI) :: zwind
189 REAL,
DIMENSION(KI) :: zu_canyon
190 REAL,
DIMENSION(KI) :: zt_canyon
191 REAL,
DIMENSION(KI) :: zq_canyon
192 REAL,
DIMENSION(KI) :: zt_can
193 REAL,
DIMENSION(KI) :: zq_can
195 REAL,
DIMENSION(KI) :: zrn_roof
196 REAL,
DIMENSION(KI) :: zh_roof
197 REAL,
DIMENSION(KI) :: zle_roof
198 REAL,
DIMENSION(KI) :: zlew_roof
199 REAL,
DIMENSION(KI) :: zgflux_roof
200 REAL,
DIMENSION(KI) :: zrunoff_roof
201 REAL,
DIMENSION(KI) :: zrn_road
202 REAL,
DIMENSION(KI) :: zh_road
203 REAL,
DIMENSION(KI) :: zle_road
204 REAL,
DIMENSION(KI) :: zlew_road
205 REAL,
DIMENSION(KI) :: zgflux_road
206 REAL,
DIMENSION(KI) :: zrunoff_road
207 REAL,
DIMENSION(KI) :: zirrig_road
208 REAL,
DIMENSION(KI) :: zrn_wall_a
209 REAL,
DIMENSION(KI) :: zh_wall_a
210 REAL,
DIMENSION(KI) :: zle_wall_a
211 REAL,
DIMENSION(KI) :: zgflux_wall_a
212 REAL,
DIMENSION(KI) :: zrn_wall_b
213 REAL,
DIMENSION(KI) :: zh_wall_b
214 REAL,
DIMENSION(KI) :: zle_wall_b
215 REAL,
DIMENSION(KI) :: zgflux_wall_b
216 REAL,
DIMENSION(KI) :: zrn_garden
217 REAL,
DIMENSION(KI) :: zh_garden
218 REAL,
DIMENSION(KI) :: zle_garden
219 REAL,
DIMENSION(KI) :: zgflux_garden
220 REAL,
DIMENSION(KI) :: zrunoff_garden
221 REAL,
DIMENSION(KI) :: zdrain_garden
222 REAL,
DIMENSION(KI) :: zirrig_garden
223 REAL,
DIMENSION(KI) :: zrn_greenroof
224 REAL,
DIMENSION(KI) :: zh_greenroof
225 REAL,
DIMENSION(KI) :: zle_greenroof
226 REAL,
DIMENSION(KI) :: zgflux_greenroof
227 REAL,
DIMENSION(KI) :: zg_greenroof_roof
228 REAL,
DIMENSION(KI) :: zrunoff_greenroof
229 REAL,
DIMENSION(KI) :: zdrain_greenroof
230 REAL,
DIMENSION(KI) :: zirrig_greenroof
231 REAL,
DIMENSION(KI) :: zrn_strlroof
232 REAL,
DIMENSION(KI) :: zh_strlroof
233 REAL,
DIMENSION(KI) :: zle_strlroof
234 REAL,
DIMENSION(KI) :: zgflux_strlroof
235 REAL,
DIMENSION(KI) :: zrunoff_strlroof
236 REAL,
DIMENSION(KI) :: zh_panel
237 REAL,
DIMENSION(KI) :: zther_prod_panel
238 REAL,
DIMENSION(KI) :: zphot_prod_panel
239 REAL,
DIMENSION(KI) :: zprod_panel
240 REAL,
DIMENSION(KI) :: zther_prod_bld
241 REAL,
DIMENSION(KI) :: zphot_prod_bld
242 REAL,
DIMENSION(KI) :: zprod_bld
243 REAL,
DIMENSION(KI) :: zrn_panel
244 REAL,
DIMENSION(KI) :: zrn_blt
245 REAL,
DIMENSION(KI) :: zh_blt
246 REAL,
DIMENSION(KI) :: zle_blt
247 REAL,
DIMENSION(KI) :: zgflux_blt
248 REAL,
DIMENSION(KI) :: zrn_grnd
249 REAL,
DIMENSION(KI) :: zh_grnd
250 REAL,
DIMENSION(KI) :: zle_grnd
251 REAL,
DIMENSION(KI) :: zgflux_grnd
252 REAL,
DIMENSION(KI) :: zrnsnow_roof
253 REAL,
DIMENSION(KI) :: zhsnow_roof
254 REAL,
DIMENSION(KI) :: zlesnow_roof
255 REAL,
DIMENSION(KI) :: zgsnow_roof
256 REAL,
DIMENSION(KI) :: zmelt_roof
257 REAL,
DIMENSION(KI) :: zrnsnow_road
258 REAL,
DIMENSION(KI) :: zhsnow_road
259 REAL,
DIMENSION(KI) :: zlesnow_road
260 REAL,
DIMENSION(KI) :: zgsnow_road
261 REAL,
DIMENSION(KI) :: zmelt_road
263 REAL,
DIMENSION(KI) :: ztrad
264 REAL,
DIMENSION(KI) :: zemis
265 REAL,
DIMENSION(KI,TM%TOP%NTEB_PATCH) :: ztrad_patch
266 REAL,
DIMENSION(KI,TM%TOP%NTEB_PATCH) :: zemis_patch
267 REAL,
DIMENSION(KI,KSW,TM%TOP%NTEB_PATCH) :: zdir_alb_patch
268 REAL,
DIMENSION(KI,KSW,TM%TOP%NTEB_PATCH) :: zsca_alb_patch
270 REAL,
DIMENSION(KI) :: zrn
271 REAL,
DIMENSION(KI) :: zh
272 REAL,
DIMENSION(KI) :: zle
273 REAL,
DIMENSION(KI) :: zgflux
274 REAL,
DIMENSION(KI) :: zsfco2
275 REAL,
DIMENSION(KI) :: zqf_bld
276 REAL,
DIMENSION(KI) :: zflx_bld
277 REAL,
DIMENSION(KI) :: zdqs_town
278 REAL,
DIMENSION(KI) :: zqf_town
279 REAL,
DIMENSION(KI) :: zevap
280 REAL,
DIMENSION(KI) :: zrunoff_town
281 REAL,
DIMENSION(KI) :: zcd
282 REAL,
DIMENSION(KI) :: zcdn
283 REAL,
DIMENSION(KI) :: zch
284 REAL,
DIMENSION(KI) :: zri
285 REAL,
DIMENSION(KI) :: zuw_grnd
286 REAL,
DIMENSION(KI) :: zuw_roof
287 REAL,
DIMENSION(KI) :: zduwdu_grnd
288 REAL,
DIMENSION(KI) :: zduwdu_roof
289 REAL,
DIMENSION(KI) :: zustar
290 REAL,
DIMENSION(KI) :: zsfu
291 REAL,
DIMENSION(KI) :: zsfv
292 REAL,
DIMENSION(KI) :: zavg_dir_alb
293 REAL,
DIMENSION(KI) :: zavg_sca_alb
294 REAL,
DIMENSION(KI) :: zavg_t_canyon
295 REAL,
DIMENSION(KI) :: zavg_q_canyon
297 REAL,
DIMENSION(KI) :: zavg_cd
298 REAL,
DIMENSION(KI) :: zavg_cdn
299 REAL,
DIMENSION(KI) :: zavg_ri
300 REAL,
DIMENSION(KI) :: zavg_ch
302 REAL,
DIMENSION(KI) :: zdir_alb
303 REAL,
DIMENSION(KI) :: zsca_alb
305 REAL,
DIMENSION(KI) :: zh_traffic
307 REAL,
DIMENSION(KI) :: zle_traffic
309 REAL,
DIMENSION(KI) :: zresa_town
310 REAL,
DIMENSION(KI) :: zac_road
311 REAL,
DIMENSION(KI) :: zac_garden
312 REAL,
DIMENSION(KI) :: zac_grnd
313 REAL,
DIMENSION(KI) :: zac_greenroof
314 REAL,
DIMENSION(KI) :: zac_road_wat
315 REAL,
DIMENSION(KI) :: zac_garden_wat
316 REAL,
DIMENSION(KI) :: zac_grnd_wat
317 REAL,
DIMENSION(KI) :: zac_greenroof_wat
318 REAL,
DIMENSION(KI,1):: zesnow_garden
320 REAL :: zbegin_traffic_time
321 REAL :: zend_traffic_time
322 REAL,
DIMENSION(KI) :: zdir_sw
323 REAL,
DIMENSION(KI) :: zsca_sw
324 REAL,
DIMENSION(KI) :: zpew_a_coef
325 REAL,
DIMENSION(KI) :: zpew_b_coef
328 REAL,
DIMENSION(KI) :: zsflux_u
329 REAL,
DIMENSION(KI) :: zsflux_t
330 REAL,
DIMENSION(KI) :: zsflux_q
331 REAL,
DIMENSION(KI,TM%TCP%NLVL) :: zforc_u
332 REAL,
DIMENSION(KI,TM%TCP%NLVL) :: zdforc_udu
334 REAL,
DIMENSION(KI,TM%TCP%NLVL) :: zforc_e
335 REAL,
DIMENSION(KI,TM%TCP%NLVL) :: zdforc_ede
337 REAL,
DIMENSION(KI,TM%TCP%NLVL) :: zforc_t
338 REAL,
DIMENSION(KI,TM%TCP%NLVL) :: zdforc_tdt
340 REAL,
DIMENSION(KI,TM%TCP%NLVL) :: zforc_q
341 REAL,
DIMENSION(KI,TM%TCP%NLVL) :: zdforc_qdq
344 REAL,
DIMENSION(KI) :: zavg_uw_grnd
345 REAL,
DIMENSION(KI) :: zavg_duwdu_grnd
346 REAL,
DIMENSION(KI) :: zavg_uw_roof
347 REAL,
DIMENSION(KI) :: zavg_duwdu_roof
348 REAL,
DIMENSION(KI) :: zavg_h_grnd
349 REAL,
DIMENSION(KI) :: zavg_h_wall
350 REAL,
DIMENSION(KI) :: zavg_h_roof
351 REAL,
DIMENSION(KI) :: zavg_e_grnd
352 REAL,
DIMENSION(KI) :: zavg_e_roof
353 REAL,
DIMENSION(KI) :: zavg_ac_grnd
354 REAL,
DIMENSION(KI) :: zavg_ac_grnd_wat
355 REAL,
DIMENSION(KI) :: zavg_z0_town
356 REAL,
DIMENSION(KI) :: zavg_resa_town
357 REAL,
DIMENSION(KI) :: zavg_ustar
358 REAL,
DIMENSION(KI) :: zavg_bld
359 REAL,
DIMENSION(KI) :: zavg_bld_height
360 REAL,
DIMENSION(KI) :: zavg_wall_o_hor
361 REAL,
DIMENSION(KI) :: zavg_can_hw_ratio
362 REAL,
DIMENSION(KI) :: zavg_h
363 REAL,
DIMENSION(KI) :: zavg_le
364 REAL,
DIMENSION(KI) :: zavg_rn
365 REAL,
DIMENSION(KI) :: zavg_gflux
366 REAL,
DIMENSION(KI) :: zavg_ref_sw_grnd
367 REAL,
DIMENSION(KI) :: zavg_ref_sw_fac
368 REAL,
DIMENSION(KI) :: zavg_sca_sw
369 REAL,
DIMENSION(KI) :: zavg_dir_sw
370 REAL,
DIMENSION(KI) :: zavg_emit_lw_fac
371 REAL,
DIMENSION(KI) :: zavg_emit_lw_grnd
372 REAL,
DIMENSION(KI) :: zavg_t_rad_ind
373 REAL,
DIMENSION(KI) :: zt_lowcan
374 REAL,
DIMENSION(KI) :: zq_lowcan
375 REAL,
DIMENSION(KI) :: zu_lowcan
376 REAL,
DIMENSION(KI) :: zz_lowcan
377 REAL,
DIMENSION(KI) :: zpew_a_coef_lowcan
378 REAL,
DIMENSION(KI) :: zpew_b_coef_lowcan
379 REAL,
DIMENSION(KI) :: zta
380 REAL,
DIMENSION(KI) :: zpa
381 REAL,
DIMENSION(KI) :: zua
382 REAL,
DIMENSION(KI) :: zuref
383 REAL,
DIMENSION(KI) :: zzref
384 REAL,
DIMENSION(KI) :: zlambda_f
385 REAL,
DIMENSION(KI) :: zlmo
386 REAL,
DIMENSION(KI,TM%TCP%NLVL) :: zl
390 REAL,
DIMENSION(KI) :: zabs_sw_road
391 REAL,
DIMENSION(KI) :: zabs_sw_wall_a
392 REAL,
DIMENSION(KI) :: zabs_sw_wall_b
393 REAL,
DIMENSION(KI) :: zabs_sw_roof
394 REAL,
DIMENSION(KI) :: zabs_sw_garden
395 REAL,
DIMENSION(KI) :: zabs_sw_greenroof
396 REAL,
DIMENSION(KI) :: zabs_sw_panel
397 REAL,
DIMENSION(KI) :: zabs_sw_snow_road
398 REAL,
DIMENSION(KI) :: zabs_sw_snow_roof
399 REAL,
DIMENSION(KI) :: zabs_lw_snow_road
400 REAL,
DIMENSION(KI) :: zabs_lw_snow_roof
401 REAL,
DIMENSION(KI) :: zabs_lw_road
402 REAL,
DIMENSION(KI) :: zabs_lw_wall_a
403 REAL,
DIMENSION(KI) :: zabs_lw_wall_b
404 REAL,
DIMENSION(KI) :: zabs_lw_roof
405 REAL,
DIMENSION(KI) :: zabs_lw_garden
406 REAL,
DIMENSION(KI) :: zabs_lw_greenroof
407 REAL,
DIMENSION(KI) :: zabs_lw_panel
409 REAL,
DIMENSION(KI) :: zu_utci
411 REAL,
DIMENSION(KI) :: zalfau
412 REAL,
DIMENSION(KI) :: zbetau
413 REAL,
DIMENSION(KI) :: zalfat
414 REAL,
DIMENSION(KI) :: zbetat
415 REAL,
DIMENSION(KI) :: zalfaq
416 REAL,
DIMENSION(KI) :: zbetaq
418 REAL,
DIMENSION(KI) :: zwake
422 REAL,
DIMENSION(KI) :: zcap_sys
423 REAL,
DIMENSION(KI) :: zm_sys
424 REAL,
DIMENSION(KI) :: zcop
425 REAL,
DIMENSION(KI) :: zq_sys
426 REAL,
DIMENSION(KI) :: zt_sys
427 REAL,
DIMENSION(KI) :: ztr_sw_win
428 REAL,
DIMENSION(KI) :: zfan_power
429 REAL,
DIMENSION(KI) :: zabs_sw_win
430 REAL,
DIMENSION(KI) :: zabs_lw_win
431 REAL,
DIMENSION(KI) :: zh_bld_cool
432 REAL,
DIMENSION(KI) :: zt_bld_cool
433 REAL,
DIMENSION(KI) :: zh_bld_heat
434 REAL,
DIMENSION(KI) :: zle_bld_cool
435 REAL,
DIMENSION(KI) :: zle_bld_heat
436 REAL,
DIMENSION(KI) :: zh_waste
437 REAL,
DIMENSION(KI) :: zle_waste
438 REAL,
DIMENSION(KI) :: zhvac_cool
439 REAL,
DIMENSION(KI) :: zhvac_heat
442 REAL,
DIMENSION(KI) :: zemit_lw_grnd
443 REAL,
DIMENSION(KI) :: zemit_lw_fac
444 REAL,
DIMENSION(KI) :: zt_rad_ind
445 REAL,
DIMENSION(KI) :: zref_sw_grnd
446 REAL,
DIMENSION(KI) :: zref_sw_fac
447 REAL,
DIMENSION(KI) :: zhu_bld
448 REAL,
DIMENSION(KI) :: zavg_ti_bld
449 REAL,
DIMENSION(KI) :: zavg_qi_bld
450 REAL,
DIMENSION(KI) :: zf1_o_b
451 REAL,
DIMENSION(KI,SIZE(PDIR_SW,2)) :: zdir_swb
452 REAL,
DIMENSION(KI,SIZE(PSCA_SW,2)) :: zsca_swb
455 REAL,
DIMENSION(SIZE(PTA)) :: zcur_tcool_target
456 REAL,
DIMENSION(SIZE(PTA)) :: zcur_theat_target
457 REAL,
DIMENSION(SIZE(PTA)) :: zcur_qin
459 REAL,
DIMENSION(KI) :: zcoef
461 REAL :: zconvertfacm0_slt, zconvertfacm0_dst
462 REAL :: zconvertfacm3_slt, zconvertfacm3_dst
463 REAL :: zconvertfacm6_slt, zconvertfacm6_dst
471 INTEGER :: jteb_patch
473 REAL(KIND=JPRB) :: zhook_handle
478 IF (lhook) CALL dr_hook(
'COUPLING_TEB_N',0,zhook_handle)
479 IF (htest/=
'OK')
THEN
480 CALL
abor1_sfx(
'COUPLING_TEBN: FATAL ERROR DURING ARGUMENT TRANSFER')
495 CALL
circumsolar_rad(pdir_sw(:,jswb), psca_sw(:,jswb), pzenith, zf1_o_b)
496 zdir_swb(:,jswb) = pdir_sw(:,jswb) + psca_sw(:,jswb) * zf1_o_b
497 zsca_swb(:,jswb) = psca_sw(:,jswb) * (1. - zf1_o_b)
499 DO jj=1,
SIZE(pdir_sw,1)
500 zdir_sw(jj) = zdir_sw(jj) + zdir_swb(jj,jswb)
501 zsca_sw(jj) = zsca_sw(jj) + zsca_swb(jj,jswb)
508 zqa(jj) = pqa(jj) / prhoa(jj)
512 zwind(jj) = sqrt(pu(jj)**2+pv(jj)**2)
517 IF (hcoupling==
'I')
THEN
518 zpew_a_coef = ppew_a_coef
519 zpew_b_coef = ppew_b_coef
530 tm%TOP%TTIME%TIME = tm%TOP%TTIME%TIME + ptstep
532 tm%TOP%TTIME%TDATE%DAY,tm%TOP%TTIME%TIME)
538 zbegin_traffic_time = 21600.
539 zend_traffic_time = 64800.
541 WHERE( ptsun>zbegin_traffic_time &
542 .AND. ptsun<zend_traffic_time )
543 zh_traffic(:) = tm%T%CUR%XH_TRAFFIC (:)
544 zle_traffic(:) = tm%T%CUR%XLE_TRAFFIC (:)
557 DO jteb_patch=1,tm%TOP%NTEB_PATCH
559 gdm%TGD, gdm%TGDPE, grm%TGR, grm%TGRPE, jteb_patch)
567 IF (tm%TOP%LCANOPY)
THEN
575 tm%TCP%XZ,tm%TCP%XZF,tm%TCP%XDZ,tm%TCP%XDZF)
580 IF(any(tm%TCP%XT(:,:) == xundef))
THEN
581 DO jlayer=1,tm%TCP%NLVL
582 tm%TCP%XT(:,jlayer) = pta(:)
583 tm%TCP%XQ(:,jlayer) = pqa(:)
584 tm%TCP%XU(:,jlayer) = 2./xpi * zwind(:) &
585 * log( ( 2.* tm%T%CUR%XBLD_HEIGHT(:)/3.) / tm%T%CUR%XZ0_TOWN(:)) &
586 / log( (puref(:)+ 2.* tm%T%CUR%XBLD_HEIGHT(:)/3.) / tm%T%CUR%XZ0_TOWN(:))
588 tm%TCP%XTKE(:,:) = 1.
594 zua(:) = tm%TCP%XU(:,tm%TCP%NLVL)
595 zta(:) = tm%TCP%XT(:,tm%TCP%NLVL)
596 zqa(:) = tm%TCP%XQ(:,tm%TCP%NLVL)/prhoa(:)
597 zpa(:) = tm%TCP%XP(:,tm%TCP%NLVL)
599 zu_canyon(:) = zua(:)
600 zt_canyon(:) = zta(:)
601 zq_canyon(:) = zqa(:)
602 DO jlayer=1,tm%TCP%NLVL-1
605 IF (tm%TCP%XZ(ji,jlayer)<zavg_bld_height(ji)/2. .AND. &
606 tm%TCP%XZ(ji,jlayer+1)>=zavg_bld_height(ji)/2.)
THEN
607 zcoef(ji) = (zavg_bld_height(ji)/2.-tm%TCP%XZ(ji,jlayer))/(tm%TCP%XZ(ji,jlayer+1)-tm%TCP%XZ(ji,jlayer))
608 zu_canyon(ji) = tm%TCP%XU(ji,jlayer) + zcoef(ji) * (tm%TCP%XU(ji,jlayer+1)-tm%TCP%XU(ji,jlayer))
609 zt_canyon(ji) = tm%TCP%XT(ji,jlayer) + zcoef(ji) * (tm%TCP%XT(ji,jlayer+1)-tm%TCP%XT(ji,jlayer))
610 zq_canyon(ji) =(tm%TCP%XQ(ji,jlayer) + zcoef(ji) * &
611 (tm%TCP%XQ(ji,jlayer+1)-tm%TCP%XQ(ji,jlayer)))/prhoa(ji)
614 IF (tm%TCP%XZ(ji,jlayer)<zavg_bld_height(ji)+1. .AND. &
615 tm%TCP%XZ(ji,jlayer+1)>=zavg_bld_height(ji)+1.)
THEN
616 zuref(ji) = tm%TCP%XZ(ji,jlayer+1) - zavg_bld_height(ji)
617 zzref(ji) = tm%TCP%XZ(ji,jlayer+1) - zavg_bld_height(ji)
618 zta(ji) = tm%TCP%XT(ji,jlayer+1)
619 zqa(ji) = tm%TCP%XQ(ji,jlayer+1)/prhoa(ji)
621 zua(ji) = max(tm%TCP%XU(ji,jlayer+1) - 2.*sqrt(tm%TCP%XTKE(ji,jlayer+1)) , tm%TCP%XU(ji,jlayer+1)/3.)
622 zpa(ji) = tm%TCP%XP(ji,jlayer+1)
623 zlmo(ji) = tm%TCP%XLMO(ji,jlayer+1)
627 zu_canyon= max(zu_canyon,0.2)
628 zu_lowcan=tm%TCP%XU(:,1)
629 zt_lowcan=tm%TCP%XT(:,1)
630 zq_lowcan=tm%TCP%XQ(:,1) / prhoa(:)
631 zz_lowcan=tm%TCP%XZ(:,1)
632 WHERE(zpa==xundef) zpa = ppa
639 zlambda_f(:) = zavg_can_hw_ratio*zavg_bld / (0.5*xpi)
641 CALL
sm10(tm%TCP%XZ,zavg_bld_height,zlambda_f,zl)
648 zavg_duwdu_grnd(:) = 0.
650 zavg_duwdu_roof(:) = 0.
657 zavg_ac_grnd_wat(:) = 0.
662 DO jlayer=1,tm%TCP%NLVL-1
665 WHERE (tm%TCP%XZ(:,jlayer)<=zavg_bld_height(:)+1.) tm%TCP%XLMO(:,jlayer) = xundef
670 CALL
teb_canopy(ki,tm%TCP%NLVL,tm%TCP%XZ,tm%TCP%XZF,tm%TCP%XDZ,tm%TCP%XDZF,&
671 zavg_bld,zavg_bld_height,zavg_wall_o_hor, &
672 ppa,prhoa,tm%TCP%XU, &
673 zavg_duwdu_grnd, zavg_uw_roof, zavg_duwdu_roof, &
674 zavg_h_wall,zavg_h_roof,zavg_e_roof,zavg_ac_grnd,zavg_ac_grnd_wat, &
675 zforc_u,zdforc_udu,zforc_e,zdforc_ede,zforc_t,zdforc_tdt,zforc_q,zdforc_qdq)
679 zl,zwind,pta,pqa,ppa,prhoa, &
680 zsflux_u,zsflux_t,zsflux_q, &
681 zforc_u,zdforc_udu,zforc_e,zdforc_ede, &
682 zforc_t,zdforc_tdt,zforc_q,zdforc_qdq, &
683 tm%TCP%XZ,tm%TCP%XZF,tm%TCP%XDZ,tm%TCP%XDZF,tm%TCP%XU,&
684 tm%TCP%XTKE,tm%TCP%XT,tm%TCP%XQ,tm%TCP%XLMO, &
685 tm%TCP%XLM,tm%TCP%XLEPS,tm%TCP%XP,zavg_ustar, &
686 zalfau,zbetau,zalfat,zbetat,zalfaq,zbetaq)
688 zpew_a_coef_lowcan = - zalfau / prhoa
689 zpew_b_coef_lowcan = zbetau
699 zwake(ji)= 1. + (2./xpi-1.) * 2. * (zavg_can_hw_ratio(ji)-0.5)
700 zwake(ji)= max(min(zwake(ji),1.),2./xpi)
705 IF (zavg_bld_height(ji) .GT. 0.)
THEN
706 zu_canyon(ji) = zwake(ji) * exp(-zavg_can_hw_ratio(ji)/4.) * zwind(ji) &
707 * log( ( 2.* zavg_bld_height(ji)/3.) / zavg_z0_town(ji)) &
708 / log( (puref(ji)+ 2.* zavg_bld_height(ji)/3.) / zavg_z0_town(ji))
709 zz_lowcan(ji) = zavg_bld_height(ji) / 2.
711 zu_canyon(ji) = zwind(ji)
712 zz_lowcan(ji) = pzref(ji)
718 zt_lowcan=tm%T%CUR%XT_CANYON
719 zq_lowcan=tm%T%CUR%XQ_CANYON
720 zt_canyon=tm%T%CUR%XT_CANYON
721 zq_canyon=tm%T%CUR%XQ_CANYON
727 zpew_a_coef_lowcan = 0.
728 zpew_b_coef_lowcan = zu_canyon
733 zexns(:) = (pps(:)/xp00)**(xrd/xcpd)
734 zexna(:) = (zpa(:)/xp00)**(xrd/xcpd)
740 DO jteb_patch=1,tm%TOP%NTEB_PATCH
742 gdm%TGD, gdm%TGDPE, grm%TGR, grm%TGRPE, jteb_patch)
747 IF (tm%TOP%LCANOPY)
THEN
748 tm%T%CUR%XT_CANYON(:) = zt_canyon(:)
749 tm%T%CUR%XQ_CANYON(:) = zq_canyon(:)
754 zg_greenroof_roof(:) = 0.
760 CALL
teb_garden(dtco, dti, ig, i, tm, gdm, grm, &
761 tm%TOP%LGARDEN, tm%TOP%LGREENROOF, tm%TOP%LSOLAR_PANEL, &
762 tm%TOP%CZ0H, cimplicit_wind, tm%TOP%CROAD_DIR, tm%TOP%CWALL_OPT, &
763 tm%TOP%TTIME, ptsun, zt_can, zq_can, zu_canyon, &
764 zt_lowcan, zq_lowcan, zu_lowcan, zz_lowcan, &
765 tm%B%CUR%XTI_BLD,tm%T%CUR%XT_ROOF, tm%T%CUR%XT_ROAD, &
766 tm%T%CUR%XT_WALL_A, tm%T%CUR%XT_WALL_B, tm%T%CUR%XWS_ROOF, &
767 tm%T%CUR%XWS_ROAD,tm%T%CUR%TSNOW_ROOF%SCHEME, &
768 tm%T%CUR%TSNOW_ROOF%WSNOW(:,:,1), tm%T%CUR%TSNOW_ROOF%T(:,:,1), &
769 tm%T%CUR%TSNOW_ROOF%RHO(:,:,1), tm%T%CUR%TSNOW_ROOF%ALB(:,1), &
770 tm%T%CUR%TSNOW_ROOF%TS(:,1), tm%T%CUR%TSNOW_ROOF%EMIS(:,1), &
771 tm%T%CUR%TSNOW_ROAD%SCHEME, &
772 tm%T%CUR%TSNOW_ROAD%WSNOW(:,:,1), tm%T%CUR%TSNOW_ROAD%T(:,:,1), &
773 tm%T%CUR%TSNOW_ROAD%RHO(:,:,1), tm%T%CUR%TSNOW_ROAD%ALB(:,1), &
774 tm%T%CUR%TSNOW_ROAD%TS(:,1), tm%T%CUR%TSNOW_ROAD%EMIS(:,1), &
775 zpew_a_coef, zpew_b_coef,zpew_a_coef_lowcan, zpew_b_coef_lowcan, &
776 pps, zpa, zexns, zexna, zta, zqa, prhoa, pco2, &
777 plw, zdir_swb, zsca_swb, psw_bands, ksw, pzenith, pazim, &
778 prain, psnow, zzref, zuref, zua, &
779 zh_traffic, zle_traffic, tm%T%CUR%XH_INDUSTRY, tm%T%CUR%XLE_INDUSTRY, &
781 tm%T%CUR%XZ0_TOWN, tm%T%CUR%XBLD, tm%T%CUR%XGARDEN, &
782 tm%T%CUR%XROAD_DIR, tm%T%CUR%XROAD, tm%T%CUR%XGREENROOF, &
783 tm%T%CUR%XBLD_HEIGHT, tm%T%CUR%XWALL_O_HOR, tm%T%CUR%XCAN_HW_RATIO, &
784 tm%T%CUR%XROAD_O_GRND, tm%T%CUR%XGARDEN_O_GRND, tm%T%CUR%XWALL_O_GRND,&
785 tm%T%CUR%XALB_ROOF, tm%T%CUR%XEMIS_ROOF, tm%T%CUR%XHC_ROOF, &
786 tm%T%CUR%XTC_ROOF,tm%T%CUR%XD_ROOF,tm%T%CUR%XALB_ROAD, &
787 tm%T%CUR%XEMIS_ROAD, tm%T%CUR%XSVF_ROAD,tm%T%CUR%XHC_ROAD, &
788 tm%T%CUR%XTC_ROAD,tm%T%CUR%XD_ROAD,tm%T%CUR%XALB_WALL, &
789 tm%T%CUR%XEMIS_WALL, tm%T%CUR%XSVF_WALL,tm%T%CUR%XSVF_GARDEN, &
790 tm%T%CUR%XHC_WALL,tm%T%CUR%XTC_WALL,tm%T%CUR%XD_WALL, &
791 zrn_roof, zh_roof, zle_roof, zlew_roof, zgflux_roof, &
793 zrn_road, zh_road, zle_road, zlew_road, zgflux_road, &
795 zrn_wall_a, zh_wall_a, zle_wall_a, zgflux_wall_a, &
796 zrn_wall_b, zh_wall_b, zle_wall_b, zgflux_wall_b, &
797 zrn_garden,zh_garden,zle_garden,zgflux_garden, &
798 zrunoff_garden, zdrain_garden, zirrig_garden, &
799 zrn_greenroof,zh_greenroof,zle_greenroof,zgflux_greenroof, &
800 zrn_strlroof,zh_strlroof,zle_strlroof,zgflux_strlroof, &
802 zrn_blt,zh_blt,zle_blt,zgflux_blt, &
803 zrnsnow_roof, zhsnow_roof, zlesnow_roof, zgsnow_roof, &
805 zrnsnow_road, zhsnow_road, zlesnow_road, zgsnow_road, &
807 zrn_grnd, zh_grnd, zle_grnd, zgflux_grnd, &
808 zrn, zh, zle, zgflux, zevap, zrunoff_town, zsfco2, &
809 zuw_grnd, zuw_roof, zduwdu_grnd, zduwdu_roof, &
810 zustar, zcd, zcdn, zch, zri, &
811 ztrad, zemis, zdir_alb, zsca_alb, zresa_town, zdqs_town, &
813 zflx_bld, zac_road, zac_garden, zac_greenroof, &
814 zac_road_wat, zac_garden_wat, zac_greenroof_wat, &
815 zabs_sw_roof,zabs_lw_roof, &
816 zabs_sw_snow_roof,zabs_lw_snow_roof, &
817 zabs_sw_road,zabs_lw_road, &
818 zabs_sw_snow_road,zabs_lw_snow_road, &
819 zabs_sw_wall_a, zabs_lw_wall_a, &
820 zabs_sw_wall_b, zabs_lw_wall_b, &
821 zabs_sw_panel,zabs_lw_panel, &
822 zabs_sw_garden,zabs_lw_garden, &
823 zabs_sw_greenroof,zabs_lw_greenroof, zg_greenroof_roof, &
824 zrunoff_greenroof, zdrain_greenroof, &
825 zirrig_greenroof, tm%BOP%CCOOL_COIL, tm%B%CUR%XF_WATER_COND, &
826 tm%BOP%CHEAT_COIL,tm%B%CUR%CNATVENT,kday, tm%B%CUR%XAUX_MAX, &
827 tm%B%CUR%XT_FLOOR, tm%B%CUR%XT_MASS, zh_bld_cool,zt_bld_cool, &
828 zh_bld_heat, zle_bld_cool, zle_bld_heat, zh_waste, zle_waste, &
829 tm%B%CUR%XF_WASTE_CAN, zhvac_cool, zhvac_heat, tm%B%CUR%XQIN, &
830 tm%B%CUR%XQIN_FRAD, tm%B%CUR%XQIN_FLAT, tm%B%CUR%XGR, &
831 tm%B%CUR%XEFF_HEAT, tm%B%CUR%XINF, tm%B%CUR%XTCOOL_TARGET, &
832 tm%B%CUR%XTHEAT_TARGET, tm%B%CUR%XHR_TARGET, tm%B%CUR%XT_WIN2, &
833 tm%B%CUR%XQI_BLD, tm%B%CUR%XV_VENT,tm%B%CUR%XCAP_SYS_HEAT, &
834 tm%B%CUR%XCAP_SYS_RAT, tm%B%CUR%XT_ADP, tm%B%CUR%XM_SYS_RAT, &
835 tm%B%CUR%XCOP_RAT, zcap_sys, zm_sys, zcop, zq_sys, zt_sys, &
836 ztr_sw_win, zfan_power, tm%B%CUR%XHC_FLOOR, tm%B%CUR%XTC_FLOOR, &
837 tm%B%CUR%XD_FLOOR, tm%B%CUR%XT_WIN1, zabs_sw_win, zabs_lw_win, &
838 tm%B%CUR%XSHGC, tm%B%CUR%XSHGC_SH, tm%B%CUR%XUGG_WIN, &
839 tm%B%CUR%XALB_WIN, tm%B%CUR%XABS_WIN, zemit_lw_fac, zemit_lw_grnd,&
840 zt_rad_ind, zref_sw_grnd,zref_sw_fac, zhu_bld, ptime, &
841 tm%B%CUR%LSHADE, tm%B%CUR%LSHAD_DAY, tm%B%CUR%LNATVENT_NIGHT, &
842 tm%TOP%CBEM, tm%B%CUR%XN_FLOOR, tm%T%CUR%XWALL_O_BLD, &
843 tm%B%CUR%XGLAZ_O_BLD, tm%B%CUR%XMASS_O_BLD, tm%B%CUR%XFLOOR_HW_RATIO,&
844 tm%B%CUR%XF_FLOOR_MASS, tm%B%CUR%XF_FLOOR_WALL, tm%B%CUR%XF_FLOOR_WIN,&
845 tm%B%CUR%XF_FLOOR_ROOF, tm%B%CUR%XF_WALL_FLOOR, tm%B%CUR%XF_WALL_MASS,&
846 tm%B%CUR%XF_WALL_WIN, tm%B%CUR%XF_WIN_FLOOR, tm%B%CUR%XF_WIN_MASS, &
847 tm%B%CUR%XF_WIN_WALL, tm%B%CUR%XF_MASS_FLOOR, tm%B%CUR%XF_MASS_WALL, &
848 tm%B%CUR%XF_MASS_WIN, tm%TOP%LCANOPY, tm%B%CUR%XTRAN_WIN, &
849 tm%TOP%CCH_BEM, tm%T%CUR%XROUGH_ROOF, tm%T%CUR%XROUGH_WALL, &
850 tm%B%CUR%XF_WIN_WIN, gdm%TIR%LPAR_RD_IRRIG, gdm%TIR%XRD_START_MONTH, &
851 gdm%TIR%XRD_END_MONTH, gdm%TIR%XRD_START_HOUR, gdm%TIR%XRD_END_HOUR, &
852 gdm%TIR%XRD_24H_IRRIG, zirrig_road, tm%TPN%XEMIS_PANEL, &
853 tm%TPN%XALB_PANEL, tm%TPN%XEFF_PANEL, tm%TPN%XFRAC_PANEL, &
854 tm%T%CUR%XRESIDENTIAL, zther_prod_panel, zphot_prod_panel, &
855 zprod_panel, zther_prod_bld , zphot_prod_bld, zprod_bld, &
856 tm%TPN%XTHER_PRODC_DAY, zh_panel, zrn_panel, &
857 tm%T%CUR%XDT_RES, tm%T%CUR%XDT_OFF, &
858 zcur_tcool_target, zcur_theat_target, zcur_qin )
862 IF (.NOT. tm%TOP%LCANOPY)
THEN
871 IF (zwind(jj)>0.)
THEN
872 zcoef(jj) = - prhoa(jj) * zustar(jj)**2 / zwind(jj)
873 zsfu(jj) = zcoef(jj) * pu(jj)
874 zsfv(jj) = zcoef(jj) * pv(jj)
895 DO jswb=1,
SIZE(psw_bands)
896 DO jj=1,
SIZE(zdir_alb)
897 zdir_alb_patch(jj,jswb,jteb_patch) = zdir_alb(jj)
898 zsca_alb_patch(jj,jswb,jteb_patch) = zsca_alb(jj)
904 zemis_patch(:,jteb_patch) = zemis
905 ztrad_patch(:,jteb_patch) = ztrad
920 IF (jteb_patch==tm%TOP%NTEB_PATCH) zavg_resa_town = 1./zavg_resa_town
927 ptstep, zdqs_town, zqf_bld, zqf_town, zflx_bld, &
929 zrn_road, zh_road, zle_road, zgflux_road, &
930 zrunoff_road, zirrig_road, &
931 zrn_wall_a, zh_wall_a, zgflux_wall_a, &
932 zrn_wall_b, zh_wall_b, zgflux_wall_b, &
933 zrn_roof, zh_roof, zle_roof, zgflux_roof, zrunoff_roof, &
934 zrn_strlroof, zh_strlroof, zle_strlroof, zgflux_strlroof, &
936 zrn_greenroof, zh_greenroof, &
937 zle_greenroof, zgflux_greenroof, zg_greenroof_roof, &
938 zrunoff_greenroof, zdrain_greenroof,zirrig_greenroof, &
939 zrn_garden,zh_garden,zle_garden,zgflux_garden, &
940 zrunoff_garden, zdrain_garden, zirrig_garden, &
941 zrn_blt,zh_blt,zle_blt,zgflux_blt, &
942 zabs_sw_roof,zabs_lw_roof, &
943 zabs_sw_snow_roof,zabs_lw_snow_roof, &
944 zabs_sw_road,zabs_lw_road, &
945 zabs_sw_snow_road,zabs_lw_snow_road, &
946 zabs_sw_wall_a, zabs_lw_wall_a, zabs_sw_wall_b, &
948 zabs_sw_garden,zabs_lw_garden, &
949 zabs_sw_greenroof,zabs_lw_greenroof, &
950 zh_bld_cool, zt_bld_cool, &
951 zh_bld_heat, zle_bld_cool, zle_bld_heat, &
952 zh_waste, zle_waste, zhvac_cool, &
953 zhvac_heat, zcap_sys, zm_sys, zcop, &
954 zq_sys, zt_sys, ztr_sw_win, zfan_power, &
955 zabs_sw_win, zabs_lw_win, &
956 zcur_tcool_target, zcur_theat_target, zcur_qin, &
957 zabs_sw_panel, zabs_lw_panel, zrn_panel, &
958 zh_panel, zther_prod_panel, zphot_prod_panel, zprod_panel,&
959 zther_prod_bld, zphot_prod_bld )
966 IF (tm%DGT%N2M >0 .AND. tm%DGUT%LUTCI)
THEN
982 IF (tm%TOP%LCANOPY)
THEN
992 CALL
add_patch_contrib(jteb_patch,zavg_e_roof ,(zle_roof+tm%T%CUR%XLE_INDUSTRY)/xlvtt)
998 zac_grnd(:) = (tm%T%CUR%XROAD(:)*zac_road(:) + &
999 tm%T%CUR%XGARDEN(:)*zac_garden(:)) / (tm%T%CUR%XROAD(:)+tm%T%CUR%XGARDEN(:))
1000 zac_grnd_wat(:) = (tm%T%CUR%XROAD(:)*zac_road_wat(:) + &
1001 tm%T%CUR%XGARDEN(:)*zac_garden_wat(:)) / (tm%T%CUR%XROAD(:)+tm%T%CUR%XGARDEN(:))
1006 CALL
add_patch_contrib(jteb_patch,zsflux_t ,zh_grnd * (1.-tm%T%CUR%XBLD)/xcpd/prhoa)
1007 CALL
add_patch_contrib(jteb_patch,zsflux_q ,zle_grnd * (1.-tm%T%CUR%XBLD)/xlvtt)
1021 IF (tm%TOP%LCANOPY)
THEN
1027 CALL
teb_canopy(ki,tm%TCP%NLVL,tm%TCP%XZ,tm%TCP%XZF,tm%TCP%XDZ,tm%TCP%XDZF,zavg_bld,&
1028 zavg_bld_height,zavg_wall_o_hor, ppa,prhoa,tm%TCP%XU, &
1029 zavg_duwdu_grnd, zavg_uw_roof, zavg_duwdu_roof, &
1030 zavg_h_wall,zavg_h_roof,zavg_e_roof,zavg_ac_grnd,zavg_ac_grnd_wat, &
1031 zforc_u,zdforc_udu,zforc_e,zdforc_ede,zforc_t,zdforc_tdt,zforc_q,zdforc_qdq)
1038 zl,zwind,pta,pqa,ppa,prhoa, &
1039 zsflux_u,zsflux_t,zsflux_q, &
1040 zforc_u,zdforc_udu,zforc_e,zdforc_ede, &
1041 zforc_t,zdforc_tdt,zforc_q,zdforc_qdq, &
1042 tm%TCP%XZ,tm%TCP%XZF,tm%TCP%XDZ,tm%TCP%XDZF,tm%TCP%XU, &
1043 tm%TCP%XTKE,tm%TCP%XT,tm%TCP%XQ,tm%TCP%XLMO,tm%TCP%XLM, &
1044 tm%TCP%XLEPS,tm%TCP%XP, &
1046 zalfau,zbetau,zalfat,zbetat,zalfaq,zbetaq )
1055 zavg_z0_town(:) = min(zavg_z0_town(:),puref(:)*0.5)
1056 zavg_cdn=(xkarman/log(puref(:)/zavg_z0_town(:)))**2
1060 IF (zwind(jj)>0.)
THEN
1061 zcoef(jj) = - prhoa(jj) * zavg_ustar(jj)**2 / zwind(jj)
1062 psfu(jj) = zcoef(jj) * pu(jj)
1063 psfv(jj) = zcoef(jj) * pv(jj)
1064 zavg_cd(jj) = zavg_ustar(jj)**2 / zwind(jj)**2
1065 zavg_ri(jj) = -xg/pta(jj)*zsflux_t(jj)/zavg_ustar(jj)**4
1086 zdir_alb_patch, zsca_alb_patch, zemis_patch, ztrad_patch,&
1087 pdir_alb, psca_alb, pemis, ptrad )
1095 ptsurf(:) = ptrad(:)
1096 pz0(:) = zavg_z0_town(:)
1097 pz0h(:) = pz0(:) / 200.
1098 pqsurf(:) = tm%T%CUR%XQ_CANYON (:)
1104 zavg_ustar(:) = sqrt(sqrt(psfu**2+psfv**2))
1107 IF (tm%CHT%SVT%NBEQ>0)
THEN
1108 IF (tm%CHT%CCH_DRY_DEP ==
"WES89")
THEN
1109 CALL
ch_dep_town(zavg_resa_town, zavg_ustar, pta, ptrad, zavg_wall_o_hor,&
1110 psv(:,tm%CHT%SVT%NSV_CHSBEG:tm%CHT%SVT%NSV_CHSEND), &
1111 tm%CHT%SVT%CSV(tm%CHT%SVT%NSV_CHSBEG:tm%CHT%SVT%NSV_CHSEND), &
1112 tm%CHT%XDEP(:,1:tm%CHT%SVT%NBEQ) )
1114 DO ji=tm%CHT%SVT%NSV_CHSBEG,tm%CHT%SVT%NSV_CHSEND
1116 DO jj=1,
SIZE(psfts,1)
1117 psfts(jj,ji) = - psv(jj,ji) * tm%CHT%XDEP(jj,ji-tm%CHT%SVT%NSV_CHSBEG+1)
1121 IF (tm%CHT%SVT%NAEREQ > 0 )
THEN
1122 CALL
ch_aer_dep(psv(:,tm%CHT%SVT%NSV_AERBEG:tm%CHT%SVT%NSV_AEREND),&
1123 psfts(:,tm%CHT%SVT%NSV_AERBEG:tm%CHT%SVT%NSV_AEREND),&
1124 zavg_ustar,zavg_resa_town,pta,prhoa)
1128 DO ji=tm%CHT%SVT%NSV_CHSBEG,tm%CHT%SVT%NSV_CHSEND
1131 IF(tm%CHT%SVT%NSV_AERBEG.LT.tm%CHT%SVT%NSV_AEREND)
THEN
1132 DO ji=tm%CHT%SVT%NSV_AERBEG,tm%CHT%SVT%NSV_AEREND
1139 IF (tm%CHT%SVT%NDSTEQ>0)
THEN
1141 zustar(:) = min(zustar(:), 10.)
1142 zresa_town(:) = max(zresa_town(:), 10.)
1144 CALL
dslt_dep(psv(:,tm%CHT%SVT%NSV_DSTBEG:tm%CHT%SVT%NSV_DSTEND), &
1145 psfts(:,tm%CHT%SVT%NSV_DSTBEG:tm%CHT%SVT%NSV_DSTEND), &
1146 zustar, zresa_town, pta, prhoa, dst%XEMISSIG_DST, dst%XEMISRADIUS_DST, &
1147 jpmode_dst, xdensity_dst, xmolarweight_dst, zconvertfacm0_dst, &
1148 zconvertfacm6_dst, zconvertfacm3_dst, lvarsig_dst, lrgfix_dst, &
1152 psfts(:,tm%CHT%SVT%NSV_DSTBEG:tm%CHT%SVT%NSV_DSTEND), &
1154 dst%XEMISRADIUS_DST, &
1157 zconvertfacm0_dst, &
1158 zconvertfacm6_dst, &
1159 zconvertfacm3_dst, &
1160 lvarsig_dst, lrgfix_dst )
1162 IF (tm%CHT%SVT%NSLTEQ>0)
THEN
1163 CALL
dslt_dep(psv(:,tm%CHT%SVT%NSV_SLTBEG:tm%CHT%SVT%NSV_SLTEND), &
1164 psfts(:,tm%CHT%SVT%NSV_SLTBEG:tm%CHT%SVT%NSV_SLTEND), &
1165 zustar, zresa_town, pta, prhoa, slt%XEMISSIG_SLT, slt%XEMISRADIUS_SLT, &
1166 jpmode_slt, xdensity_slt, xmolarweight_slt, zconvertfacm0_slt, &
1167 zconvertfacm6_slt, zconvertfacm3_slt, lvarsig_slt, lrgfix_slt, &
1171 psfts(:,tm%CHT%SVT%NSV_SLTBEG:tm%CHT%SVT%NSV_SLTEND), &
1173 slt%XEMISRADIUS_SLT, &
1176 zconvertfacm0_slt, &
1177 zconvertfacm6_slt, &
1178 zconvertfacm3_slt, &
1179 lvarsig_slt, lrgfix_slt )
1187 tm%TOP%LCANOPY, pta, ptrad, zqa, ppa, pps, prhoa, &
1188 pu, pv, zwind, pzref, puref, &
1189 zavg_cd, zavg_cdn, zavg_ri, zavg_ch, zavg_z0_town, &
1190 ptrad, pemis, pdir_alb, psca_alb, &
1191 plw, zdir_swb, zsca_swb, &
1192 psfth, psftq, psfu, psfv, psfco2, &
1193 zavg_rn, zavg_h, zavg_le, zavg_gflux )
1199 IF (.NOT. tm%TOP%LCANOPY)
THEN
1200 DO jteb_patch=1,tm%TOP%NTEB_PATCH
1202 gdm%TGD, gdm%TGDPE, grm%TGR, grm%TGRPE, jteb_patch)
1203 tm%T%CUR%XT_CANYON(:) = zavg_t_canyon(:)
1204 tm%T%CUR%XQ_CANYON(:) = zavg_q_canyon(:)
1212 IF (tm%DGUT%LUTCI .AND. tm%DGT%N2M >0)
THEN
1214 IF (tm%DGT%XZON10M(jj)/=xundef)
THEN
1215 zu_utci(jj) = sqrt(tm%DGT%XZON10M(jj)**2+tm%DGT%XMER10M(jj)**2)
1217 zu_utci(jj) = zwind(jj)
1220 CALL
utci_teb(tm%T%CUR%XT_CANYON, tm%T%CUR%XQ_CANYON, zavg_ti_bld, zavg_qi_bld, zu_utci, &
1221 pps, zavg_ref_sw_grnd,zavg_ref_sw_fac, zavg_sca_sw, zavg_dir_sw, pzenith, &
1222 zavg_emit_lw_fac, zavg_emit_lw_grnd, plw, zavg_t_rad_ind, tm%T%CUR%XBLD, &
1223 tm%T%CUR%XBLD_HEIGHT, tm%T%CUR%XWALL_O_HOR, tm%DGUT%XUTCI_IN, tm%DGUT%XUTCI_OUTSUN, &
1224 tm%DGUT%XUTCI_OUTSHADE, tm%DGUT%XTRAD_SUN, tm%DGUT%XTRAD_SHADE )
1225 CALL
utcic_stress(ptstep,tm%DGUT%XUTCI_IN ,tm%DGUT%XUTCIC_IN )
1226 CALL
utcic_stress(ptstep,tm%DGUT%XUTCI_OUTSUN ,tm%DGUT%XUTCIC_OUTSUN )
1227 CALL
utcic_stress(ptstep,tm%DGUT%XUTCI_OUTSHADE,tm%DGUT%XUTCIC_OUTSHADE)
1228 ELSE IF (tm%DGUT%LUTCI)
THEN
1229 tm%DGUT%XUTCI_IN(:) = xundef
1230 tm%DGUT%XUTCI_OUTSUN(:) = xundef
1231 tm%DGUT%XUTCI_OUTSHADE(:) = xundef
1232 tm%DGUT%XTRAD_SUN(:) = xundef
1233 tm%DGUT%XTRAD_SHADE(:) = xundef
1234 tm%DGUT%XUTCIC_IN(:,:) = xundef
1235 tm%DGUT%XUTCIC_OUTSUN(:,:) = xundef
1236 tm%DGUT%XUTCIC_OUTSHADE(:,:) = xundef
1240 IF (lhook) CALL dr_hook(
'COUPLING_TEB_N',1,zhook_handle)
1245 INTEGER,
INTENT(IN) :: jp
1246 REAL,
DIMENSION(:),
INTENT(INOUT) :: pavg
1247 REAL,
DIMENSION(:),
INTENT(IN) :: pfield
1249 IF (jteb_patch==1) pavg = 0.
1250 pavg = pavg + tm%TOP%XTEB_PATCH(:,jp) * pfield(:)
subroutine diag_misc_teb_n(DGCT, DGMT, DGMTO, TOP, PTSTEP, PDQS_TOWN, PQF_BLD, PQF_TOWN, PFLX_BLD, PRUNOFF_TOWN, PRN_ROAD, PH_ROAD, PLE_ROAD, PGFLUX_ROAD, PRUNOFF_ROAD, PIRRIG_ROAD, PRN_WALL_A, PH_WALL_A, PGFLUX_WALL_A, PRN_WALL_B, PH_WALL_B, PGFLUX_WALL_B, PRN_ROOF, PH_ROOF, PLE_ROOF, PGFLUX_ROOF, PRUNOFF_ROOF, PRN_STRLROOF, PH_STRLROOF, PLE_STRLROOF, PGFLUX_STRLROOF, PRUNOFF_STRLROOF, PRN_GREENROOF, PH_GREENROOF, PLE_GREENROOF, PGFLUX_GREENROOF, PG_GREENROOF_ROOF, PRUNOFF_GREENROOF, PDRAIN_GREENROOF, PIRRIG_GREENROOF, PRN_GARDEN, PH_GARDEN, PLE_GARDEN, PGFLUX_GARDEN, PRUNOFF_GARDEN, PDRAIN_GARDEN, PIRRIG_GARDEN, PRN_BLT, PH_BLT, PLE_BLT, PGFLUX_BLT, PABS_SW_ROOF, PABS_LW_ROOF, PABS_SW_SNOW_ROOF, PABS_LW_SNOW_ROOF, PABS_SW_ROAD, PABS_LW_ROAD, PABS_SW_SNOW_ROAD, PABS_LW_SNOW_ROAD, PABS_SW_WALL_A, PABS_LW_WALL_A, PABS_SW_WALL_B, PABS_LW_WALL_B, PABS_SW_GARDEN, PABS_LW_GARDEN, PABS_SW_GREENROOF, PABS_LW_GREENROOF, PH_BLD_COOL, PT_BLD_COOL, PH_BLD_HEAT, PLE_BLD_COOL, PLE_BLD_HEAT, PH_WASTE, PLE_WASTE, PHVAC_COOL, PHVAC_HEAT, PCAP_SYS, PM_SYS, PCOP, PQ_SYS, PT_SYS, PTR_SW_WIN, PFAN_POWER, PABS_SW_WIN, PABS_LW_WIN, PTCOOL_TARGET, PTHEAT_TARGET, PQIN, PABS_SW_PANEL, PABS_LW_PANEL, PRN_PANEL, PH_PANEL, PTHER_PROD_PANEL, PPHOT_PROD_PANEL, PPROD_PANEL, PTHER_PROD_BLD, PPHOT_PROD_BLD)
subroutine teb_garden(DTCO, DTI, IG, I, TM, GDM, GRM, OGARDEN, OGREENROOF, OSOLAR_PANEL, HZ0H, HIMPLICIT_WIND, HROAD_DIR, HWALL_OPT, TPTIME, PTSUN, PT_CANYON, PQ_CANYON, PU_CANYON, PT_LOWCAN, PQ_LOWCAN, PU_LOWCAN, PZ_LOWCAN, PTI_BLD, PT_ROOF, PT_ROAD, PT_WALL_A, PT_WALL_B, PWS_ROOF, PWS_ROAD, HSNOW_ROOF, PWSNOW_ROOF, PTSNOW_ROOF, PRSNOW_ROOF, PASNOW_ROOF, PTSSNOW_ROOF, PESNOW_ROOF, HSNOW_ROAD, PWSNOW_ROAD, PTSNOW_ROAD, PRSNOW_ROAD, PASNOW_ROAD, PTSSNOW_ROAD, PESNOW_ROAD, PPEW_A_COEF, PPEW_B_COEF, PPEW_A_COEF_LOWCAN, PPEW_B_COEF_LOWCAN, PPS, PPA, PEXNS, PEXNA, PTA, PQA, PRHOA, PCO2, PLW_RAD, PDIR_SW, PSCA_SW, PSW_BANDS, KSW, PZENITH, PAZIM, PRR, PSR, PZREF, PUREF, PVMOD, PH_TRAFFIC, PLE_TRAFFIC, PH_INDUSTRY, PLE_INDUSTRY, PTSTEP, PZ0_TOWN, PBLD, PGARDEN, PROAD_DIR, PROAD, PFRAC_GR, PBLD_HEIGHT, PWALL_O_HOR, PCAN_HW_RATIO, PROAD_O_GRND, PGARDEN_O_GRND, PWALL_O_GRND, PALB_ROOF, PEMIS_ROOF, PHC_ROOF, PTC_ROOF, PD_ROOF, PALB_ROAD, PEMIS_ROAD, PSVF_ROAD, PHC_ROAD, PTC_ROAD, PD_ROAD, PALB_WALL, PEMIS_WALL, PSVF_WALL, PSVF_GARDEN, PHC_WALL, PTC_WALL, PD_WALL, PRN_ROOF, PH_ROOF, PLE_ROOF, PLEW_ROOF, PGFLUX_ROOF, PRUNOFF_ROOF, PRN_ROAD, PH_ROAD, PLE_ROAD, PLEW_ROAD, PGFLUX_ROAD, PRUNOFF_ROAD, PRN_WALL_A, PH_WALL_A, PLE_WALL_A, PGFLUX_WALL_A, PRN_WALL_B, PH_WALL_B, PLE_WALL_B, PGFLUX_WALL_B, PRN_GARDEN, PH_GARDEN, PLE_GARDEN, PGFLUX_GARDEN, PRUNOFF_GARDEN, PDRAIN_GARDEN, PIRRIG_GARDEN, PRN_GREENROOF, PH_GREENROOF, PLE_GREENROOF, PGFLUX_GREENROOF, PRN_STRLROOF, PH_STRLROOF, PLE_STRLROOF, PGFLUX_STRLROOF, PRUNOFF_STRLROOF, PRN_BLT, PH_BLT, PLE_BLT, PGFLUX_BLT, PRNSNOW_ROOF, PHSNOW_ROOF, PLESNOW_ROOF, PGSNOW_ROOF, PMELT_ROOF, PRNSNOW_ROAD, PHSNOW_ROAD, PLESNOW_ROAD, PGSNOW_ROAD, PMELT_ROAD, PRN_GRND, PH_GRND, PLE_GRND, PGFLUX_GRND, PRN_TOWN, PH_TOWN, PLE_TOWN, PGFLUX_TOWN, PEVAP_TOWN, PRUNOFF_TOWN, PSFCO2, PUW_GRND, PUW_ROOF, PDUWDU_GRND, PDUWDU_ROOF, PUSTAR_TOWN, PCD, PCDN, PCH_TOWN, PRI_TOWN, PTS_TOWN, PEMIS_TOWN, PDIR_ALB_TOWN, PSCA_ALB_TOWN, PRESA_TOWN, PDQS_TOWN, PQF_TOWN, PQF_BLD, PFLX_BLD, PAC_ROAD, PAC_GARDEN, PAC_GREENROOF, PAC_ROAD_WAT, PAC_GARDEN_WAT, PAC_GREENROOF_WAT, PABS_SW_ROOF, PABS_LW_ROOF, PABS_SW_SNOW_ROOF, PABS_LW_SNOW_ROOF, PABS_SW_ROAD, PABS_LW_ROAD, PABS_SW_SNOW_ROAD, PABS_LW_SNOW_ROAD, PABS_SW_WALL_A, PABS_LW_WALL_A, PABS_SW_WALL_B, PABS_LW_WALL_B, PABS_SW_PANEL, PABS_LW_PANEL, PABS_SW_GARDEN, PABS_LW_GARDEN, PABS_SW_GREENROOF, PABS_LW_GREENROOF, PG_GREENROOF_ROOF, PRUNOFF_GREENROOF, PDRAIN_GREENROOF, PIRRIG_GREENROOF, HCOOL_COIL, PF_WATER_COND, HHEAT_COIL, HNATVENT, KDAY, PAUX_MAX, PT_FLOOR, PT_MASS, PH_BLD_COOL, PT_BLD_COOL, PH_BLD_HEAT, PLE_BLD_COOL, PLE_BLD_HEAT, PH_WASTE, PLE_WASTE, PF_WASTE_CAN, PHVAC_COOL, PHVAC_HEAT, PQIN, PQIN_FRAD, PQIN_FLAT, PGR, PEFF_HEAT, PINF, PTCOOL_TARGET, PTHEAT_TARGET, PHR_TARGET, PT_WIN2, PQI_BLD, PV_VENT, PCAP_SYS_HEAT, PCAP_SYS_RAT, PT_ADP, PM_SYS_RAT, PCOP_RAT, PCAP_SYS, PM_SYS, PCOP, PQ_SYS, PT_SYS, PTR_SW_WIN, PFAN_POWER, PHC_FLOOR, PTC_FLOOR, PD_FLOOR, PT_WIN1, PABS_SW_WIN, PABS_LW_WIN, PSHGC, PSHGC_SH, PUGG_WIN, PALB_WIN, PABS_WIN, PEMIT_LW_FAC, PEMIT_LW_GRND, PT_RAD_IND, PREF_SW_GRND, PREF_SW_FAC, PHU_BLD, PTIME, OSHADE, OSHAD_DAY, ONATVENT_NIGHT, HBEM, PN_FLOOR, PWALL_O_BLD, PGLAZ_O_BLD, PMASS_O_BLD, PFLOOR_HW_RATIO, PF_FLOOR_MASS, PF_FLOOR_WALL, PF_FLOOR_WIN, PF_FLOOR_ROOF, PF_WALL_FLOOR, PF_WALL_MASS, PF_WALL_WIN, PF_WIN_FLOOR, PF_WIN_MASS, PF_WIN_WALL, PF_MASS_FLOOR, PF_MASS_WALL, PF_MASS_WIN, OCANOPY, PTRAN_WIN, HCH_BEM, PROUGH_ROOF, PROUGH_WALL, PF_WIN_WIN, OPAR_RD_IRRIG, PRD_START_MONTH, PRD_END_MONTH, PRD_START_HOUR, PRD_END_HOUR, PRD_24H_IRRIG, PIRRIG_ROAD, PEMIS_PANEL, PALB_PANEL, PEFF_PANEL, PFRAC_PANEL, PRESIDENTIAL, PTHER_PROD_PANEL, PPHOT_PROD_PANEL, PPROD_PANEL, PTHER_PROD_BLD, PPHOT_PROD_BLD, PPROD_BLD, PTHER_PRODC_DAY, PH_PANEL, PRN_PANEL, PDT_RES, PDT_OFF, PCUR_TCOOL_TARGET, PCUR_THEAT_TARGET, PCUR_QIN)
subroutine utci_teb(PT_CAN, PQ_CAN, PTI_BLD, PQI_BLD, PU10, PPS, PREF_SW_GRND, PREF_SW_FAC, PSCA_SW, PDIR_SW, PZENITH, PEMIT_LW_FAC, PEMIT_LW_GRND, PLW_RAD, PTRAD_IN, PBLD, PBLD_HEIGHT, PWALL_O_HOR, PUTCI_IN, PUTCI_OUTSUN, PUTCI_OUTSHADE, PTRAD_SUN, PTRAD_SHADE)
subroutine ch_dep_town(PRESA_TOWN, PUSTAR_TOWN, PTA, PTRAD, PWALL_O_HOR, PSV, HSV, PDEP)
subroutine ch_aer_dep(PSVT, PFSVT, PUSTAR, PRESA, PTA, PRHODREF)
subroutine sm10(PZ, PBLD_HEIGHT, PLAMBDA_F, PL)
subroutine coupling_teb_n(DTCO, DTI, IG, I, DST, SLT, TM, GDM, GRM, HPROGRAM, HCOUPLING, PTSTEP, KYEAR, KMONTH, KDAY, PTIME, KI, KSV, KSW, PTSUN, PZENITH, PAZIM, PZREF, PUREF, PZS, PU, PV, PQA, PTA, PRHOA, PSV, PCO2, HSV, PRAIN, PSNOW, PLW, PDIR_SW, PSCA_SW, PSW_BANDS, PPS, PPA, PSFTQ, PSFTH, PSFTS, PSFCO2, PSFU, PSFV, PTRAD, PDIR_ALB, PSCA_ALB, PEMIS, PTSURF, PZ0, PZ0H, PQSURF, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, HTEST)
subroutine canopy_grid_update(KI, KLVL, PH, PZFORC, PZ, PZF, PDZ, PDZF)
subroutine abor1_sfx(YTEXT)
subroutine goto_wrapper_teb_patch(B, DGCT, DGMT, T, TGD, TGDPE, TGR, TGRPE, KTO_PATCH)
subroutine teb_canopy(KI, KLVL, PZ, PZF, PDZ, PDZF, PBLD, PBLD_HEIGHT, PWALL_O_HOR, PPA, PRHOA, PU, PDUWDU_ROAD, PUW_ROOF, PDUWDU_ROOF, PH_WALL, PH_ROOF, PE_ROOF, PAC_ROAD, PAC_ROAD_WAT, PFORC_U, PDFORC_UDU, PFORC_E, PDFORC_EDE, PFORC_T, PDFORC_TDT, PFORC_Q, PDFORC_QDQ)
subroutine average_rad(PFRAC_TILE, PDIR_ALB_TILE, PSCA_ALB_TILE, PEMIS_TILE, PTRAD_TILE, PDIR_ALB, PSCA_ALB, PEMIS, PTRAD)
subroutine massflux2momentflux(PFLUX, PRHODREF, PEMISRADIUS, PEMISSIG, KMDE, PCONVERTFACM0, PCONVERTFACM6, PCONVERTFACM3, OVARSIG, ORGFIX)
subroutine dslt_dep(PSVT, PFSVT, PUSTAR, PRESA, PTA, PRHODREF, PEMISSIG, PEMISRADIUS, KPMODE, PDENSITY, PMOLARWEIGHT, PCONVERTFACM0, PCONVERTFACM6, PCONVERTFACM3, OVARSIG, ORGFIX, HVERMOD)
subroutine add_patch_contrib(JP, PAVG, PFIELD)
subroutine add_forecast_to_date_surf(KYEAR, KMONTH, KDAY, PSEC)
subroutine diag_inline_teb_n(DGT, TCP, T, OCANOPY, PTA, PTS, PQA, PPA, PPS, PRHOA, PZONA, PMERA, PWIND, PHT, PHW, PCD, PCDN, PRI, PCH, PZ0, PTRAD, PEMIS, PDIR_ALB, PSCA_ALB, PLW, PDIR_SW, PSCA_SW, PSFTH, PSFTQ, PSFZON, PSFMER, PSFCO2, PRN, PH, PLE, PGFLUX)
subroutine canopy_evol(KI, KLVL, PTSTEP, KIMPL, PZZ, PWIND, PTA, PQA, PPA, PRHOA, PSFLUX_U, PSFLUX_T, PSFLUX_Q, PFORC_U, PDFORC_UDU, PFORC_E, PDFORC_EDE, PFORC_T, PDFORC_TDT, PFORC_Q, PDFORC_QDQ, PZ, PZF, PDZ, PDZF, PU, PTKE, PT, PQ, PLMO, PLM, PLEPS, PP, PUSTAR, PALFAU, PBETAU, PALFATH, PBETATH, PALFAQ, PBETAQ, ONEUTRAL)
subroutine circumsolar_rad(PDIR_SW, PSCA_SW, PZENITH, PF1_o_B)
subroutine utcic_stress(PTSTEP, PUTCI, PUTCIC)