SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE AVG_URBAN_FLUXES( & 00003 PTS_TOWN, PEMIS_TOWN, & 00004 PT_CANYON, PQ_CANYON, & 00005 PT_LOWCAN, PQ_LOWCAN, & 00006 PTS_ROOF,PTS_ROAD,PTS_WALL_A,PTS_WALL_B,PTS_GARDEN, & 00007 PTA, PQA, PRHOA, PPS, & 00008 PH_TRAFFIC, PLE_TRAFFIC, PH_INDUSTRY, PLE_INDUSTRY, & 00009 PBLD, PROAD, PGARDEN, PWALL_O_HOR, PWALL_O_GRND, & 00010 PFRAC_GR, & 00011 PEMIS_ROOF, PESNOW_ROOF, PEMIS_GREENROOF, & 00012 PLW_RAD, & 00013 PABS_LW_ROOF, PABS_LW_WALL_A, PABS_LW_WALL_B, & 00014 PABS_LW_ROAD, PABS_LW_GARDEN, PABS_LW_GREENROOF, & 00015 PABS_LW_SNOW_ROOF, PABS_LW_SNOW_ROAD, & 00016 PAC_ROOF, PAC_ROOF_WAT, & 00017 PAC_WALL, PAC_ROAD, PAC_ROAD_WAT, PAC_TOP, & 00018 PAC_GARDEN, & 00019 PQSAT_GARDEN, PAC_AGG_GARDEN, PHU_AGG_GARDEN, & 00020 PQSAT_ROOF, PQSAT_ROAD, & 00021 PDELT_ROOF, PDELT_ROAD, & 00022 PROOF_FRAC, PWALL_FRAC, PROAD_FRAC, PGARDEN_FRAC, & 00023 PTOTS_O_HORS, & 00024 PDF_ROOF, PDN_ROOF, PDF_ROAD, PDN_ROAD, & 00025 PRN_ROOF, PH_ROOF, PLE_ROOF, PGFLUX_ROOF, & 00026 PRN_ROAD, PH_ROAD, PLE_ROAD, PGFLUX_ROAD, & 00027 PRN_GARDEN, PH_GARDEN, PLE_GARDEN, PGFLUX_GARDEN, & 00028 PRN_WALL_A, PH_WALL_A, PLE_WALL_A, PGFLUX_WALL_A, & 00029 PRN_WALL_B, PH_WALL_B, PLE_WALL_B, PGFLUX_WALL_B, & 00030 PLEW_ROOF, PLESNOW_ROOF, & 00031 PLEW_ROAD, PLESNOW_ROAD, PHSNOW_ROAD, & 00032 PEVAP_GARDEN, PEVAP_GREENROOF, & 00033 PRN_GRND, PH_GRND, PLE_GRND, PGFLUX_GRND, & 00034 PRN_TOWN, PH_TOWN, PLE_TOWN, PGFLUX_TOWN, PEVAP_TOWN, & 00035 PH_WASTE, PLE_WASTE, PF_WASTE_CAN, & 00036 PABS_LW_WIN, PT_WIN1, PGR, PEMIT_LW_ROAD, & 00037 PEMIT_LW_GARDEN, PEMIT_LW_GRND, HBEM, & 00038 PSVF_ROAD, PSVF_GARDEN, PSVF_WALL, PGARDEN_O_GRND, & 00039 PROAD_O_GRND, & 00040 PEMIS_ROAD, PESNOW_ROAD, PEMIS_WALL, PEMIS_GARDEN, & 00041 OCANOPY ) 00042 ! ########################################################################## 00043 ! 00044 !!**** *AVG_URBAN_FLUXES* computes fluxes on urbanized surfaces 00045 !! 00046 !! PURPOSE 00047 !! ------- 00048 ! 00049 ! 00050 !!** METHOD 00051 ! ------ 00052 ! 00053 ! 00054 ! 00055 ! 00056 !! EXTERNAL 00057 !! -------- 00058 !! 00059 !! 00060 !! IMPLICIT ARGUMENTS 00061 !! ------------------ 00062 !! 00063 !! MODD_CST 00064 !! 00065 !! 00066 !! REFERENCE 00067 !! --------- 00068 !! 00069 !! 00070 !! AUTHOR 00071 !! ------ 00072 !! 00073 !! V. Masson * Meteo-France * 00074 !! 00075 !! MODIFICATIONS 00076 !! ------------- 00077 !! Original 23/01/98 00078 !! 12/02 (A. Lemonsu) modifications of emissivity and Tstown 00079 !! 07/07 (P. LeMoigne) expression of latent heat fluxes as 00080 !! functions of w'theta' instead of w'T' 00081 !! 17/10 (G. Pigeon) computation of anthropogenic heat due 00082 !! to domestic heating 00083 !! 10/11 (G. Pigeon) simplification for road, garden, roof, 00084 !! wall fractions 00085 !------------------------------------------------------------------------------- 00086 ! 00087 !* 0. DECLARATIONS 00088 ! ------------ 00089 ! 00090 USE MODD_CSTS,ONLY : XCPD, XLVTT, XLSTT, XSTEFAN 00091 ! 00092 USE MODE_THERMOS 00093 ! 00094 ! 00095 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00096 USE PARKIND1 ,ONLY : JPRB 00097 ! 00098 IMPLICIT NONE 00099 ! 00100 !* 0.1 declarations of arguments 00101 ! 00102 ! 00103 REAL, DIMENSION(:), INTENT(OUT) :: PTS_TOWN ! town surface temperature 00104 REAL, DIMENSION(:), INTENT(OUT) :: PEMIS_TOWN ! town equivalent emissivity 00105 REAL, DIMENSION(:), INTENT(INOUT) :: PT_CANYON ! canyon air temperature 00106 REAL, DIMENSION(:), INTENT(INOUT) :: PQ_CANYON ! canyon air specific humidity 00107 REAL, DIMENSION(:), INTENT(IN) :: PT_LOWCAN ! low canyon air temperature 00108 REAL, DIMENSION(:), INTENT(IN) :: PQ_LOWCAN ! low canyon air specific humidity 00109 REAL, DIMENSION(:), INTENT(IN) :: PTS_ROOF ! roof surface temperature 00110 REAL, DIMENSION(:), INTENT(IN) :: PTS_ROAD ! road surface temperature 00111 REAL, DIMENSION(:), INTENT(IN) :: PTS_WALL_A ! wall surface temperature 00112 REAL, DIMENSION(:), INTENT(IN) :: PTS_WALL_B ! wall surface temperature 00113 REAL, DIMENSION(:), INTENT(IN) :: PTS_GARDEN ! green area surface temperature 00114 00115 REAL, DIMENSION(:), INTENT(IN) :: PTA ! temperature at roof level 00116 REAL, DIMENSION(:), INTENT(IN) :: PQA ! specific humidity 00117 ! at roof level 00118 REAL, DIMENSION(:), INTENT(IN) :: PRHOA ! air density 00119 ! at the lowest level 00120 REAL, DIMENSION(:), INTENT(IN) :: PPS ! surface pressure 00121 REAL, DIMENSION(:), INTENT(IN) :: PH_TRAFFIC ! anthropogenic sensible 00122 ! ! heat fluxes due to traffic 00123 REAL, DIMENSION(:), INTENT(IN) :: PLE_TRAFFIC ! anthropogenic latent 00124 ! ! heat fluxes due to traffic 00125 REAL, DIMENSION(:), INTENT(IN) :: PH_INDUSTRY ! anthropogenic sensible 00126 ! ! heat fluxes due to factories 00127 REAL, DIMENSION(:), INTENT(IN) :: PLE_INDUSTRY ! anthropogenic latent 00128 ! ! heat fluxes due to factories 00129 REAL, DIMENSION(:), INTENT(IN) :: PBLD ! fraction of buildings 00130 REAL, DIMENSION(:), INTENT(IN) :: PROAD ! fraction of roads 00131 REAL, DIMENSION(:), INTENT(IN) :: PGARDEN ! fraction of green areas 00132 REAL, DIMENSION(:), INTENT(IN) :: PWALL_O_HOR ! wall Surf. / (bld+road+green) Surf. 00133 REAL, DIMENSION(:), INTENT(IN) :: PWALL_O_GRND ! wall Surf. / ground (road+green) Surf. 00134 REAL, DIMENSION(:), INTENT(IN) :: PFRAC_GR ! fraction of green roofs 00135 REAL, DIMENSION(:), INTENT(IN) :: PEMIS_ROOF ! roof emissivity 00136 ! 00137 REAL, DIMENSION(:), INTENT(IN) :: PESNOW_ROOF ! snow roof emissivity 00138 ! 00139 REAL, DIMENSION(:), INTENT(IN) :: PEMIS_GREENROOF ! green roof emissivity 00140 ! 00141 REAL, DIMENSION(:), INTENT(IN) :: PLW_RAD ! incoming longwave rad. 00142 ! 00143 REAL, DIMENSION(:), INTENT(IN) :: PABS_LW_ROOF ! absorbed LW rad. by roof 00144 REAL, DIMENSION(:), INTENT(IN) :: PABS_LW_WALL_A ! absorbed LW rad. by wall 00145 REAL, DIMENSION(:), INTENT(IN) :: PABS_LW_WALL_B ! absorbed LW rad. by wall 00146 REAL, DIMENSION(:), INTENT(IN) :: PABS_LW_ROAD ! absorbed LW rad. by road 00147 REAL, DIMENSION(:), INTENT(IN) :: PABS_LW_GARDEN ! absorbed LW rad. by green areas 00148 REAL, DIMENSION(:), INTENT(IN) :: PABS_LW_GREENROOF ! absorbed LW rad. by green roofs 00149 REAL, DIMENSION(:), INTENT(IN) :: PABS_LW_SNOW_ROOF ! abs. LW rad. by snow 00150 REAL, DIMENSION(:), INTENT(IN) :: PABS_LW_SNOW_ROAD ! abs. LW rad. by snow 00151 ! 00152 REAL, DIMENSION(:), INTENT(IN) :: PAC_ROOF ! surface conductance 00153 ! ! for heat transfers 00154 ! ! above roofs 00155 REAL, DIMENSION(:), INTENT(IN) :: PAC_ROOF_WAT ! surface conductance 00156 ! ! for heat transfers 00157 ! ! above roofs (for water) 00158 REAL, DIMENSION(:), INTENT(IN) :: PAC_WALL ! surface conductance 00159 ! ! for heat transfer 00160 ! ! between wall and canyon 00161 REAL, DIMENSION(:), INTENT(IN) :: PAC_ROAD ! surface conductance 00162 ! ! for heat transfers 00163 ! ! between road and canyon 00164 REAL, DIMENSION(:), INTENT(IN) :: PAC_ROAD_WAT ! surface conductance 00165 ! ! for heat transfers 00166 ! ! inside canyon (for water) 00167 REAL, DIMENSION(:), INTENT(IN) :: PAC_TOP ! aerodynamical conductance 00168 ! ! between atmosphere and 00169 ! ! canyon top 00170 REAL, DIMENSION(:), INTENT(IN) :: PAC_GARDEN ! aerodynamical conductance 00171 ! ! between atmosphere and 00172 ! ! green areas 00173 REAL, DIMENSION(:), INTENT(IN) :: PQSAT_GARDEN ! q_sat(Ts) 00174 REAL, DIMENSION(:), INTENT(IN) :: PAC_AGG_GARDEN ! aggregated aerodyn resistance for green areas 00175 REAL, DIMENSION(:), INTENT(IN) :: PHU_AGG_GARDEN ! aggregated relative humidity for green areas 00176 ! 00177 REAL, DIMENSION(:), INTENT(IN) :: PQSAT_ROOF ! q_sat(Ts) 00178 REAL, DIMENSION(:), INTENT(IN) :: PQSAT_ROAD ! q_sat(Ts) 00179 REAL, DIMENSION(:), INTENT(IN) :: PDELT_ROOF ! water fraction on snow-free 00180 REAL, DIMENSION(:), INTENT(IN) :: PDELT_ROAD ! roof and roads 00181 REAL, DIMENSION(:), INTENT(IN) :: PROOF_FRAC ! roof, wall, 00182 REAL, DIMENSION(:), INTENT(IN) :: PWALL_FRAC ! road, and green area 00183 REAL, DIMENSION(:), INTENT(IN) :: PROAD_FRAC ! fractions 00184 REAL, DIMENSION(:), INTENT(IN) :: PGARDEN_FRAC ! of exchange surf. 00185 REAL, DIMENSION(:), INTENT(IN) :: PTOTS_O_HORS ! total canyon+roof surface 00186 ! ! over horizontal surface 00187 REAL, DIMENSION(:), INTENT(IN) :: PDF_ROOF ! snow-free roof fraction 00188 REAL, DIMENSION(:), INTENT(IN) :: PDN_ROOF ! snow-covered roof fraction 00189 REAL, DIMENSION(:), INTENT(IN) :: PDF_ROAD ! snow-free road fraction 00190 REAL, DIMENSION(:), INTENT(IN) :: PDN_ROAD ! snow-covered road fraction 00191 ! 00192 REAL, DIMENSION(:), INTENT(IN) :: PRN_ROOF ! net radiation over roof 00193 REAL, DIMENSION(:), INTENT(IN) :: PH_ROOF ! sensible heat flux over roof 00194 REAL, DIMENSION(:), INTENT(IN) :: PLE_ROOF ! latent heat flux over roof 00195 REAL, DIMENSION(:), INTENT(IN) :: PGFLUX_ROOF ! flux through the roof 00196 REAL, DIMENSION(:), INTENT(IN) :: PRN_ROAD ! net radiation over road 00197 REAL, DIMENSION(:), INTENT(IN) :: PH_ROAD ! sensible heat flux over road 00198 REAL, DIMENSION(:), INTENT(IN) :: PLE_ROAD ! latent heat flux over road 00199 REAL, DIMENSION(:), INTENT(IN) :: PGFLUX_ROAD ! flux through the road 00200 REAL, DIMENSION(:), INTENT(IN) :: PRN_GARDEN ! net radiation over green areas 00201 REAL, DIMENSION(:), INTENT(IN) :: PH_GARDEN ! sensible heat flux over green areas 00202 REAL, DIMENSION(:), INTENT(IN) :: PLE_GARDEN ! latent heat flux over green areas 00203 REAL, DIMENSION(:), INTENT(IN) :: PGFLUX_GARDEN ! flux through the green areas 00204 REAL, DIMENSION(:), INTENT(IN) :: PRN_WALL_A ! net radiation over wall 00205 REAL, DIMENSION(:), INTENT(IN) :: PH_WALL_A ! sensible heat flux over wall 00206 REAL, DIMENSION(:), INTENT(IN) :: PLE_WALL_A ! latent heat flux over wall 00207 REAL, DIMENSION(:), INTENT(IN) :: PGFLUX_WALL_A ! flux through the wall 00208 REAL, DIMENSION(:), INTENT(IN) :: PRN_WALL_B ! net radiation over wall 00209 REAL, DIMENSION(:), INTENT(IN) :: PH_WALL_B ! sensible heat flux over wall 00210 REAL, DIMENSION(:), INTENT(IN) :: PLE_WALL_B ! latent heat flux over wall 00211 REAL, DIMENSION(:), INTENT(IN) :: PGFLUX_WALL_B ! flux through the wall 00212 ! 00213 REAL, DIMENSION(:), INTENT(IN) :: PLEW_ROOF ! latent heat flux of snowfree roof 00214 REAL, DIMENSION(:), INTENT(IN) :: PLESNOW_ROOF ! latent heat flux over snow 00215 REAL, DIMENSION(:), INTENT(IN) :: PLEW_ROAD ! latent heat flux of snowfree road 00216 REAL, DIMENSION(:), INTENT(IN) :: PLESNOW_ROAD ! latent heat flux over snow 00217 REAL, DIMENSION(:), INTENT(IN) :: PHSNOW_ROAD ! sensible heat flux over snow 00218 REAL, DIMENSION(:), INTENT(IN) :: PEVAP_GARDEN ! evaporation over gardens 00219 REAL, DIMENSION(:), INTENT(IN) :: PEVAP_GREENROOF ! evaporation over green roofs 00220 ! 00221 REAL, DIMENSION(:), INTENT(OUT) :: PRN_GRND ! net radiation over ground 00222 REAL, DIMENSION(:), INTENT(OUT) :: PH_GRND ! sensible heat flux over ground 00223 REAL, DIMENSION(:), INTENT(OUT) :: PLE_GRND ! latent heat flux over ground 00224 REAL, DIMENSION(:), INTENT(OUT) :: PGFLUX_GRND ! flux through the ground 00225 REAL, DIMENSION(:), INTENT(OUT) :: PRN_TOWN ! net radiation over town 00226 REAL, DIMENSION(:), INTENT(OUT) :: PH_TOWN ! sensible heat flux over town 00227 REAL, DIMENSION(:), INTENT(OUT) :: PLE_TOWN ! latent heat flux over town 00228 REAL, DIMENSION(:), INTENT(OUT) :: PGFLUX_TOWN ! flux through the ground for town 00229 REAL, DIMENSION(:), INTENT(OUT) :: PEVAP_TOWN ! evaporation (kg/m2/s) 00230 ! 00231 REAL, DIMENSION(:), INTENT(IN) :: PH_WASTE ! sensible waste heat released by HVAC systems 00232 REAL, DIMENSION(:), INTENT(IN) :: PLE_WASTE ! latent waste heat released by HVAC systems 00233 REAL, DIMENSION(:), INTENT(IN) :: PF_WASTE_CAN ! fraction of waste heat released into the canyon 00234 REAL, DIMENSION(:), INTENT(IN) :: PABS_LW_WIN ! absorbed LW radiation by windows 00235 REAL, DIMENSION(:), INTENT(IN) :: PT_WIN1 ! window outdoor temperature 00236 REAL, DIMENSION(:), INTENT(IN) :: PGR ! glazing ratio 00237 ! 00238 REAL, DIMENSION(:), INTENT(IN) :: PEMIT_LW_ROAD ! LW emitted by the road (W/m² road) 00239 REAL, DIMENSION(:), INTENT(IN) :: PEMIT_LW_GARDEN ! LW emitted by the garden (W/m² garden) 00240 REAL, DIMENSION(:), INTENT(OUT) :: PEMIT_LW_GRND ! LW emitted by the ground (road+garden) (W/m² ground) 00241 CHARACTER(LEN=3), INTENT(IN) :: HBEM ! Building Energy model 'DEF' or 'BEM' 00242 REAL, DIMENSION(:), INTENT(IN) :: PGARDEN_O_GRND! garden surf. / (road+garden surf.) 00243 REAL, DIMENSION(:), INTENT(IN) :: PROAD_O_GRND ! road surf. / (road+garden surf.) 00244 00245 REAL, DIMENSION(:), INTENT(IN) :: PSVF_ROAD ! road sky view factor 00246 REAL, DIMENSION(:), INTENT(IN) :: PSVF_GARDEN ! garden sky view factor 00247 REAL, DIMENSION(:), INTENT(IN) :: PSVF_WALL ! wall sky view factor 00248 REAL, DIMENSION(:), INTENT(IN) :: PEMIS_ROAD ! snow free road emissivity 00249 REAL, DIMENSION(:), INTENT(IN) :: PESNOW_ROAD ! snow (road) emissivity 00250 REAL, DIMENSION(:), INTENT(IN) :: PEMIS_WALL ! wall emissivity 00251 REAL, DIMENSION(:), INTENT(IN) :: PEMIS_GARDEN ! garden emissivity 00252 LOGICAL, INTENT(IN) :: OCANOPY ! is canopy active ? 00253 ! 00254 !* 0.2 declarations of local variables 00255 ! 00256 REAL, DIMENSION(SIZE(PLW_RAD)) :: ZLW_UP ! upwards radiations 00257 REAL, DIMENSION(SIZE(PROAD)) :: ZQSAT_CANYON 00258 REAL, DIMENSION(SIZE(PROAD)) :: ZROAD, ZGARDEN 00259 ! 00260 INTEGER :: JJ 00261 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00262 !------------------------------------------------------------------------------- 00263 ! 00264 IF (LHOOK) CALL DR_HOOK('AVG_URBAN_FLUXES',0,ZHOOK_HANDLE) 00265 ! 00266 ZROAD(:)=0. 00267 ZGARDEN(:)=0. 00268 ! 00269 DO JJ=1,SIZE(PROAD) 00270 ! 00271 IF (PROAD(JJ)+PGARDEN(JJ).NE.0.) THEN 00272 ZROAD(JJ) = PROAD(JJ) / (PROAD(JJ)+PGARDEN(JJ)) 00273 ZGARDEN(JJ) = PGARDEN(JJ) / (PROAD(JJ)+PGARDEN(JJ)) 00274 ELSE 00275 ZROAD(JJ)=0. 00276 ZGARDEN(JJ)=0. 00277 ENDIF 00278 ! 00279 !* 1. Averaged fluxes for ground (green areas + road) 00280 ! ----------------------------------------------- 00281 ! 00282 PRN_GRND(JJ) = ZROAD (JJ) * PRN_ROAD (JJ) + ZGARDEN(JJ) * PRN_GARDEN(JJ) 00283 ! 00284 PH_GRND (JJ) = ZROAD (JJ) * PH_ROAD (JJ) + ZGARDEN(JJ) * PH_GARDEN (JJ) & 00285 + PH_TRAFFIC(JJ) / (1.-PBLD (JJ)) 00286 ! 00287 PLE_GRND(JJ) = ZROAD (JJ) * PLE_ROAD (JJ) + ZGARDEN(JJ) * PLE_GARDEN(JJ) & 00288 + PLE_TRAFFIC(JJ) / (1.-PBLD (JJ)) 00289 ! 00290 PGFLUX_GRND(JJ) = ZROAD (JJ) * PGFLUX_ROAD (JJ) + ZGARDEN(JJ) * PGFLUX_GARDEN(JJ) 00291 ! 00292 ! 00293 PEMIT_LW_GRND(JJ) = PROAD_O_GRND(JJ) * PEMIT_LW_ROAD(JJ) + PGARDEN_O_GRND(JJ) * PEMIT_LW_GARDEN(JJ) 00294 !------------------------------------------------------------------------------- 00295 ! 00296 !* 2. Averaged fluxes JJ built + green areas 00297 ! ------------------------------------- 00298 ! 00299 PRN_TOWN(JJ) = PTOTS_O_HORS(JJ) * ( & 00300 PROOF_FRAC (JJ) * PRN_ROOF (JJ) & 00301 + PROAD_FRAC (JJ) * PRN_ROAD (JJ) & 00302 + PGARDEN_FRAC(JJ) * PRN_GARDEN (JJ) & 00303 + PWALL_FRAC (JJ) * PRN_WALL_A (JJ) * 0.5 & 00304 + PWALL_FRAC (JJ) * PRN_WALL_B (JJ) * 0.5 ) 00305 ! 00306 PH_TOWN (JJ) = PTOTS_O_HORS(JJ) * ( & 00307 PROOF_FRAC (JJ) * PH_ROOF (JJ) & 00308 + PROAD_FRAC (JJ) * PH_ROAD (JJ) & 00309 + PGARDEN_FRAC(JJ) * PH_GARDEN (JJ) & 00310 + PWALL_FRAC (JJ) * PH_WALL_A (JJ) * 0.5 & 00311 + PWALL_FRAC (JJ) * PH_WALL_B (JJ) * 0.5 ) & 00312 + PH_TRAFFIC(JJ) & 00313 + PH_INDUSTRY(JJ) 00314 ! 00315 PLE_TOWN(JJ) = PTOTS_O_HORS(JJ) * ( & 00316 PROOF_FRAC (JJ) * PLE_ROOF (JJ) & 00317 + PROAD_FRAC (JJ) * PLE_ROAD (JJ) & 00318 + PGARDEN_FRAC(JJ) * PLE_GARDEN(JJ) & 00319 + PWALL_FRAC (JJ) * PLE_WALL_A(JJ) * 0.5 & 00320 + PWALL_FRAC (JJ) * PLE_WALL_B(JJ) * 0.5 ) & 00321 + PLE_TRAFFIC (JJ) & 00322 + PLE_INDUSTRY(JJ) 00323 ! 00324 PGFLUX_TOWN(JJ)= PTOTS_O_HORS(JJ) * ( & 00325 PROOF_FRAC (JJ) * PGFLUX_ROOF (JJ) & 00326 + PROAD_FRAC (JJ) * PGFLUX_ROAD (JJ) & 00327 + PGARDEN_FRAC(JJ) * PGFLUX_GARDEN(JJ) & 00328 + PWALL_FRAC (JJ) * PGFLUX_WALL_A(JJ) * 0.5 & 00329 + PWALL_FRAC (JJ) * PGFLUX_WALL_B(JJ) * 0.5 ) 00330 ! 00331 !------------------------------------------------------------------------------- 00332 ! 00333 !* 3. Infra-red Radiative properties 00334 ! ------------------------------ 00335 ! 00336 !* 3.1 Upward IR radiation for town 00337 ! ---------------------------- 00338 ! 00339 ZLW_UP(JJ) = PLW_RAD (JJ) & 00340 - ( PROOF_FRAC (JJ)*(1.-PFRAC_GR(JJ))*PDF_ROOF (JJ)*PABS_LW_ROOF (JJ) & 00341 +PROOF_FRAC (JJ)*(1.-PFRAC_GR(JJ))*PDN_ROOF (JJ)*PABS_LW_SNOW_ROOF (JJ) & 00342 +PROOF_FRAC (JJ)* PFRAC_GR(JJ) *PABS_LW_GREENROOF (JJ) & 00343 +PROAD_FRAC (JJ) *PDF_ROAD (JJ)*PABS_LW_ROAD (JJ) & 00344 +PROAD_FRAC (JJ) *PDN_ROAD (JJ)*PABS_LW_SNOW_ROAD (JJ) & 00345 +PGARDEN_FRAC(JJ) *PABS_LW_GARDEN (JJ) & 00346 +PWALL_FRAC (JJ)* 0.5 *PABS_LW_WALL_A (JJ) & 00347 +PWALL_FRAC (JJ)* 0.5 *PABS_LW_WALL_B (JJ) & 00348 )*PTOTS_O_HORS(JJ) 00349 ! 00350 !* 3.2 Town emissivity 00351 ! --------------- 00352 ! 00353 PEMIS_TOWN(JJ) = PBLD (JJ)*(1.-PFRAC_GR (JJ))*PDF_ROOF(JJ)*PEMIS_ROOF (JJ) & 00354 + PBLD (JJ)*(1.-PFRAC_GR (JJ))*PDN_ROOF(JJ)*PESNOW_ROOF (JJ) & 00355 + PBLD (JJ)* PFRAC_GR (JJ) *PEMIS_GREENROOF(JJ) & 00356 + PROAD (JJ)*( PSVF_ROAD (JJ) *PDF_ROAD(JJ)*PEMIS_ROAD (JJ) & 00357 + PSVF_ROAD (JJ) *PDN_ROAD(JJ)*PESNOW_ROAD (JJ))& 00358 + PGARDEN (JJ)* PSVF_GARDEN(JJ) *PEMIS_GARDEN (JJ) & 00359 + PWALL_O_HOR(JJ)* PSVF_WALL (JJ) *PEMIS_WALL (JJ) 00360 !* 3.3 Town radiative surface temperature 00361 ! ---------------------------------- 00362 ! 00363 PTS_TOWN(JJ) = ((ZLW_UP(JJ) - PLW_RAD(JJ)*(1.-PEMIS_TOWN(JJ))) /PEMIS_TOWN(JJ)/XSTEFAN)**0.25 00364 ! 00365 !------------------------------------------------------------------------------- 00366 ! 00367 !* 4. Averaged evaporative flux (kg/m2/s) 00368 ! ----------------------------------- 00369 ! 00370 PEVAP_TOWN(JJ) = PTOTS_O_HORS(JJ)*( & 00371 PROOF_FRAC (JJ)*PDF_ROOF(JJ)*(1.-PFRAC_GR(JJ))*PLEW_ROOF (JJ) /XLVTT & 00372 + PROOF_FRAC (JJ)*PDN_ROOF(JJ)*(1.-PFRAC_GR(JJ))*PLESNOW_ROOF (JJ) /XLSTT & 00373 + PROOF_FRAC (JJ) * PFRAC_GR(JJ) *PEVAP_GREENROOF (JJ) & 00374 + PROAD_FRAC (JJ)*PDF_ROAD(JJ) *PLEW_ROAD (JJ) /XLVTT & 00375 + PROAD_FRAC (JJ)*PDN_ROAD(JJ) *PLESNOW_ROAD (JJ) /XLSTT & 00376 + PGARDEN_FRAC(JJ) *PEVAP_GARDEN (JJ) & 00377 + PWALL_FRAC (JJ)*0.5 * (PLE_WALL_A(JJ)+PLE_WALL_B (JJ))/XLVTT) & 00378 + PROOF_FRAC (JJ) *(1.-PF_WASTE_CAN(JJ))*PLE_WASTE (JJ) /XLVTT & 00379 + PLE_TRAFFIC (JJ) /XLVTT & 00380 + PLE_INDUSTRY(JJ) /XLVTT 00381 ! 00382 !------------------------------------------------------------------------------- 00383 ! 00384 !* 5. Air canyon temperature at time t+dt 00385 ! ----------------------------------- 00386 ! 00387 IF (.NOT. OCANOPY) THEN 00388 PT_CANYON(JJ) = & 00389 ( PTS_ROAD (JJ) * PAC_ROAD (JJ) * PDF_ROAD (JJ) * ZROAD (JJ) & 00390 + PTS_GARDEN (JJ) * PAC_GARDEN(JJ) * ZGARDEN(JJ) & 00391 + PTS_WALL_A (JJ) * PAC_WALL (JJ) * (1.-PGR(JJ)) * PWALL_O_GRND(JJ) * 0.5 & 00392 + PTS_WALL_B (JJ) * PAC_WALL (JJ) * (1.-PGR(JJ)) * PWALL_O_GRND(JJ) * 0.5 & 00393 + PT_WIN1 (JJ) * PAC_WALL (JJ) * PGR(JJ) * PWALL_O_GRND(JJ) & 00394 + PTA (JJ) * PAC_TOP (JJ) & 00395 + PH_TRAFFIC (JJ) / (1.-PBLD (JJ)) / PRHOA(JJ) / XCPD & 00396 + PHSNOW_ROAD (JJ) * PDN_ROAD (JJ) / PRHOA(JJ) / XCPD & 00397 + PH_WASTE(JJ) * PF_WASTE_CAN(JJ)/(1-PBLD(JJ))/ PRHOA(JJ) / XCPD ) & 00398 / ( PAC_ROAD (JJ) * PDF_ROAD (JJ) * ZROAD (JJ) & 00399 + PAC_GARDEN(JJ) * ZGARDEN(JJ) & 00400 + PAC_WALL (JJ) * PWALL_O_GRND(JJ) & 00401 + PAC_TOP (JJ) ) 00402 ! 00403 !------------------------------------------------------------------------------- 00404 ! 00405 !* 6. Air canyon specific humidity 00406 ! ---------------------------- 00407 ! 00408 PQ_CANYON(JJ) = & 00409 ( PQSAT_ROAD (JJ) * PAC_ROAD_WAT (JJ) * PDF_ROAD(JJ) * ZROAD (JJ) * PDELT_ROAD(JJ) & 00410 + PQSAT_GARDEN (JJ) * PAC_AGG_GARDEN(JJ) * PHU_AGG_GARDEN(JJ) * ZGARDEN(JJ) & 00411 + PQA (JJ) * PAC_TOP(JJ) & 00412 + PLE_TRAFFIC (JJ) / (1.-PBLD(JJ)) / PRHOA(JJ) / XLVTT & 00413 + PLESNOW_ROAD (JJ) * PDN_ROAD(JJ) / PRHOA(JJ) / XLVTT * ZROAD (JJ) & 00414 + PLE_WASTE(JJ) * PF_WASTE_CAN(JJ) / (1-PBLD(JJ)) / PRHOA(JJ) / XLVTT ) & 00415 / ( PAC_ROAD_WAT (JJ) * PDF_ROAD(JJ) * PDELT_ROAD(JJ) * ZROAD (JJ) & 00416 + PAC_AGG_GARDEN(JJ) * PHU_AGG_GARDEN(JJ) * ZGARDEN(JJ) & 00417 + PAC_TOP(JJ) ) 00418 ENDIF 00419 ! 00420 ENDDO 00421 ! 00422 !*check that canyon specif. humidity lower than saturation 00423 ! 00424 ZQSAT_CANYON(:) = QSAT (PT_CANYON(:), PPS(:)) 00425 WHERE (PQ_CANYON(:) > ZQSAT_CANYON(:)) 00426 PQ_CANYON(:) = ZQSAT_CANYON(:) 00427 END WHERE 00428 IF (LHOOK) CALL DR_HOOK('AVG_URBAN_FLUXES',1,ZHOOK_HANDLE) 00429 !------------------------------------------------------------------------------- 00430 ! 00431 END SUBROUTINE AVG_URBAN_FLUXES