SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE PGD_TEB_PAR(HPROGRAM,OGARDEN,OGREENROOF,HBLD_ATYPE) 00003 ! ############################################################## 00004 ! 00005 !!**** *PGD_TEB_PAR* monitor for averaging and interpolations of cover fractions 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 !! 00010 !! METHOD 00011 !! ------ 00012 !! 00013 ! 00014 !! EXTERNAL 00015 !! -------- 00016 !! 00017 !! IMPLICIT ARGUMENTS 00018 !! ------------------ 00019 !! 00020 !! REFERENCE 00021 !! --------- 00022 !! 00023 !! AUTHOR 00024 !! ------ 00025 !! 00026 !! V. Masson Meteo-France 00027 !! 00028 !! MODIFICATION 00029 !! ------------ 00030 !! 00031 !! Original 10/12/97 00032 !! 00033 !! Modified 08/12/05, P. Le Moigne: user defined fields 00034 !! G. Pigeon 09/2012: add ROUGH_WALL/ROUGH_ROOF for outdoor convection 00035 !! 00036 !---------------------------------------------------------------------------- 00037 ! 00038 !* 0. DECLARATION 00039 ! ----------- 00040 ! 00041 USE MODD_SURF_PAR, ONLY : XUNDEF, NUNDEF 00042 USE MODD_TEB_GRID_n, ONLY : NDIM 00043 USE MODD_DATA_TEB_n, ONLY : NPAR_ROAD_LAYER_n => NPAR_ROAD_LAYER, & 00044 NPAR_ROOF_LAYER_n => NPAR_ROOF_LAYER, & 00045 NPAR_WALL_LAYER_n => NPAR_WALL_LAYER, & 00046 XPAR_Z0_TOWN, XPAR_BLD, XPAR_ALB_ROOF, & 00047 XPAR_EMIS_ROOF, XPAR_HC_ROOF, XPAR_TC_ROOF, & 00048 XPAR_D_ROOF, XPAR_ALB_ROAD, XPAR_EMIS_ROAD, & 00049 XPAR_HC_ROAD, XPAR_TC_ROAD, XPAR_D_ROAD, & 00050 XPAR_ALB_WALL, XPAR_EMIS_WALL, XPAR_HC_WALL, & 00051 XPAR_TC_WALL, XPAR_D_WALL, XPAR_BLD_HEIGHT, & 00052 XPAR_WALL_O_HOR, & 00053 XPAR_H_TRAFFIC, XPAR_LE_TRAFFIC, & 00054 XPAR_H_INDUSTRY, XPAR_LE_INDUSTRY , & 00055 XPAR_GARDEN, NPAR_BLDTYPE, & 00056 XPAR_ROAD_DIR, NPAR_USETYPE, NPAR_BLD_AGE, & 00057 NPAR_BLDCODE, & 00058 LDATA_Z0_TOWN, LDATA_BLD, LDATA_ALB_ROOF, & 00059 LDATA_EMIS_ROOF, LDATA_HC_ROOF, LDATA_TC_ROOF, & 00060 LDATA_D_ROOF, LDATA_ALB_ROAD, LDATA_EMIS_ROAD, & 00061 LDATA_HC_ROAD, LDATA_TC_ROAD, LDATA_D_ROAD, & 00062 LDATA_ALB_WALL, LDATA_EMIS_WALL, LDATA_HC_WALL,& 00063 LDATA_TC_WALL, LDATA_D_WALL, LDATA_BLD_HEIGHT, & 00064 LDATA_WALL_O_HOR, & 00065 LDATA_H_TRAFFIC, LDATA_LE_TRAFFIC, & 00066 LDATA_H_INDUSTRY, LDATA_LE_INDUSTRY , & 00067 LDATA_GARDEN, LDATA_BLDTYPE, & 00068 LDATA_ROAD_DIR, LDATA_USETYPE, LDATA_BLD_AGE, & 00069 LDATA_ROUGH_ROOF, LDATA_ROUGH_WALL, & 00070 XPAR_ROUGH_ROOF, XPAR_ROUGH_WALL, & 00071 LDATA_GREENROOF, XPAR_GREENROOF 00072 ! 00073 USE MODI_GET_LUOUT 00074 USE MODI_OPEN_NAMELIST 00075 USE MODI_CLOSE_NAMELIST 00076 USE MODI_INI_VAR_FROM_DATA_0D 00077 USE MODI_INI_VAR_FROM_DATA 00078 USE MODI_TEST_NAM_VAR_SURF 00079 USE MODI_READ_CSVDATA_TEB 00080 USE MODI_BLDCODE 00081 ! 00082 USE MODE_POS_SURF 00083 ! 00084 ! 00085 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00086 USE PARKIND1 ,ONLY : JPRB 00087 ! 00088 USE MODI_ABOR1_SFX 00089 ! 00090 IMPLICIT NONE 00091 ! 00092 !* 0.1 Declaration of arguments 00093 ! ------------------------ 00094 ! 00095 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! Type of program 00096 LOGICAL, INTENT(IN) :: OGARDEN ! T if urban green areas 00097 LOGICAL, INTENT(IN) :: OGREENROOF ! T if greenroofs option is activated 00098 CHARACTER(LEN=3), INTENT(OUT) :: HBLD_ATYPE ! Type of building averaging 00099 ! 00100 ! 00101 !* 0.2 Declaration of local variables 00102 ! ------------------------------ 00103 ! 00104 INTEGER :: ILUOUT ! output listing logical unit 00105 INTEGER :: ILUNAM ! namelist file logical unit 00106 LOGICAL :: GFOUND ! true if namelist is found 00107 ! 00108 REAL, DIMENSION(NDIM) :: ZWORK 00109 REAL :: ZUNIF ! temporary variable 00110 ! 00111 !* 0.3 Declaration of namelists 00112 ! ------------------------ 00113 ! 00114 INTEGER, PARAMETER :: NROOF_MAX = 9 00115 INTEGER, PARAMETER :: NROAD_MAX = 9 00116 INTEGER, PARAMETER :: NWALL_MAX = 9 00117 INTEGER :: NPAR_ROAD_LAYER ! number of road layers 00118 INTEGER :: NPAR_ROOF_LAYER ! number of roof layers 00119 INTEGER :: NPAR_WALL_LAYER ! number of wall layers 00120 ! 00121 ! Geometric Parameters: 00122 ! 00123 INTEGER :: NUNIF_BLDTYPE 00124 CHARACTER(LEN=28) :: CFNAM_BLDTYPE 00125 CHARACTER(LEN=6) :: CFTYP_BLDTYPE 00126 INTEGER :: NUNIF_BLD_AGE 00127 CHARACTER(LEN=28) :: CFNAM_BLD_AGE 00128 CHARACTER(LEN=6) :: CFTYP_BLD_AGE 00129 CHARACTER(LEN=28) :: CCSVDATAFILE 00130 INTEGER :: NUNIF_USETYPE 00131 CHARACTER(LEN=28) :: CFNAM_USETYPE 00132 CHARACTER(LEN=6) :: CFTYP_USETYPE 00133 CHARACTER(LEN=3) :: CBLD_ATYPE ! type of averaging for buildings 00134 00135 ! 00136 REAL :: XUNIF_BLD ! fraction of buildings (-) 00137 REAL :: XUNIF_BLD_HEIGHT ! buildings height 'h' (m) 00138 REAL :: XUNIF_WALL_O_HOR ! wall surf. / hor. surf. (-) 00139 REAL :: XUNIF_Z0_TOWN ! roughness length for momentum (m) 00140 REAL :: XUNIF_GARDEN ! fraction of veg in the streets (-) 00141 REAL :: XUNIF_GREENROOF ! fraction of greenroofs on roofs (-) 00142 REAL :: XUNIF_ROAD_DIR ! road direction (° from North, clockwise) 00143 CHARACTER(LEN=28) :: CFNAM_BLD ! file name for BLD 00144 CHARACTER(LEN=28) :: CFNAM_BLD_HEIGHT ! file name for BLD_HEIGHT 00145 CHARACTER(LEN=28) :: CFNAM_WALL_O_HOR ! file name for WALL_O_HOR 00146 CHARACTER(LEN=28) :: CFNAM_Z0_TOWN ! file name for Z0_TOWN 00147 CHARACTER(LEN=28) :: CFNAM_GARDEN ! file name for GARDEN 00148 CHARACTER(LEN=28) :: CFNAM_GREENROOF ! file name for GREENROOF 00149 CHARACTER(LEN=28) :: CFNAM_ROAD_DIR ! file name for ROAD_DIR 00150 CHARACTER(LEN=6) :: CFTYP_BLD ! file type for BLD 00151 CHARACTER(LEN=6) :: CFTYP_BLD_HEIGHT ! file type for BLD_HEIGHT 00152 CHARACTER(LEN=6) :: CFTYP_WALL_O_HOR ! file type for WALL_O_HOR 00153 CHARACTER(LEN=6) :: CFTYP_Z0_TOWN ! file type for Z0_TOWN 00154 CHARACTER(LEN=6) :: CFTYP_GARDEN ! file type for GARDEN 00155 CHARACTER(LEN=6) :: CFTYP_GREENROOF ! file type for GREENROOF 00156 CHARACTER(LEN=6) :: CFTYP_ROAD_DIR ! file type for ROAD_DIR 00157 ! 00158 ! Roof parameters 00159 ! 00160 REAL :: XUNIF_ALB_ROOF ! roof albedo (-) 00161 REAL :: XUNIF_EMIS_ROOF ! roof emissivity (-) 00162 CHARACTER(LEN=28) :: CFNAM_ALB_ROOF ! file name for ALB_ROOF 00163 CHARACTER(LEN=28) :: CFNAM_EMIS_ROOF ! file name for EMIS_ROOF 00164 CHARACTER(LEN=6) :: CFTYP_ALB_ROOF ! file name for ALB_ROOF 00165 CHARACTER(LEN=6) :: CFTYP_EMIS_ROOF ! file name for EMIS_ROOF 00166 REAL, DIMENSION(NROOF_MAX) :: XUNIF_HC_ROOF ! roof layers heat capacity (J/K/m3) 00167 REAL, DIMENSION(NROOF_MAX) :: XUNIF_TC_ROOF ! roof layers thermal conductivity (W/K/m) 00168 REAL, DIMENSION(NROOF_MAX) :: XUNIF_D_ROOF ! depth of roof layers (m) 00169 CHARACTER(LEN=28), DIMENSION(NROOF_MAX) :: CFNAM_HC_ROOF ! file name for HC_ROOF 00170 CHARACTER(LEN=28), DIMENSION(NROOF_MAX) :: CFNAM_TC_ROOF ! file name for TC_ROOF 00171 CHARACTER(LEN=28), DIMENSION(NROOF_MAX) :: CFNAM_D_ROOF ! file name for D_ROOF 00172 CHARACTER(LEN=6), DIMENSION(NROOF_MAX) :: CFTYP_HC_ROOF ! file type for HC_ROOF 00173 CHARACTER(LEN=6), DIMENSION(NROOF_MAX) :: CFTYP_TC_ROOF ! file type for TC_ROOF 00174 CHARACTER(LEN=6), DIMENSION(NROOF_MAX) :: CFTYP_D_ROOF ! file type for D_ROOF 00175 REAL :: XUNIF_ROUGH_ROOF ! roof roughness coef 00176 CHARACTER(LEN=28) :: CFNAM_ROUGH_ROOF ! file name for ROUGH_ROOF 00177 CHARACTER(LEN=6) :: CFTYP_ROUGH_ROOF ! file type for ROUGH_ROOF 00178 ! 00179 ! 00180 ! Road parameters 00181 ! 00182 REAL :: XUNIF_ALB_ROAD ! road albedo (-) 00183 REAL :: XUNIF_EMIS_ROAD ! road emissivity (-) 00184 CHARACTER(LEN=28) :: CFNAM_ALB_ROAD ! file name for ALB_ROAD 00185 CHARACTER(LEN=28) :: CFNAM_EMIS_ROAD ! file name for EMIS_ROAD 00186 CHARACTER(LEN=6) :: CFTYP_ALB_ROAD ! file type for ALB_ROAD 00187 CHARACTER(LEN=6) :: CFTYP_EMIS_ROAD ! file type for EMIS_ROAD 00188 REAL, DIMENSION(NROAD_MAX) :: XUNIF_HC_ROAD ! road layers heat capacity (J/K/m3) 00189 REAL, DIMENSION(NROAD_MAX) :: XUNIF_TC_ROAD ! road layers thermal conductivity (W/K/m) 00190 REAL, DIMENSION(NROAD_MAX) :: XUNIF_D_ROAD ! depth of road layers (m) 00191 CHARACTER(LEN=28), DIMENSION(NROAD_MAX) :: CFNAM_HC_ROAD ! file name for HC_ROAD 00192 CHARACTER(LEN=28), DIMENSION(NROAD_MAX) :: CFNAM_TC_ROAD ! file name for TC_ROAD 00193 CHARACTER(LEN=28), DIMENSION(NROAD_MAX) :: CFNAM_D_ROAD ! file name for D_ROAD 00194 CHARACTER(LEN=6), DIMENSION(NROAD_MAX) :: CFTYP_HC_ROAD ! file type for HC_ROAD 00195 CHARACTER(LEN=6), DIMENSION(NROAD_MAX) :: CFTYP_TC_ROAD ! file type for TC_ROAD 00196 CHARACTER(LEN=6), DIMENSION(NROAD_MAX) :: CFTYP_D_ROAD ! file type for D_ROAD 00197 ! 00198 ! Wall parameters 00199 ! 00200 REAL :: XUNIF_ALB_WALL ! wall albedo (-) 00201 REAL :: XUNIF_EMIS_WALL ! wall emissivity (-) 00202 CHARACTER(LEN=28) :: CFNAM_ALB_WALL ! file name for ALB_WALL 00203 CHARACTER(LEN=28) :: CFNAM_EMIS_WALL ! file name for EMIS_WALL 00204 CHARACTER(LEN=6) :: CFTYP_ALB_WALL ! file type for ALB_WALL 00205 CHARACTER(LEN=6) :: CFTYP_EMIS_WALL ! file type for EMIS_WALL 00206 REAL, DIMENSION(NWALL_MAX) :: XUNIF_HC_WALL ! wall layers heat capacity (J/K/m3) 00207 REAL, DIMENSION(NWALL_MAX) :: XUNIF_TC_WALL ! wall layers thermal conductivity (W/K/m) 00208 REAL, DIMENSION(NWALL_MAX) :: XUNIF_D_WALL ! depth of wall layers (m) 00209 CHARACTER(LEN=28), DIMENSION(NWALL_MAX) :: CFNAM_HC_WALL ! file name for HC_WALL 00210 CHARACTER(LEN=28), DIMENSION(NWALL_MAX) :: CFNAM_TC_WALL ! file name for TC_WALL 00211 CHARACTER(LEN=28), DIMENSION(NWALL_MAX) :: CFNAM_D_WALL ! file name for D_WALL 00212 CHARACTER(LEN=6), DIMENSION(NWALL_MAX) :: CFTYP_HC_WALL ! file type for HC_WALL 00213 CHARACTER(LEN=6), DIMENSION(NWALL_MAX) :: CFTYP_TC_WALL ! file type for TC_WALL 00214 CHARACTER(LEN=6), DIMENSION(NWALL_MAX) :: CFTYP_D_WALL ! file type for D_WALL 00215 REAL :: XUNIF_ROUGH_WALL ! wall roughness coef 00216 CHARACTER(LEN=28) :: CFNAM_ROUGH_WALL ! file name for ROUGH_WALL 00217 CHARACTER(LEN=6) :: CFTYP_ROUGH_WALL ! file type for ROUGH_WALL 00218 ! 00219 ! anthropogenic fluxes 00220 ! 00221 REAL :: XUNIF_H_TRAFFIC ! anthropogenic sensible 00222 ! ! heat fluxes due to traffic (W/m2) 00223 REAL :: XUNIF_LE_TRAFFIC ! anthropogenic latent 00224 ! ! heat fluxes due to traffic (W/m2) 00225 REAL :: XUNIF_H_INDUSTRY ! anthropogenic sensible 00226 ! ! heat fluxes due to factories (W/m2) 00227 REAL :: XUNIF_LE_INDUSTRY ! anthropogenic latent 00228 ! ! heat fluxes due to factories (W/m2) 00229 CHARACTER(LEN=28) :: CFNAM_H_TRAFFIC ! file name for H_TRAFFIC 00230 CHARACTER(LEN=28) :: CFNAM_LE_TRAFFIC ! file name for LE_TRAFFIC 00231 CHARACTER(LEN=28) :: CFNAM_H_INDUSTRY ! file name for H_INDUSTRY 00232 CHARACTER(LEN=28) :: CFNAM_LE_INDUSTRY ! file name for LE_INDUSTRY 00233 CHARACTER(LEN=6) :: CFTYP_H_TRAFFIC ! file type for H_TRAFFIC 00234 CHARACTER(LEN=6) :: CFTYP_LE_TRAFFIC ! file type for LE_TRAFFIC 00235 CHARACTER(LEN=6) :: CFTYP_H_INDUSTRY ! file type for H_INDUSTRY 00236 CHARACTER(LEN=6) :: CFTYP_LE_INDUSTRY ! file type for LE_INDUSTRY 00237 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00238 ! 00239 00240 NAMELIST/NAM_DATA_TEB/ NPAR_ROOF_LAYER, NPAR_ROAD_LAYER, NPAR_WALL_LAYER,& 00241 CBLD_ATYPE, & 00242 NUNIF_BLDTYPE, CFNAM_BLDTYPE, CFTYP_BLDTYPE, & 00243 NUNIF_BLD_AGE, CFNAM_BLD_AGE, CFTYP_BLD_AGE, & 00244 CCSVDATAFILE, & 00245 NUNIF_USETYPE, CFNAM_USETYPE, CFTYP_USETYPE, & 00246 XUNIF_ALB_ROOF, & 00247 XUNIF_EMIS_ROOF, XUNIF_HC_ROOF, XUNIF_TC_ROOF, & 00248 XUNIF_D_ROOF, XUNIF_ALB_ROAD, XUNIF_EMIS_ROAD, & 00249 XUNIF_HC_ROAD, XUNIF_TC_ROAD, XUNIF_D_ROAD, & 00250 XUNIF_ALB_WALL, XUNIF_EMIS_WALL, XUNIF_HC_WALL, & 00251 XUNIF_TC_WALL, XUNIF_D_WALL, & 00252 XUNIF_Z0_TOWN, XUNIF_BLD, XUNIF_BLD_HEIGHT, & 00253 XUNIF_WALL_O_HOR, & 00254 XUNIF_H_TRAFFIC, XUNIF_LE_TRAFFIC, & 00255 XUNIF_H_INDUSTRY, XUNIF_LE_INDUSTRY, & 00256 XUNIF_GARDEN, XUNIF_GREENROOF, & 00257 XUNIF_ROAD_DIR, & 00258 CFNAM_ALB_ROOF, & 00259 CFNAM_EMIS_ROOF, CFNAM_HC_ROOF, CFNAM_TC_ROOF, & 00260 CFNAM_D_ROOF, CFNAM_ALB_ROAD, CFNAM_EMIS_ROAD, & 00261 CFNAM_HC_ROAD, CFNAM_TC_ROAD, CFNAM_D_ROAD, & 00262 CFNAM_ALB_WALL, CFNAM_EMIS_WALL, CFNAM_HC_WALL, & 00263 CFNAM_TC_WALL, CFNAM_D_WALL, & 00264 CFNAM_Z0_TOWN, CFNAM_BLD, CFNAM_BLD_HEIGHT, & 00265 CFNAM_WALL_O_HOR, & 00266 CFNAM_H_TRAFFIC, CFNAM_LE_TRAFFIC, & 00267 CFNAM_H_INDUSTRY, CFNAM_LE_INDUSTRY, & 00268 CFNAM_GARDEN, CFNAM_ROAD_DIR, CFNAM_GREENROOF, & 00269 CFTYP_ALB_ROOF, & 00270 CFTYP_EMIS_ROOF, CFTYP_HC_ROOF, CFTYP_TC_ROOF, & 00271 CFTYP_D_ROOF, CFTYP_ALB_ROAD, CFTYP_EMIS_ROAD, & 00272 CFTYP_HC_ROAD, CFTYP_TC_ROAD, CFTYP_D_ROAD, & 00273 CFTYP_ALB_WALL, CFTYP_EMIS_WALL, CFTYP_HC_WALL, & 00274 CFTYP_TC_WALL, CFTYP_D_WALL, & 00275 CFTYP_Z0_TOWN, CFTYP_BLD, CFTYP_BLD_HEIGHT, & 00276 CFTYP_WALL_O_HOR, & 00277 CFTYP_H_TRAFFIC, CFTYP_LE_TRAFFIC, & 00278 CFTYP_H_INDUSTRY, CFTYP_LE_INDUSTRY, & 00279 CFTYP_GARDEN, CFTYP_ROAD_DIR, CFTYP_GREENROOF, & 00280 XUNIF_ROUGH_ROOF, CFNAM_ROUGH_ROOF, CFTYP_ROUGH_ROOF, & 00281 XUNIF_ROUGH_WALL, CFNAM_ROUGH_WALL, CFTYP_ROUGH_WALL 00282 00283 ! 00284 !------------------------------------------------------------------------------- 00285 ! 00286 !* 1. Initializations 00287 ! --------------- 00288 ! 00289 IF (LHOOK) CALL DR_HOOK('PGD_TEB_PAR',0,ZHOOK_HANDLE) 00290 NPAR_ROOF_LAYER=0 00291 NPAR_ROAD_LAYER=0 00292 NPAR_WALL_LAYER=0 00293 CBLD_ATYPE ='MAJ' 00294 NUNIF_BLDTYPE = NUNDEF 00295 NUNIF_BLD_AGE = NUNDEF 00296 NUNIF_USETYPE = NUNDEF 00297 XUNIF_BLD = XUNDEF 00298 XUNIF_BLD_HEIGHT = XUNDEF 00299 XUNIF_WALL_O_HOR = XUNDEF 00300 XUNIF_Z0_TOWN = XUNDEF 00301 XUNIF_ALB_ROOF = XUNDEF 00302 XUNIF_EMIS_ROOF = XUNDEF 00303 XUNIF_HC_ROOF = XUNDEF 00304 XUNIF_TC_ROOF = XUNDEF 00305 XUNIF_D_ROOF = XUNDEF 00306 XUNIF_ALB_ROAD = XUNDEF 00307 XUNIF_EMIS_ROAD = XUNDEF 00308 XUNIF_HC_ROAD = XUNDEF 00309 XUNIF_TC_ROAD = XUNDEF 00310 XUNIF_D_ROAD = XUNDEF 00311 XUNIF_ALB_WALL = XUNDEF 00312 XUNIF_EMIS_WALL = XUNDEF 00313 XUNIF_HC_WALL = XUNDEF 00314 XUNIF_TC_WALL = XUNDEF 00315 XUNIF_D_WALL = XUNDEF 00316 XUNIF_H_TRAFFIC = XUNDEF 00317 XUNIF_LE_TRAFFIC = XUNDEF 00318 XUNIF_H_INDUSTRY = XUNDEF 00319 XUNIF_LE_INDUSTRY = XUNDEF 00320 XUNIF_GARDEN = XUNDEF 00321 XUNIF_GREENROOF = XUNDEF 00322 XUNIF_ROAD_DIR = XUNDEF 00323 XUNIF_ROUGH_ROOF = XUNDEF 00324 XUNIF_ROUGH_WALL = XUNDEF 00325 00326 CFNAM_BLDTYPE = ' ' 00327 CFNAM_BLD_AGE = ' ' 00328 CFNAM_USETYPE = ' ' 00329 CCSVDATAFILE =' ' 00330 CFNAM_BLD = ' ' 00331 CFNAM_BLD_HEIGHT = ' ' 00332 CFNAM_WALL_O_HOR = ' ' 00333 CFNAM_Z0_TOWN = ' ' 00334 00335 CFNAM_ALB_ROOF (:) = ' ' 00336 CFNAM_EMIS_ROOF(:) = ' ' 00337 CFNAM_HC_ROOF (:) = ' ' 00338 CFNAM_TC_ROOF (:) = ' ' 00339 CFNAM_D_ROOF (:) = ' ' 00340 CFNAM_ROUGH_ROOF(:) = ' ' 00341 CFNAM_ROUGH_WALL(:) = ' ' 00342 CFNAM_ALB_ROAD (:) = ' ' 00343 CFNAM_EMIS_ROAD(:) = ' ' 00344 CFNAM_HC_ROAD (:) = ' ' 00345 CFNAM_TC_ROAD (:) = ' ' 00346 CFNAM_D_ROAD (:) = ' ' 00347 CFNAM_ALB_WALL (:) = ' ' 00348 CFNAM_EMIS_WALL(:) = ' ' 00349 CFNAM_HC_WALL (:) = ' ' 00350 CFNAM_TC_WALL (:) = ' ' 00351 CFNAM_D_WALL (:) = ' ' 00352 00353 CFNAM_H_TRAFFIC = ' ' 00354 CFNAM_LE_TRAFFIC = ' ' 00355 CFNAM_H_INDUSTRY = ' ' 00356 CFNAM_LE_INDUSTRY = ' ' 00357 00358 CFNAM_GARDEN = ' ' 00359 CFNAM_GREENROOF = ' ' 00360 CFNAM_ROAD_DIR = ' ' 00361 00362 CFTYP_BLDTYPE = ' ' 00363 CFTYP_BLD_AGE = ' ' 00364 CFTYP_USETYPE = ' ' 00365 CFTYP_BLD = ' ' 00366 CFTYP_BLD_HEIGHT = ' ' 00367 CFTYP_WALL_O_HOR = ' ' 00368 CFTYP_Z0_TOWN = ' ' 00369 CFTYP_ALB_ROOF(:) = ' ' 00370 CFTYP_EMIS_ROOF(:) = ' ' 00371 CFTYP_HC_ROOF(:) = ' ' 00372 CFTYP_TC_ROOF(:) = ' ' 00373 CFTYP_D_ROOF(:) = ' ' 00374 CFTYP_ROUGH_ROOF(:) = ' ' 00375 CFTYP_ROUGH_WALL(:) = ' ' 00376 CFTYP_ALB_ROAD(:) = ' ' 00377 CFTYP_EMIS_ROAD(:) = ' ' 00378 CFTYP_HC_ROAD(:) = ' ' 00379 CFTYP_TC_ROAD(:) = ' ' 00380 CFTYP_D_ROAD(:) = ' ' 00381 CFTYP_ALB_WALL(:) = ' ' 00382 CFTYP_EMIS_WALL(:) = ' ' 00383 CFTYP_HC_WALL(:) = ' ' 00384 CFTYP_TC_WALL(:) = ' ' 00385 CFTYP_D_WALL(:) = ' ' 00386 CFTYP_H_TRAFFIC = ' ' 00387 CFTYP_LE_TRAFFIC = ' ' 00388 CFTYP_H_INDUSTRY = ' ' 00389 CFTYP_LE_INDUSTRY = ' ' 00390 CFTYP_GARDEN = ' ' 00391 CFTYP_GREENROOF = ' ' 00392 CFTYP_ROAD_DIR = ' ' 00393 ! 00394 00395 ! 00396 !------------------------------------------------------------------------------- 00397 ! 00398 !* 2. Input file for cover types 00399 ! -------------------------- 00400 ! 00401 CALL GET_LUOUT(HPROGRAM,ILUOUT) 00402 CALL OPEN_NAMELIST(HPROGRAM,ILUNAM) 00403 ! 00404 CALL POSNAM(ILUNAM,'NAM_DATA_TEB',GFOUND,ILUOUT) 00405 IF (GFOUND) READ(UNIT=ILUNAM,NML=NAM_DATA_TEB) 00406 ! 00407 CALL CLOSE_NAMELIST(HPROGRAM,ILUNAM) 00408 ! 00409 CALL TEST_NAM_VAR_SURF(ILUOUT,'CBLD_ATYPE',CBLD_ATYPE,'ARI','MAJ') 00410 ! 00411 NPAR_ROOF_LAYER_n = NPAR_ROOF_LAYER 00412 NPAR_ROAD_LAYER_n = NPAR_ROAD_LAYER 00413 NPAR_WALL_LAYER_n = NPAR_WALL_LAYER 00414 ! 00415 HBLD_ATYPE = CBLD_ATYPE 00416 !------------------------------------------------------------------------------- 00417 ! 00418 !* coherence check 00419 ! 00420 IF (( ANY(XUNIF_HC_ROAD/=XUNDEF) .OR. ANY(LEN_TRIM(CFNAM_HC_ROAD)>0) & 00421 .OR. ANY(XUNIF_TC_ROAD/=XUNDEF) .OR. ANY(LEN_TRIM(CFNAM_TC_ROAD)>0) & 00422 .OR. ANY(XUNIF_D_ROAD /=XUNDEF) .OR. ANY(LEN_TRIM(CFNAM_D_ROAD )>0) & 00423 ) .AND. NPAR_ROAD_LAYER<1 ) THEN 00424 CALL ABOR1_SFX('In order to initialize road thermal quantities, please specify NPAR_ROAD_LAYER in namelist NAM_DATA_TEB') 00425 END IF 00426 ! 00427 IF (( ANY(XUNIF_HC_ROOF/=XUNDEF) .OR. ANY(LEN_TRIM(CFNAM_HC_ROOF)>0) & 00428 .OR. ANY(XUNIF_TC_ROOF/=XUNDEF) .OR. ANY(LEN_TRIM(CFNAM_TC_ROOF)>0) & 00429 .OR. ANY(XUNIF_D_ROOF /=XUNDEF) .OR. ANY(LEN_TRIM(CFNAM_D_ROOF )>0) & 00430 ) .AND. NPAR_ROOF_LAYER<1 ) THEN 00431 CALL ABOR1_SFX('In order to initialize ROOF thermal quantities, please specify NPAR_ROOF_LAYER in namelist NAM_DATA_TEB') 00432 END IF 00433 ! 00434 IF (( ANY(XUNIF_HC_WALL/=XUNDEF) .OR. ANY(LEN_TRIM(CFNAM_HC_WALL)>0) & 00435 .OR. ANY(XUNIF_TC_WALL/=XUNDEF) .OR. ANY(LEN_TRIM(CFNAM_TC_WALL)>0) & 00436 .OR. ANY(XUNIF_D_WALL /=XUNDEF) .OR. ANY(LEN_TRIM(CFNAM_D_WALL )>0) & 00437 ) .AND. NPAR_WALL_LAYER<1 ) THEN 00438 CALL ABOR1_SFX('In order to initialize WALL thermal quantities, please specify NPAR_WALL_LAYER in namelist NAM_DATA_TEB') 00439 END IF 00440 !------------------------------------------------------------------------------- 00441 ALLOCATE(NPAR_BLDTYPE (NDIM)) 00442 ALLOCATE(NPAR_BLD_AGE (NDIM)) 00443 ALLOCATE(NPAR_BLDCODE (NDIM)) 00444 ALLOCATE(NPAR_USETYPE (NDIM)) 00445 ALLOCATE(XPAR_Z0_TOWN (NDIM)) 00446 ALLOCATE(XPAR_ALB_ROOF (NDIM)) 00447 ALLOCATE(XPAR_EMIS_ROOF (NDIM)) 00448 ALLOCATE(XPAR_ALB_ROAD (NDIM)) 00449 ALLOCATE(XPAR_EMIS_ROAD (NDIM)) 00450 ALLOCATE(XPAR_ALB_WALL (NDIM)) 00451 ALLOCATE(XPAR_EMIS_WALL (NDIM)) 00452 ALLOCATE(XPAR_BLD (NDIM)) 00453 ALLOCATE(XPAR_BLD_HEIGHT (NDIM)) 00454 ALLOCATE(XPAR_WALL_O_HOR (NDIM)) 00455 ALLOCATE(XPAR_H_TRAFFIC (NDIM)) 00456 ALLOCATE(XPAR_LE_TRAFFIC (NDIM)) 00457 ALLOCATE(XPAR_H_INDUSTRY (NDIM)) 00458 ALLOCATE(XPAR_LE_INDUSTRY (NDIM)) 00459 ALLOCATE(XPAR_GARDEN (NDIM)) 00460 ALLOCATE(XPAR_GREENROOF (NDIM)) 00461 ALLOCATE(XPAR_ROAD_DIR (NDIM)) 00462 ! 00463 ALLOCATE(XPAR_HC_ROOF (NDIM,NPAR_ROOF_LAYER)) 00464 ALLOCATE(XPAR_TC_ROOF (NDIM,NPAR_ROOF_LAYER)) 00465 ALLOCATE(XPAR_D_ROOF (NDIM,NPAR_ROOF_LAYER)) 00466 ALLOCATE(XPAR_HC_ROAD (NDIM,NPAR_ROAD_LAYER)) 00467 ALLOCATE(XPAR_TC_ROAD (NDIM,NPAR_ROAD_LAYER)) 00468 ALLOCATE(XPAR_D_ROAD (NDIM,NPAR_ROAD_LAYER)) 00469 ALLOCATE(XPAR_HC_WALL (NDIM,NPAR_WALL_LAYER)) 00470 ALLOCATE(XPAR_TC_WALL (NDIM,NPAR_WALL_LAYER)) 00471 ALLOCATE(XPAR_D_WALL (NDIM,NPAR_WALL_LAYER)) 00472 ALLOCATE(XPAR_ROUGH_ROOF (NDIM)) 00473 ALLOCATE(XPAR_ROUGH_WALL (NDIM)) 00474 ! 00475 !------------------------------------------------------------------------------- 00476 IF (NROOF_MAX < NPAR_ROOF_LAYER) THEN 00477 WRITE(ILUOUT,*) '---------------------------------------------' 00478 WRITE(ILUOUT,*) 'Please update pgd_teb_par.f90 routine : ' 00479 WRITE(ILUOUT,*) 'The maximum number of ROOF LAYER ' 00480 WRITE(ILUOUT,*) 'in the declaration of the namelist variables ' 00481 WRITE(ILUOUT,*) 'must be increased to : ', NPAR_ROOF_LAYER 00482 WRITE(ILUOUT,*) '---------------------------------------------' 00483 CALL ABOR1_SFX('PGD_TEB_PAR: MAXIMUM NUMBER OF NROOF_LAYER MUST BE INCREASED') 00484 ENDIF 00485 !------------------------------------------------------------------------------- 00486 IF (NROAD_MAX < NPAR_ROAD_LAYER) THEN 00487 WRITE(ILUOUT,*) '---------------------------------------------' 00488 WRITE(ILUOUT,*) 'Please update pgd_teb_par.f90 routine : ' 00489 WRITE(ILUOUT,*) 'The maximum number of ROAD LAYER ' 00490 WRITE(ILUOUT,*) 'in the declaration of the namelist variables ' 00491 WRITE(ILUOUT,*) 'must be increased to : ', NPAR_ROAD_LAYER 00492 WRITE(ILUOUT,*) '---------------------------------------------' 00493 CALL ABOR1_SFX('PGD_TEB_PAR: MAXIMUM NUMBER OF NROAD_LAYER MUST BE INCREASED') 00494 ENDIF 00495 !------------------------------------------------------------------------------- 00496 IF (NWALL_MAX < NPAR_WALL_LAYER) THEN 00497 WRITE(ILUOUT,*) '---------------------------------------------' 00498 WRITE(ILUOUT,*) 'Please update pgd_teb_par.f90 routine : ' 00499 WRITE(ILUOUT,*) 'The maximum number of WALL LAYER ' 00500 WRITE(ILUOUT,*) 'in the declaration of the namelist variables ' 00501 WRITE(ILUOUT,*) 'must be increased to : ', NPAR_WALL_LAYER 00502 WRITE(ILUOUT,*) '---------------------------------------------' 00503 CALL ABOR1_SFX('PGD_TEB_PAR: MAXIMUM NUMBER OF NWALL_LAYER MUST BE INCREASED') 00504 ENDIF 00505 00506 !------------------------------------------------------------------------------- 00507 ! 00508 !* 3. user defined fields are prescribed 00509 ! ---------------------------------- 00510 ! 00511 !* building's type 00512 ZUNIF = XUNDEF 00513 IF (NUNIF_BLDTYPE/=NUNDEF) ZUNIF=FLOAT(NUNIF_BLDTYPE) 00514 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'MAJ','BLDTYPE ','TWN', CFNAM_BLDTYPE,CFTYP_BLDTYPE,ZUNIF,& 00515 ZWORK(:),LDATA_BLDTYPE ) 00516 IF (.NOT. LDATA_BLDTYPE) THEN 00517 DEALLOCATE(NPAR_BLDTYPE) 00518 ELSE 00519 NPAR_BLDTYPE = NINT(ZWORK) 00520 END IF 00521 ! 00522 !* building's age 00523 ZUNIF = XUNDEF 00524 IF (NUNIF_BLD_AGE/=NUNDEF) ZUNIF=FLOAT(NUNIF_BLD_AGE) 00525 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','BLD_AGE ','TWN', CFNAM_BLD_AGE,CFTYP_BLD_AGE,ZUNIF,& 00526 ZWORK(:),LDATA_BLD_AGE ) 00527 IF (.NOT. LDATA_BLD_AGE) THEN 00528 DEALLOCATE(NPAR_BLD_AGE) 00529 ELSE 00530 NPAR_BLD_AGE = NINT(ZWORK) 00531 END IF 00532 ! 00533 IF (LDATA_BLDTYPE .AND. .NOT. LDATA_BLD_AGE) THEN 00534 WRITE(ILUOUT,*) '---------------------------------------------' 00535 WRITE(ILUOUT,*) ' You chose to define building types : ' 00536 IF (NUNIF_BLDTYPE/=NUNDEF) THEN 00537 WRITE(ILUOUT,*) ' NUNIF_BLDTYPE=', NUNIF_BLDTYPE 00538 ELSE 00539 WRITE(ILUOUT,*) ' CFNAM_BLDTYPE =',CFNAM_BLDTYPE 00540 WRITE(ILUOUT,*) ' CFTYP_BLDTYPE =',CFTYP_BLDTYPE 00541 END IF 00542 WRITE(ILUOUT,*) ' But ' 00543 WRITE(ILUOUT,*) " You did not chose to define building's age" 00544 WRITE(ILUOUT,*) '- - - - - - - - - - - - - - - - - - - - - - -' 00545 WRITE(ILUOUT,*) ' Please define the construction date of the buildings. ' 00546 WRITE(ILUOUT,*) ' To do so, use either :' 00547 WRITE(ILUOUT,*) ' NUNIF_BLD_AGE (to have a uniform construction date for all buildings' 00548 WRITE(ILUOUT,*) ' or CFNAM_BLD_AGE and CFTYP_BLD_AGE (to incorporate spatial data ) ' 00549 WRITE(ILUOUT,*) '---------------------------------------------' 00550 CALL ABOR1_SFX("PGD_TEB_PAR: Building's age data is missing") 00551 END IF 00552 ! 00553 !* building's use 00554 ZUNIF = XUNDEF 00555 IF (NUNIF_USETYPE/=NUNDEF) ZUNIF=FLOAT(NUNIF_USETYPE) 00556 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'MAJ','USETYPE ','TWN', CFNAM_USETYPE,CFTYP_USETYPE,ZUNIF,& 00557 ZWORK(:),LDATA_USETYPE ) 00558 IF (.NOT. LDATA_USETYPE) THEN 00559 DEALLOCATE(NPAR_USETYPE) 00560 ELSE 00561 NPAR_USETYPE = NINT(ZWORK) 00562 END IF 00563 ! 00564 IF (LDATA_BLDTYPE .OR. LDATA_BLD_AGE .OR. LDATA_USETYPE) CALL READ_CSVDATA_TEB(HPROGRAM,CCSVDATAFILE) 00565 ! 00566 !* building's code 00567 IF (ASSOCIATED(NPAR_BLDTYPE)) NPAR_BLDCODE(:) = BLDCODE(NPAR_BLDTYPE,NPAR_BLD_AGE) 00568 ! 00569 ! 00570 !* other building parameters 00571 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','BLD ','TWN', CFNAM_BLD,CFTYP_BLD,XUNIF_BLD,XPAR_BLD,LDATA_BLD ) 00572 IF (.NOT.LDATA_BLD) DEALLOCATE(XPAR_BLD) 00573 ! 00574 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','BLD_HEIGHT ','TWN',CFNAM_BLD_HEIGHT,CFTYP_BLD_HEIGHT,XUNIF_BLD_HEIGHT,& 00575 XPAR_BLD_HEIGHT,LDATA_BLD_HEIGHT) 00576 IF (.NOT.LDATA_BLD_HEIGHT) DEALLOCATE(XPAR_BLD_HEIGHT) 00577 ! 00578 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','WALL_O_HOR ','TWN',CFNAM_WALL_O_HOR,CFTYP_WALL_O_HOR,XUNIF_WALL_O_HOR,& 00579 XPAR_WALL_O_HOR,LDATA_WALL_O_HOR) 00580 IF (.NOT.LDATA_WALL_O_HOR) DEALLOCATE(XPAR_WALL_O_HOR) 00581 ! 00582 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'CDN','Z0_TOWN ','TWN',CFNAM_Z0_TOWN,CFTYP_Z0_TOWN,XUNIF_Z0_TOWN,& 00583 XPAR_Z0_TOWN,LDATA_Z0_TOWN) 00584 IF (.NOT.LDATA_Z0_TOWN) DEALLOCATE(XPAR_Z0_TOWN) 00585 ! 00586 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,CBLD_ATYPE,'ALB_ROOF ','TWN',CFNAM_ALB_ROOF,CFTYP_ALB_ROOF,XUNIF_ALB_ROOF ,& 00587 XPAR_ALB_ROOF,LDATA_ALB_ROOF) 00588 IF (.NOT.LDATA_ALB_ROOF) DEALLOCATE(XPAR_ALB_ROOF) 00589 ! 00590 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,CBLD_ATYPE,'EMIS_ROOF ','TWN',CFNAM_EMIS_ROOF,CFTYP_EMIS_ROOF,XUNIF_EMIS_ROOF ,& 00591 XPAR_EMIS_ROOF,LDATA_EMIS_ROOF) 00592 IF (.NOT.LDATA_EMIS_ROOF) DEALLOCATE(XPAR_EMIS_ROOF) 00593 ! 00594 CALL INI_VAR_FROM_DATA(HPROGRAM,CBLD_ATYPE,'HC_ROOF ','TWN',CFNAM_HC_ROOF,CFTYP_HC_ROOF, & 00595 XUNIF_HC_ROOF,XPAR_HC_ROOF,LDATA_HC_ROOF ) 00596 IF (.NOT.LDATA_HC_ROOF) DEALLOCATE(XPAR_HC_ROOF) 00597 ! 00598 CALL INI_VAR_FROM_DATA(HPROGRAM,CBLD_ATYPE,'TC_ROOF ','TWN',CFNAM_TC_ROOF,CFTYP_TC_ROOF, & 00599 XUNIF_TC_ROOF ,XPAR_TC_ROOF, LDATA_TC_ROOF ) 00600 IF (.NOT.LDATA_TC_ROOF) DEALLOCATE(XPAR_TC_ROOF) 00601 ! 00602 CALL INI_VAR_FROM_DATA(HPROGRAM,CBLD_ATYPE,'D_ROOF ','TWN',CFNAM_D_ROOF,CFTYP_D_ROOF, & 00603 XUNIF_D_ROOF ,XPAR_D_ROOF , LDATA_D_ROOF ) 00604 IF (.NOT.LDATA_D_ROOF) DEALLOCATE(XPAR_D_ROOF) 00605 ! 00606 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','ALB_ROAD ','TWN',CFNAM_ALB_ROAD ,CFTYP_ALB_ROAD ,XUNIF_ALB_ROAD ,& 00607 XPAR_ALB_ROAD, LDATA_ALB_ROAD ) 00608 IF (.NOT.LDATA_ALB_ROAD) DEALLOCATE(XPAR_ALB_ROAD) 00609 ! 00610 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','EMIS_ROAD ','TWN',CFNAM_EMIS_ROAD ,CFTYP_EMIS_ROAD ,XUNIF_EMIS_ROAD ,& 00611 XPAR_EMIS_ROAD, LDATA_EMIS_ROAD ) 00612 IF (.NOT.LDATA_EMIS_ROAD) DEALLOCATE(XPAR_EMIS_ROAD) 00613 ! 00614 CALL INI_VAR_FROM_DATA(HPROGRAM,CBLD_ATYPE,'HC_ROAD ','TWN',CFNAM_HC_ROAD ,CFTYP_HC_ROAD , & 00615 XUNIF_HC_ROAD ,XPAR_HC_ROAD, LDATA_HC_ROAD ) 00616 IF (.NOT.LDATA_HC_ROAD) DEALLOCATE(XPAR_HC_ROAD) 00617 ! 00618 CALL INI_VAR_FROM_DATA(HPROGRAM,CBLD_ATYPE,'TC_ROAD ','TWN',CFNAM_TC_ROAD ,CFTYP_TC_ROAD , & 00619 XUNIF_TC_ROAD ,XPAR_TC_ROAD, LDATA_TC_ROAD ) 00620 IF (.NOT.LDATA_TC_ROAD) DEALLOCATE(XPAR_TC_ROAD) 00621 ! 00622 CALL INI_VAR_FROM_DATA(HPROGRAM,'ARI','D_ROAD ','TWN',CFNAM_D_ROAD ,CFTYP_D_ROAD , & 00623 XUNIF_D_ROAD ,XPAR_D_ROAD , LDATA_D_ROAD ) 00624 IF (.NOT.LDATA_D_ROAD) DEALLOCATE(XPAR_D_ROAD) 00625 ! 00626 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,CBLD_ATYPE,'ALB_WALL ','TWN',CFNAM_ALB_WALL ,CFTYP_ALB_WALL ,XUNIF_ALB_WALL ,& 00627 XPAR_ALB_WALL, LDATA_ALB_WALL ) 00628 IF (.NOT.LDATA_ALB_WALL) DEALLOCATE(XPAR_ALB_WALL) 00629 ! 00630 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,CBLD_ATYPE,'EMIS_WALL ','TWN',CFNAM_EMIS_WALL ,CFTYP_EMIS_WALL ,XUNIF_EMIS_WALL ,& 00631 XPAR_EMIS_WALL, LDATA_EMIS_WALL ) 00632 IF (.NOT.LDATA_EMIS_WALL) DEALLOCATE(XPAR_EMIS_WALL) 00633 ! 00634 CALL INI_VAR_FROM_DATA(HPROGRAM,CBLD_ATYPE,'HC_WALL ','TWN',CFNAM_HC_WALL ,CFTYP_HC_WALL , & 00635 XUNIF_HC_WALL ,XPAR_HC_WALL, LDATA_HC_WALL ) 00636 IF (.NOT.LDATA_HC_WALL) DEALLOCATE(XPAR_HC_WALL) 00637 ! 00638 CALL INI_VAR_FROM_DATA(HPROGRAM,CBLD_ATYPE,'TC_WALL ','TWN',CFNAM_TC_WALL ,CFTYP_TC_WALL , & 00639 XUNIF_TC_WALL ,XPAR_TC_WALL, LDATA_TC_WALL ) 00640 IF (.NOT.LDATA_TC_WALL) DEALLOCATE(XPAR_TC_WALL) 00641 ! 00642 CALL INI_VAR_FROM_DATA(HPROGRAM,CBLD_ATYPE,'D_WALL ','TWN',CFNAM_D_WALL ,CFTYP_D_WALL , & 00643 XUNIF_D_WALL ,XPAR_D_WALL , LDATA_D_WALL ) 00644 IF (.NOT.LDATA_D_WALL) DEALLOCATE(XPAR_D_WALL) 00645 ! 00646 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','H_TRAFFIC ','TWN',CFNAM_H_TRAFFIC ,CFTYP_H_TRAFFIC ,XUNIF_H_TRAFFIC ,& 00647 XPAR_H_TRAFFIC, LDATA_H_TRAFFIC ) 00648 IF (.NOT.LDATA_H_TRAFFIC) DEALLOCATE(XPAR_H_TRAFFIC) 00649 ! 00650 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','LE_TRAFFIC ','TWN',CFNAM_LE_TRAFFIC ,CFTYP_LE_TRAFFIC ,XUNIF_LE_TRAFFIC ,& 00651 XPAR_LE_TRAFFIC, LDATA_LE_TRAFFIC ) 00652 IF (.NOT.LDATA_LE_TRAFFIC) DEALLOCATE(XPAR_LE_TRAFFIC) 00653 ! 00654 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','H_INDUSTRY ','TWN',CFNAM_H_INDUSTRY ,CFTYP_H_INDUSTRY ,XUNIF_H_INDUSTRY ,& 00655 XPAR_H_INDUSTRY, LDATA_H_INDUSTRY ) 00656 IF (.NOT.LDATA_H_INDUSTRY) DEALLOCATE(XPAR_H_INDUSTRY) 00657 ! 00658 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','LE_INDUSTRY','TWN',CFNAM_LE_INDUSTRY,CFTYP_LE_INDUSTRY,XUNIF_LE_INDUSTRY,& 00659 XPAR_LE_INDUSTRY, LDATA_LE_INDUSTRY ) 00660 IF (.NOT.LDATA_LE_INDUSTRY) DEALLOCATE(XPAR_LE_INDUSTRY) 00661 ! 00662 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,CBLD_ATYPE,'ROUGH_ROOF','TWN',CFNAM_ROUGH_ROOF,CFTYP_ROUGH_ROOF,XUNIF_ROUGH_ROOF ,& 00663 XPAR_ROUGH_ROOF,LDATA_ROUGH_ROOF) 00664 IF (.NOT.LDATA_ROUGH_ROOF) DEALLOCATE(XPAR_ROUGH_ROOF) 00665 ! 00666 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,CBLD_ATYPE,'ROUGH_WALL','TWN',CFNAM_ROUGH_WALL,CFTYP_ROUGH_WALL,XUNIF_ROUGH_WALL ,& 00667 XPAR_ROUGH_WALL,LDATA_ROUGH_WALL) 00668 IF (.NOT.LDATA_ROUGH_WALL) DEALLOCATE(XPAR_ROUGH_WALL) 00669 00670 !------------------------------------------------------------------------------- 00671 ! 00672 !* coherence checks 00673 ! 00674 CALL COHERENCE_THERMAL_DATA('ROAD',LDATA_HC_ROAD,LDATA_TC_ROAD,LDATA_D_ROAD) 00675 CALL COHERENCE_THERMAL_DATA('ROOF',LDATA_HC_ROOF,LDATA_TC_ROOF,LDATA_D_ROOF) 00676 CALL COHERENCE_THERMAL_DATA('WALL',LDATA_HC_WALL,LDATA_TC_WALL,LDATA_D_WALL) 00677 00678 !------------------------------------------------------------------------------- 00679 ! 00680 !* road directions 00681 ! 00682 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','ROAD_DIR ','TWN',CFNAM_ROAD_DIR ,CFTYP_ROAD_DIR ,XUNIF_ROAD_DIR ,& 00683 XPAR_ROAD_DIR, LDATA_ROAD_DIR ) 00684 IF (.NOT.LDATA_ROAD_DIR) DEALLOCATE(XPAR_ROAD_DIR) 00685 ! 00686 !------------------------------------------------------------------------------- 00687 ! 00688 !* greenroof fraction 00689 ! 00690 IF (OGREENROOF) THEN 00691 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,CBLD_ATYPE,'GREENROOF','BLD',CFNAM_GREENROOF,CFTYP_GREENROOF,XUNIF_GREENROOF ,& 00692 XPAR_GREENROOF,LDATA_GREENROOF) 00693 IF (.NOT.LDATA_GREENROOF) DEALLOCATE(XPAR_GREENROOF) 00694 ELSE IF ( (XUNIF_GREENROOF/=0. .AND. XUNIF_GREENROOF/=XUNDEF) .OR. LEN_TRIM(CFNAM_GREENROOF)/=0) THEN 00695 WRITE(ILUOUT,*) '---------------------------------------------' 00696 WRITE(ILUOUT,*) ' You chose not to include greenroofs in urban areas : LGREENROOF=.FALSE. ' 00697 WRITE(ILUOUT,*) ' But ' 00698 IF (XUNIF_GREENROOF/=0. .AND. XUNIF_GREENROOF/=XUNDEF) THEN 00699 WRITE(ILUOUT,*) ' You also chose a greenroof fraction that is not zero : XUNIF_GREENROOF=',XUNIF_GREENROOF 00700 ELSE 00701 WRITE(ILUOUT,*) ' You also chose a greenroof fraction that is not zero : CFNAM_GREENROOF=',CFNAM_GREENROOF 00702 END IF 00703 WRITE(ILUOUT,*) '- - - - - - - - - - - - - - - - - - - - - - -' 00704 WRITE(ILUOUT,*) ' Please choose either:' 00705 WRITE(ILUOUT,*) ' LGREENROOF=.TRUE. or set GREENROOF fraction to zero (XUNIF_GREENROOF=0.) in namelist PGD_TEB_PAR' 00706 WRITE(ILUOUT,*) '---------------------------------------------' 00707 CALL ABOR1_SFX('PGD_TEB_PAR: GREENROOF flag and GREENROOF fraction not coherent') 00708 END IF 00709 ! 00710 !------------------------------------------------------------------------------- 00711 ! 00712 !* gardens 00713 ! 00714 IF (OGARDEN) THEN 00715 CALL INI_VAR_FROM_DATA_0D(HPROGRAM,'ARI','GARDEN ','TWN',CFNAM_GARDEN ,CFTYP_GARDEN ,XUNIF_GARDEN ,& 00716 XPAR_GARDEN, LDATA_GARDEN ) 00717 IF (.NOT.LDATA_GARDEN) DEALLOCATE(XPAR_GARDEN) 00718 ELSE IF ( (XUNIF_GARDEN/=0. .AND. XUNIF_GARDEN/=XUNDEF) .OR. LEN_TRIM(CFNAM_GARDEN)/=0) THEN 00719 WRITE(ILUOUT,*) '---------------------------------------------' 00720 WRITE(ILUOUT,*) ' You chose not to include gardens in urban areas : LGARDEN=.FALSE. ' 00721 WRITE(ILUOUT,*) ' But ' 00722 IF (XUNIF_GARDEN/=0. .AND. XUNIF_GARDEN/=XUNDEF) THEN 00723 WRITE(ILUOUT,*) ' You also chose a garden fraction that is not zero : XUNIF_GARDEN=',XUNIF_GARDEN 00724 ELSE 00725 WRITE(ILUOUT,*) ' You also chose a garden fraction that is not zero : CFNAM_GARDEN=',CFNAM_GARDEN 00726 END IF 00727 WRITE(ILUOUT,*) '- - - - - - - - - - - - - - - - - - - - - - -' 00728 WRITE(ILUOUT,*) ' Please choose either:' 00729 WRITE(ILUOUT,*) ' LGARDEN=.TRUE. or set GARDEN fraction to zero (XUNIF_GARDEN=0.) in namelist PGD_TEB_PAR' 00730 WRITE(ILUOUT,*) '- - - - - - - - - - - - - - - - - - - - - - -' 00731 WRITE(ILUOUT,*) ' Beware that in this case, it may be necessary to change the' 00732 WRITE(ILUOUT,*) ' road fraction if you want to keep the same canyon aspect ratio' 00733 WRITE(ILUOUT,*) '---------------------------------------------' 00734 CALL ABOR1_SFX('PGD_TEB_PAR: GARDEN flag and GARDEN fraction not coherent') 00735 END IF 00736 ! 00737 ! 00738 !------------------------------------------------------------------------------- 00739 IF (LHOOK) CALL DR_HOOK('PGD_TEB_PAR',1,ZHOOK_HANDLE) 00740 !------------------------------------------------------------------------------- 00741 CONTAINS 00742 SUBROUTINE COHERENCE_THERMAL_DATA(HTYPE,ODATA_HC,ODATA_TC,ODATA_D) 00743 CHARACTER(LEN=4), INTENT(IN) :: HTYPE 00744 LOGICAL, INTENT(IN) :: ODATA_HC 00745 LOGICAL, INTENT(IN) :: ODATA_TC 00746 LOGICAL, INTENT(IN) :: ODATA_D 00747 ! 00748 IF (ODATA_HC .OR. ODATA_TC .OR. ODATA_D) THEN 00749 IF (.NOT. (ODATA_HC .AND. ODATA_TC .AND. ODATA_D)) THEN 00750 WRITE(ILUOUT,*) '*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*' 00751 WRITE(ILUOUT,*) 'When specifying data for thermal ',TRIM(HTYPE),' characteristics,' 00752 WRITE(ILUOUT,*) 'All three parameters MUST be defined:' 00753 WRITE(ILUOUT,*) 'Heat capacity, Thermal conductivity and depths of layers' 00754 WRITE(ILUOUT,*) ' ' 00755 WRITE(ILUOUT,*) 'In your case :' 00756 IF (ODATA_HC) THEN 00757 WRITE(ILUOUT,*) 'Heat capacity is defined' 00758 ELSE 00759 WRITE(ILUOUT,*) 'Heat capacity is NOT defined' 00760 END IF 00761 IF (ODATA_TC) THEN 00762 WRITE(ILUOUT,*) 'Thermal conductivity is defined' 00763 ELSE 00764 WRITE(ILUOUT,*) 'Thermal conductivity is NOT defined' 00765 END IF 00766 IF (ODATA_D) THEN 00767 WRITE(ILUOUT,*) 'Depths of layers are defined' 00768 ELSE 00769 WRITE(ILUOUT,*) 'Depths of layers are NOT defined' 00770 END IF 00771 WRITE(ILUOUT,*) '*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*' 00772 CALL ABOR1_SFX('Heat capacity, Thermal conductivity and depths of layers MUST all be defined for '//HTYPE) 00773 END IF 00774 END IF 00775 END SUBROUTINE COHERENCE_THERMAL_DATA 00776 !------------------------------------------------------------------------------- 00777 ! 00778 END SUBROUTINE PGD_TEB_PAR