6 SUBROUTINE pgd_teb_par (DTCO, UG, U, USS, BDD, DTT, KDIM, &
7 HPROGRAM,OGARDEN,OGREENROOF,HBLD_ATYPE)
60 USE modi_open_namelist
61 USE modi_close_namelist
65 USE modi_read_csvdata_teb
85 TYPE(
sso_t),
INTENT(INOUT) :: USS
89 INTEGER,
INTENT(IN) :: KDIM
91 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
92 LOGICAL,
INTENT(IN) :: OGARDEN
93 LOGICAL,
INTENT(IN) :: OGREENROOF
94 CHARACTER(LEN=3),
INTENT(OUT) :: HBLD_ATYPE
104 REAL,
DIMENSION(KDIM) :: ZWORK
110 INTEGER,
PARAMETER :: NROOF_MAX = 9
111 INTEGER,
PARAMETER :: NROAD_MAX = 9
112 INTEGER,
PARAMETER :: NWALL_MAX = 9
113 INTEGER :: NPAR_ROAD_LAYER
114 INTEGER :: NPAR_ROOF_LAYER
115 INTEGER :: NPAR_WALL_LAYER
119 INTEGER :: NUNIF_BLDTYPE
120 CHARACTER(LEN=28) :: CFNAM_BLDTYPE
121 CHARACTER(LEN=6) :: CFTYP_BLDTYPE
122 INTEGER :: NUNIF_BLD_AGE
123 CHARACTER(LEN=28) :: CFNAM_BLD_AGE
124 CHARACTER(LEN=6) :: CFTYP_BLD_AGE
125 CHARACTER(LEN=28) :: CCSVDATAFILE
126 INTEGER :: NUNIF_USETYPE
127 CHARACTER(LEN=28) :: CFNAM_USETYPE
128 CHARACTER(LEN=6) :: CFTYP_USETYPE
129 CHARACTER(LEN=3) :: CBLD_ATYPE
133 REAL :: XUNIF_BLD_HEIGHT
134 REAL :: XUNIF_WALL_O_HOR
135 REAL :: XUNIF_Z0_TOWN
137 REAL :: XUNIF_GREENROOF
138 REAL :: XUNIF_ROAD_DIR
139 CHARACTER(LEN=28) :: CFNAM_BLD
140 CHARACTER(LEN=28) :: CFNAM_BLD_HEIGHT
141 CHARACTER(LEN=28) :: CFNAM_WALL_O_HOR
142 CHARACTER(LEN=28) :: CFNAM_Z0_TOWN
143 CHARACTER(LEN=28) :: CFNAM_GARDEN
144 CHARACTER(LEN=28) :: CFNAM_GREENROOF
145 CHARACTER(LEN=28) :: CFNAM_ROAD_DIR
146 CHARACTER(LEN=6) :: CFTYP_BLD
147 CHARACTER(LEN=6) :: CFTYP_BLD_HEIGHT
148 CHARACTER(LEN=6) :: CFTYP_WALL_O_HOR
149 CHARACTER(LEN=6) :: CFTYP_Z0_TOWN
150 CHARACTER(LEN=6) :: CFTYP_GARDEN
151 CHARACTER(LEN=6) :: CFTYP_GREENROOF
152 CHARACTER(LEN=6) :: CFTYP_ROAD_DIR
156 REAL :: XUNIF_ALB_ROOF
157 REAL :: XUNIF_EMIS_ROOF
158 CHARACTER(LEN=28) :: CFNAM_ALB_ROOF
159 CHARACTER(LEN=28) :: CFNAM_EMIS_ROOF
160 CHARACTER(LEN=6) :: CFTYP_ALB_ROOF
161 CHARACTER(LEN=6) :: CFTYP_EMIS_ROOF
162 REAL,
DIMENSION(NROOF_MAX) :: XUNIF_HC_ROOF
163 REAL,
DIMENSION(NROOF_MAX) :: XUNIF_TC_ROOF
164 REAL,
DIMENSION(NROOF_MAX) :: XUNIF_D_ROOF
165 CHARACTER(LEN=28),
DIMENSION(NROOF_MAX) :: CFNAM_HC_ROOF
166 CHARACTER(LEN=28),
DIMENSION(NROOF_MAX) :: CFNAM_TC_ROOF
167 CHARACTER(LEN=28),
DIMENSION(NROOF_MAX) :: CFNAM_D_ROOF
168 CHARACTER(LEN=6),
DIMENSION(NROOF_MAX) :: CFTYP_HC_ROOF
169 CHARACTER(LEN=6),
DIMENSION(NROOF_MAX) :: CFTYP_TC_ROOF
170 CHARACTER(LEN=6),
DIMENSION(NROOF_MAX) :: CFTYP_D_ROOF
171 REAL :: XUNIF_ROUGH_ROOF
172 CHARACTER(LEN=28) :: CFNAM_ROUGH_ROOF
173 CHARACTER(LEN=6) :: CFTYP_ROUGH_ROOF
178 REAL :: XUNIF_ALB_ROAD
179 REAL :: XUNIF_EMIS_ROAD
180 CHARACTER(LEN=28) :: CFNAM_ALB_ROAD
181 CHARACTER(LEN=28) :: CFNAM_EMIS_ROAD
182 CHARACTER(LEN=6) :: CFTYP_ALB_ROAD
183 CHARACTER(LEN=6) :: CFTYP_EMIS_ROAD
184 REAL,
DIMENSION(NROAD_MAX) :: XUNIF_HC_ROAD
185 REAL,
DIMENSION(NROAD_MAX) :: XUNIF_TC_ROAD
186 REAL,
DIMENSION(NROAD_MAX) :: XUNIF_D_ROAD
187 CHARACTER(LEN=28),
DIMENSION(NROAD_MAX) :: CFNAM_HC_ROAD
188 CHARACTER(LEN=28),
DIMENSION(NROAD_MAX) :: CFNAM_TC_ROAD
189 CHARACTER(LEN=28),
DIMENSION(NROAD_MAX) :: CFNAM_D_ROAD
190 CHARACTER(LEN=6),
DIMENSION(NROAD_MAX) :: CFTYP_HC_ROAD
191 CHARACTER(LEN=6),
DIMENSION(NROAD_MAX) :: CFTYP_TC_ROAD
192 CHARACTER(LEN=6),
DIMENSION(NROAD_MAX) :: CFTYP_D_ROAD
196 REAL :: XUNIF_ALB_WALL
197 REAL :: XUNIF_EMIS_WALL
198 CHARACTER(LEN=28) :: CFNAM_ALB_WALL
199 CHARACTER(LEN=28) :: CFNAM_EMIS_WALL
200 CHARACTER(LEN=6) :: CFTYP_ALB_WALL
201 CHARACTER(LEN=6) :: CFTYP_EMIS_WALL
202 REAL,
DIMENSION(NWALL_MAX) :: XUNIF_HC_WALL
203 REAL,
DIMENSION(NWALL_MAX) :: XUNIF_TC_WALL
204 REAL,
DIMENSION(NWALL_MAX) :: XUNIF_D_WALL
205 CHARACTER(LEN=28),
DIMENSION(NWALL_MAX) :: CFNAM_HC_WALL
206 CHARACTER(LEN=28),
DIMENSION(NWALL_MAX) :: CFNAM_TC_WALL
207 CHARACTER(LEN=28),
DIMENSION(NWALL_MAX) :: CFNAM_D_WALL
208 CHARACTER(LEN=6),
DIMENSION(NWALL_MAX) :: CFTYP_HC_WALL
209 CHARACTER(LEN=6),
DIMENSION(NWALL_MAX) :: CFTYP_TC_WALL
210 CHARACTER(LEN=6),
DIMENSION(NWALL_MAX) :: CFTYP_D_WALL
211 REAL :: XUNIF_ROUGH_WALL
212 CHARACTER(LEN=28) :: CFNAM_ROUGH_WALL
213 CHARACTER(LEN=6) :: CFTYP_ROUGH_WALL
214 REAL :: XUNIF_RESIDENTIAL
215 CHARACTER(LEN=28) :: CFNAM_RESIDENTIAL
216 CHARACTER(LEN=6) :: CFTYP_RESIDENTIAL
220 REAL :: XUNIF_H_TRAFFIC
222 REAL :: XUNIF_LE_TRAFFIC
224 REAL :: XUNIF_H_INDUSTRY
226 REAL :: XUNIF_LE_INDUSTRY
228 CHARACTER(LEN=28) :: CFNAM_H_TRAFFIC
229 CHARACTER(LEN=28) :: CFNAM_LE_TRAFFIC
230 CHARACTER(LEN=28) :: CFNAM_H_INDUSTRY
231 CHARACTER(LEN=28) :: CFNAM_LE_INDUSTRY
232 CHARACTER(LEN=6) :: CFTYP_H_TRAFFIC
233 CHARACTER(LEN=6) :: CFTYP_LE_TRAFFIC
234 CHARACTER(LEN=6) :: CFTYP_H_INDUSTRY
235 CHARACTER(LEN=6) :: CFTYP_LE_INDUSTRY
239 REAL :: XUNIF_EMIS_PANEL
240 REAL :: XUNIF_ALB_PANEL
241 REAL :: XUNIF_EFF_PANEL
242 REAL :: XUNIF_FRAC_PANEL
243 CHARACTER(LEN=28) :: CFNAM_EMIS_PANEL
244 CHARACTER(LEN=28) :: CFNAM_ALB_PANEL
245 CHARACTER(LEN=28) :: CFNAM_EFF_PANEL
246 CHARACTER(LEN=28) :: CFNAM_FRAC_PANEL
247 CHARACTER(LEN=6) :: CFTYP_EMIS_PANEL
248 CHARACTER(LEN=6) :: CFTYP_ALB_PANEL
249 CHARACTER(LEN=6) :: CFTYP_EFF_PANEL
250 CHARACTER(LEN=6) :: CFTYP_FRAC_PANEL
252 REAL(KIND=JPRB) :: ZHOOK_HANDLE
255 NAMELIST/nam_data_teb/ npar_roof_layer, npar_road_layer, npar_wall_layer
339 xunif_le_industry =
xundef 345 xunif_residential =
xundef 439 CALL posnam(ilunam,
'NAM_DATA_TEB',gfound,iluout)
440 IF (gfound)
READ(unit=ilunam,nml=nam_data_teb)
446 dtt%NPAR_ROOF_LAYER = npar_roof_layer
447 dtt%NPAR_ROAD_LAYER = npar_road_layer
448 dtt%NPAR_WALL_LAYER = npar_wall_layer
450 hbld_atype = cbld_atype
455 IF (( any(xunif_hc_road/=
xundef) .OR. any(len_trim(cfnam_hc_road)>0)
459 CALL abor1_sfx(
'In order to initialize road thermal quantities, please specify NPAR_ROAD_LAYER in namelist NAM_DATA_TEB' 462 IF (( any(xunif_hc_roof/=
xundef) .OR. any(len_trim(cfnam_hc_roof)>0)
466 CALL abor1_sfx(
'In order to initialize ROOF thermal quantities, please specify NPAR_ROOF_LAYER in namelist NAM_DATA_TEB' 469 IF (( any(xunif_hc_wall/=
xundef) .OR. any(len_trim(cfnam_hc_wall)>0)
473 CALL abor1_sfx(
'In order to initialize WALL thermal quantities, please specify NPAR_WALL_LAYER in namelist NAM_DATA_TEB' 476 IF (nroof_max < npar_roof_layer)
THEN 477 WRITE(iluout,*)
'---------------------------------------------' 478 WRITE(iluout,*)
'Please update pgd_teb_par.f90 routine : ' 479 WRITE(iluout,*)
'The maximum number of ROOF LAYER ' 480 WRITE(iluout,*)
'in the declaration of the namelist variables ' 481 WRITE(iluout,*)
'must be increased to : ', npar_roof_layer
482 WRITE(iluout,*)
'---------------------------------------------' 483 CALL abor1_sfx(
'PGD_TEB_PAR: MAXIMUM NUMBER OF NROOF_LAYER MUST BE INCREASED' 486 IF (nroad_max < npar_road_layer)
THEN 487 WRITE(iluout,*)
'---------------------------------------------' 488 WRITE(iluout,*)
'Please update pgd_teb_par.f90 routine : ' 489 WRITE(iluout,*)
'The maximum number of ROAD LAYER ' 490 WRITE(iluout,*)
'in the declaration of the namelist variables ' 491 WRITE(iluout,*)
'must be increased to : ', npar_road_layer
492 WRITE(iluout,*)
'---------------------------------------------' 493 CALL abor1_sfx(
'PGD_TEB_PAR: MAXIMUM NUMBER OF NROAD_LAYER MUST BE INCREASED' 496 IF (nwall_max < npar_wall_layer)
THEN 497 WRITE(iluout,*)
'---------------------------------------------' 498 WRITE(iluout,*)
'Please update pgd_teb_par.f90 routine : ' 499 WRITE(iluout,*)
'The maximum number of WALL LAYER ' 500 WRITE(iluout,*)
'in the declaration of the namelist variables ' 501 WRITE(iluout,*)
'must be increased to : ', npar_wall_layer
502 WRITE(iluout,*)
'---------------------------------------------' 503 CALL abor1_sfx(
'PGD_TEB_PAR: MAXIMUM NUMBER OF NWALL_LAYER MUST BE INCREASED' 513 IF (nunif_bldtype/=
nundef) zunif=float(nunif_bldtype)
514 ALLOCATE(dtt%NPAR_BLDTYPE (kdim))
517 IF (.NOT. dtt%LDATA_BLDTYPE)
THEN 518 DEALLOCATE(dtt%NPAR_BLDTYPE)
520 dtt%NPAR_BLDTYPE = nint(zwork)
525 IF (nunif_bld_age/=
nundef) zunif=float(nunif_bld_age)
526 ALLOCATE(dtt%NPAR_BLD_AGE (kdim))
529 IF (.NOT. dtt%LDATA_BLD_AGE)
THEN 530 DEALLOCATE(dtt%NPAR_BLD_AGE)
532 dtt%NPAR_BLD_AGE = nint(zwork)
535 IF (dtt%LDATA_BLDTYPE .AND. .NOT. dtt%LDATA_BLD_AGE)
THEN 536 WRITE(iluout,*)
'---------------------------------------------' 537 WRITE(iluout,*)
' You chose to define building types : ' 538 IF (nunif_bldtype/=
nundef)
THEN 539 WRITE(iluout,*)
' NUNIF_BLDTYPE=', nunif_bldtype
541 WRITE(iluout,*)
' CFNAM_BLDTYPE =',cfnam_bldtype
542 WRITE(iluout,*)
' CFTYP_BLDTYPE =',cftyp_bldtype
544 WRITE(iluout,*)
' But ' 545 WRITE(iluout,*)
" You did not chose to define building's age" 546 WRITE(iluout,*)
'- - - - - - - - - - - - - - - - - - - - - - -' 547 WRITE(iluout,*)
' Please define the construction date of the buildings. ' 548 WRITE(iluout,*)
' To do so, use either :' 549 WRITE(iluout,*)
' NUNIF_BLD_AGE (to have a uniform construction date for all buildings' 550 WRITE(iluout,*)
' or CFNAM_BLD_AGE and CFTYP_BLD_AGE (to incorporate spatial data ) ' 551 WRITE(iluout,*)
'---------------------------------------------' 552 CALL abor1_sfx(
"PGD_TEB_PAR: Building's age data is missing")
557 IF (nunif_usetype/=
nundef) zunif=float(nunif_usetype)
558 ALLOCATE(dtt%NPAR_USETYPE (kdim))
561 IF (.NOT. dtt%LDATA_USETYPE)
THEN 562 DEALLOCATE(dtt%NPAR_USETYPE)
564 dtt%NPAR_USETYPE = nint(zwork)
567 IF (dtt%LDATA_BLDTYPE .OR. dtt%LDATA_BLD_AGE .OR. dtt%LDATA_USETYPE) &
571 IF (
ASSOCIATED(dtt%NPAR_BLDTYPE))
THEN 572 ALLOCATE(dtt%NPAR_BLDCODE (kdim))
573 dtt%NPAR_BLDCODE(:) =
bldcode(bdd, dtt%NPAR_BLDTYPE,dtt%NPAR_BLD_AGE)
578 ALLOCATE(dtt%XPAR_BLD (kdim))
581 IF (.NOT.dtt%LDATA_BLD)
DEALLOCATE(dtt%XPAR_BLD)
583 ALLOCATE(dtt%XPAR_BLD_HEIGHT (kdim))
587 IF (.NOT.dtt%LDATA_BLD_HEIGHT)
DEALLOCATE(dtt%XPAR_BLD_HEIGHT)
589 ALLOCATE(dtt%XPAR_WALL_O_HOR (kdim))
592 IF (.NOT.dtt%LDATA_WALL_O_HOR)
DEALLOCATE(dtt%XPAR_WALL_O_HOR)
594 ALLOCATE(dtt%XPAR_Z0_TOWN (kdim))
597 IF (.NOT.dtt%LDATA_Z0_TOWN)
DEALLOCATE(dtt%XPAR_Z0_TOWN)
599 ALLOCATE(dtt%XPAR_ALB_ROOF (kdim))
602 IF (.NOT.dtt%LDATA_ALB_ROOF)
DEALLOCATE(dtt%XPAR_ALB_ROOF)
604 ALLOCATE(dtt%XPAR_EMIS_ROOF (kdim))
607 IF (.NOT.dtt%LDATA_EMIS_ROOF)
DEALLOCATE(dtt%XPAR_EMIS_ROOF)
609 ALLOCATE(dtt%XPAR_HC_ROOF (kdim,npar_roof_layer))
612 IF (.NOT.dtt%LDATA_HC_ROOF)
DEALLOCATE(dtt%XPAR_HC_ROOF)
614 ALLOCATE(dtt%XPAR_TC_ROOF (kdim,npar_roof_layer))
617 IF (.NOT.dtt%LDATA_TC_ROOF)
DEALLOCATE(dtt%XPAR_TC_ROOF)
619 ALLOCATE(dtt%XPAR_D_ROOF (kdim,npar_roof_layer))
622 IF (.NOT.dtt%LDATA_D_ROOF)
DEALLOCATE(dtt%XPAR_D_ROOF)
624 ALLOCATE(dtt%XPAR_ALB_ROAD (kdim))
627 IF (.NOT.dtt%LDATA_ALB_ROAD)
DEALLOCATE(dtt%XPAR_ALB_ROAD)
629 ALLOCATE(dtt%XPAR_EMIS_ROAD (kdim))
632 IF (.NOT.dtt%LDATA_EMIS_ROAD)
DEALLOCATE(dtt%XPAR_EMIS_ROAD)
634 ALLOCATE(dtt%XPAR_HC_ROAD (kdim,npar_road_layer))
636 hprogram,cbld_atype,
'HC_ROAD ',
'TWN',cfnam_hc_road
638 IF (.NOT.dtt%LDATA_HC_ROAD)
DEALLOCATE(dtt%XPAR_HC_ROAD)
640 ALLOCATE(dtt%XPAR_TC_ROAD (kdim,npar_road_layer))
642 hprogram,cbld_atype,
'TC_ROAD ',
'TWN',cfnam_tc_road
644 IF (.NOT.dtt%LDATA_TC_ROAD)
DEALLOCATE(dtt%XPAR_TC_ROAD)
646 ALLOCATE(dtt%XPAR_D_ROAD (kdim,npar_road_layer))
648 hprogram,
'ARI',
'D_ROAD ',
'TWN',cfnam_d_road ,cftyp_d_road
650 IF (.NOT.dtt%LDATA_D_ROAD)
DEALLOCATE(dtt%XPAR_D_ROAD)
652 ALLOCATE(dtt%XPAR_ALB_WALL (kdim))
654 hprogram,cbld_atype,
'ALB_WALL ',
'TWN',cfnam_alb_wall
656 IF (.NOT.dtt%LDATA_ALB_WALL)
DEALLOCATE(dtt%XPAR_ALB_WALL)
658 ALLOCATE(dtt%XPAR_EMIS_WALL (kdim))
660 hprogram,cbld_atype,
'EMIS_WALL ',
'TWN',cfnam_emis_wall
662 IF (.NOT.dtt%LDATA_EMIS_WALL)
DEALLOCATE(dtt%XPAR_EMIS_WALL)
664 ALLOCATE(dtt%XPAR_HC_WALL (kdim,npar_wall_layer))
666 hprogram,cbld_atype,
'HC_WALL ',
'TWN',cfnam_hc_wall
668 IF (.NOT.dtt%LDATA_HC_WALL)
DEALLOCATE(dtt%XPAR_HC_WALL)
670 ALLOCATE(dtt%XPAR_TC_WALL (kdim,npar_wall_layer))
672 hprogram,cbld_atype,
'TC_WALL ',
'TWN',cfnam_tc_wall
674 IF (.NOT.dtt%LDATA_TC_WALL)
DEALLOCATE(dtt%XPAR_TC_WALL)
676 ALLOCATE(dtt%XPAR_D_WALL (kdim,npar_wall_layer))
678 hprogram,cbld_atype,
'D_WALL ',
'TWN',cfnam_d_wall
680 IF (.NOT.dtt%LDATA_D_WALL)
DEALLOCATE(dtt%XPAR_D_WALL)
682 ALLOCATE(dtt%XPAR_H_TRAFFIC (kdim))
684 hprogram,
'ARI',
'H_TRAFFIC ',
'TWN',cfnam_h_traffic
686 IF (.NOT.dtt%LDATA_H_TRAFFIC)
DEALLOCATE(dtt%XPAR_H_TRAFFIC)
688 ALLOCATE(dtt%XPAR_LE_TRAFFIC (kdim))
690 hprogram,
'ARI',
'LE_TRAFFIC ',
'TWN',cfnam_le_traffic
692 IF (.NOT.dtt%LDATA_LE_TRAFFIC)
DEALLOCATE(dtt%XPAR_LE_TRAFFIC)
694 ALLOCATE(dtt%XPAR_H_INDUSTRY (kdim))
696 hprogram,
'ARI',
'H_INDUSTRY ',
'TWN',cfnam_h_industry
698 IF (.NOT.dtt%LDATA_H_INDUSTRY)
DEALLOCATE(dtt%XPAR_H_INDUSTRY)
700 ALLOCATE(dtt%XPAR_LE_INDUSTRY (kdim))
702 hprogram,
'ARI',
'LE_INDUSTRY',
'TWN',cfnam_le_industry
704 IF (.NOT.dtt%LDATA_LE_INDUSTRY)
DEALLOCATE(dtt%XPAR_LE_INDUSTRY)
706 ALLOCATE(dtt%XPAR_ROUGH_ROOF (kdim))
708 hprogram,cbld_atype,
'ROUGH_ROOF',
'TWN',cfnam_rough_roof
710 IF (.NOT.dtt%LDATA_ROUGH_ROOF)
DEALLOCATE(dtt%XPAR_ROUGH_ROOF)
712 ALLOCATE(dtt%XPAR_ROUGH_WALL (kdim))
714 hprogram,cbld_atype,
'ROUGH_WALL',
'TWN',cfnam_rough_wall
716 IF (.NOT.dtt%LDATA_ROUGH_WALL)
DEALLOCATE(dtt%XPAR_ROUGH_WALL)
718 ALLOCATE(dtt%XPAR_RESIDENTIAL (kdim))
720 hprogram,cbld_atype,
'RESIDENTIAL',
'TWN',cfnam_residential
722 IF (.NOT.dtt%LDATA_RESIDENTIAL)
DEALLOCATE(dtt%XPAR_RESIDENTIAL)
735 ALLOCATE(dtt%XPAR_ROAD_DIR (kdim))
737 hprogram,
'ARI',
'ROAD_DIR ',
'TWN',cfnam_road_dir
739 IF (.NOT.dtt%LDATA_ROAD_DIR)
DEALLOCATE(dtt%XPAR_ROAD_DIR)
745 ALLOCATE(dtt%XPAR_EMIS_PANEL (kdim))
747 hprogram,
'ARI',
'EMIS_PANEL ',
'BLD',cfnam_emis_panel
749 IF (.NOT.dtt%LDATA_EMIS_PANEL)
DEALLOCATE(dtt%XPAR_EMIS_PANEL)
750 ALLOCATE(dtt%XPAR_ALB_PANEL (kdim))
752 hprogram,
'ARI',
'ALB_PANEL ',
'BLD',cfnam_alb_panel
754 IF (.NOT.dtt%LDATA_ALB_PANEL )
DEALLOCATE(dtt%XPAR_ALB_PANEL )
755 ALLOCATE(dtt%XPAR_EFF_PANEL (kdim))
757 hprogram,
'ARI',
'EFF_PANEL ',
'BLD',cfnam_eff_panel
759 IF (.NOT.dtt%LDATA_EFF_PANEL )
DEALLOCATE(dtt%XPAR_EFF_PANEL )
760 ALLOCATE(dtt%XPAR_FRAC_PANEL (kdim))
762 hprogram,
'ARI',
'FRAC_PANEL ',
'BLD',cfnam_frac_panel
764 IF (.NOT.dtt%LDATA_FRAC_PANEL)
DEALLOCATE(dtt%XPAR_FRAC_PANEL)
771 ALLOCATE(dtt%XPAR_GREENROOF (kdim))
773 hprogram,cbld_atype,
'GREENROOF',
'BLD',cfnam_greenroof
775 IF (.NOT.dtt%LDATA_GREENROOF)
DEALLOCATE(dtt%XPAR_GREENROOF)
776 ELSE IF ( (xunif_greenroof/=0. .AND. xunif_greenroof/=
xundef) .OR. len_trim
THEN 777 WRITE(iluout,*)
'---------------------------------------------' 778 WRITE(iluout,*)
' You chose not to include greenroofs in urban areas : LGREENROOF=.FALSE. ' 779 WRITE(iluout,*)
' But ' 780 IF (xunif_greenroof/=0. .AND. xunif_greenroof/=
xundef)
THEN 781 WRITE(iluout,*)
' You also chose a greenroof fraction that is not zero : XUNIF_GREENROOF=' 783 WRITE(iluout,*)
' You also chose a greenroof fraction that is not zero : CFNAM_GREENROOF=' 785 WRITE(iluout,*)
'- - - - - - - - - - - - - - - - - - - - - - -' 786 WRITE(iluout,*)
' Please choose either:' 787 WRITE(iluout,*)
' LGREENROOF=.TRUE. or set GREENROOF fraction to zero (XUNIF_GREENROOF=0.) in namelist PGD_TEB_PAR' 788 WRITE(iluout,*)
'---------------------------------------------' 789 CALL abor1_sfx(
'PGD_TEB_PAR: GREENROOF flag and GREENROOF fraction not coherent' 797 ALLOCATE(dtt%XPAR_GARDEN (kdim))
799 hprogram,
'ARI',
'GARDEN ',
'TWN',cfnam_garden
801 IF (.NOT.dtt%LDATA_GARDEN)
DEALLOCATE(dtt%XPAR_GARDEN)
802 ELSE IF ( (xunif_garden/=0. .AND. xunif_garden/=
xundef) .OR. len_trim(cfnam_garden
THEN 803 WRITE(iluout,*)
'---------------------------------------------' 804 WRITE(iluout,*)
' You chose not to include gardens in urban areas : LGARDEN=.FALSE. ' 805 WRITE(iluout,*)
' But ' 806 IF (xunif_garden/=0. .AND. xunif_garden/=
xundef)
THEN 807 WRITE(iluout,*)
' You also chose a garden fraction that is not zero : XUNIF_GARDEN=' 809 WRITE(iluout,*)
' You also chose a garden fraction that is not zero : CFNAM_GARDEN=' 811 WRITE(iluout,*)
'- - - - - - - - - - - - - - - - - - - - - - -' 812 WRITE(iluout,*)
' Please choose either:' 813 WRITE(iluout,*)
' LGARDEN=.TRUE. or set GARDEN fraction to zero (XUNIF_GARDEN=0.) in namelist PGD_TEB_PAR' 814 WRITE(iluout,*)
'- - - - - - - - - - - - - - - - - - - - - - -' 815 WRITE(iluout,*)
' Beware that in this case, it may be necessary to change the' 816 WRITE(iluout,*)
' road fraction if you want to keep the same canyon aspect ratio' 817 WRITE(iluout,*)
'---------------------------------------------' 818 CALL abor1_sfx(
'PGD_TEB_PAR: GARDEN flag and GARDEN fraction not coherent' 827 CHARACTER(LEN=4),
INTENT(IN) :: HTYPE
828 LOGICAL,
INTENT(IN) :: ODATA_HC
829 LOGICAL,
INTENT(IN) :: ODATA_TC
830 LOGICAL,
INTENT(IN) :: ODATA_D
832 IF (odata_hc .OR. odata_tc .OR. odata_d)
THEN 833 IF (.NOT. (odata_hc .AND. odata_tc .AND. odata_d))
THEN 834 WRITE(iluout,*)
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*' 835 WRITE(iluout,*)
'When specifying data for thermal ',
trim(htype),
' characteristics,' 836 WRITE(iluout,*)
'All three parameters MUST be defined:' 837 WRITE(iluout,*)
'Heat capacity, Thermal conductivity and depths of layers' 839 WRITE(iluout,*)
'In your case :' 841 WRITE(iluout,*)
'Heat capacity is defined' 843 WRITE(iluout,*)
'Heat capacity is NOT defined' 846 WRITE(iluout,*)
'Thermal conductivity is defined' 848 WRITE(iluout,*)
'Thermal conductivity is NOT defined' 851 WRITE(iluout,*)
'Depths of layers are defined' 853 WRITE(iluout,*)
'Depths of layers are NOT defined' 855 WRITE(iluout,*)
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*' 856 CALL abor1_sfx(
'Heat capacity, Thermal conductivity and depths of layers MUST all be defined for ' static const char * trim(const char *name, int *n)
subroutine coherence_thermal_data(HTYPE, ODATA_HC, ODATA_TC, ODATA_D)
integer function, dimension(size(ktype)) bldcode(BDD, KTYPE, KAGE)
subroutine posnam(KULNAM, HDNAML, OFOUND, KLUOUT)
subroutine abor1_sfx(YTEXT)
integer, parameter nundef
subroutine read_csvdata_teb(BDD, HPROGRAM, HFILE)
subroutine close_namelist(HPROGRAM, KLUNAM)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine pgd_teb_par(DTCO, UG, U, USS, BDD, DTT, KDIM, HPROGRAM, OGARDEN, OGREENROOF, HBLD_ATYPE)
subroutine open_namelist(HPROGRAM, KLUNAM, HFILE)