7 bdd, dtb, dtt, tg, top, &
61 USE modi_read_bld_description_n
66 USE yomhook
,ONLY : lhook, dr_hook
67 USE parkind1
,ONLY : jprb
85 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
86 INTEGER,
INTENT(IN) :: kni
87 CHARACTER(LEN=1),
INTENT(IN) :: hdirin
94 CHARACTER(LEN=12) :: yrecfm
99 REAL,
DIMENSION(TG%NDIM) :: zwork
100 REAL(KIND=JPRB) :: zhook_handle
103 IF (lhook) CALL dr_hook(
'READ_PGD_TEB_PAR_N',0,zhook_handle)
109 hprogram,yrecfm,iversion,iresp)
112 hprogram,yrecfm,ibugfix,iresp)
114 IF (iversion<7 .AND. .NOT.top%LECOCLIMAP)
THEN
116 dtt%LDATA_BLDTYPE = .false.
117 dtt%LDATA_BLD_AGE = .false.
118 dtt%LDATA_USETYPE = .false.
119 dtt%LDATA_Z0_TOWN = .true.
120 dtt%LDATA_BLD = .true.
121 dtt%LDATA_GARDEN = .true.
122 dtt%LDATA_GREENROOF = .true.
123 dtt%LDATA_ROAD_DIR = .false.
124 dtt%LDATA_ALB_ROOF = .true.
125 dtt%LDATA_EMIS_ROOF = .true.
126 dtt%LDATA_HC_ROOF = .true.
127 dtt%LDATA_TC_ROOF = .true.
128 dtt%LDATA_D_ROOF = .true.
129 dtt%LDATA_ALB_ROAD = .true.
130 dtt%LDATA_EMIS_ROAD = .true.
131 dtt%LDATA_HC_ROAD = .true.
132 dtt%LDATA_TC_ROAD = .true.
133 dtt%LDATA_D_ROAD = .true.
134 dtt%LDATA_ALB_WALL = .true.
135 dtt%LDATA_EMIS_WALL = .true.
136 dtt%LDATA_HC_WALL = .true.
137 dtt%LDATA_TC_WALL = .true.
138 dtt%LDATA_D_WALL = .true.
139 dtt%LDATA_BLD_HEIGHT = .true.
140 dtt%LDATA_WALL_O_HOR = .true.
141 dtt%LDATA_H_TRAFFIC = .true.
142 dtt%LDATA_LE_TRAFFIC = .true.
143 dtt%LDATA_H_INDUSTRY = .true.
144 dtt%LDATA_LE_INDUSTRY = .true.
145 dtt%LDATA_ROUGH_ROOF = .false.
146 dtt%LDATA_ROUGH_WALL = .false.
147 dtt%LDATA_RESIDENTIAL = .false.
149 ELSEIF (iversion>=7)
THEN
151 IF (iversion>7 .OR. ibugfix>=3)
THEN
154 hprogram,yrecfm,dtt%LDATA_BLDTYPE,iresp)
157 hprogram,yrecfm,dtt%LDATA_BLD_AGE,iresp)
160 hprogram,yrecfm,dtt%LDATA_USETYPE,iresp)
167 hprogram,yrecfm,dtt%LDATA_Z0_TOWN,iresp)
170 hprogram,yrecfm,dtt%LDATA_BLD,iresp)
171 IF (iversion>=6)
THEN
174 hprogram,yrecfm,dtt%LDATA_GARDEN,iresp)
176 IF (iversion==7 .AND. ibugfix<=2)
THEN
177 dtt%LDATA_ROAD_DIR = .false.
178 dtt%LDATA_GREENROOF= .false.
182 hprogram,yrecfm,dtt%LDATA_ROAD_DIR,iresp)
185 hprogram,yrecfm,dtt%LDATA_GREENROOF,iresp)
187 IF (iversion==7 .AND. ibugfix<=3)
THEN
188 dtt%LDATA_EMIS_PANEL = .false.
189 dtt%LDATA_ALB_PANEL = .false.
190 dtt%LDATA_EFF_PANEL = .false.
191 dtt%LDATA_FRAC_PANEL = .false.
193 yrecfm=
'L_EMIS_PANEL'
195 hprogram,yrecfm,dtt%LDATA_EMIS_PANEL,iresp)
198 hprogram,yrecfm,dtt%LDATA_ALB_PANEL,iresp)
201 hprogram,yrecfm,dtt%LDATA_EFF_PANEL,iresp)
202 yrecfm=
'L_FRAC_PANEL'
204 hprogram,yrecfm,dtt%LDATA_FRAC_PANEL,iresp)
208 hprogram,yrecfm,dtt%LDATA_ALB_ROOF,iresp)
211 hprogram,yrecfm,dtt%LDATA_EMIS_ROOF,iresp)
214 hprogram,yrecfm,dtt%LDATA_HC_ROOF,iresp)
217 hprogram,yrecfm,dtt%LDATA_TC_ROOF,iresp)
220 hprogram,yrecfm,dtt%LDATA_D_ROOF,iresp)
223 hprogram,yrecfm,dtt%LDATA_ALB_ROAD,iresp)
226 hprogram,yrecfm,dtt%LDATA_EMIS_ROAD,iresp)
229 hprogram,yrecfm,dtt%LDATA_HC_ROAD,iresp)
232 hprogram,yrecfm,dtt%LDATA_TC_ROAD,iresp)
235 hprogram,yrecfm,dtt%LDATA_D_ROAD,iresp)
238 hprogram,yrecfm,dtt%LDATA_ALB_WALL,iresp)
241 hprogram,yrecfm,dtt%LDATA_EMIS_WALL,iresp)
244 hprogram,yrecfm,dtt%LDATA_HC_WALL,iresp)
247 hprogram,yrecfm,dtt%LDATA_TC_WALL,iresp)
250 hprogram,yrecfm,dtt%LDATA_D_WALL,iresp)
251 yrecfm=
'L_BLD_HEIGHT'
253 hprogram,yrecfm,dtt%LDATA_BLD_HEIGHT,iresp)
254 yrecfm=
'L_WALL_O_HOR'
256 hprogram,yrecfm,dtt%LDATA_WALL_O_HOR,iresp)
259 hprogram,yrecfm,dtt%LDATA_H_TRAFFIC,iresp)
262 hprogram,yrecfm,dtt%LDATA_LE_TRAFFIC,iresp)
265 hprogram,yrecfm,dtt%LDATA_H_INDUSTRY,iresp)
268 hprogram,yrecfm,dtt%LDATA_LE_INDUSTRY,iresp)
269 IF (iversion>7 .OR. ibugfix>=3)
THEN
270 yrecfm=
'L_ROUGH_ROOF'
272 hprogram,yrecfm,dtt%LDATA_ROUGH_ROOF,iresp)
273 yrecfm=
'L_ROUGH_WALL'
275 hprogram,yrecfm,dtt%LDATA_ROUGH_WALL,iresp)
278 yrecfm=
'L_F_RESIDENT'
280 hprogram,yrecfm,dtt%LDATA_RESIDENTIAL,iresp)
283 IF (top%CBEM==
'BEM')
THEN
286 hprogram,yrecfm,dtb%LDATA_HC_FLOOR,iresp)
289 hprogram,yrecfm,dtb%LDATA_TC_FLOOR,iresp)
292 hprogram,yrecfm,dtb%LDATA_D_FLOOR,iresp)
293 yrecfm=
'L_TCOOL_TARG'
295 hprogram,yrecfm,dtb%LDATA_TCOOL_TARGET,iresp)
296 yrecfm=
'L_THEAT_TARG'
298 hprogram,yrecfm,dtb%LDATA_THEAT_TARGET,iresp)
299 yrecfm=
'L_F_WAST_CAN'
301 hprogram,yrecfm,dtb%LDATA_F_WASTE_CAN,iresp)
304 hprogram,yrecfm,dtb%LDATA_EFF_HEAT,iresp)
307 hprogram,yrecfm,dtb%LDATA_QIN,iresp)
310 hprogram,yrecfm,dtb%LDATA_QIN_FRAD,iresp)
313 hprogram,yrecfm,dtb%LDATA_SHGC,iresp)
316 hprogram,yrecfm,dtb%LDATA_U_WIN,iresp)
319 hprogram,yrecfm,dtb%LDATA_GR,iresp)
322 hprogram,yrecfm,dtb%LDATA_SHGC_SH,iresp)
323 yrecfm=
'L_FLOOR_HEIG'
325 hprogram,yrecfm,dtb%LDATA_FLOOR_HEIGHT,iresp)
328 hprogram,yrecfm,dtb%LDATA_INF,iresp)
331 hprogram,yrecfm,dtb%LDATA_F_WATER_COND,iresp)
334 hprogram,yrecfm,dtb%LDATA_SHADE,iresp)
337 hprogram,yrecfm,dtb%LDATA_NATVENT,iresp)
340 hprogram,yrecfm,dtb%LDATA_V_VENT,iresp)
343 hprogram,yrecfm,dtb%LDATA_QIN_FLAT,iresp)
346 hprogram,yrecfm,dtb%LDATA_HR_TARGET,iresp)
347 yrecfm=
'L_CAP_SYS_HE'
349 hprogram,yrecfm,dtb%LDATA_CAP_SYS_HEAT,iresp)
350 yrecfm=
'L_CAP_SYS_RA'
352 hprogram,yrecfm,dtb%LDATA_CAP_SYS_RAT,iresp)
355 hprogram,yrecfm,dtb%LDATA_T_ADP,iresp)
358 hprogram,yrecfm,dtb%LDATA_M_SYS_RAT,iresp)
361 hprogram,yrecfm,dtb%LDATA_COP_RAT,iresp)
362 yrecfm=
'L_T_SIZE_MAX'
364 hprogram,yrecfm,dtb%LDATA_T_SIZE_MAX,iresp)
365 yrecfm=
'L_T_SIZE_MIN'
367 hprogram,yrecfm,dtb%LDATA_T_SIZE_MIN,iresp)
374 IF (dtt%LDATA_HC_ROOF)
THEN
375 yrecfm=
'PAR_RF_LAYER'
376 IF (iversion<7 .OR. (iversion==7 .AND. ibugfix<=2)) yrecfm=
'ROOF_LAYER'
378 hprogram,yrecfm,dtt%NPAR_ROOF_LAYER,iresp)
381 IF (dtt%LDATA_HC_ROAD)
THEN
382 yrecfm=
'PAR_RD_LAYER'
383 IF (iversion<7 .OR. (iversion==7 .AND. ibugfix<=2)) yrecfm=
'ROAD_LAYER'
385 hprogram,yrecfm,dtt%NPAR_ROAD_LAYER,iresp)
388 IF (dtt%LDATA_HC_WALL)
THEN
389 yrecfm=
'PAR_WL_LAYER'
390 IF (iversion<7 .OR. (iversion==7 .AND. ibugfix<=2)) yrecfm=
'WALL_LAYER'
392 hprogram,yrecfm,dtt%NPAR_WALL_LAYER,iresp)
395 IF (dtb%LDATA_HC_FLOOR)
THEN
396 yrecfm=
'PAR_FL_LAYER'
397 IF (iversion<7 .OR. (iversion==7 .AND. ibugfix<=2)) yrecfm=
'FLOOR_LAYER'
399 hprogram,yrecfm,dtb%NPAR_FLOOR_LAYER,iresp)
404 IF (dtt%LDATA_BLDTYPE .AND. .NOT. dtt%LDATA_BLDTYPE)
THEN
405 CALL
abor1_sfx(
'FATAL ERROR: Building type is prescribed but not the building age')
408 IF (dtt%LDATA_BLDTYPE)
THEN
409 ALLOCATE(dtt%NPAR_BLDTYPE (tg%NDIM))
412 dtt%NPAR_BLDTYPE(:) = nint(zwork)
415 IF (dtt%LDATA_BLD_AGE)
THEN
416 ALLOCATE(dtt%NPAR_BLD_AGE (tg%NDIM))
419 dtt%NPAR_BLD_AGE(:) = nint(zwork)
422 IF (dtt%LDATA_BLDTYPE .AND. dtt%LDATA_BLDTYPE)
THEN
423 ALLOCATE(dtt%NPAR_BLDCODE(tg%NDIM))
424 dtt%NPAR_BLDCODE=
bldcode(bdd, dtt%NPAR_BLDTYPE,dtt%NPAR_BLD_AGE)
427 IF (dtt%LDATA_USETYPE)
THEN
428 ALLOCATE(dtt%NPAR_USETYPE (tg%NDIM))
431 dtt%NPAR_USETYPE(:) = nint(zwork)
434 IF (dtt%LDATA_Z0_TOWN)
THEN
435 ALLOCATE(dtt%XPAR_Z0_TOWN (tg%NDIM))
437 CALL
read_field(yrecfm,dtt%XPAR_Z0_TOWN,hdirin)
440 IF (dtt%LDATA_BLD)
THEN
441 ALLOCATE(dtt%XPAR_BLD (tg%NDIM))
446 IF (iversion>=6)
THEN
447 IF (dtt%LDATA_GARDEN)
THEN
448 ALLOCATE(dtt%XPAR_GARDEN (tg%NDIM))
450 CALL
read_field(yrecfm,dtt%XPAR_GARDEN,hdirin)
455 IF (dtt%LDATA_GREENROOF)
THEN
456 ALLOCATE(dtt%XPAR_GREENROOF (tg%NDIM))
458 CALL
read_field(yrecfm,dtt%XPAR_GREENROOF,hdirin)
461 IF (dtt%LDATA_ROAD_DIR)
THEN
462 ALLOCATE(dtt%XPAR_ROAD_DIR (tg%NDIM))
464 CALL
read_field(yrecfm,dtt%XPAR_ROAD_DIR,hdirin)
467 IF (dtt%LDATA_ALB_ROOF)
THEN
468 ALLOCATE(dtt%XPAR_ALB_ROOF (tg%NDIM))
470 CALL
read_field(yrecfm,dtt%XPAR_ALB_ROOF,hdirin)
473 IF (dtt%LDATA_EMIS_ROOF)
THEN
474 ALLOCATE(dtt%XPAR_EMIS_ROOF (tg%NDIM))
476 CALL
read_field(yrecfm,dtt%XPAR_EMIS_ROOF,hdirin)
479 IF (dtt%LDATA_HC_ROOF)
THEN
480 ALLOCATE(dtt%XPAR_HC_ROOF (tg%NDIM,dtt%NPAR_ROOF_LAYER))
481 DO jlayer=1,dtt%NPAR_ROOF_LAYER
482 WRITE(yrecfm,fmt=
'(A9,I1.1)')
'D_HC_ROOF',jlayer
483 CALL
read_field(yrecfm,dtt%XPAR_HC_ROOF(:,jlayer),hdirin)
487 IF (dtt%LDATA_TC_ROOF)
THEN
488 ALLOCATE(dtt%XPAR_TC_ROOF (tg%NDIM,dtt%NPAR_ROOF_LAYER))
489 DO jlayer=1,dtt%NPAR_ROOF_LAYER
490 WRITE(yrecfm,fmt=
'(A9,I1.1)')
'D_TC_ROOF',jlayer
491 CALL
read_field(yrecfm,dtt%XPAR_TC_ROOF(:,jlayer),hdirin)
495 IF (dtt%LDATA_D_ROOF)
THEN
496 ALLOCATE(dtt%XPAR_D_ROOF (tg%NDIM,dtt%NPAR_ROOF_LAYER))
497 DO jlayer=1,dtt%NPAR_ROOF_LAYER
498 WRITE(yrecfm,fmt=
'(A8,I1.1)')
'D_D_ROOF',jlayer
499 CALL
read_field(yrecfm,dtt%XPAR_D_ROOF(:,jlayer),hdirin)
503 IF (dtt%LDATA_ALB_ROAD)
THEN
504 ALLOCATE(dtt%XPAR_ALB_ROAD (tg%NDIM))
506 CALL
read_field(yrecfm,dtt%XPAR_ALB_ROAD,hdirin)
509 IF (dtt%LDATA_EMIS_ROAD)
THEN
510 ALLOCATE(dtt%XPAR_EMIS_ROAD (tg%NDIM))
512 CALL
read_field(yrecfm,dtt%XPAR_EMIS_ROAD,hdirin)
515 IF (dtt%LDATA_HC_ROAD)
THEN
516 ALLOCATE(dtt%XPAR_HC_ROAD (tg%NDIM,dtt%NPAR_ROAD_LAYER))
517 DO jlayer=1,dtt%NPAR_ROAD_LAYER
518 WRITE(yrecfm,fmt=
'(A9,I1.1)')
'D_HC_ROAD',jlayer
519 CALL
read_field(yrecfm,dtt%XPAR_HC_ROAD(:,jlayer),hdirin)
523 IF (dtt%LDATA_TC_ROAD)
THEN
524 ALLOCATE(dtt%XPAR_TC_ROAD (tg%NDIM,dtt%NPAR_ROAD_LAYER))
525 DO jlayer=1,dtt%NPAR_ROAD_LAYER
526 WRITE(yrecfm,fmt=
'(A9,I1.1)')
'D_TC_ROAD',jlayer
527 CALL
read_field(yrecfm,dtt%XPAR_TC_ROAD(:,jlayer),hdirin)
531 IF (dtt%LDATA_D_ROAD)
THEN
532 ALLOCATE(dtt%XPAR_D_ROAD (tg%NDIM,dtt%NPAR_ROAD_LAYER))
533 DO jlayer=1,dtt%NPAR_ROAD_LAYER
534 WRITE(yrecfm,fmt=
'(A8,I1.1)')
'D_D_ROAD',jlayer
535 CALL
read_field(yrecfm,dtt%XPAR_D_ROAD(:,jlayer),hdirin)
539 IF (dtt%LDATA_ALB_WALL)
THEN
540 ALLOCATE(dtt%XPAR_ALB_WALL (tg%NDIM))
542 CALL
read_field(yrecfm,dtt%XPAR_ALB_WALL,hdirin)
545 IF (dtt%LDATA_EMIS_WALL)
THEN
546 ALLOCATE(dtt%XPAR_EMIS_WALL (tg%NDIM))
548 CALL
read_field(yrecfm,dtt%XPAR_EMIS_WALL,hdirin)
551 IF (dtt%LDATA_HC_WALL)
THEN
552 ALLOCATE(dtt%XPAR_HC_WALL (tg%NDIM,dtt%NPAR_WALL_LAYER))
553 DO jlayer=1,dtt%NPAR_WALL_LAYER
554 WRITE(yrecfm,fmt=
'(A9,I1.1)')
'D_HC_WALL',jlayer
555 CALL
read_field(yrecfm,dtt%XPAR_HC_WALL(:,jlayer),hdirin)
559 IF (dtt%LDATA_TC_WALL)
THEN
560 ALLOCATE(dtt%XPAR_TC_WALL (tg%NDIM,dtt%NPAR_WALL_LAYER))
561 DO jlayer=1,dtt%NPAR_WALL_LAYER
562 WRITE(yrecfm,fmt=
'(A9,I1.1)')
'D_TC_WALL',jlayer
563 CALL
read_field(yrecfm,dtt%XPAR_TC_WALL(:,jlayer),hdirin)
567 IF (dtt%LDATA_D_WALL)
THEN
568 ALLOCATE(dtt%XPAR_D_WALL (tg%NDIM,dtt%NPAR_WALL_LAYER))
569 DO jlayer=1,dtt%NPAR_WALL_LAYER
570 WRITE(yrecfm,fmt=
'(A8,I1.1)')
'D_D_WALL',jlayer
571 CALL
read_field(yrecfm,dtt%XPAR_D_WALL(:,jlayer),hdirin)
575 IF (dtt%LDATA_BLD_HEIGHT)
THEN
576 ALLOCATE(dtt%XPAR_BLD_HEIGHT (tg%NDIM))
578 CALL
read_field(yrecfm,dtt%XPAR_BLD_HEIGHT,hdirin)
581 IF (dtt%LDATA_WALL_O_HOR)
THEN
582 ALLOCATE(dtt%XPAR_WALL_O_HOR (tg%NDIM))
584 CALL
read_field(yrecfm,dtt%XPAR_WALL_O_HOR,hdirin)
587 IF (dtt%LDATA_H_TRAFFIC)
THEN
588 ALLOCATE(dtt%XPAR_H_TRAFFIC (tg%NDIM))
590 CALL
read_field(yrecfm,dtt%XPAR_H_TRAFFIC,hdirin)
593 IF (dtt%LDATA_LE_TRAFFIC)
THEN
594 ALLOCATE(dtt%XPAR_LE_TRAFFIC (tg%NDIM))
596 CALL
read_field(yrecfm,dtt%XPAR_LE_TRAFFIC,hdirin)
599 IF (dtt%LDATA_H_INDUSTRY)
THEN
600 ALLOCATE(dtt%XPAR_H_INDUSTRY (tg%NDIM))
602 CALL
read_field(yrecfm,dtt%XPAR_H_INDUSTRY,hdirin)
605 IF (dtt%LDATA_LE_INDUSTRY)
THEN
606 ALLOCATE(dtt%XPAR_LE_INDUSTRY (tg%NDIM))
608 CALL
read_field(yrecfm,dtt%XPAR_LE_INDUSTRY,hdirin)
611 IF (dtt%LDATA_ROUGH_ROOF)
THEN
612 ALLOCATE(dtt%XPAR_ROUGH_ROOF (tg%NDIM))
613 yrecfm=
'D_ROUGH_ROOF'
614 CALL
read_field(yrecfm,dtt%XPAR_ROUGH_ROOF,hdirin)
617 IF (dtt%LDATA_ROUGH_WALL)
THEN
618 ALLOCATE(dtt%XPAR_ROUGH_WALL (tg%NDIM))
619 yrecfm=
'D_ROUGH_WALL'
620 CALL
read_field(yrecfm,dtt%XPAR_ROUGH_WALL,hdirin)
623 IF (dtt%LDATA_RESIDENTIAL)
THEN
624 ALLOCATE(dtt%XPAR_RESIDENTIAL (tg%NDIM))
625 yrecfm=
'D_F_RESIDENT'
626 CALL
read_field(yrecfm,dtt%XPAR_RESIDENTIAL,hdirin)
631 IF (dtt%LDATA_EMIS_PANEL)
THEN
632 ALLOCATE(dtt%XPAR_EMIS_PANEL (tg%NDIM))
633 yrecfm=
'D_EMIS_PANEL'
634 CALL
read_field(yrecfm,dtt%XPAR_EMIS_PANEL,hdirin)
637 IF (dtt%LDATA_ALB_PANEL)
THEN
638 ALLOCATE(dtt%XPAR_ALB_PANEL (tg%NDIM))
640 CALL
read_field(yrecfm,dtt%XPAR_ALB_PANEL,hdirin)
643 IF (dtt%LDATA_EFF_PANEL)
THEN
644 ALLOCATE(dtt%XPAR_EFF_PANEL (tg%NDIM))
646 CALL
read_field(yrecfm,dtt%XPAR_EFF_PANEL,hdirin)
649 IF (dtt%LDATA_FRAC_PANEL)
THEN
650 ALLOCATE(dtt%XPAR_FRAC_PANEL (tg%NDIM))
651 yrecfm=
'D_FRAC_PANEL'
652 CALL
read_field(yrecfm,dtt%XPAR_FRAC_PANEL,hdirin)
657 IF (top%CBEM==
'BEM')
THEN
660 IF (dtb%LDATA_HC_FLOOR)
THEN
661 ALLOCATE(dtb%XPAR_HC_FLOOR (tg%NDIM,dtb%NPAR_FLOOR_LAYER))
662 DO jlayer=1,dtb%NPAR_FLOOR_LAYER
663 WRITE(yrecfm,fmt=
'(A10,I1.1)')
'D_HC_FLOOR',jlayer
664 CALL
read_field(yrecfm,dtb%XPAR_HC_FLOOR(:,jlayer),hdirin)
668 IF (dtb%LDATA_TC_FLOOR)
THEN
669 ALLOCATE(dtb%XPAR_TC_FLOOR (tg%NDIM,dtb%NPAR_FLOOR_LAYER))
670 DO jlayer=1,dtb%NPAR_FLOOR_LAYER
671 WRITE(yrecfm,fmt=
'(A10,I1.1)')
'D_TC_FLOOR',jlayer
672 CALL
read_field(yrecfm,dtb%XPAR_TC_FLOOR(:,jlayer),hdirin)
676 IF (dtb%LDATA_D_FLOOR)
THEN
677 ALLOCATE(dtb%XPAR_D_FLOOR (tg%NDIM,dtb%NPAR_FLOOR_LAYER))
678 DO jlayer=1,dtb%NPAR_FLOOR_LAYER
679 WRITE(yrecfm,fmt=
'(A9,I1.1)')
'D_D_FLOOR',jlayer
680 CALL
read_field(yrecfm,dtb%XPAR_D_FLOOR(:,jlayer),hdirin)
684 IF (dtb%LDATA_TCOOL_TARGET)
THEN
685 ALLOCATE(dtb%XPAR_TCOOL_TARGET (tg%NDIM))
686 yrecfm=
'D_TCOOL_TARG'
687 CALL
read_field(yrecfm,dtb%XPAR_TCOOL_TARGET,hdirin)
690 IF (dtb%LDATA_THEAT_TARGET)
THEN
691 ALLOCATE(dtb%XPAR_THEAT_TARGET (tg%NDIM))
692 yrecfm=
'D_THEAT_TARG'
693 CALL
read_field(yrecfm,dtb%XPAR_THEAT_TARGET,hdirin)
696 IF (dtb%LDATA_F_WASTE_CAN)
THEN
697 ALLOCATE(dtb%XPAR_F_WASTE_CAN (tg%NDIM))
698 yrecfm=
'D_F_WAST_CAN'
699 CALL
read_field(yrecfm,dtb%XPAR_F_WASTE_CAN,hdirin)
702 IF (dtb%LDATA_EFF_HEAT)
THEN
703 ALLOCATE(dtb%XPAR_EFF_HEAT (tg%NDIM))
705 CALL
read_field(yrecfm,dtb%XPAR_EFF_HEAT,hdirin)
708 IF (dtb%LDATA_QIN)
THEN
709 ALLOCATE(dtb%XPAR_QIN (tg%NDIM))
714 IF (dtb%LDATA_QIN_FRAD)
THEN
715 ALLOCATE(dtb%XPAR_QIN_FRAD (tg%NDIM))
717 CALL
read_field(yrecfm,dtb%XPAR_QIN_FRAD,hdirin)
720 IF (dtb%LDATA_SHGC)
THEN
721 ALLOCATE(dtb%XPAR_SHGC (tg%NDIM))
726 IF (dtb%LDATA_U_WIN)
THEN
727 ALLOCATE(dtb%XPAR_U_WIN (tg%NDIM))
732 IF (dtb%LDATA_GR)
THEN
733 ALLOCATE(dtb%XPAR_GR (tg%NDIM))
738 IF (dtb%LDATA_SHGC_SH)
THEN
739 ALLOCATE(dtb%XPAR_SHGC_SH (tg%NDIM))
741 CALL
read_field(yrecfm,dtb%XPAR_SHGC_SH,hdirin)
744 IF (dtb%LDATA_FLOOR_HEIGHT)
THEN
745 ALLOCATE(dtb%XPAR_FLOOR_HEIGHT (tg%NDIM))
746 yrecfm=
'D_FLOOR_HEIG'
747 CALL
read_field(yrecfm,dtb%XPAR_FLOOR_HEIGHT,hdirin)
750 IF (dtb%LDATA_INF)
THEN
751 ALLOCATE(dtb%XPAR_INF (tg%NDIM))
756 IF (dtb%LDATA_F_WATER_COND)
THEN
757 ALLOCATE(dtb%XPAR_F_WATER_COND (tg%NDIM))
759 CALL
read_field(yrecfm,dtb%XPAR_F_WATER_COND,hdirin)
762 IF (dtb%LDATA_SHADE)
THEN
763 ALLOCATE(dtb%XPAR_SHADE (tg%NDIM))
766 dtb%XPAR_SHADE=float(nint(dtb%XPAR_SHADE))
769 IF (dtb%LDATA_NATVENT)
THEN
770 ALLOCATE(dtb%XPAR_NATVENT (tg%NDIM))
772 CALL
read_field(yrecfm,dtb%XPAR_NATVENT,hdirin)
773 dtb%XPAR_NATVENT=float(nint(dtb%XPAR_NATVENT))
776 IF (dtb%LDATA_QIN_FLAT)
THEN
777 ALLOCATE(dtb%XPAR_QIN_FLAT (tg%NDIM))
779 CALL
read_field(yrecfm,dtb%XPAR_QIN_FLAT,hdirin)
782 IF (dtb%LDATA_HR_TARGET)
THEN
783 ALLOCATE(dtb%XPAR_HR_TARGET (tg%NDIM))
785 CALL
read_field(yrecfm,dtb%XPAR_HR_TARGET,hdirin)
788 IF (dtb%LDATA_V_VENT)
THEN
789 ALLOCATE(dtb%XPAR_V_VENT (tg%NDIM))
791 CALL
read_field(yrecfm,dtb%XPAR_V_VENT,hdirin)
794 IF (dtb%LDATA_CAP_SYS_HEAT)
THEN
795 ALLOCATE(dtb%XPAR_CAP_SYS_HEAT (tg%NDIM))
796 yrecfm=
'D_CAP_SYS_HE'
797 CALL
read_field(yrecfm,dtb%XPAR_CAP_SYS_HEAT,hdirin)
800 IF (dtb%LDATA_CAP_SYS_RAT)
THEN
801 ALLOCATE(dtb%XPAR_CAP_SYS_RAT (tg%NDIM))
802 yrecfm=
'D_CAP_SYS_RA'
803 CALL
read_field(yrecfm,dtb%XPAR_CAP_SYS_RAT,hdirin)
806 IF (dtb%LDATA_T_ADP)
THEN
807 ALLOCATE(dtb%XPAR_T_ADP (tg%NDIM))
812 IF (dtb%LDATA_M_SYS_RAT)
THEN
813 ALLOCATE(dtb%XPAR_M_SYS_RAT (tg%NDIM))
815 CALL
read_field(yrecfm,dtb%XPAR_M_SYS_RAT,hdirin)
818 IF (dtb%LDATA_COP_RAT)
THEN
819 ALLOCATE(dtb%XPAR_COP_RAT (tg%NDIM))
821 CALL
read_field(yrecfm,dtb%XPAR_COP_RAT,hdirin)
824 IF (dtb%LDATA_T_SIZE_MAX)
THEN
825 ALLOCATE(dtb%XPAR_T_SIZE_MAX (tg%NDIM))
826 yrecfm=
'D_T_SIZE_MAX'
827 CALL
read_field(yrecfm,dtb%XPAR_T_SIZE_MAX,hdirin)
830 IF (dtb%LDATA_T_SIZE_MIN)
THEN
831 ALLOCATE(dtb%XPAR_T_SIZE_MIN (tg%NDIM))
832 yrecfm=
'D_T_SIZE_MIN'
833 CALL
read_field(yrecfm,dtb%XPAR_T_SIZE_MIN,hdirin)
838 IF (lhook) CALL dr_hook(
'READ_PGD_TEB_PAR_N',1,zhook_handle)
846 USE modi_hor_interpol
850 CHARACTER(LEN=*),
INTENT(IN) :: hrecfm
851 REAL,
DIMENSION(TG%NDIM),
INTENT(OUT) :: pfield
852 CHARACTER(LEN=1),
INTENT(IN) :: ydir
854 REAL,
DIMENSION(KNI) :: zf
855 REAL,
DIMENSION(:,:),
POINTER :: zin
856 REAL,
DIMENSION(TG%NDIM,1) :: zout
857 REAL(KIND=JPRB) :: zhook_handle
859 IF (lhook) CALL dr_hook(
'READ_PGD_TEB_PAR_N:READ_FIELD',0,zhook_handle)
864 hprogram,hrecfm,zf,iresp,hdir=
'A')
870 pfield(:) = zout(:,1)
874 hprogram,hrecfm,pfield,iresp)
877 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, KLUOUT, PFIELDIN, PFIELDOUT)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine read_pgd_teb_par_n(DTCO, U, BDD, DTB, DTT, TG, TOP, HPROGRAM, KNI, HDIRIN)
subroutine read_bld_description_n(BDD, HPROGRAM)