6 SUBROUTINE init_teb_n (DTCO, DGU, UG, U, CHI, DTI, I, &
7 tm, gdm, grm, dst, slt, &
11 pzenith,pazim,psw_bands,pdir_alb,psca_alb, &
12 pemis,ptsrad,ptsurf, &
13 kyear, kmonth,kday, ptime, &
14 hatmfile,hatmfiletype, &
72 USE modd_dst_surf, ONLY: lvarsig_dst, ndstmde, ndst_mdebeg, lrgfix_dst
73 USE modd_slt_surf, ONLY: lvarsig_slt, nsltmde, nslt_mdebeg, lrgfix_slt
76 USE modi_init_io_surf_n
77 USE modi_default_ch_dep
79 USE modi_default_diag_teb
80 USE modi_read_default_teb_n
81 USE modi_read_teb_conf_n
82 USE modi_prep_ctrl_teb
84 USE modi_read_pgd_teb_n
86 USE modi_convert_patch_teb
88 USE modi_averaged_tsrad_teb
89 USE modi_averaged_albedo_teb
90 USE modi_diag_teb_init_n
91 USE modi_diag_misc_teb_init_n
92 USE modi_end_io_surf_n
95 USE modi_read_prep_teb_snow
96 USE modi_read_teb_date
97 USE modi_read_nam_prep_teb_n
98 USE modi_init_chemical_n
99 USE modi_garden_properties
100 USE modi_hvac_autosize
101 USE modi_goto_wrapper_teb_patch
103 USE modi_init_teb_garden_n
104 USE modi_init_teb_garden_pgd_n
105 USE modi_init_teb_veg_options_n
108 USE modi_init_teb_greenroof_n
109 USE modi_init_teb_greenroof_pgd_n
110 USE modi_greenroof_properties
111 USE modi_read_pgd_teb_irrig_n
113 USE modi_read_cover_garden
115 USE modi_read_teb_canopy_n
116 USE modi_set_surfex_filein
118 USE yomhook
,ONLY : lhook, dr_hook
119 USE parkind1
,ONLY : jprb
133 TYPE(isba_t
),
INTENT(INOUT) :: i
137 TYPE(dst_t),
INTENT(INOUT) :: dst
138 TYPE(slt_t),
INTENT(INOUT) :: slt
140 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
141 CHARACTER(LEN=3),
INTENT(IN) :: hinit
142 INTEGER,
INTENT(IN) :: ki
143 INTEGER,
INTENT(IN) :: ksv
144 INTEGER,
INTENT(IN) :: ksw
145 CHARACTER(LEN=6),
DIMENSION(KSV),
INTENT(IN) :: hsv
146 REAL,
DIMENSION(KI),
INTENT(IN) :: pco2
147 REAL,
DIMENSION(KI),
INTENT(IN) :: prhoa
148 REAL,
DIMENSION(KI),
INTENT(IN) :: pzenith
149 REAL,
DIMENSION(KI),
INTENT(IN) :: pazim
150 REAL,
DIMENSION(KSW),
INTENT(IN) :: psw_bands
151 REAL,
DIMENSION(KI,KSW),
INTENT(OUT) :: pdir_alb
152 REAL,
DIMENSION(KI,KSW),
INTENT(OUT) :: psca_alb
153 REAL,
DIMENSION(KI),
INTENT(OUT) :: pemis
154 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptsrad
155 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptsurf
156 INTEGER,
INTENT(IN) :: kyear
157 INTEGER,
INTENT(IN) :: kmonth
158 INTEGER,
INTENT(IN) :: kday
159 REAL,
INTENT(IN) :: ptime
162 CHARACTER(LEN=28),
INTENT(IN) :: hatmfile
163 CHARACTER(LEN=6),
INTENT(IN) :: hatmfiletype
164 CHARACTER(LEN=2),
INTENT(IN) :: htest
176 REAL :: zdef_road_dir
177 REAL,
DIMENSION(:),
ALLOCATABLE :: zdir_alb
178 REAL,
DIMENSION(:),
ALLOCATABLE :: zsca_alb
181 REAL,
DIMENSION(KI,KSW) :: zdir_sw
182 REAL,
DIMENSION(KI,KSW) :: zsca_sw
183 REAL,
DIMENSION(KI) :: zemis_garden
184 REAL,
DIMENSION(KI) :: zalb_garden
185 REAL,
DIMENSION(KI) :: zts_garden
188 REAL,
DIMENSION(KI) :: zemis_greenroof
189 REAL,
DIMENSION(KI) :: zalb_greenroof
190 REAL,
DIMENSION(KI) :: zts_greenroof
193 INTEGER :: iversion, ibugfix
195 REAL(KIND=JPRB) :: zhook_handle
200 IF (lhook) CALL dr_hook(
'INIT_TEB_N',0,zhook_handle)
203 IF (htest/=
'OK')
THEN
204 CALL
abor1_sfx(
'INIT_TEBN: FATAL ERROR DURING ARGUMENT TRANSFER')
215 tm%DGMTO%LSURF_EVAP_BUDGET = .false.
224 CALL
default_teb(tm%TOP%CZ0H,tm%TOP%XTSTEP,tm%TOP%XOUT_TSTEP, tm%TOP%CCH_BEM, &
225 tm%T%CUR%XDT_RES, tm%T%CUR%XDT_OFF)
227 CALL
default_diag_teb(tm%DGT%N2M,tm%DGT%LSURF_BUDGET,tm%DGT%L2M_MIN_ZS,tm%DGT%LRAD_BUDGET,&
228 tm%DGT%LCOEF,tm%DGT%LSURF_VARS,tm%DGMTO%LSURF_MISC_BUDGET,&
229 tm%DGMTO%LSURF_DIAG_ALBEDO,tm%DGUT%LUTCI,tm%DGT%LPGD,&
230 tm%DGT%LPGD_FIX,tm%DGT%XDIAG_TSTEP)
242 CALL
read_teb_conf_n(tm%CHT, tm%DGMTO, tm%DGT, tm%DGUT, tm%T, tm%TOP, &
247 IF (hinit==
'PRE')
THEN
248 DO jpatch=1,tm%TOP%NTEB_PATCH
250 grm%TGR, grm%TGRPE, jpatch)
251 CALL
read_prep_teb_snow(hprogram,tm%T%CUR%TSNOW_ROOF%SCHEME,tm%T%CUR%TSNOW_ROOF%NLAYER, &
252 tm%T%CUR%TSNOW_ROAD%SCHEME,tm%T%CUR%TSNOW_ROAD%NLAYER)
262 tm%TOP%TTIME%TDATE%YEAR = nundef
263 tm%TOP%TTIME%TDATE%MONTH= nundef
264 tm%TOP%TTIME%TDATE%DAY = nundef
265 tm%TOP%TTIME%TIME = xundef
268 CALL
prep_ctrl_teb(tm%DGT%N2M,tm%DGT%LSURF_BUDGET,tm%DGT%L2M_MIN_ZS,tm%DGT%LRAD_BUDGET,&
269 tm%DGT%LCOEF,tm%DGT%LSURF_VARS,tm%DGMTO%LSURF_EVAP_BUDGET,&
270 tm%DGMTO%LSURF_MISC_BUDGET,tm%DGUT%LUTCI,iluout )
273 hprogram,hinit,iluout,hatmfile,hatmfiletype,kyear,kmonth,kday,ptime,tm%TOP%TTIME)
277 hprogram,
'TOWN ',
'TEB ',
'READ ')
279 hprogram,
'DTCUR',tm%TOP%TTIME,iresp)
291 hprogram,
'TOWN ',
'TEB ',
'READ ')
294 hprogram,
'VERSION',iversion,iresp)
296 hprogram,
'BUG',ibugfix,iresp)
301 hprogram,tm%TOP%LGARDEN)
310 ilu =
SIZE(tm%TOP%XCOVER,1)
312 ALLOCATE(tm%TOP%XTEB_PATCH(ilu,tm%TOP%NTEB_PATCH))
314 tm%TOP%XCOVER,tm%TOP%XTEB_PATCH)
318 hprogram,
'TOWN ',
'TEB ',
'READ ')
321 hprogram,
'VERSION',iversion,iresp)
323 hprogram,
'BUG',ibugfix,iresp)
327 IF (hinit==
'ALL')
THEN
328 tm%TOP%CROAD_DIR=
'UNIF'
329 tm%TOP%CWALL_OPT=
'UNIF'
330 IF (iversion>7 .OR. (iversion==7 .AND. ibugfix>=3))
THEN
332 hprogram,
'ROAD_DIR',tm%TOP%CROAD_DIR,iresp)
334 hprogram,
'WALL_OPT',tm%TOP%CWALL_OPT,iresp)
343 DO jpatch=1,tm%TOP%NTEB_PATCH
346 gdm%TGD, gdm%TGDPE, grm%TGR, grm%TGRPE, jpatch)
352 ALLOCATE(tm%T%CUR%XZ0_TOWN (ilu))
353 ALLOCATE(tm%T%CUR%XALB_ROOF (ilu))
354 ALLOCATE(tm%T%CUR%XEMIS_ROOF (ilu))
355 ALLOCATE(tm%T%CUR%XALB_ROAD (ilu))
356 ALLOCATE(tm%T%CUR%XEMIS_ROAD (ilu))
357 ALLOCATE(tm%T%CUR%XALB_WALL (ilu))
358 ALLOCATE(tm%T%CUR%XEMIS_WALL (ilu))
359 ALLOCATE(tm%T%CUR%XBLD (ilu))
360 ALLOCATE(tm%T%CUR%XROAD_DIR (ilu))
361 ALLOCATE(tm%T%CUR%XROAD (ilu))
362 ALLOCATE(tm%T%CUR%XBLD_HEIGHT (ilu))
363 ALLOCATE(tm%T%CUR%XWALL_O_HOR (ilu))
364 ALLOCATE(tm%T%CUR%XCAN_HW_RATIO(ilu))
365 ALLOCATE(tm%T%CUR%XROAD_O_GRND(ilu))
366 ALLOCATE(tm%T%CUR%XGARDEN_O_GRND(ilu))
367 ALLOCATE(tm%T%CUR%XWALL_O_GRND(ilu))
368 ALLOCATE(tm%T%CUR%XWALL_O_BLD(ilu))
369 ALLOCATE(tm%T%CUR%XH_TRAFFIC (ilu))
370 ALLOCATE(tm%T%CUR%XLE_TRAFFIC (ilu))
371 ALLOCATE(tm%T%CUR%XH_INDUSTRY (ilu))
372 ALLOCATE(tm%T%CUR%XLE_INDUSTRY (ilu))
373 ALLOCATE(tm%T%CUR%XHC_ROOF (ilu,tm%TOP%NROOF_LAYER))
374 ALLOCATE(tm%T%CUR%XTC_ROOF (ilu,tm%TOP%NROOF_LAYER))
375 ALLOCATE(tm%T%CUR%XD_ROOF (ilu,tm%TOP%NROOF_LAYER))
376 ALLOCATE(tm%T%CUR%XHC_ROAD (ilu,tm%TOP%NROAD_LAYER))
377 ALLOCATE(tm%T%CUR%XTC_ROAD (ilu,tm%TOP%NROAD_LAYER))
378 ALLOCATE(tm%T%CUR%XD_ROAD (ilu,tm%TOP%NROAD_LAYER))
379 ALLOCATE(tm%T%CUR%XHC_WALL (ilu,tm%TOP%NWALL_LAYER))
380 ALLOCATE(tm%T%CUR%XTC_WALL (ilu,tm%TOP%NWALL_LAYER))
381 ALLOCATE(tm%T%CUR%XD_WALL (ilu,tm%TOP%NWALL_LAYER))
382 ALLOCATE(tm%T%CUR%XROUGH_ROOF (ilu))
383 ALLOCATE(tm%T%CUR%XROUGH_WALL (ilu))
384 ALLOCATE(tm%T%CUR%XRESIDENTIAL (ilu))
385 ALLOCATE(tm%T%CUR%XGREENROOF (ilu))
386 ALLOCATE(tm%T%CUR%XGARDEN (ilu))
387 ALLOCATE(tm%TPN%XEMIS_PANEL (ilu))
388 ALLOCATE(tm%TPN%XALB_PANEL (ilu))
389 ALLOCATE(tm%TPN%XEFF_PANEL (ilu))
390 ALLOCATE(tm%TPN%XFRAC_PANEL (ilu))
392 tm%T%CUR%XROAD_DIR(:) = 0.
393 tm%T%CUR%XROAD (:) = 0.
396 IF (tm%TOP%CROAD_DIR/=
'UNIF')
THEN
400 zdef_road_dir = 180. * float(jpatch-1) / float(tm%TOP%NTEB_PATCH)
404 tm%TOP%XCOVER, tm%TOP%LCOVER, zdef_road_dir, &
405 pz0_town=tm%T%CUR%XZ0_TOWN, palb_roof=tm%T%CUR%XALB_ROOF, &
406 pemis_roof=tm%T%CUR%XEMIS_ROOF,phc_roof=tm%T%CUR%XHC_ROOF,ptc_roof=tm%T%CUR%XTC_ROOF, &
407 pd_roof=tm%T%CUR%XD_ROOF, palb_road=tm%T%CUR%XALB_ROAD, &
408 pemis_road=tm%T%CUR%XEMIS_ROAD,phc_road=tm%T%CUR%XHC_ROAD,ptc_road=tm%T%CUR%XTC_ROAD, &
409 pd_road=tm%T%CUR%XD_ROAD, palb_wall=tm%T%CUR%XALB_WALL, &
410 pemis_wall=tm%T%CUR%XEMIS_WALL,phc_wall=tm%T%CUR%XHC_WALL,ptc_wall=tm%T%CUR%XTC_WALL, &
411 pd_wall=tm%T%CUR%XD_WALL, pbld_height=tm%T%CUR%XBLD_HEIGHT, &
412 pwall_o_hor=tm%T%CUR%XWALL_O_HOR,pbld=tm%T%CUR%XBLD, proad_dir=tm%T%CUR%XROAD_DIR, &
413 pgarden=tm%T%CUR%XGARDEN, &
414 ph_traffic=tm%T%CUR%XH_TRAFFIC, ple_traffic=tm%T%CUR%XLE_TRAFFIC, &
415 ph_industry=tm%T%CUR%XH_INDUSTRY, ple_industry=tm%T%CUR%XLE_INDUSTRY, &
416 prough_roof = tm%T%CUR%XROUGH_ROOF, prough_wall = tm%T%CUR%XROUGH_WALL, &
417 presidential = tm%T%CUR%XRESIDENTIAL, &
418 pgreenroof = tm%T%CUR%XGREENROOF, &
419 pemis_panel=tm%TPN%XEMIS_PANEL, palb_panel=tm%TPN%XALB_PANEL, &
420 peff_panel=tm%TPN%XEFF_PANEL, pfrac_panel=tm%TPN%XFRAC_PANEL )
422 IF (.NOT. tm%TOP%LGREENROOF .AND. maxval(tm%T%CUR%XGREENROOF)>0. )
THEN
423 WRITE(iluout,*)
'You choose NOT to have greenroofs, BUT your greenroof fraction is not zero'
424 WRITE(iluout,*)
'Please activate the greenroof option (and rerun the SURFEX suite from the PGD step)'
425 WRITE(iluout,*)
'Or be sure NOT to have any greenroofs in your area'
426 CALL
abor1_sfx(
'INIT_TEBN: GREENROOF OPTION NOT ACTIVATED WHILE GREENROOFS ARE PRESENT')
429 IF (.NOT. tm%TOP%LSOLAR_PANEL .AND. maxval(tm%TPN%XFRAC_PANEL)>0. )
THEN
430 WRITE(iluout,*)
'You choose NOT to have solar panels, BUT your solar panel fraction is not zero'
431 WRITE(iluout,*)
'Please activate the solar panel option (and rerun the SURFEX suite from the PGD step)'
432 WRITE(iluout,*)
'Or be sure NOT to have any solar panel in your area'
433 CALL
abor1_sfx(
'INIT_TEBN: SOLAR_PANEL OPTION NOT ACTIVATED WHILE SOLAR PANELS ARE PRESENT')
441 ALLOCATE(tm%T%CUR%XSVF_ROAD (ilu))
442 ALLOCATE(tm%T%CUR%XSVF_GARDEN(ilu))
443 ALLOCATE(tm%T%CUR%XSVF_WALL (ilu))
445 ALLOCATE(tm%B%CUR%XGR (ilu))
446 ALLOCATE(tm%B%CUR%XALB_WIN (ilu))
447 ALLOCATE(tm%B%CUR%XF_WASTE_CAN (ilu))
450 CALL
teb_morpho(hprogram, tm%T%CUR%XBLD, tm%T%CUR%XWALL_O_HOR, tm%T%CUR%XGARDEN, tm%T%CUR%XBLD_HEIGHT, &
451 tm%T%CUR%XROAD, tm%T%CUR%XROAD_O_GRND, tm%T%CUR%XGARDEN_O_GRND, tm%T%CUR%XWALL_O_GRND, &
452 tm%T%CUR%XCAN_HW_RATIO, tm%T%CUR%XSVF_ROAD, tm%T%CUR%XSVF_GARDEN, tm%T%CUR%XSVF_WALL, &
453 tm%T%CUR%XZ0_TOWN, tm%T%CUR%XWALL_O_BLD, tm%T%CUR%XH_TRAFFIC, tm%T%CUR%XLE_TRAFFIC )
468 IF (tm%TOP%LGARDEN)
THEN
472 hprogram,
'TOWN ',
'TEB ',
'READ ')
474 tm%CHT, tm%DGMTO, gdm%TGDO, gdm%TVG, &
476 CALL
init_teb_garden_pgd_n(dtco, u, chi, dti, i, dst, slt, tm%CHT, tm%TG, tm%T, tm%TOP, gdm, &
477 hprogram,hinit,(jpatch==1),ki,ksv,hsv,iversion,ibugfix,pco2,prhoa)
480 tm%CHT, tm%TG, tm%T, tm%TOP, gdm%TVG, grm, &
481 hprogram,hinit,(jpatch==1),ki,ksv,hsv,iversion,pco2,prhoa)
493 hprogram,
'TOWN ',
'TEB ',
'READ ')
503 IF (hinit/=
'ALL' .AND. hinit/=
'SOD')
THEN
504 IF (lhook) CALL dr_hook(
'INIT_TEB_N',1,zhook_handle)
514 hprogram,
'TOWN ',
'TEB ',
'READ ')
526 DO jpatch=1,tm%TOP%NTEB_PATCH
528 gdm%TGD, gdm%TGDPE, grm%TGR, grm%TGRPE, jpatch)
531 CALL
read_teb_n(tm%B, tm%BOP, dtco, dgu, u, tm%T, tm%TOP, tm%TPN, &
534 ALLOCATE(tm%T%CUR%XAC_ROOF (ilu))
535 ALLOCATE(tm%T%CUR%XAC_ROAD (ilu))
536 ALLOCATE(tm%T%CUR%XAC_WALL (ilu))
537 ALLOCATE(tm%T%CUR%XAC_TOP (ilu))
538 ALLOCATE(tm%T%CUR%XAC_ROOF_WAT(ilu))
539 ALLOCATE(tm%T%CUR%XAC_ROAD_WAT(ilu))
540 ALLOCATE(tm%T%CUR%XQSAT_ROOF (ilu))
541 ALLOCATE(tm%T%CUR%XQSAT_ROAD (ilu))
542 ALLOCATE(tm%T%CUR%XDELT_ROOF (ilu))
543 ALLOCATE(tm%T%CUR%XDELT_ROAD (ilu))
546 IF (tm%TOP%LGARDEN)
THEN
550 hprogram,hinit,ki,ksw,psw_bands,jpatch)
553 hprogram,hinit,ki,ksv,psw_bands,jpatch)
566 IF (tm%TOP%LGARDEN)
THEN
570 zdir_sw, zsca_sw, psw_bands, ksw, &
571 zts_garden, zemis_garden, zalb_garden )
578 IF (tm%TOP%LGREENROOF)
THEN
582 zdir_sw, zsca_sw, psw_bands, ksw, &
583 zts_greenroof, zemis_greenroof, zalb_greenroof )
585 zalb_greenroof = xundef
586 zemis_greenroof = xundef
587 zts_greenroof = xundef
593 tm%T%CUR%XEMIS_ROAD,tm%T%CUR%XT_ROAD(:,1), &
594 tm%T%CUR%XEMIS_WALL, &
595 tm%T%CUR%XT_WALL_A(:,1), &
596 tm%T%CUR%XT_WALL_B(:,1), &
597 zemis_garden, zts_garden, &
598 zemis_greenroof, zts_greenroof,&
599 tm%T%CUR%TSNOW_ROOF,tm%T%CUR%TSNOW_ROAD, &
600 tm%T%CUR%XROAD, tm%T%CUR%XGREENROOF, tm%T%CUR%XGARDEN, &
601 tm%T%CUR%XBLD,tm%T%CUR%XWALL_O_HOR, &
602 tm%T%CUR%XSVF_ROAD,tm%T%CUR%XSVF_WALL, &
603 tm%T%CUR%XSVF_GARDEN, &
604 pemis,ptsrad, tm%B%CUR%XT_WIN1, &
611 ALLOCATE(zdir_alb(ilu))
612 ALLOCATE(zsca_alb(ilu))
615 tm%T%CUR%XBLD, tm%T%CUR%XGARDEN, tm%T%CUR%XROAD_DIR, tm%T%CUR%XROAD, &
616 tm%T%CUR%XGREENROOF, tm%TPN%XFRAC_PANEL, tm%TPN%XALB_PANEL, &
617 tm%T%CUR%XWALL_O_HOR, tm%T%CUR%XCAN_HW_RATIO, &
618 tm%T%CUR%XALB_ROOF, tm%T%CUR%XALB_ROAD, tm%T%CUR%XSVF_ROAD, &
619 tm%T%CUR%XALB_WALL, tm%T%CUR%XSVF_WALL, &
620 zalb_garden, tm%T%CUR%XSVF_GARDEN, zalb_greenroof, &
621 tm%T%CUR%TSNOW_ROOF, tm%T%CUR%TSNOW_ROAD, &
622 tm%B%CUR%XGR, tm%B%CUR%XSHGC, tm%B%CUR%XSHGC_SH, &
623 tm%B%CUR%XABS_WIN, tm%B%CUR%XALB_WIN, &
624 tm%B%CUR%LSHAD_DAY, &
625 zdir_alb, zsca_alb, tm%B%CUR%XTRAN_WIN )
629 pdir_alb(:,jswb) = zdir_alb(:)
630 psca_alb(:,jswb) = zsca_alb(:)
641 tm%CHT%CCH_NAMES, tm%CHT%CAER_NAMES, &
642 hdstnames=tm%CHT%CDSTNAMES, hsltnames=tm%CHT%CSLTNAMES )
646 IF (tm%CHT%SVT%NBEQ>0 .AND. tm%CHT%CCH_DRY_DEP==
'WES89')
THEN
647 ALLOCATE(tm%CHT%XDEP(ilu,tm%CHT%SVT%NBEQ))
649 ALLOCATE(tm%CHT%XDEP(0,0))
655 IF (hinit/=
'ALL')
THEN
657 IF (lhook) CALL dr_hook(
'INIT_TEB_N',1,zhook_handle)
675 DO jpatch=1,tm%TOP%NTEB_PATCH
677 gdm%TGD, gdm%TGDPE, grm%TGR, grm%TGRPE, jpatch)
687 IF (lhook) CALL dr_hook(
'INIT_TEB_N',1,zhook_handle)
subroutine averaged_albedo_teb(HBEM, HROAD_DIR, HWALL_OPT, PZENITH, PAZIM, PBLD, PGARDEN, PROAD_DIR, PROAD, PFRAC_GR, PFRAC_PANEL, PALB_PANEL, PWALL_O_HOR, PCAN_HW_RATIO, PALB_ROOF, PALB_ROAD, PSVF_ROAD, PALB_WALL, PSVF_WALL, PALB_GARDEN, PSVF_GARDEN, PALB_GREENROOF, TSNOW_ROOF, TSNOW_ROAD, PGR, PSHGC, PSHGC_SH, PABS_WIN, PALB_WIN, OSHAD_DAY, PDIR_ALB_TOWN, PSCA_ALB_TOWN, PTRAN_WIN)
subroutine init_io_surf_n(DTCO, DGU, U, HPROGRAM, HMASK, HSCHEME, HACTION)
subroutine read_cover_garden(HPROGRAM, OGARDEN, HDIR)
subroutine prep_ctrl_teb(K2M, OSURF_BUDGET, O2M_MIN_ZS, ORAD_BUDGET, OCOEF, OSURF_VARS, OSURF_EVAP_BUDGET, OSURF_MISC_BUDGET, OUTCI, KLUOUT)
subroutine set_surfex_filein(HPROGRAM, HMASK)
subroutine averaged_tsrad_teb(PEMIS_ROOF, PTS_ROOF, PEMIS_ROAD, PTS_ROAD, PEMIS_WALL, PTS_WALL_A, PTS_WALL_B, PEMIS_GARDEN, PTS_GARDEN, PEMIS_GREENROOF, PTS_GREENROOF, TSNOW_ROOF, TSNOW_ROAD, PROAD, PFRAC_GR, PGARDEN, PBLD, PWALL_O_HOR, PSVF_ROAD, PSVF_WALL, PSVF_GARDEN, PEMIS, PTSRAD, PT_WIN1, PGR)
subroutine read_pgd_teb_n(DTCO, U, TM, HPROGRAM)
subroutine init_snow_lw(PEMISSN, TPSNOW)
subroutine init_teb_veg_options_n(CHT, DGMTO, TGDO, TVG, HPROGRAM)
subroutine teb_morpho(HPROGRAM, PBLD, PWALL_O_HOR, PGARDEN, PBLD_HEIGHT, PROAD, PROAD_O_GRND, PGARDEN_O_GRND, PWALL_O_GRND, PCAN_HW_RATIO, PSVF_ROAD, PSVF_GARDEN, PSVF_WALL, PZ0_TOWN, PWALL_O_BLD, PH_TRAFFIC, PLE_TRAFFIC)
subroutine read_prep_teb_snow(HPROGRAM, HSNOW_ROOF, KSNOW_ROOF, HSNOW_ROAD, KSNOW_ROAD, HFILE, HFILETYPE, HFILEPGD, HFILEPGDTYPE)
subroutine abor1_sfx(YTEXT)
subroutine init_teb_greenroof_n(DTCO, U, DGMTO, TOP, TVG, GRM, HPROGRAM, HINIT, KI, KSW, PSW_BANDS, KPATCH)
subroutine init_teb_garden_pgd_n(DTCO, U, CHI, DTI, I, DST, SLT, CHT, TG, T, TOP, GDM, HPROGRAM, HINIT, OREAD_PGD, KI, KSV, HSV, KVERSION, KBUGFIX, PCO2, PRHOA)
subroutine goto_wrapper_teb_patch(B, DGCT, DGMT, T, TGD, TGDPE, TGR, TGRPE, KTO_PATCH)
subroutine read_default_teb_n(CHT, DGMTO, DGT, DGUT, TGRO, T, TOP, HPROGRAM)
subroutine read_teb_n(B, BOP, DTCO, DGU, U, T, TOP, TPN, HPROGRAM, KPATCH)
subroutine default_ch_dep(HCH_DRY_DEP)
subroutine convert_teb(TOP, PCOVER, PTEB_PATCH)
subroutine end_io_surf_n(HPROGRAM)
subroutine read_teb_date(HPROGRAM, HINIT, KLUOUT, HATMFILE, HATMFILETYPE, KYEAR, KMONTH, KDAY, PTIME, TPTIME)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine default_teb(HZ0H, PTSTEP, POUT_TSTEP, HCH_BEM, PDT_RES, PDT_OFF)
subroutine diag_misc_teb_init_n(DGCT, DGMT, DGMTO, TOP, HPROGRAM, KLU, KSW)
subroutine default_diag_teb(K2M, OSURF_BUDGET, O2M_MIN_ZS, ORAD_BUDGET, OCOEF, OSURF_VARS, OSURF_MISC_BUDGET, OSURF_DIAG_ALBEDO, OUTCI, OPGD, OPGD_FIX, PDIAG_TSTEP)
subroutine read_teb_canopy_n(DTCO, U, TCP, TOP, HPROGRAM)
subroutine init_teb_garden_n(DTCO, DGU, UG, U, DGMTO, TOP, GDM, HPROGRAM, HINIT, KI, KSW, PSW_BANDS, KPATCH)
subroutine convert_patch_teb(BDD, DTB, DTCO, DTT, TOP, PCOVER, OCOVER, PDEF_ROAD_DIR, PZ0_TOWN, PALB_ROOF, PEMIS_ROOF, PHC_ROOF, PTC_ROOF, PD_ROOF, PALB_ROAD, PEMIS_ROAD, PHC_ROAD, PTC_ROAD, PD_ROAD, PALB_WALL, PEMIS_WALL, PHC_WALL, PTC_WALL, PD_WALL, PBLD_HEIGHT, PWALL_O_HOR, PBLD, PGARDEN, PROAD_DIR, PH_TRAFFIC, PLE_TRAFFIC, PH_INDUSTRY, PLE_INDUSTRY, PHC_FLOOR, PTC_FLOOR, PD_FLOOR, PTCOOL_TARGET, PTHEAT_TARGET, PF_WASTE_CAN, PEFF_HEAT, PQIN, PQIN_FRAD, PSHGC, PU_WIN, PGR, PSHGC_SH, PFLOOR_HEIGHT, PINF, PF_WATER_COND, PQIN_FLAT, PHR_TARGET, PV_VENT, PCAP_SYS_HEAT, PCAP_SYS_RAT, PT_ADP, PM_SYS_RAT, PCOP_RAT, PT_SIZE_MAX, PT_SIZE_MIN, PSHADE, PNATVENT, PROUGH_ROOF, PRESIDENTIAL, PROUGH_WALL, PGREENROOF, PEMIS_PANEL, PALB_PANEL, PEFF_PANEL, PFRAC_PANEL)
subroutine init_teb_greenroof_pgd_n(DTCO, U, CHI, DTI, I, DST, SLT, CHT, TG, T, TOP, TVG, GRM, HPROGRAM, HINIT, OREAD_PGD, KI, KSV, HSV, KVERSION, PCO2, PRHOA)
subroutine read_teb_conf_n(CHT, DGMTO, DGT, DGUT, T, TOP, HPROGRAM)
subroutine read_nam_prep_teb_n(HPROGRAM)
subroutine garden_properties(T, GDM, PDIR_SW, PSCA_SW, PSW_BANDS, KSW, PTS, PEMIS, PALB, PTA, PALBNIR_TVEG, PALBVIS_TVEG, PALBNIR_TSOIL, PALBVIS_TSOIL)
subroutine greenroof_properties(T, TVG, GRM, PDIR_SW, PSCA_SW, PSW_BANDS, KSW, PTS, PEMIS, PALB, PTA, PALBNIR_TVEG, PALBVIS_TVEG, PALBNIR_TSOIL, PALBVIS_TSOIL)
subroutine diag_teb_init_n(DGT, DGUT, HPROGRAM, KLU, KSW)
subroutine init_teb_n(DTCO, DGU, UG, U, CHI, DTI, I, TM, GDM, GRM, DST, SLT, HPROGRAM, HINIT, KI, KSV, KSW, HSV, PCO2, PRHOA, PZENITH, PAZIM, PSW_BANDS, PDIR_ALB, PSCA_ALB, PEMIS, PTSRAD, PTSURF, KYEAR, KMONTH, KDAY, PTIME, HATMFILE, HATMFILETYPE, HTEST)
subroutine read_pgd_teb_irrig_n(TG, TIR, HPROGRAM)
subroutine init_chemical_n(KLUOUT, KSV, HSV, YSV, HCH_NAMES, HAER_NAMES, HDSTNAMES, HSLTNAMES)
subroutine init_bem_n(DGU, DTCO, UG, U, TM, KLUOUT)