SURFEX v7.3
General documentation of Surfex
|
00001 ! ######################### 00002 SUBROUTINE INI_DATA_PARAM_TEB(KTYPE, & 00003 PZ0_TOWN, PALB_ROOF, PALB_ROAD, PALB_WALL, & 00004 PEMIS_ROOF, PEMIS_ROAD, PEMIS_WALL, PHC_ROOF, & 00005 PHC_ROAD, PHC_WALL, PTC_ROOF, PTC_ROAD, PTC_WALL, & 00006 PD_ROOF, PD_ROAD, PD_WALL, PBLD_HEIGHT, & 00007 PWALL_O_HOR, PBLD, PCAN_HW_RATIO, PH_TRAFFIC, & 00008 PLE_TRAFFIC, PH_INDUSTRY, PLE_INDUSTRY, & 00009 PGARDEN, OGARDEN, PHC_FLOOR, & 00010 PTC_FLOOR, PD_FLOOR, PTCOOL_TARGET, PTHEAT_TARGET, & 00011 PF_WASTE_CAN, PEFF_HEAT, PQIN, PQIN_FRAD, PSHGC, & 00012 PU_WIN, PGR, PSHGC_SH, PFLOOR_HEIGHT, PINF, & 00013 PF_WATER_COND, PQIN_FLAT, PHR_TARGET, PV_VENT, & 00014 PCAP_SYS_HEAT, PCAP_SYS_RAT, PT_ADP, PM_SYS_RAT, & 00015 PCOP_RAT, PT_SIZE_MAX, PT_SIZE_MIN, PSHADE, & 00016 PNATVENT, PROUGH_ROOF, PROUGH_WALL, PGREENROOF ) 00017 00018 ! ######################### 00019 ! 00020 !! 00021 !! PURPOSE 00022 !! ------- 00023 !! 00024 !! METHOD 00025 !! ------ 00026 !! 00027 !! 00028 !! EXTERNAL 00029 !! -------- 00030 !! 00031 !! IMPLICIT ARGUMENTS 00032 !! ------------------ 00033 !! 00034 !! REFERENCE 00035 !! --------- 00036 !! 00037 !! AUTHOR 00038 !! ------ 00039 !! 00040 !! S. Faroux & V. Masson Meteo-France 00041 !! 00042 !! MODIFICATION 00043 !! ------------ 00044 !! 00045 !! Original 05/2012 from INI_DATA_PARAM_TEB, separates urban parameters 00046 !! modified 08/2012 add PROUGH_ROOF, PROUGH_WALL 00047 !---------------------------------------------------------------------------- 00048 ! 00049 !* 0. DECLARATION 00050 ! ----------- 00051 ! 00052 USE MODD_BLD_DESCRIPTION 00053 ! 00054 USE MODI_ABOR1_SFX 00055 ! 00056 ! 00057 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00058 USE PARKIND1 ,ONLY : JPRB 00059 ! 00060 IMPLICIT NONE 00061 ! 00062 !* 0.1 Declaration of arguments 00063 ! ------------------------ 00064 ! 00065 INTEGER, DIMENSION(:), INTENT(IN) :: KTYPE 00066 ! 00067 ! town parameters 00068 ! --------------- 00069 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PZ0_TOWN 00070 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PALB_ROOF 00071 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PALB_ROAD 00072 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PALB_WALL 00073 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PEMIS_ROOF 00074 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PEMIS_ROAD 00075 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PEMIS_WALL 00076 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PHC_ROOF 00077 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PHC_ROAD 00078 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PHC_WALL 00079 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PTC_ROOF 00080 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PTC_ROAD 00081 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PTC_WALL 00082 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PD_ROOF 00083 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PD_ROAD 00084 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PD_WALL 00085 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PBLD_HEIGHT 00086 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PWALL_O_HOR 00087 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PBLD 00088 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PCAN_HW_RATIO 00089 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PH_TRAFFIC 00090 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PLE_TRAFFIC 00091 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PH_INDUSTRY 00092 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PLE_INDUSTRY 00093 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PGARDEN 00094 LOGICAL, INTENT(IN), OPTIONAL :: OGARDEN 00095 ! 00096 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PHC_FLOOR 00097 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PTC_FLOOR 00098 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PD_FLOOR 00099 ! 00100 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PTCOOL_TARGET 00101 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PTHEAT_TARGET 00102 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PF_WASTE_CAN 00103 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PEFF_HEAT 00104 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PQIN 00105 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PQIN_FRAD 00106 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PSHGC 00107 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PU_WIN 00108 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PGR 00109 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PSHGC_SH 00110 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PFLOOR_HEIGHT 00111 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PINF 00112 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PF_WATER_COND 00113 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PQIN_FLAT 00114 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PHR_TARGET 00115 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PV_VENT 00116 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PCAP_SYS_HEAT 00117 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PCAP_SYS_RAT 00118 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PT_ADP 00119 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PM_SYS_RAT 00120 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PCOP_RAT 00121 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PT_SIZE_MAX 00122 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PT_SIZE_MIN 00123 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PSHADE 00124 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PNATVENT 00125 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PROUGH_ROOF 00126 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PROUGH_WALL 00127 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PGREENROOF 00128 ! 00129 !* 0.2 Declaration of local variables 00130 ! ------------------------------ 00131 ! 00132 INTEGER, DIMENSION(:), ALLOCATABLE :: ILIST ! link between urban types and indices 00133 REAL, DIMENSION(SIZE(KTYPE)) :: ZGARDEN 00134 INTEGER :: JLOOP ! spatial loop counter 00135 INTEGER :: JLIST ! loop counter on urban types 00136 INTEGER :: IINDEX ! index of type for each point 00137 ! 00138 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00139 ! 00140 !------------------------------------------------------------------------------- 00141 !------------------------------------------------------------------------------- 00142 ! 00143 IF (LHOOK) CALL DR_HOOK('INI_DATA_PARAM_TEB',0,ZHOOK_HANDLE) 00144 ! 00145 !------------------------------------------------------------------------------- 00146 ! 00147 !* 1. Builds the list of indices corresponding to the "type" field 00148 ! ------------------------------------------------------------------ 00149 ! 00150 ! 00151 ALLOCATE(ILIST(MAXVAL(NDESC_CODE_LIST))) 00152 ILIST(:) = 0 00153 DO JLIST=1,NDESC_CODE 00154 ILIST(NDESC_CODE_LIST(JLIST)) = JLIST 00155 END DO 00156 ! 00157 IINDEX = 0 00158 ! 00159 !------------------------------------------------------------------------------- 00160 DO JLOOP=1,SIZE(KTYPE) 00161 !------------------------------------------------------------------------------- 00162 ! 00163 !* 1. town parameters depending on urban characteristics 00164 ! -------------------------------------------------------- 00165 ! 00166 IF (KTYPE(JLOOP)<=SIZE(ILIST) .AND. KTYPE(JLOOP)>0) IINDEX = ILIST(KTYPE(JLOOP)) 00167 00168 IF (PRESENT(PZ0_TOWN)) THEN 00169 PZ0_TOWN(JLOOP)=1. 00170 ENDIF 00171 IF (PRESENT(PBLD_HEIGHT)) THEN 00172 PBLD_HEIGHT(JLOOP)=10. 00173 ENDIF 00174 00175 ZGARDEN(JLOOP)=0. 00176 IF (PRESENT(OGARDEN)) THEN 00177 IF (.NOT. OGARDEN) ZGARDEN(JLOOP) = 0. 00178 ENDIF 00179 IF (PRESENT(PGARDEN)) THEN 00180 PGARDEN(JLOOP)=ZGARDEN(JLOOP) 00181 ENDIF 00182 00183 IF (PRESENT(PBLD)) THEN 00184 PBLD(JLOOP)=0.5 00185 PBLD(JLOOP) = PBLD(JLOOP) / (1. - ZGARDEN(JLOOP)) 00186 ENDIF 00187 00188 IF (PRESENT(PWALL_O_HOR)) THEN 00189 PWALL_O_HOR(JLOOP)=0.5 00190 PWALL_O_HOR(JLOOP) = PWALL_O_HOR(JLOOP) / (1. - ZGARDEN(JLOOP)) 00191 ENDIF 00192 00193 IF (PRESENT(PCAN_HW_RATIO) .AND. PRESENT(PBLD) .AND. PRESENT(PWALL_O_HOR)) THEN 00194 PCAN_HW_RATIO(JLOOP)= 0.5 * PWALL_O_HOR(JLOOP) / (1.-PBLD(JLOOP)) 00195 ELSEIF (PRESENT(PCAN_HW_RATIO) .AND. & 00196 (.NOT.PRESENT(PBLD) .OR. .NOT.PRESENT(PWALL_O_HOR)) ) THEN 00197 CALL ABOR1_SFX("INI_DATA_PARAM_TEB: WHEN CALLING WITH CAN_HW_RATIO, BLD AND "// & 00198 "WALL_O_HOR MUST ALSO BE IN ARGUMENTS") 00199 ENDIF 00200 00201 IF (PRESENT(PH_TRAFFIC)) THEN 00202 PH_TRAFFIC(JLOOP)= 10. 00203 ENDIF 00204 00205 IF (PRESENT(PLE_TRAFFIC)) THEN 00206 PLE_TRAFFIC(JLOOP)= 0. 00207 ENDIF 00208 00209 IF (PRESENT(PH_INDUSTRY)) THEN 00210 PH_INDUSTRY(JLOOP)= 5. 00211 ENDIF 00212 00213 IF (PRESENT(PLE_INDUSTRY)) THEN 00214 PLE_INDUSTRY(JLOOP)= 0. 00215 ENDIF 00216 00217 IF (PRESENT(PALB_ROAD)) THEN 00218 PALB_ROAD(JLOOP)=XDESC_ALB_ROAD(IINDEX) 00219 ENDIF 00220 IF (PRESENT(PEMIS_ROAD)) THEN 00221 PEMIS_ROAD(JLOOP)=XDESC_EMIS_ROAD(IINDEX) 00222 ENDIF 00223 IF (PRESENT(PHC_ROAD)) THEN 00224 PHC_ROAD(JLOOP,:)= XDESC_HC_ROAD(IINDEX,:) 00225 ENDIF 00226 IF (PRESENT(PTC_ROAD)) THEN 00227 PTC_ROAD(JLOOP,:)= XDESC_TC_ROAD(IINDEX,:) 00228 ENDIF 00229 IF (PRESENT(PD_ROAD)) THEN 00230 PD_ROAD(JLOOP,:)= XDESC_D_ROAD(IINDEX,:) 00231 ENDIF 00232 ! 00233 !------------------------------------------------------------------------------- 00234 ! 00235 !* 2. town parameters depending on building descriptions 00236 ! -------------------------------------------------------- 00237 ! 00238 IF (KTYPE(JLOOP)<=SIZE(ILIST) .AND. KTYPE(JLOOP)>0) IINDEX = ILIST(KTYPE(JLOOP)) 00239 ! 00240 IF (PRESENT(PALB_ROOF)) THEN 00241 PALB_ROOF(JLOOP)=XDESC_ALB_ROOF(IINDEX) 00242 ENDIF 00243 IF (PRESENT(PALB_WALL)) THEN 00244 PALB_WALL(JLOOP)=XDESC_ALB_WALL(IINDEX) 00245 ENDIF 00246 00247 IF (PRESENT(PEMIS_ROOF)) THEN 00248 PEMIS_ROOF(JLOOP)=XDESC_EMIS_ROOF(IINDEX) 00249 ENDIF 00250 IF (PRESENT(PEMIS_WALL)) THEN 00251 PEMIS_WALL(JLOOP)=XDESC_EMIS_WALL(IINDEX) 00252 ENDIF 00253 00254 IF (PRESENT(PHC_ROOF)) THEN 00255 PHC_ROOF(JLOOP,:)= XDESC_HC_ROOF(IINDEX,:) 00256 ENDIF 00257 IF (PRESENT(PHC_WALL)) THEN 00258 PHC_WALL(JLOOP,:)= XDESC_HC_WALL(IINDEX,:) 00259 ENDIF 00260 00261 IF (PRESENT(PTC_ROOF)) THEN 00262 PTC_ROOF(JLOOP,:)= XDESC_TC_ROOF(IINDEX,:) 00263 ENDIF 00264 IF (PRESENT(PTC_WALL)) THEN 00265 PTC_WALL(JLOOP,:)= XDESC_TC_WALL(IINDEX,:) 00266 ENDIF 00267 00268 IF (PRESENT(PD_ROOF)) THEN 00269 PD_ROOF(JLOOP,:)= XDESC_D_ROOF(IINDEX,:) 00270 ENDIF 00271 IF (PRESENT(PD_WALL)) THEN 00272 PD_WALL(JLOOP,:)= XDESC_D_WALL(IINDEX,:) 00273 ENDIF 00274 00275 00276 IF (PRESENT(PHC_FLOOR)) THEN 00277 PHC_FLOOR(JLOOP,:)= XDESC_HC_FLOOR(IINDEX,:) 00278 ENDIF 00279 00280 IF (PRESENT(PTC_FLOOR)) THEN 00281 PTC_FLOOR(JLOOP,:)= XDESC_TC_FLOOR(IINDEX,:) 00282 ENDIF 00283 00284 IF (PRESENT(PD_FLOOR)) THEN 00285 PD_FLOOR(JLOOP,:)= XDESC_D_FLOOR(IINDEX,:) 00286 ENDIF 00287 ! 00288 IF (PRESENT(PEFF_HEAT)) THEN 00289 PEFF_HEAT(JLOOP) = XDESC_EFF_HEAT(IINDEX) 00290 ENDIF 00291 ! 00292 IF (PRESENT(PSHGC)) THEN 00293 PSHGC(JLOOP) = XDESC_SHGC(IINDEX) 00294 ENDIF 00295 ! 00296 IF (PRESENT(PU_WIN)) THEN 00297 PU_WIN(JLOOP) = XDESC_U_WIN(IINDEX) 00298 ENDIF 00299 ! 00300 IF (PRESENT(PGR)) THEN 00301 PGR(JLOOP) = XDESC_GR(IINDEX) 00302 ENDIF 00303 00304 IF (PRESENT(PCOP_RAT)) THEN 00305 PCOP_RAT(JLOOP) = XDESC_COP_RAT(IINDEX) 00306 ENDIF 00307 ! 00308 IF (PRESENT(PF_WATER_COND)) THEN 00309 PF_WATER_COND(JLOOP) = XDESC_F_WATER_COND(IINDEX) 00310 ENDIF 00311 ! 00312 IF (PRESENT(PF_WASTE_CAN)) THEN 00313 PF_WASTE_CAN(JLOOP) = XDESC_F_WASTE_CAN(IINDEX) 00314 ENDIF 00315 ! 00316 IF (PRESENT(PINF)) THEN 00317 PINF(JLOOP) = XDESC_INF(IINDEX) 00318 ENDIF 00319 ! 00320 IF (PRESENT(PV_VENT)) THEN 00321 PV_VENT(JLOOP) = XDESC_V_VENT(IINDEX) 00322 ENDIF 00323 ! 00324 IF (PRESENT(PGREENROOF)) THEN 00325 PGREENROOF(JLOOP) = XDESC_GREENROOF(IINDEX) 00326 ENDIF 00327 ! 00328 ! 00329 !------------------------------------------------------------------------------- 00330 ! 00331 !* 3. town parameters depending on building use 00332 ! ----------------------------------------------- 00333 ! 00334 IF (KTYPE(JLOOP)<=SIZE(NDESC_USE_LIST) .AND. KTYPE(JLOOP)>0) & 00335 IINDEX = NDESC_USE_LIST(KTYPE(JLOOP)) 00336 ! 00337 IF (PRESENT(PTCOOL_TARGET)) THEN 00338 PTCOOL_TARGET(JLOOP) = XDESC_TCOOL_TARGET(IINDEX) 00339 ENDIF 00340 ! 00341 IF (PRESENT(PTHEAT_TARGET)) THEN 00342 PTHEAT_TARGET(JLOOP) = XDESC_THEAT_TARGET(IINDEX) 00343 ENDIF 00344 ! 00345 IF (PRESENT(PQIN)) THEN 00346 PQIN(JLOOP) = XDESC_QIN(IINDEX) 00347 ENDIF 00348 ! 00349 IF (PRESENT(PQIN_FLAT)) THEN 00350 PQIN_FLAT(JLOOP) = XDESC_QIN_FLAT(IINDEX) 00351 ENDIF 00352 ! 00353 IF (PRESENT(PSHGC_SH)) THEN 00354 PSHGC_SH(JLOOP) = XDESC_SHGC_SH(IINDEX) 00355 ENDIF 00356 ! 00357 IF (PRESENT(PSHADE)) THEN 00358 PSHADE(JLOOP) = XDESC_SHADE(IINDEX) 00359 ENDIF 00360 ! 00361 IF (PRESENT(PNATVENT)) THEN 00362 PNATVENT(JLOOP) = XDESC_NATVENT(IINDEX) 00363 ENDIF 00364 00365 ! 00366 !------------------------------------------------------------------------------- 00367 ! 00368 !* 4. town parameters not depending on anything yet 00369 ! --------------------------------------------------- 00370 ! 00371 IF (PRESENT(PCAP_SYS_HEAT)) THEN 00372 PCAP_SYS_HEAT(JLOOP) = 100. 00373 ENDIF 00374 ! 00375 IF (PRESENT(PCAP_SYS_RAT)) THEN 00376 PCAP_SYS_RAT(JLOOP) = 90. 00377 ENDIF 00378 ! 00379 IF (PRESENT(PT_ADP)) THEN 00380 PT_ADP(JLOOP) = 285.66 00381 ENDIF 00382 ! 00383 IF (PRESENT(PM_SYS_RAT)) THEN 00384 PM_SYS_RAT(JLOOP) = 0.0067 00385 ENDIF 00386 ! 00387 IF (PRESENT(PT_SIZE_MAX)) THEN 00388 PT_SIZE_MAX(JLOOP) = 301.95 00389 ENDIF 00390 ! 00391 IF (PRESENT(PT_SIZE_MIN)) THEN 00392 PT_SIZE_MIN(JLOOP) = 268.96 00393 ENDIF 00394 ! 00395 IF (PRESENT(PFLOOR_HEIGHT)) THEN 00396 PFLOOR_HEIGHT(JLOOP) = 2.9 00397 ENDIF 00398 ! 00399 IF (PRESENT(PQIN_FRAD)) THEN 00400 PQIN_FRAD(JLOOP) = 0.2 00401 ENDIF 00402 ! 00403 IF (PRESENT(PHR_TARGET)) THEN 00404 PHR_TARGET(JLOOP) = 0.5 00405 ENDIF 00406 ! 00407 IF (PRESENT(PROUGH_ROOF)) THEN 00408 PROUGH_ROOF(JLOOP) = 1.52 00409 ENDIF 00410 ! 00411 IF (PRESENT(PROUGH_WALL)) THEN 00412 PROUGH_WALL(JLOOP) = 1.52 00413 ENDIF 00414 00415 ! 00416 END DO 00417 ! 00418 DEALLOCATE(ILIST) 00419 ! 00420 IF (LHOOK) CALL DR_HOOK('INI_DATA_PARAM_TEB',1,ZHOOK_HANDLE) 00421 !------------------------------------------------------------------------------- 00422 ! 00423 END SUBROUTINE INI_DATA_PARAM_TEB