SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/avg_urban_fluxes.F90
Go to the documentation of this file.
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