53 USE modi_read_bld_description_n
75 INTEGER,
INTENT(IN) :: KDIM
78 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
79 INTEGER,
INTENT(IN) :: KNI
80 CHARACTER(LEN=1),
INTENT(IN) :: HDIRIN
87 CHARACTER(LEN=12) :: YRECFM
92 REAL,
DIMENSION(KDIM) :: ZWORK
93 REAL(KIND=JPRB) :: ZHOOK_HANDLE
96 IF (
lhook)
CALL dr_hook(
'READ_PGD_TEB_PAR_N',0,zhook_handle)
101 CALL read_surf(hprogram,yrecfm,iversion,iresp)
103 CALL read_surf(hprogram,yrecfm,ibugfix,iresp)
105 IF (iversion<7 .AND. .NOT.top%LECOCLIMAP)
THEN 107 dtt%LDATA_BLDTYPE = .false.
108 dtt%LDATA_BLD_AGE = .false.
109 dtt%LDATA_USETYPE = .false.
110 dtt%LDATA_Z0_TOWN = .true.
111 dtt%LDATA_BLD = .true.
112 dtt%LDATA_GARDEN = .true.
113 dtt%LDATA_GREENROOF = .true.
114 dtt%LDATA_ROAD_DIR = .false.
115 dtt%LDATA_ALB_ROOF = .true.
116 dtt%LDATA_EMIS_ROOF = .true.
117 dtt%LDATA_HC_ROOF = .true.
118 dtt%LDATA_TC_ROOF = .true.
119 dtt%LDATA_D_ROOF = .true.
120 dtt%LDATA_ALB_ROAD = .true.
121 dtt%LDATA_EMIS_ROAD = .true.
122 dtt%LDATA_HC_ROAD = .true.
123 dtt%LDATA_TC_ROAD = .true.
124 dtt%LDATA_D_ROAD = .true.
125 dtt%LDATA_ALB_WALL = .true.
126 dtt%LDATA_EMIS_WALL = .true.
127 dtt%LDATA_HC_WALL = .true.
128 dtt%LDATA_TC_WALL = .true.
129 dtt%LDATA_D_WALL = .true.
130 dtt%LDATA_BLD_HEIGHT = .true.
131 dtt%LDATA_WALL_O_HOR = .true.
132 dtt%LDATA_H_TRAFFIC = .true.
133 dtt%LDATA_LE_TRAFFIC = .true.
134 dtt%LDATA_H_INDUSTRY = .true.
135 dtt%LDATA_LE_INDUSTRY = .true.
136 dtt%LDATA_ROUGH_ROOF = .false.
137 dtt%LDATA_ROUGH_WALL = .false.
138 dtt%LDATA_RESIDENTIAL = .false.
140 ELSEIF (iversion>=7)
THEN 142 IF (iversion>7 .OR. ibugfix>=3)
THEN 144 CALL read_surf(hprogram,yrecfm,dtt%LDATA_BLDTYPE,iresp)
146 CALL read_surf( hprogram,yrecfm,dtt%LDATA_BLD_AGE,iresp)
148 CALL read_surf(hprogram,yrecfm,dtt%LDATA_USETYPE,iresp)
149 IF (dtt%LDATA_BLDTYPE .OR. dtt%LDATA_BLD_AGE .OR. dtt%LDATA_USETYPE)
153 CALL read_surf(hprogram,yrecfm,dtt%LDATA_Z0_TOWN,iresp)
155 CALL read_surf(hprogram,yrecfm,dtt%LDATA_BLD,iresp)
156 IF (iversion>=6)
THEN 158 CALL read_surf(hprogram,yrecfm,dtt%LDATA_GARDEN,iresp)
160 IF (iversion==7 .AND. ibugfix<=2)
THEN 161 dtt%LDATA_ROAD_DIR = .false.
162 dtt%LDATA_GREENROOF= .false.
165 CALL read_surf(hprogram,yrecfm,dtt%LDATA_ROAD_DIR,iresp)
167 CALL read_surf(hprogram,yrecfm,dtt%LDATA_GREENROOF,iresp)
169 IF (iversion==7 .AND. ibugfix<=3)
THEN 170 dtt%LDATA_EMIS_PANEL = .false.
171 dtt%LDATA_ALB_PANEL = .false.
172 dtt%LDATA_EFF_PANEL = .false.
173 dtt%LDATA_FRAC_PANEL = .false.
175 yrecfm=
'L_EMIS_PANEL' 176 CALL read_surf(hprogram,yrecfm,dtt%LDATA_EMIS_PANEL,iresp)
178 CALL read_surf(hprogram,yrecfm,dtt%LDATA_ALB_PANEL,iresp)
180 CALL read_surf(hprogram,yrecfm,dtt%LDATA_EFF_PANEL,iresp)
181 yrecfm=
'L_FRAC_PANEL' 182 CALL read_surf(hprogram,yrecfm,dtt%LDATA_FRAC_PANEL,iresp)
185 CALL read_surf(hprogram,yrecfm,dtt%LDATA_ALB_ROOF,iresp)
187 CALL read_surf(hprogram,yrecfm,dtt%LDATA_EMIS_ROOF,iresp)
189 CALL read_surf(hprogram,yrecfm,dtt%LDATA_HC_ROOF,iresp)
191 CALL read_surf(hprogram,yrecfm,dtt%LDATA_TC_ROOF,iresp)
193 CALL read_surf(hprogram,yrecfm,dtt%LDATA_D_ROOF,iresp)
195 CALL read_surf(hprogram,yrecfm,dtt%LDATA_ALB_ROAD,iresp)
197 CALL read_surf(hprogram,yrecfm,dtt%LDATA_EMIS_ROAD,iresp)
199 CALL read_surf(hprogram,yrecfm,dtt%LDATA_HC_ROAD,iresp)
201 CALL read_surf(hprogram,yrecfm,dtt%LDATA_TC_ROAD,iresp)
203 CALL read_surf(hprogram,yrecfm,dtt%LDATA_D_ROAD,iresp)
205 CALL read_surf(hprogram,yrecfm,dtt%LDATA_ALB_WALL,iresp)
207 CALL read_surf(hprogram,yrecfm,dtt%LDATA_EMIS_WALL,iresp)
209 CALL read_surf(hprogram,yrecfm,dtt%LDATA_HC_WALL,iresp)
211 CALL read_surf(hprogram,yrecfm,dtt%LDATA_TC_WALL,iresp)
213 CALL read_surf(hprogram,yrecfm,dtt%LDATA_D_WALL,iresp)
214 yrecfm=
'L_BLD_HEIGHT' 215 CALL read_surf(hprogram,yrecfm,dtt%LDATA_BLD_HEIGHT,iresp)
216 yrecfm=
'L_WALL_O_HOR' 217 CALL read_surf(hprogram,yrecfm,dtt%LDATA_WALL_O_HOR,iresp)
219 CALL read_surf(hprogram,yrecfm,dtt%LDATA_H_TRAFFIC,iresp)
221 CALL read_surf(hprogram,yrecfm,dtt%LDATA_LE_TRAFFIC,iresp)
223 CALL read_surf(hprogram,yrecfm,dtt%LDATA_H_INDUSTRY,iresp)
225 CALL read_surf(hprogram,yrecfm,dtt%LDATA_LE_INDUSTRY,iresp)
226 IF (iversion>7 .OR. ibugfix>=3)
THEN 227 yrecfm=
'L_ROUGH_ROOF' 228 CALL read_surf(hprogram,yrecfm,dtt%LDATA_ROUGH_ROOF,iresp)
229 yrecfm=
'L_ROUGH_WALL' 230 CALL read_surf(hprogram,yrecfm,dtt%LDATA_ROUGH_WALL,iresp)
233 yrecfm=
'L_F_RESIDENT' 234 CALL read_surf(hprogram,yrecfm,dtt%LDATA_RESIDENTIAL,iresp)
237 IF (top%CBEM==
'BEM')
THEN 239 CALL read_surf(hprogram,yrecfm,dtb%LDATA_HC_FLOOR,iresp)
241 CALL read_surf(hprogram,yrecfm,dtb%LDATA_TC_FLOOR,iresp)
243 CALL read_surf(hprogram,yrecfm,dtb%LDATA_D_FLOOR,iresp)
244 yrecfm=
'L_TCOOL_TARG' 245 CALL read_surf(hprogram,yrecfm,dtb%LDATA_TCOOL_TARGET,iresp)
246 yrecfm=
'L_THEAT_TARG' 247 CALL read_surf(hprogram,yrecfm,dtb%LDATA_THEAT_TARGET,iresp)
248 yrecfm=
'L_F_WAST_CAN' 249 CALL read_surf(hprogram,yrecfm,dtb%LDATA_F_WASTE_CAN,iresp)
251 CALL read_surf(hprogram,yrecfm,dtb%LDATA_EFF_HEAT,iresp)
253 CALL read_surf(hprogram,yrecfm,dtb%LDATA_QIN,iresp)
255 CALL read_surf(hprogram,yrecfm,dtb%LDATA_QIN_FRAD,iresp)
257 CALL read_surf(hprogram,yrecfm,dtb%LDATA_SHGC,iresp)
259 CALL read_surf(hprogram,yrecfm,dtb%LDATA_U_WIN,iresp)
261 CALL read_surf(hprogram,yrecfm,dtb%LDATA_GR,iresp)
263 CALL read_surf(hprogram,yrecfm,dtb%LDATA_SHGC_SH,iresp)
264 yrecfm=
'L_FLOOR_HEIG' 265 CALL read_surf(hprogram,yrecfm,dtb%LDATA_FLOOR_HEIGHT,iresp)
267 CALL read_surf(hprogram,yrecfm,dtb%LDATA_INF,iresp)
269 CALL read_surf(hprogram,yrecfm,dtb%LDATA_F_WATER_COND,iresp)
271 CALL read_surf(hprogram,yrecfm,dtb%LDATA_SHADE,iresp)
273 CALL read_surf(hprogram,yrecfm,dtb%LDATA_NATVENT,iresp)
275 CALL read_surf(hprogram,yrecfm,dtb%LDATA_V_VENT,iresp)
277 CALL read_surf(hprogram,yrecfm,dtb%LDATA_QIN_FLAT,iresp)
279 CALL read_surf(hprogram,yrecfm,dtb%LDATA_HR_TARGET,iresp)
280 yrecfm=
'L_CAP_SYS_HE' 281 CALL read_surf(hprogram,yrecfm,dtb%LDATA_CAP_SYS_HEAT,iresp)
282 yrecfm=
'L_CAP_SYS_RA' 283 CALL read_surf(hprogram,yrecfm,dtb%LDATA_CAP_SYS_RAT,iresp)
285 CALL read_surf(hprogram,yrecfm,dtb%LDATA_T_ADP,iresp)
287 CALL read_surf(hprogram,yrecfm,dtb%LDATA_M_SYS_RAT,iresp)
289 CALL read_surf(hprogram,yrecfm,dtb%LDATA_COP_RAT,iresp)
290 yrecfm=
'L_T_SIZE_MAX' 291 CALL read_surf(hprogram,yrecfm,dtb%LDATA_T_SIZE_MAX,iresp)
292 yrecfm=
'L_T_SIZE_MIN' 293 CALL read_surf(hprogram,yrecfm,dtb%LDATA_T_SIZE_MIN,iresp)
300 IF (dtt%LDATA_HC_ROOF)
THEN 301 yrecfm=
'PAR_RF_LAYER' 302 IF (iversion<7 .OR. (iversion==7 .AND. ibugfix<=2)) yrecfm=
'ROOF_LAYER' 303 CALL read_surf(hprogram,yrecfm,dtt%NPAR_ROOF_LAYER,iresp)
306 IF (dtt%LDATA_HC_ROAD)
THEN 307 yrecfm=
'PAR_RD_LAYER' 308 IF (iversion<7 .OR. (iversion==7 .AND. ibugfix<=2)) yrecfm=
'ROAD_LAYER' 309 CALL read_surf(hprogram,yrecfm,dtt%NPAR_ROAD_LAYER,iresp)
312 IF (dtt%LDATA_HC_WALL)
THEN 313 yrecfm=
'PAR_WL_LAYER' 314 IF (iversion<7 .OR. (iversion==7 .AND. ibugfix<=2)) yrecfm=
'WALL_LAYER' 315 CALL read_surf(hprogram,yrecfm,dtt%NPAR_WALL_LAYER,iresp)
318 IF (dtb%LDATA_HC_FLOOR)
THEN 319 yrecfm=
'PAR_FL_LAYER' 320 IF (iversion<7 .OR. (iversion==7 .AND. ibugfix<=2)) yrecfm=
'FLOOR_LAYER' 321 CALL read_surf(hprogram,yrecfm,dtb%NPAR_FLOOR_LAYER,iresp)
326 IF (dtt%LDATA_BLDTYPE .AND. .NOT. dtt%LDATA_BLDTYPE)
THEN 327 CALL abor1_sfx(
'FATAL ERROR: Building type is prescribed but not the building age' 330 IF (dtt%LDATA_BLDTYPE)
THEN 331 ALLOCATE(dtt%NPAR_BLDTYPE (kdim))
334 dtt%NPAR_BLDTYPE(:) = nint(zwork)
337 IF (dtt%LDATA_BLD_AGE)
THEN 338 ALLOCATE(dtt%NPAR_BLD_AGE (kdim))
341 dtt%NPAR_BLD_AGE(:) = nint(zwork)
344 IF (dtt%LDATA_BLDTYPE .AND. dtt%LDATA_BLDTYPE)
THEN 345 ALLOCATE(dtt%NPAR_BLDCODE(kdim))
346 dtt%NPAR_BLDCODE=
bldcode(bdd, dtt%NPAR_BLDTYPE,dtt%NPAR_BLD_AGE)
349 IF (dtt%LDATA_USETYPE)
THEN 350 ALLOCATE(dtt%NPAR_USETYPE (kdim))
353 dtt%NPAR_USETYPE(:) = nint(zwork)
356 IF (dtt%LDATA_Z0_TOWN)
THEN 357 ALLOCATE(dtt%XPAR_Z0_TOWN (kdim))
359 CALL read_field(yrecfm,dtt%XPAR_Z0_TOWN,hdirin)
362 IF (dtt%LDATA_BLD)
THEN 363 ALLOCATE(dtt%XPAR_BLD (kdim))
368 IF (iversion>=6)
THEN 369 IF (dtt%LDATA_GARDEN)
THEN 370 ALLOCATE(dtt%XPAR_GARDEN (kdim))
372 CALL read_field(yrecfm,dtt%XPAR_GARDEN,hdirin)
377 IF (dtt%LDATA_GREENROOF)
THEN 378 ALLOCATE(dtt%XPAR_GREENROOF (kdim))
380 CALL read_field(yrecfm,dtt%XPAR_GREENROOF,hdirin)
383 IF (dtt%LDATA_ROAD_DIR)
THEN 384 ALLOCATE(dtt%XPAR_ROAD_DIR (kdim))
386 CALL read_field(yrecfm,dtt%XPAR_ROAD_DIR,hdirin)
389 IF (dtt%LDATA_ALB_ROOF)
THEN 390 ALLOCATE(dtt%XPAR_ALB_ROOF (kdim))
392 CALL read_field(yrecfm,dtt%XPAR_ALB_ROOF,hdirin)
395 IF (dtt%LDATA_EMIS_ROOF)
THEN 396 ALLOCATE(dtt%XPAR_EMIS_ROOF (kdim))
398 CALL read_field(yrecfm,dtt%XPAR_EMIS_ROOF,hdirin)
401 IF (dtt%LDATA_HC_ROOF)
THEN 402 ALLOCATE(dtt%XPAR_HC_ROOF (kdim,dtt%NPAR_ROOF_LAYER))
403 DO jlayer=1,dtt%NPAR_ROOF_LAYER
404 WRITE(yrecfm,fmt=
'(A9,I1.1)')
'D_HC_ROOF',jlayer
405 CALL read_field(yrecfm,dtt%XPAR_HC_ROOF(:,jlayer),hdirin)
409 IF (dtt%LDATA_TC_ROOF)
THEN 410 ALLOCATE(dtt%XPAR_TC_ROOF (kdim,dtt%NPAR_ROOF_LAYER))
411 DO jlayer=1,dtt%NPAR_ROOF_LAYER
412 WRITE(yrecfm,fmt=
'(A9,I1.1)')
'D_TC_ROOF',jlayer
413 CALL read_field(yrecfm,dtt%XPAR_TC_ROOF(:,jlayer),hdirin)
417 IF (dtt%LDATA_D_ROOF)
THEN 418 ALLOCATE(dtt%XPAR_D_ROOF (kdim,dtt%NPAR_ROOF_LAYER))
419 DO jlayer=1,dtt%NPAR_ROOF_LAYER
420 WRITE(yrecfm,fmt=
'(A8,I1.1)')
'D_D_ROOF',jlayer
421 CALL read_field(yrecfm,dtt%XPAR_D_ROOF(:,jlayer),hdirin)
425 IF (dtt%LDATA_ALB_ROAD)
THEN 426 ALLOCATE(dtt%XPAR_ALB_ROAD (kdim))
428 CALL read_field(yrecfm,dtt%XPAR_ALB_ROAD,hdirin)
431 IF (dtt%LDATA_EMIS_ROAD)
THEN 432 ALLOCATE(dtt%XPAR_EMIS_ROAD (kdim))
434 CALL read_field(yrecfm,dtt%XPAR_EMIS_ROAD,hdirin)
437 IF (dtt%LDATA_HC_ROAD)
THEN 438 ALLOCATE(dtt%XPAR_HC_ROAD (kdim,dtt%NPAR_ROAD_LAYER))
439 DO jlayer=1,dtt%NPAR_ROAD_LAYER
440 WRITE(yrecfm,fmt=
'(A9,I1.1)')
'D_HC_ROAD',jlayer
441 CALL read_field(yrecfm,dtt%XPAR_HC_ROAD(:,jlayer),hdirin)
445 IF (dtt%LDATA_TC_ROAD)
THEN 446 ALLOCATE(dtt%XPAR_TC_ROAD (kdim,dtt%NPAR_ROAD_LAYER))
447 DO jlayer=1,dtt%NPAR_ROAD_LAYER
448 WRITE(yrecfm,fmt=
'(A9,I1.1)')
'D_TC_ROAD',jlayer
449 CALL read_field(yrecfm,dtt%XPAR_TC_ROAD(:,jlayer),hdirin)
453 IF (dtt%LDATA_D_ROAD)
THEN 454 ALLOCATE(dtt%XPAR_D_ROAD (kdim,dtt%NPAR_ROAD_LAYER))
455 DO jlayer=1,dtt%NPAR_ROAD_LAYER
456 WRITE(yrecfm,fmt=
'(A8,I1.1)')
'D_D_ROAD',jlayer
457 CALL read_field(yrecfm,dtt%XPAR_D_ROAD(:,jlayer),hdirin)
461 IF (dtt%LDATA_ALB_WALL)
THEN 462 ALLOCATE(dtt%XPAR_ALB_WALL (kdim))
464 CALL read_field(yrecfm,dtt%XPAR_ALB_WALL,hdirin)
467 IF (dtt%LDATA_EMIS_WALL)
THEN 468 ALLOCATE(dtt%XPAR_EMIS_WALL (kdim))
470 CALL read_field(yrecfm,dtt%XPAR_EMIS_WALL,hdirin)
473 IF (dtt%LDATA_HC_WALL)
THEN 474 ALLOCATE(dtt%XPAR_HC_WALL (kdim,dtt%NPAR_WALL_LAYER))
475 DO jlayer=1,dtt%NPAR_WALL_LAYER
476 WRITE(yrecfm,fmt=
'(A9,I1.1)')
'D_HC_WALL',jlayer
477 CALL read_field(yrecfm,dtt%XPAR_HC_WALL(:,jlayer),hdirin)
481 IF (dtt%LDATA_TC_WALL)
THEN 482 ALLOCATE(dtt%XPAR_TC_WALL (kdim,dtt%NPAR_WALL_LAYER))
483 DO jlayer=1,dtt%NPAR_WALL_LAYER
484 WRITE(yrecfm,fmt=
'(A9,I1.1)')
'D_TC_WALL',jlayer
485 CALL read_field(yrecfm,dtt%XPAR_TC_WALL(:,jlayer),hdirin)
489 IF (dtt%LDATA_D_WALL)
THEN 490 ALLOCATE(dtt%XPAR_D_WALL (kdim,dtt%NPAR_WALL_LAYER))
491 DO jlayer=1,dtt%NPAR_WALL_LAYER
492 WRITE(yrecfm,fmt=
'(A8,I1.1)')
'D_D_WALL',jlayer
493 CALL read_field(yrecfm,dtt%XPAR_D_WALL(:,jlayer),hdirin)
497 IF (dtt%LDATA_BLD_HEIGHT)
THEN 498 ALLOCATE(dtt%XPAR_BLD_HEIGHT (kdim))
500 CALL read_field(yrecfm,dtt%XPAR_BLD_HEIGHT,hdirin)
503 IF (dtt%LDATA_WALL_O_HOR)
THEN 504 ALLOCATE(dtt%XPAR_WALL_O_HOR (kdim))
506 CALL read_field(yrecfm,dtt%XPAR_WALL_O_HOR,hdirin)
509 IF (dtt%LDATA_H_TRAFFIC)
THEN 510 ALLOCATE(dtt%XPAR_H_TRAFFIC (kdim))
512 CALL read_field(yrecfm,dtt%XPAR_H_TRAFFIC,hdirin)
515 IF (dtt%LDATA_LE_TRAFFIC)
THEN 516 ALLOCATE(dtt%XPAR_LE_TRAFFIC (kdim))
518 CALL read_field(yrecfm,dtt%XPAR_LE_TRAFFIC,hdirin)
521 IF (dtt%LDATA_H_INDUSTRY)
THEN 522 ALLOCATE(dtt%XPAR_H_INDUSTRY (kdim))
524 CALL read_field(yrecfm,dtt%XPAR_H_INDUSTRY,hdirin)
527 IF (dtt%LDATA_LE_INDUSTRY)
THEN 528 ALLOCATE(dtt%XPAR_LE_INDUSTRY (kdim))
530 CALL read_field(yrecfm,dtt%XPAR_LE_INDUSTRY,hdirin)
533 IF (dtt%LDATA_ROUGH_ROOF)
THEN 534 ALLOCATE(dtt%XPAR_ROUGH_ROOF (kdim))
535 yrecfm=
'D_ROUGH_ROOF' 536 CALL read_field(yrecfm,dtt%XPAR_ROUGH_ROOF,hdirin)
539 IF (dtt%LDATA_ROUGH_WALL)
THEN 540 ALLOCATE(dtt%XPAR_ROUGH_WALL (kdim))
541 yrecfm=
'D_ROUGH_WALL' 542 CALL read_field(yrecfm,dtt%XPAR_ROUGH_WALL,hdirin)
545 IF (dtt%LDATA_RESIDENTIAL)
THEN 546 ALLOCATE(dtt%XPAR_RESIDENTIAL (kdim))
547 yrecfm=
'D_F_RESIDENT' 548 CALL read_field(yrecfm,dtt%XPAR_RESIDENTIAL,hdirin)
553 IF (dtt%LDATA_EMIS_PANEL)
THEN 554 ALLOCATE(dtt%XPAR_EMIS_PANEL (kdim))
555 yrecfm=
'D_EMIS_PANEL' 556 CALL read_field(yrecfm,dtt%XPAR_EMIS_PANEL,hdirin)
559 IF (dtt%LDATA_ALB_PANEL)
THEN 560 ALLOCATE(dtt%XPAR_ALB_PANEL (kdim))
562 CALL read_field(yrecfm,dtt%XPAR_ALB_PANEL,hdirin)
565 IF (dtt%LDATA_EFF_PANEL)
THEN 566 ALLOCATE(dtt%XPAR_EFF_PANEL (kdim))
568 CALL read_field(yrecfm,dtt%XPAR_EFF_PANEL,hdirin)
571 IF (dtt%LDATA_FRAC_PANEL)
THEN 572 ALLOCATE(dtt%XPAR_FRAC_PANEL (kdim))
573 yrecfm=
'D_FRAC_PANEL' 574 CALL read_field(yrecfm,dtt%XPAR_FRAC_PANEL,hdirin)
579 IF (top%CBEM==
'BEM')
THEN 582 IF (dtb%LDATA_HC_FLOOR)
THEN 583 ALLOCATE(dtb%XPAR_HC_FLOOR (kdim,dtb%NPAR_FLOOR_LAYER))
584 DO jlayer=1,dtb%NPAR_FLOOR_LAYER
585 WRITE(yrecfm,fmt=
'(A10,I1.1)')
'D_HC_FLOOR',jlayer
586 CALL read_field(yrecfm,dtb%XPAR_HC_FLOOR(:,jlayer),hdirin)
590 IF (dtb%LDATA_TC_FLOOR)
THEN 591 ALLOCATE(dtb%XPAR_TC_FLOOR (kdim,dtb%NPAR_FLOOR_LAYER))
592 DO jlayer=1,dtb%NPAR_FLOOR_LAYER
593 WRITE(yrecfm,fmt=
'(A10,I1.1)')
'D_TC_FLOOR',jlayer
594 CALL read_field(yrecfm,dtb%XPAR_TC_FLOOR(:,jlayer),hdirin)
598 IF (dtb%LDATA_D_FLOOR)
THEN 599 ALLOCATE(dtb%XPAR_D_FLOOR (kdim,dtb%NPAR_FLOOR_LAYER))
600 DO jlayer=1,dtb%NPAR_FLOOR_LAYER
601 WRITE(yrecfm,fmt=
'(A9,I1.1)')
'D_D_FLOOR',jlayer
602 CALL read_field(yrecfm,dtb%XPAR_D_FLOOR(:,jlayer),hdirin)
606 IF (dtb%LDATA_TCOOL_TARGET)
THEN 607 ALLOCATE(dtb%XPAR_TCOOL_TARGET (kdim))
608 yrecfm=
'D_TCOOL_TARG' 609 CALL read_field(yrecfm,dtb%XPAR_TCOOL_TARGET,hdirin)
612 IF (dtb%LDATA_THEAT_TARGET)
THEN 613 ALLOCATE(dtb%XPAR_THEAT_TARGET (kdim))
614 yrecfm=
'D_THEAT_TARG' 615 CALL read_field(yrecfm,dtb%XPAR_THEAT_TARGET,hdirin)
618 IF (dtb%LDATA_F_WASTE_CAN)
THEN 619 ALLOCATE(dtb%XPAR_F_WASTE_CAN (kdim))
620 yrecfm=
'D_F_WAST_CAN' 621 CALL read_field(yrecfm,dtb%XPAR_F_WASTE_CAN,hdirin)
624 IF (dtb%LDATA_EFF_HEAT)
THEN 625 ALLOCATE(dtb%XPAR_EFF_HEAT (kdim))
627 CALL read_field(yrecfm,dtb%XPAR_EFF_HEAT,hdirin)
630 IF (dtb%LDATA_QIN)
THEN 631 ALLOCATE(dtb%XPAR_QIN (kdim))
636 IF (dtb%LDATA_QIN_FRAD)
THEN 637 ALLOCATE(dtb%XPAR_QIN_FRAD (kdim))
639 CALL read_field(yrecfm,dtb%XPAR_QIN_FRAD,hdirin)
642 IF (dtb%LDATA_SHGC)
THEN 643 ALLOCATE(dtb%XPAR_SHGC (kdim))
648 IF (dtb%LDATA_U_WIN)
THEN 649 ALLOCATE(dtb%XPAR_U_WIN (kdim))
654 IF (dtb%LDATA_GR)
THEN 655 ALLOCATE(dtb%XPAR_GR (kdim))
660 IF (dtb%LDATA_SHGC_SH)
THEN 661 ALLOCATE(dtb%XPAR_SHGC_SH (kdim))
663 CALL read_field(yrecfm,dtb%XPAR_SHGC_SH,hdirin)
666 IF (dtb%LDATA_FLOOR_HEIGHT)
THEN 667 ALLOCATE(dtb%XPAR_FLOOR_HEIGHT (kdim))
668 yrecfm=
'D_FLOOR_HEIG' 669 CALL read_field(yrecfm,dtb%XPAR_FLOOR_HEIGHT,hdirin)
672 IF (dtb%LDATA_INF)
THEN 673 ALLOCATE(dtb%XPAR_INF (kdim))
678 IF (dtb%LDATA_F_WATER_COND)
THEN 679 ALLOCATE(dtb%XPAR_F_WATER_COND (kdim))
681 CALL read_field(yrecfm,dtb%XPAR_F_WATER_COND,hdirin)
684 IF (dtb%LDATA_SHADE)
THEN 685 ALLOCATE(dtb%XPAR_SHADE (kdim))
688 dtb%XPAR_SHADE=float(nint(dtb%XPAR_SHADE))
691 IF (dtb%LDATA_NATVENT)
THEN 692 ALLOCATE(dtb%XPAR_NATVENT (kdim))
694 CALL read_field(yrecfm,dtb%XPAR_NATVENT,hdirin)
695 dtb%XPAR_NATVENT=float(nint(dtb%XPAR_NATVENT))
698 IF (dtb%LDATA_QIN_FLAT)
THEN 699 ALLOCATE(dtb%XPAR_QIN_FLAT (kdim))
701 CALL read_field(yrecfm,dtb%XPAR_QIN_FLAT,hdirin)
704 IF (dtb%LDATA_HR_TARGET)
THEN 705 ALLOCATE(dtb%XPAR_HR_TARGET (kdim))
707 CALL read_field(yrecfm,dtb%XPAR_HR_TARGET,hdirin)
710 IF (dtb%LDATA_V_VENT)
THEN 711 ALLOCATE(dtb%XPAR_V_VENT (kdim))
713 CALL read_field(yrecfm,dtb%XPAR_V_VENT,hdirin)
716 IF (dtb%LDATA_CAP_SYS_HEAT)
THEN 717 ALLOCATE(dtb%XPAR_CAP_SYS_HEAT (kdim))
718 yrecfm=
'D_CAP_SYS_HE' 719 CALL read_field(yrecfm,dtb%XPAR_CAP_SYS_HEAT,hdirin)
722 IF (dtb%LDATA_CAP_SYS_RAT)
THEN 723 ALLOCATE(dtb%XPAR_CAP_SYS_RAT (kdim))
724 yrecfm=
'D_CAP_SYS_RA' 725 CALL read_field(yrecfm,dtb%XPAR_CAP_SYS_RAT,hdirin)
728 IF (dtb%LDATA_T_ADP)
THEN 729 ALLOCATE(dtb%XPAR_T_ADP (kdim))
734 IF (dtb%LDATA_M_SYS_RAT)
THEN 735 ALLOCATE(dtb%XPAR_M_SYS_RAT (kdim))
737 CALL read_field(yrecfm,dtb%XPAR_M_SYS_RAT,hdirin)
740 IF (dtb%LDATA_COP_RAT)
THEN 741 ALLOCATE(dtb%XPAR_COP_RAT (kdim))
743 CALL read_field(yrecfm,dtb%XPAR_COP_RAT,hdirin)
746 IF (dtb%LDATA_T_SIZE_MAX)
THEN 747 ALLOCATE(dtb%XPAR_T_SIZE_MAX (kdim))
748 yrecfm=
'D_T_SIZE_MAX' 749 CALL read_field(yrecfm,dtb%XPAR_T_SIZE_MAX,hdirin)
752 IF (dtb%LDATA_T_SIZE_MIN)
THEN 753 ALLOCATE(dtb%XPAR_T_SIZE_MIN (kdim))
754 yrecfm=
'D_T_SIZE_MIN' 755 CALL read_field(yrecfm,dtb%XPAR_T_SIZE_MIN,hdirin)
760 IF (
lhook)
CALL dr_hook(
'READ_PGD_TEB_PAR_N',1,zhook_handle)
768 USE modi_hor_interpol
772 CHARACTER(LEN=*),
INTENT(IN) :: HRECFM
773 REAL,
DIMENSION(KDIM),
INTENT(OUT) :: PFIELD
774 CHARACTER(LEN=1),
INTENT(IN) :: YDIR
776 REAL,
DIMENSION(KNI) :: ZF
777 REAL,
DIMENSION(:,:),
POINTER :: ZIN
778 REAL,
DIMENSION(KDIM,1) :: ZOUT
779 REAL(KIND=JPRB) :: ZHOOK_HANDLE
781 IF (
lhook)
CALL dr_hook(
'READ_PGD_TEB_PAR_N:READ_FIELD',0,zhook_handle)
785 CALL read_surf(hprogram,hrecfm,zf,iresp,hdir=
'A')
790 pfield(:) = zout(:,1)
793 CALL read_surf(hprogram,hrecfm,pfield,iresp)
796 IF (
lhook)
CALL dr_hook(
'READ_PGD_TEB_PAR_N:READ_FIELD',1,zhook_handle)
subroutine read_field(HRECFM, PFIELD, YDIR)
integer function, dimension(size(ktype)) bldcode(BDD, KTYPE, KAGE)
subroutine abor1_sfx(YTEXT)
subroutine hor_interpol(DTCO, U, GCP, KLUOUT, PFIELDIN, PFIELDOUT)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine read_bld_description_n(BDD, HPROGRAM)
subroutine read_pgd_teb_par_n(DTCO, U, GCP, BDD, DTB, DTT, KDIM,