SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
convert_patch_teb.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 ! #########
6  SUBROUTINE convert_patch_teb (BDD, DTB, DTCO, DTT, TOP, &
7  pcover,ocover,pdef_road_dir, &
8  pz0_town, &
9  palb_roof, &
10  pemis_roof,phc_roof,ptc_roof, &
11  pd_roof, &
12  palb_road, &
13  pemis_road,phc_road,ptc_road, &
14  pd_road, &
15  palb_wall, &
16  pemis_wall,phc_wall,ptc_wall, &
17  pd_wall, &
18  pbld_height, &
19  pwall_o_hor,pbld, &
20  pgarden, proad_dir, &
21  ph_traffic, ple_traffic, &
22  ph_industry, ple_industry, &
23  phc_floor, ptc_floor, pd_floor, &
24  ptcool_target, ptheat_target, &
25  pf_waste_can, peff_heat, pqin, &
26  pqin_frad, pshgc, pu_win, pgr, &
27  pshgc_sh, pfloor_height, pinf, &
28  pf_water_cond, pqin_flat, &
29  phr_target, pv_vent, pcap_sys_heat, &
30  pcap_sys_rat, pt_adp, pm_sys_rat, &
31  pcop_rat, pt_size_max, pt_size_min, &
32  pshade, pnatvent, prough_roof, &
33  presidential, &
34  prough_wall, pgreenroof, &
35  pemis_panel, palb_panel, peff_panel,&
36  pfrac_panel )
37 ! ##############################################################
38 !
39 !!**** *CONVERT_PATCH_TEB* compilation of conver_cover_isba, pgd_isba_par and
40 !! init_from_data_isba_parn
41 !!
42 !! PURPOSE
43 !! -------
44 !!
45 !! METHOD
46 !! ------
47 !!
48 !
49 !! EXTERNAL
50 !! --------
51 !!
52 !! IMPLICIT ARGUMENTS
53 !! ------------------
54 !!
55 !! REFERENCE
56 !! ---------
57 !!
58 !! AUTHOR
59 !! ------
60 !!
61 !! S. Faroux Meteo-France
62 !!
63 !! MODIFICATION
64 !! ------------
65 !!
66 !! Original 16/11/10
67 !! G. Pigeon /09/12: add ROUGH_ROOF and ROUGH_WALL coef for outdoor conv. coef
68 !! V. Masson 08/13 adds solar panels
69 !!
70 !----------------------------------------------------------------------------
71 !
72 !* 0. DECLARATION
73 ! -----------
74 !
75 !
77 USE modd_data_bem_n, ONLY : data_bem_t
79 USE modd_data_teb_n, ONLY : data_teb_t
81 !
82 USE modd_surf_par, ONLY : xundef
83 !
84 USE modd_data_cover_par, ONLY : ndata_road_layer, ndata_wall_layer, &
85  ndata_roof_layer, ndata_floor_layer
86 USE modd_data_cover, ONLY : xdata_z0_town, xdata_alb_roof, &
87  xdata_emis_roof, xdata_hc_roof, xdata_tc_roof, &
88  xdata_d_roof, xdata_alb_road, xdata_emis_road, &
89  xdata_hc_road, xdata_tc_road, xdata_d_road, &
90  xdata_alb_wall, xdata_emis_wall, xdata_hc_wall, &
91  xdata_tc_wall, xdata_d_wall, xdata_bld_height, &
92  xdata_h_traffic, xdata_le_traffic, &
93  xdata_h_industry, xdata_le_industry, &
94  xdata_hc_floor, xdata_tc_floor, xdata_d_floor, &
95  xdata_tcool_target, xdata_theat_target, &
96  xdata_f_waste_can, xdata_eff_heat, xdata_qin, &
97  xdata_qin_frad, xdata_shgc, xdata_u_win, xdata_gr,&
98  xdata_shgc_sh, xdata_floor_height, xdata_inf, &
99  xdata_f_water_cond, xdata_qin_flat, &
100  xdata_hr_target, xdata_v_vent, xdata_cap_sys_heat,&
101  xdata_cap_sys_rat, xdata_t_adp, xdata_m_sys_rat, &
102  xdata_cop_rat, xdata_t_size_max, xdata_t_size_min,&
103  xdata_shade, xdata_natvent, xdata_rough_roof, &
104  xdata_rough_wall, xdata_residential,xdata_frac_gr,&
105  xdata_emis_panel,xdata_alb_panel, xdata_eff_panel,&
106  xdata_frac_panel
107 !
108 !
109 USE modi_thermal_layers_conf
110 USE modi_ini_data_param_teb
111 USE modi_av_pgd
112 !
113 USE yomhook ,ONLY : lhook, dr_hook
114 USE parkind1 ,ONLY : jprb
115 !
116 USE modi_abor1_sfx
117 !
118 IMPLICIT NONE
119 !
120 !* 0.1 Declaration of arguments
121 ! ------------------------
122 !
123 !
124 TYPE(bld_desc_t), INTENT(INOUT) :: bdd
125 TYPE(data_bem_t), INTENT(INOUT) :: dtb
126 TYPE(data_cover_t), INTENT(INOUT) :: dtco
127 TYPE(data_teb_t), INTENT(INOUT) :: dtt
128 TYPE(teb_options_t), INTENT(INOUT) :: top
129 !
130 REAL, DIMENSION(:,:), INTENT(IN) :: pcover
131 LOGICAL, DIMENSION(:), INTENT(IN) :: ocover
132 REAL, INTENT(IN) :: pdef_road_dir ! default road direction
133 !
134 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pz0_town
135 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: palb_roof
136 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pemis_roof
137 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: phc_roof
138 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: ptc_roof
139 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pd_roof
140 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: palb_road
141 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pemis_road
142 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: phc_road
143 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: ptc_road
144 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pd_road
145 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: palb_wall
146 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pemis_wall
147 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: phc_wall
148 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: ptc_wall
149 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pd_wall
150 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pbld_height
151 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pwall_o_hor
152 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pbld
153 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pgarden
154 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: proad_dir
155 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: ph_traffic
156 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: ple_traffic
157 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: ph_industry
158 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: ple_industry
159 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: phc_floor
160 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: ptc_floor
161 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pd_floor
162 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: ptcool_target
163 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: ptheat_target
164 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pf_waste_can
165 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: peff_heat
166 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pqin
167 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pqin_frad
168 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pshgc
169 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pu_win
170 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pgr
171 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pshgc_sh
172 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pfloor_height
173 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pinf
174 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pf_water_cond
175 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pqin_flat
176 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: phr_target
177 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pv_vent
178 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pcap_sys_heat
179 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pcap_sys_rat
180 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pt_adp
181 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pm_sys_rat
182 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pcop_rat
183 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pt_size_max
184 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pt_size_min
185 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pshade
186 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pnatvent
187 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: prough_roof
188 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: prough_wall
189 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: presidential
190 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pgreenroof
191 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pemis_panel
192 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: palb_panel
193 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: peff_panel
194 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: pfrac_panel
195 !
196 !* 0.2 Declaration of local variables
197 ! ------------------------------
198 !
199 REAL, DIMENSION(:,:), ALLOCATABLE :: ztc, zhc, zd
200 INTEGER :: jlayer ! loop counter on layers
201 INTEGER :: il ! number of points
202 !
203  CHARACTER(LEN=3) :: yavg ! Type of averaging for buildings
204  CHARACTER(LEN=4) :: yarea ! Area where parameter is averaged
205 !
206 !* 0.3 Declaration of namelists
207 ! ------------------------
208 !
209 REAL(KIND=JPRB) :: zhook_handle
210 !
211 !-------------------------------------------------------------------------------
212 !
213 !* 1. Initializations
214 ! ---------------
215 !
216 IF (lhook) CALL dr_hook('CONVERT_PATCH_TEB',0,zhook_handle)
217 !
218 IF (top%CBLD_ATYPE=='ARI') THEN
219  yavg=top%CBLD_ATYPE
220  yarea='BLD'
221 ELSE
222  yavg=top%CBLD_ATYPE
223  yarea='BLV'
224 END IF
225 !
226 il = SIZE(pcover,1)
227 !-------------------------------------------------------------------------------
228 !
229 ! ROAD DIRECTION
230 ! --------------
231 IF (present(proad_dir)) THEN
232  IF (dtt%LDATA_ROAD_DIR) THEN
233  proad_dir=dtt%XPAR_ROAD_DIR
234  ELSE
235  proad_dir=pdef_road_dir
236  ENDIF
237 ENDIF
238 !
239 !
240 ! GARDEN fraction
241 ! ---------------
242 IF (present(pgarden)) THEN
243  IF (dtt%LDATA_GARDEN) THEN
244  pgarden=dtt%XPAR_GARDEN
245  ELSE
246  CALL av_pgd(dtco, &
247  pgarden, pcover, dtco%XDATA_GARDEN(:),'TWN','ARI',ocover)
248  ENDIF
249 ENDIF
250 !
251 !
252 ! BLD fraction
253 ! -------------
254 IF (present(pbld)) THEN
255  IF (dtt%LDATA_BLD) THEN
256  pbld=dtt%XPAR_BLD
257  ELSE
258  CALL av_pgd(dtco, &
259  pbld, pcover, dtco%XDATA_BLD(:),'TWN','ARI',ocover)
260  ENDIF
261 ENDIF
262 !
263 !
264 ! Z0_TOWN
265 ! ----------
266 IF (present(pz0_town)) THEN
267  IF (dtt%LDATA_Z0_TOWN) THEN
268  pz0_town=dtt%XPAR_Z0_TOWN
269  ELSE
270  CALL av_pgd(dtco, &
271  pz0_town ,pcover ,xdata_z0_town(:),'TWN','CDN',ocover)
272  ENDIF
273 ENDIF
274 !
275 ! BLD Height
276 ! ----------
277 IF (present(pbld_height)) THEN
278  IF (dtt%LDATA_BLD_HEIGHT) THEN
279  pbld_height=dtt%XPAR_BLD_HEIGHT
280  ELSE
281  CALL av_pgd(dtco, &
282  pbld_height ,pcover ,xdata_bld_height(:),'BLD','ARI',ocover)
283  ENDIF
284 ENDIF
285 !
286 ! WALL O HOR
287 ! ----------
288 IF (present(pwall_o_hor)) THEN
289  IF (dtt%LDATA_WALL_O_HOR) THEN
290  pwall_o_hor=dtt%XPAR_WALL_O_HOR
291  ELSE
292  CALL av_pgd(dtco, &
293  pwall_o_hor ,pcover ,dtco%XDATA_WALL_O_HOR (:),'BLD','ARI',ocover)
294  ENDIF
295 ENDIF
296 !
297 ! ALB_ROOF
298 ! ----------
299 IF (present(palb_roof)) THEN
300  IF (dtt%LDATA_ALB_ROOF) THEN
301  palb_roof=dtt%XPAR_ALB_ROOF
302  ELSEIF (dtt%LDATA_BLDTYPE) THEN
303  CALL ini_data_param_teb(bdd, &
304  dtt%NPAR_BLDCODE,palb_roof=palb_roof)
305  ELSE
306  CALL av_pgd(dtco, &
307  palb_roof ,pcover ,xdata_alb_roof(:),yarea,yavg,ocover)
308  ENDIF
309 ENDIF
310 !
311 ! EMIS_ROOF
312 ! ----------
313 IF (present(pemis_roof)) THEN
314  IF (dtt%LDATA_EMIS_ROOF) THEN
315  pemis_roof=dtt%XPAR_EMIS_ROOF
316  ELSEIF (dtt%LDATA_BLDTYPE) THEN
317  CALL ini_data_param_teb(bdd, &
318  dtt%NPAR_BLDCODE,pemis_roof=pemis_roof)
319  ELSE
320  CALL av_pgd(dtco, &
321  pemis_roof ,pcover ,xdata_emis_roof(:),yarea,yavg,ocover)
322  ENDIF
323 ENDIF
324 !
325 ! HC_ROOF, TC_ROOF, D_ROOF
326 ! ------------------------
327 !
328 IF (present(phc_roof) .AND. present(ptc_roof) .AND. present(pd_roof)) THEN
329  IF (dtt%LDATA_HC_ROOF) THEN
330  CALL allocate_thermal_work(dtt%NPAR_ROOF_LAYER)
331  zhc=dtt%XPAR_HC_ROOF
332  ztc=dtt%XPAR_TC_ROOF
333  zd =dtt%XPAR_D_ROOF
334  ELSEIF (dtt%LDATA_BLDTYPE) THEN
335  CALL allocate_thermal_work(bdd%NDESC_ROOF_LAYER)
336  CALL ini_data_param_teb(bdd, &
337  dtt%NPAR_BLDCODE,phc_roof=zhc)
338  CALL ini_data_param_teb(bdd, &
339  dtt%NPAR_BLDCODE,ptc_roof=ztc)
340  CALL ini_data_param_teb(bdd, &
341  dtt%NPAR_BLDCODE,pd_roof =zd )
342  ELSE
343  CALL allocate_thermal_work(ndata_roof_layer)
344  DO jlayer=1,ndata_roof_layer
345  CALL av_pgd(dtco, &
346  zhc(:,jlayer), pcover, xdata_hc_roof(:,jlayer),yarea,yavg,ocover)
347  CALL av_pgd(dtco, &
348  ztc(:,jlayer), pcover ,xdata_tc_roof(:,jlayer),yarea,yavg,ocover)
349  CALL av_pgd(dtco, &
350  zd(:,jlayer), pcover ,xdata_d_roof(:,jlayer),yarea,yavg,ocover)
351  ENDDO
352  ENDIF
353  CALL thermal_layers_conf('ROOF ',zhc,ztc,zd,phc_roof,ptc_roof,pd_roof)
355 ENDIF
356 !
357 ! ALB_ROAD
358 ! ----------
359 IF (present(palb_road)) THEN
360  IF (dtt%LDATA_ALB_ROAD) THEN
361  palb_road=dtt%XPAR_ALB_ROAD
362  ELSEIF (dtt%LDATA_BLDTYPE) THEN
363  CALL ini_data_param_teb(bdd, &
364  dtt%NPAR_BLDCODE,palb_road=palb_road)
365  ELSE
366  CALL av_pgd(dtco, &
367  palb_road ,pcover ,xdata_alb_road(:),'STR','ARI',ocover)
368  ENDIF
369 ENDIF
370 !
371 ! EMIS_ROAD
372 ! ----------
373 IF (present(pemis_road)) THEN
374  IF (dtt%LDATA_EMIS_ROAD) THEN
375  pemis_road=dtt%XPAR_EMIS_ROAD
376  ELSEIF (dtt%LDATA_BLDTYPE) THEN
377  CALL ini_data_param_teb(bdd, &
378  dtt%NPAR_BLDCODE,pemis_road=pemis_road)
379  ELSE
380  CALL av_pgd(dtco, &
381  pemis_road ,pcover ,xdata_emis_road(:),'STR','ARI',ocover)
382  ENDIF
383 ENDIF
384 !
385 ! HC_ROAD, TC_ROAD, D_ROAD
386 ! ------------------------
387 !
388 IF (present(phc_road) .AND. present(ptc_road) .AND. present(pd_road)) THEN
389  IF (dtt%LDATA_HC_ROAD) THEN
390  CALL allocate_thermal_work(dtt%NPAR_ROAD_LAYER)
391  zhc=dtt%XPAR_HC_ROAD
392  ztc=dtt%XPAR_TC_ROAD
393  zd =dtt%XPAR_D_ROAD
394  ELSEIF (dtt%LDATA_BLDTYPE) THEN
395  CALL allocate_thermal_work(bdd%NDESC_ROAD_LAYER)
396  CALL ini_data_param_teb(bdd, &
397  dtt%NPAR_BLDCODE,phc_road=zhc)
398  CALL ini_data_param_teb(bdd, &
399  dtt%NPAR_BLDCODE,ptc_road=ztc)
400  CALL ini_data_param_teb(bdd, &
401  dtt%NPAR_BLDCODE,pd_road =zd )
402  ELSE
403  CALL allocate_thermal_work(ndata_road_layer)
404  DO jlayer=1,ndata_road_layer
405  CALL av_pgd(dtco, &
406  zhc(:,jlayer), pcover, xdata_hc_road(:,jlayer),yarea,yavg,ocover)
407  CALL av_pgd(dtco, &
408  ztc(:,jlayer), pcover ,xdata_tc_road(:,jlayer),yarea,yavg,ocover)
409  CALL av_pgd(dtco, &
410  zd(:,jlayer), pcover ,xdata_d_road(:,jlayer),yarea,yavg,ocover)
411  !CALL AV_PGD (PHC_ROAD(:,JLAYER), PCOVER, XDATA_HC_ROAD (:,JLAYER),YAREA,YAVG)
412  !CALL AV_PGD (PTC_ROAD(:,JLAYER), PCOVER ,XDATA_TC_ROAD (:,JLAYER),YAREA,YAVG)
413  !CALL AV_PGD (PD_ROAD(:,JLAYER), PCOVER ,XDATA_D_ROAD (:,JLAYER),YAREA,YAVG)
414  ENDDO
415  ENDIF
416  CALL thermal_layers_conf('ROAD ',zhc,ztc,zd,phc_road,ptc_road,pd_road)
418 ENDIF
419 !
420 ! ALB_WALL
421 ! ----------
422 IF (present(palb_wall)) THEN
423  IF (dtt%LDATA_ALB_WALL) THEN
424  palb_wall=dtt%XPAR_ALB_WALL
425  ELSEIF (dtt%LDATA_BLDTYPE) THEN
426  CALL ini_data_param_teb(bdd, &
427  dtt%NPAR_BLDCODE,palb_wall=palb_wall)
428  ELSE
429  CALL av_pgd(dtco, &
430  palb_wall ,pcover ,xdata_alb_wall(:),yarea,yavg,ocover)
431  ENDIF
432 ENDIF
433 !
434 ! EMIS_WALL
435 ! ----------
436 IF (present(pemis_wall)) THEN
437  IF (dtt%LDATA_EMIS_WALL) THEN
438  pemis_wall=dtt%XPAR_EMIS_WALL
439  ELSEIF (dtt%LDATA_BLDTYPE) THEN
440  CALL ini_data_param_teb(bdd, &
441  dtt%NPAR_BLDCODE,pemis_wall=pemis_wall)
442  ELSE
443  CALL av_pgd(dtco, &
444  pemis_wall ,pcover ,xdata_emis_wall(:),yarea,yavg,ocover)
445  ENDIF
446 ENDIF
447 !
448 ! HC_WALL, TC_WALL, D_WALL
449 ! ------------------------
450 !
451 IF (present(phc_wall) .AND. present(ptc_wall) .AND. present(pd_wall)) THEN
452  IF (dtt%LDATA_HC_WALL) THEN
453  CALL allocate_thermal_work(dtt%NPAR_WALL_LAYER)
454  zhc=dtt%XPAR_HC_WALL
455  ztc=dtt%XPAR_TC_WALL
456  zd =dtt%XPAR_D_WALL
457  ELSEIF (dtt%LDATA_BLDTYPE) THEN
458  CALL allocate_thermal_work(bdd%NDESC_WALL_LAYER)
459  CALL ini_data_param_teb(bdd, &
460  dtt%NPAR_BLDCODE,phc_wall=zhc)
461  CALL ini_data_param_teb(bdd, &
462  dtt%NPAR_BLDCODE,ptc_wall=ztc)
463  CALL ini_data_param_teb(bdd, &
464  dtt%NPAR_BLDCODE,pd_wall =zd )
465  ELSE
466  CALL allocate_thermal_work(ndata_wall_layer)
467  DO jlayer=1,ndata_wall_layer
468  CALL av_pgd(dtco, &
469  zhc(:,jlayer), pcover, xdata_hc_wall(:,jlayer),yarea,yavg,ocover)
470  CALL av_pgd(dtco, &
471  ztc(:,jlayer), pcover ,xdata_tc_wall(:,jlayer),yarea,yavg,ocover)
472  CALL av_pgd(dtco, &
473  zd(:,jlayer), pcover ,xdata_d_wall(:,jlayer),yarea,yavg,ocover)
474  ENDDO
475  ENDIF
476  CALL thermal_layers_conf('WALL ',zhc,ztc,zd,phc_wall,ptc_wall,pd_wall)
478 ENDIF
479 !
480 ! HC_FLOOR, TC_FLOOR, D_FLOOR
481 ! ------------------------
482 !
483 IF (present(phc_floor) .AND. present(ptc_floor) .AND. present(pd_floor)) THEN
484  IF (dtb%LDATA_HC_FLOOR) THEN
485  CALL allocate_thermal_work(dtb%NPAR_FLOOR_LAYER)
486  zhc=dtb%XPAR_HC_FLOOR
487  ztc=dtb%XPAR_TC_FLOOR
488  zd =dtb%XPAR_D_FLOOR
489  ELSEIF (dtt%LDATA_BLDTYPE) THEN
490  CALL allocate_thermal_work(bdd%NDESC_FLOOR_LAYER)
491  CALL ini_data_param_teb(bdd, &
492  dtt%NPAR_BLDCODE,phc_floor=zhc)
493  CALL ini_data_param_teb(bdd, &
494  dtt%NPAR_BLDCODE,ptc_floor=ztc)
495  CALL ini_data_param_teb(bdd, &
496  dtt%NPAR_BLDCODE,pd_floor =zd )
497  ELSE
498  CALL allocate_thermal_work(ndata_floor_layer)
499  DO jlayer=1,ndata_floor_layer
500  CALL av_pgd(dtco, &
501  zhc(:,jlayer), pcover, xdata_hc_floor(:,jlayer),yarea,yavg,ocover)
502  CALL av_pgd(dtco, &
503  ztc(:,jlayer), pcover ,xdata_tc_floor(:,jlayer),yarea,yavg,ocover)
504  CALL av_pgd(dtco, &
505  zd(:,jlayer), pcover ,xdata_d_floor(:,jlayer),yarea,yavg,ocover)
506  ENDDO
507  ENDIF
508  CALL thermal_layers_conf('FLOOR',zhc,ztc,zd,phc_floor,ptc_floor,pd_floor)
510 ENDIF
511 !
512 ! H_TRAFFIC
513 ! ---------
514 IF (present(ph_traffic)) THEN
515  IF (dtt%LDATA_H_TRAFFIC) THEN
516  ph_traffic=dtt%XPAR_H_TRAFFIC
517  ELSE
518  CALL av_pgd(dtco, &
519  ph_traffic ,pcover ,xdata_h_traffic(:),'TWN','ARI',ocover)
520  ENDIF
521 ENDIF
522 !
523 ! LE_TRAFFIC
524 ! ----------
525 IF (present(ple_traffic)) THEN
526  IF (dtt%LDATA_LE_TRAFFIC) THEN
527  ple_traffic=dtt%XPAR_LE_TRAFFIC
528  ELSE
529  CALL av_pgd(dtco, &
530  ple_traffic ,pcover ,xdata_le_traffic(:),'TWN','ARI',ocover)
531  ENDIF
532 ENDIF
533 !
534 ! H_INDUSTRY
535 ! ----------
536 IF (present(ph_industry)) THEN
537  IF (dtt%LDATA_H_INDUSTRY) THEN
538  ph_industry=dtt%XPAR_H_INDUSTRY
539  ELSE
540  CALL av_pgd(dtco, &
541  ph_industry ,pcover ,xdata_h_industry(:),'TWN','ARI',ocover)
542  ENDIF
543 ENDIF
544 !
545 ! SOLAR PANELS
546 ! ------------
547 IF (present(pemis_panel)) THEN
548  IF (dtt%LDATA_EMIS_PANEL) THEN
549  pemis_panel=dtt%XPAR_EMIS_PANEL
550  ELSEIF (dtt%LDATA_BLDTYPE) THEN
551  CALL ini_data_param_teb(bdd, &
552  dtt%NPAR_BLDCODE,pemis_panel=pemis_panel)
553  ELSE
554  CALL av_pgd(dtco, &
555  pemis_panel ,pcover ,xdata_emis_panel(:),'BLD','ARI',ocover)
556  ENDIF
557 ENDIF
558 !
559 IF (present(palb_panel)) THEN
560  IF (dtt%LDATA_ALB_PANEL) THEN
561  palb_panel=dtt%XPAR_ALB_PANEL
562  ELSEIF (dtt%LDATA_BLDTYPE) THEN
563  CALL ini_data_param_teb(bdd, &
564  dtt%NPAR_BLDCODE,palb_panel=palb_panel)
565  ELSE
566  CALL av_pgd(dtco, &
567  palb_panel ,pcover ,xdata_alb_panel(:),'BLD','ARI',ocover)
568  ENDIF
569 ENDIF
570 !
571 IF (present(peff_panel)) THEN
572  IF (dtt%LDATA_EFF_PANEL) THEN
573  peff_panel=dtt%XPAR_EFF_PANEL
574  ELSEIF (dtt%LDATA_BLDTYPE) THEN
575  CALL ini_data_param_teb(bdd, &
576  dtt%NPAR_BLDCODE,peff_panel=peff_panel)
577  ELSE
578  CALL av_pgd(dtco, &
579  peff_panel ,pcover ,xdata_eff_panel(:),'BLD','ARI',ocover)
580  ENDIF
581 ENDIF
582 !
583 IF (present(pfrac_panel)) THEN
584  IF (dtt%LDATA_FRAC_PANEL) THEN
585  pfrac_panel=dtt%XPAR_FRAC_PANEL
586  ELSEIF (dtt%LDATA_BLDTYPE) THEN
587  CALL ini_data_param_teb(bdd, &
588  dtt%NPAR_BLDCODE,pfrac_panel=pfrac_panel)
589  ELSE
590  CALL av_pgd(dtco, &
591  pfrac_panel ,pcover ,xdata_frac_panel(:),'BLD','ARI',ocover)
592  ENDIF
593 ENDIF
594 !
595 ! LE_INDUSTRY
596 ! -----------
597 IF (present(ple_industry)) THEN
598  IF (dtt%LDATA_LE_INDUSTRY) THEN
599  ple_industry=dtt%XPAR_LE_INDUSTRY
600  ELSE
601  CALL av_pgd(dtco, &
602  ple_industry ,pcover ,xdata_le_industry(:),'TWN','ARI',ocover)
603  ENDIF
604 ENDIF
605 !
606 ! TCOOL_TARGET
607 ! -----------
608 IF (present(ptcool_target)) THEN
609  IF (dtb%LDATA_TCOOL_TARGET) THEN
610  ptcool_target=dtb%XPAR_TCOOL_TARGET
611  ELSEIF (dtt%LDATA_USETYPE) THEN
612  CALL ini_data_param_teb(bdd, &
613  dtt%NPAR_USETYPE,ptcool_target=ptcool_target)
614  ELSE
615  CALL av_pgd(dtco, &
616  ptcool_target ,pcover ,xdata_tcool_target(:),'TWN','ARI',ocover)
617  ENDIF
618 ENDIF
619 !
620 ! THEAT_TARGET
621 ! -----------
622 IF (present(ptheat_target)) THEN
623  IF (dtb%LDATA_THEAT_TARGET) THEN
624  ptheat_target=dtb%XPAR_THEAT_TARGET
625  ELSEIF (dtt%LDATA_USETYPE) THEN
626  CALL ini_data_param_teb(bdd, &
627  dtt%NPAR_USETYPE,ptheat_target=ptheat_target)
628  ELSE
629  CALL av_pgd(dtco, &
630  ptheat_target ,pcover ,xdata_theat_target(:),'TWN','ARI',ocover)
631  ENDIF
632 ENDIF
633 !
634 ! -----------
635 IF (present(pf_waste_can)) THEN
636  IF (dtb%LDATA_F_WASTE_CAN) THEN
637  pf_waste_can=dtb%XPAR_F_WASTE_CAN
638  ELSEIF (dtt%LDATA_BLDTYPE) THEN
639  CALL ini_data_param_teb(bdd, &
640  dtt%NPAR_BLDCODE,pf_waste_can=pf_waste_can)
641  ELSE
642  CALL av_pgd(dtco, &
643  pf_waste_can ,pcover ,xdata_f_waste_can(:),'TWN','ARI',ocover)
644  ENDIF
645 ENDIF
646 !
647 ! EFF_HEAT
648 ! -----------
649 IF (present(peff_heat)) THEN
650  IF (dtb%LDATA_EFF_HEAT) THEN
651  peff_heat=dtb%XPAR_EFF_HEAT
652  ELSEIF (dtt%LDATA_BLDTYPE) THEN
653  CALL ini_data_param_teb(bdd, &
654  dtt%NPAR_BLDCODE,peff_heat=peff_heat)
655  ELSE
656  CALL av_pgd(dtco, &
657  peff_heat ,pcover ,xdata_eff_heat(:),'TWN','ARI',ocover)
658  ENDIF
659 ENDIF
660 !
661 ! QIN
662 ! -----------
663 IF (present(pqin)) THEN
664  IF (dtb%LDATA_QIN) THEN
665  pqin=dtb%XPAR_QIN
666  ELSEIF (dtt%LDATA_USETYPE) THEN
667  CALL ini_data_param_teb(bdd, &
668  dtt%NPAR_USETYPE,pqin=pqin)
669  ELSE
670  CALL av_pgd(dtco, &
671  pqin ,pcover ,xdata_qin(:),'TWN','ARI',ocover)
672  ENDIF
673 ENDIF
674 !
675 ! QIN_FRAD
676 ! -----------
677 IF (present(pqin_frad)) THEN
678  IF (dtb%LDATA_QIN_FRAD) THEN
679  pqin_frad=dtb%XPAR_QIN_FRAD
680  ELSEIF (dtt%LDATA_USETYPE) THEN
681  CALL ini_data_param_teb(bdd, &
682  dtt%NPAR_USETYPE,pqin_frad=pqin_frad)
683  ELSE
684  CALL av_pgd(dtco, &
685  pqin_frad ,pcover ,xdata_qin_frad(:),'TWN','ARI',ocover)
686  ENDIF
687 ENDIF
688 !
689 ! SHGC
690 ! -----------
691 IF (present(pshgc)) THEN
692  IF (dtb%LDATA_SHGC) THEN
693  pshgc=dtb%XPAR_SHGC
694  ELSEIF (dtt%LDATA_BLDTYPE) THEN
695  CALL ini_data_param_teb(bdd, &
696  dtt%NPAR_BLDCODE,pshgc=pshgc)
697  ELSE
698  CALL av_pgd(dtco, &
699  pshgc ,pcover ,xdata_shgc(:),'TWN','ARI',ocover)
700  ENDIF
701 ENDIF
702 !
703 ! U_WIN
704 ! -----------
705 IF (present(pu_win)) THEN
706  IF (dtb%LDATA_U_WIN) THEN
707  pu_win=dtb%XPAR_U_WIN
708  ELSEIF (dtt%LDATA_BLDTYPE) THEN
709  CALL ini_data_param_teb(bdd, &
710  dtt%NPAR_BLDCODE,pu_win=pu_win)
711  ELSE
712  CALL av_pgd(dtco, &
713  pu_win ,pcover ,xdata_u_win(:),'TWN','ARI',ocover)
714  ENDIF
715 ENDIF
716 !
717 ! GR
718 ! -----------
719 IF (present(pgr)) THEN
720  IF (dtb%LDATA_GR) THEN
721  pgr=dtb%XPAR_GR
722  ELSEIF (dtt%LDATA_BLDTYPE) THEN
723  CALL ini_data_param_teb(bdd, &
724  dtt%NPAR_BLDCODE,pgr=pgr)
725  ELSE
726  CALL av_pgd(dtco, &
727  pgr ,pcover ,xdata_gr(:),'TWN','ARI',ocover)
728  ENDIF
729 ENDIF
730 !
731 ! SHGC_SH
732 ! -----------
733 IF (present(pshgc_sh)) THEN
734  IF (dtb%LDATA_SHGC_SH) THEN
735  pshgc_sh=dtb%XPAR_SHGC_SH
736  ELSEIF (dtt%LDATA_USETYPE) THEN
737  CALL ini_data_param_teb(bdd, &
738  dtt%NPAR_USETYPE,pshgc_sh=pshgc_sh)
739  ELSE
740  CALL av_pgd(dtco, &
741  pshgc_sh ,pcover ,xdata_shgc_sh(:),'TWN','ARI',ocover)
742  ENDIF
743 ENDIF
744 !
745 ! FLOOR_HEIGHT
746 ! -----------
747 IF (present(pfloor_height)) THEN
748  IF (dtb%LDATA_FLOOR_HEIGHT) THEN
749  pfloor_height=dtb%XPAR_FLOOR_HEIGHT
750  ELSEIF (dtt%LDATA_BLDTYPE) THEN
751  CALL ini_data_param_teb(bdd, &
752  dtt%NPAR_BLDCODE,pfloor_height=pfloor_height)
753  ELSE
754  CALL av_pgd(dtco, &
755  pfloor_height ,pcover ,xdata_floor_height(:),'TWN','ARI',ocover)
756  ENDIF
757 ENDIF
758 !
759 ! INF
760 ! -----------
761 IF (present(pinf)) THEN
762  IF (dtb%LDATA_INF) THEN
763  pinf=dtb%XPAR_INF
764  ELSEIF (dtt%LDATA_BLDTYPE) THEN
765  CALL ini_data_param_teb(bdd, &
766  dtt%NPAR_BLDCODE,pinf=pinf)
767  ELSE
768  CALL av_pgd(dtco, &
769  pinf ,pcover ,xdata_inf(:),'TWN','ARI',ocover)
770  ENDIF
771 ENDIF
772 !
773 ! F_WATER_COND
774 ! -----------
775 IF (present(pf_water_cond)) THEN
776  IF (dtb%LDATA_F_WATER_COND) THEN
777  pf_water_cond=dtb%XPAR_F_WATER_COND
778  ELSEIF (dtt%LDATA_BLDTYPE) THEN
779  CALL ini_data_param_teb(bdd, &
780  dtt%NPAR_BLDCODE,pf_water_cond=pf_water_cond)
781  ELSE
782  CALL av_pgd(dtco, &
783  pf_water_cond ,pcover ,xdata_f_water_cond(:),'TWN','ARI',ocover)
784  ENDIF
785 ENDIF
786 !
787 ! QIN_FLAT
788 ! -----------
789 IF (present(pqin_flat)) THEN
790  IF (dtb%LDATA_QIN_FLAT) THEN
791  pqin_flat=dtb%XPAR_QIN_FLAT
792  ELSEIF (dtt%LDATA_USETYPE) THEN
793  CALL ini_data_param_teb(bdd, &
794  dtt%NPAR_USETYPE,pqin_flat=pqin_flat)
795  ELSE
796  CALL av_pgd(dtco, &
797  pqin_flat ,pcover ,xdata_qin_flat(:),'TWN','ARI',ocover)
798  ENDIF
799 ENDIF
800 !
801 ! HR_TARGET
802 ! -----------
803 IF (present(phr_target)) THEN
804  IF (dtb%LDATA_HR_TARGET) THEN
805  phr_target=dtb%XPAR_HR_TARGET
806  ELSEIF (dtt%LDATA_USETYPE) THEN
807  CALL ini_data_param_teb(bdd, &
808  dtt%NPAR_USETYPE,phr_target=phr_target)
809  ELSE
810  CALL av_pgd(dtco, &
811  phr_target ,pcover ,xdata_hr_target(:),'TWN','ARI',ocover)
812  ENDIF
813 ENDIF
814 !
815 ! V_VENT
816 ! -----------
817 IF (present(pv_vent)) THEN
818  IF (dtb%LDATA_V_VENT) THEN
819  pv_vent=dtb%XPAR_V_VENT
820  ELSEIF (dtt%LDATA_BLDTYPE) THEN
821  CALL ini_data_param_teb(bdd, &
822  dtt%NPAR_BLDCODE,pv_vent=pv_vent)
823  ELSE
824  CALL av_pgd(dtco, &
825  pv_vent ,pcover ,xdata_v_vent(:),'TWN','ARI',ocover)
826  ENDIF
827 ENDIF
828 !
829 ! CAP_SYS_HEAT
830 ! -----------
831 IF (present(pcap_sys_heat)) THEN
832  IF (dtb%LDATA_CAP_SYS_HEAT) THEN
833  pcap_sys_heat=dtb%XPAR_CAP_SYS_HEAT
834  ELSEIF (dtt%LDATA_BLDTYPE) THEN
835  CALL ini_data_param_teb(bdd, &
836  dtt%NPAR_BLDCODE,pcap_sys_heat=pcap_sys_heat)
837  ELSE
838  CALL av_pgd(dtco, &
839  pcap_sys_heat ,pcover ,xdata_cap_sys_heat(:),'TWN','ARI',ocover)
840  ENDIF
841 ENDIF
842 !
843 ! CAP_SYS_RAT
844 ! -----------
845 IF (present(pcap_sys_rat)) THEN
846  IF (dtb%LDATA_CAP_SYS_RAT) THEN
847  pcap_sys_rat=dtb%XPAR_CAP_SYS_RAT
848  ELSEIF (dtt%LDATA_BLDTYPE) THEN
849  CALL ini_data_param_teb(bdd, &
850  dtt%NPAR_BLDCODE,pcap_sys_rat=pcap_sys_rat)
851  ELSE
852  CALL av_pgd(dtco, &
853  pcap_sys_rat ,pcover ,xdata_cap_sys_rat(:),'TWN','ARI',ocover)
854  ENDIF
855 ENDIF
856 !
857 ! T_ADP
858 ! -----------
859 IF (present(pt_adp)) THEN
860  IF (dtb%LDATA_T_ADP) THEN
861  pt_adp=dtb%XPAR_T_ADP
862  ELSEIF (dtt%LDATA_BLDTYPE) THEN
863  CALL ini_data_param_teb(bdd, &
864  dtt%NPAR_BLDCODE,pt_adp=pt_adp)
865  ELSE
866  CALL av_pgd(dtco, &
867  pt_adp ,pcover ,xdata_t_adp(:),'TWN','ARI',ocover)
868  ENDIF
869 ENDIF
870 !
871 ! M_SYS_RAT
872 ! -----------
873 IF (present(pm_sys_rat)) THEN
874  IF (dtb%LDATA_M_SYS_RAT) THEN
875  pm_sys_rat=dtb%XPAR_M_SYS_RAT
876  ELSEIF (dtt%LDATA_BLDTYPE) THEN
877  CALL ini_data_param_teb(bdd, &
878  dtt%NPAR_BLDCODE,pm_sys_rat=pm_sys_rat)
879  ELSE
880  CALL av_pgd(dtco, &
881  pm_sys_rat ,pcover ,xdata_m_sys_rat(:),'TWN','ARI',ocover)
882  ENDIF
883 ENDIF
884 !
885 ! COP_RAT
886 ! -----------
887 IF (present(pcop_rat)) THEN
888  IF (dtb%LDATA_COP_RAT) THEN
889  pcop_rat=dtb%XPAR_COP_RAT
890  ELSEIF (dtt%LDATA_BLDTYPE) THEN
891  CALL ini_data_param_teb(bdd, &
892  dtt%NPAR_BLDCODE,pcop_rat=pcop_rat)
893  ELSE
894  CALL av_pgd(dtco, &
895  pcop_rat ,pcover ,xdata_cop_rat(:),'TWN','ARI',ocover)
896  ENDIF
897 ENDIF
898 !
899 ! GREENROOF FRACTION
900 ! ------------------
901 IF (present(pgreenroof)) THEN
902  IF (dtt%LDATA_GREENROOF) THEN
903  pgreenroof=dtt%XPAR_GREENROOF
904  ELSEIF (dtt%LDATA_BLDTYPE) THEN
905  CALL ini_data_param_teb(bdd, &
906  dtt%NPAR_BLDCODE,pgreenroof=pgreenroof)
907  ELSE
908  CALL av_pgd(dtco, &
909  pgreenroof,pcover ,xdata_frac_gr(:),'BLD','ARI',ocover)
910  ENDIF
911 ENDIF
912 !
913 ! T_SIZE_MAX
914 ! -----------
915 IF (present(pt_size_max)) THEN
916  IF (dtb%LDATA_T_SIZE_MAX) THEN
917  pt_size_max=dtb%XPAR_T_SIZE_MAX
918  ELSEIF (dtt%LDATA_BLDTYPE) THEN
919  CALL ini_data_param_teb(bdd, &
920  dtt%NPAR_BLDCODE,pt_size_max=pt_size_max)
921  ELSE
922  CALL av_pgd(dtco, &
923  pt_size_max ,pcover ,xdata_t_size_max(:),'TWN','ARI',ocover)
924  ENDIF
925 ENDIF
926 !
927 ! T_SIZE_MIN
928 ! -----------
929 IF (present(pt_size_min)) THEN
930  IF (dtb%LDATA_T_SIZE_MIN) THEN
931  pt_size_min=dtb%XPAR_T_SIZE_MIN
932  ELSEIF (dtt%LDATA_BLDTYPE) THEN
933  CALL ini_data_param_teb(bdd, &
934  dtt%NPAR_BLDCODE,pt_size_min=pt_size_min)
935  ELSE
936  CALL av_pgd(dtco, &
937  pt_size_min ,pcover ,xdata_t_size_min(:),'TWN','ARI',ocover)
938  ENDIF
939 ENDIF
940 !
941 ! SHADE
942 ! -----
943 IF (present(pshade)) THEN
944  IF (dtb%LDATA_SHADE) THEN
945  pshade(:) = dtb%XPAR_SHADE(:)
946  ELSEIF (dtt%LDATA_USETYPE) THEN
947  CALL ini_data_param_teb(bdd, &
948  dtt%NPAR_USETYPE,pshade=pshade)
949  ELSE
950  CALL av_pgd(dtco, &
951  pshade,pcover ,xdata_shade(:),'TWN','ARI',ocover)
952  ENDIF
953 ENDIF
954 !
955 ! NATVENT
956 ! -------
957 IF (present(pnatvent)) THEN
958  IF (dtb%LDATA_NATVENT) THEN
959  pnatvent(:) = dtb%XPAR_NATVENT(:)
960  ELSEIF (dtt%LDATA_USETYPE) THEN
961  CALL ini_data_param_teb(bdd, &
962  dtt%NPAR_USETYPE,pnatvent=pnatvent)
963  ELSE
964  CALL av_pgd(dtco, &
965  pnatvent,pcover,xdata_natvent(:),'TWN','ARI',ocover)
966  ENDIF
967 ENDIF
968 !
969 !
970 ! ROUGH_ROOF
971 ! ----------
972 IF (present(prough_roof)) THEN
973  IF (dtt%LDATA_ROUGH_ROOF) THEN
974  prough_roof=dtt%XPAR_ROUGH_ROOF
975  ELSEIF (dtt%LDATA_BLDTYPE) THEN
976  CALL ini_data_param_teb(bdd, &
977  dtt%NPAR_BLDCODE,prough_roof=prough_roof)
978  ELSE
979  CALL av_pgd(dtco, &
980  prough_roof ,pcover ,xdata_rough_roof(:),yarea,yavg,ocover)
981  ENDIF
982 ENDIF
983 !
984 ! ROUGH_WALL
985 ! ----------
986 IF (present(prough_wall)) THEN
987  IF (dtt%LDATA_ROUGH_WALL) THEN
988  prough_wall=dtt%XPAR_ROUGH_WALL
989  ELSEIF (dtt%LDATA_BLDTYPE) THEN
990  CALL ini_data_param_teb(bdd, &
991  dtt%NPAR_BLDCODE,prough_wall=prough_wall)
992  ELSE
993  CALL av_pgd(dtco, &
994  prough_wall ,pcover ,xdata_rough_wall(:),yarea,yavg,ocover)
995  ENDIF
996 ENDIF
997 !
998 ! RESIDENTIAL use fraction
999 ! ------------------------
1000 IF (present(presidential)) THEN
1001  IF (dtt%LDATA_RESIDENTIAL) THEN
1002  presidential=dtt%XPAR_RESIDENTIAL
1003  ELSEIF (dtt%LDATA_USETYPE) THEN
1004  CALL ini_data_param_teb(bdd, &
1005  dtt%NPAR_USETYPE,presidential=presidential)
1006  ELSE
1007  CALL av_pgd(dtco, &
1008  presidential ,pcover ,xdata_residential(:),yarea,yavg,ocover)
1009  ENDIF
1010 ENDIF
1011 !
1012 !
1013 IF (lhook) CALL dr_hook('CONVERT_PATCH_TEB',1,zhook_handle)
1014 !
1015 !-------------------------------------------------------------------------------
1016  CONTAINS
1017 !
1018 SUBROUTINE allocate_thermal_work(KPAR)
1019 INTEGER, INTENT(IN) :: kpar
1020 ALLOCATE(zd(il,kpar))
1021 ALLOCATE(zhc(il,kpar))
1022 ALLOCATE(ztc(il,kpar))
1023 END SUBROUTINE allocate_thermal_work
1025 DEALLOCATE(zd)
1026 DEALLOCATE(zhc)
1027 DEALLOCATE(ztc)
1028 END SUBROUTINE deallocate_thermal_work
1029 !-------------------------------------------------------------------------------
1030 !
1031 END SUBROUTINE convert_patch_teb
subroutine allocate_thermal_work(KPAR)
subroutine deallocate_thermal_work
subroutine ini_data_param_teb(BDD, KTYPE, PZ0_TOWN, PALB_ROOF, PALB_ROAD, PALB_WALL, PEMIS_ROOF, PEMIS_ROAD, PEMIS_WALL, PHC_ROOF, PHC_ROAD, PHC_WALL, PTC_ROOF, PTC_ROAD, PTC_WALL, PD_ROOF, PD_ROAD, PD_WALL, PBLD_HEIGHT, PWALL_O_HOR, PBLD, PCAN_HW_RATIO, PH_TRAFFIC, PLE_TRAFFIC, PH_INDUSTRY, PLE_INDUSTRY, PGARDEN, OGARDEN, 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, PROUGH_WALL, PGREENROOF, PRESIDENTIAL, PEMIS_PANEL, PALB_PANEL, PEFF_PANEL, PFRAC_PANEL)
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 thermal_layers_conf(HTYPE, PHC, PTC, PD, PHC_OUT, PTC_OUT, PD_OUT)