SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/teb_garden.F90
Go to the documentation of this file.
00001 !     #########
00002     SUBROUTINE TEB_GARDEN (HZ0H, HIMPLICIT_WIND, HROAD_DIR, HWALL_OPT, TPTIME,&
00003                      PTSUN, PT_CANYON, PQ_CANYON, PU_CANYON,                  &
00004                      PT_LOWCAN, PQ_LOWCAN, PU_LOWCAN, PZ_LOWCAN, PTI_BLD,     &
00005                      PT_ROOF, PT_ROAD, PT_WALL_A, PT_WALL_B,                  &
00006                      PWS_ROOF,PWS_ROAD,                                       &
00007                      HSNOW_ROOF,                                              &
00008                      PWSNOW_ROOF, PTSNOW_ROOF, PRSNOW_ROOF, PASNOW_ROOF,      &
00009                      PTSSNOW_ROOF, PESNOW_ROOF,                               &
00010                      HSNOW_ROAD,                                              &
00011                      PWSNOW_ROAD, PTSNOW_ROAD, PRSNOW_ROAD, PASNOW_ROAD,      &
00012                      PTSSNOW_ROAD, PESNOW_ROAD,                               &
00013                      PPEW_A_COEF, PPEW_B_COEF,                                &
00014                      PPEW_A_COEF_LOWCAN, PPEW_B_COEF_LOWCAN,                  &
00015                      PPS, PPA, PEXNS, PEXNA,                                  &
00016                      PTA, PQA, PRHOA, PCO2,                                   &
00017                      PLW_RAD, PDIR_SW, PSCA_SW, PSW_BANDS, KSW,               &
00018                      PZENITH, PAZIM,                                          &
00019                      PRR, PSR,                                                &
00020                      PZREF, PUREF, PVMOD,                                     &
00021                      PH_TRAFFIC, PLE_TRAFFIC, PH_INDUSTRY, PLE_INDUSTRY,      &
00022                      PTSTEP, PZ0_TOWN, PBLD, PGARDEN, PROAD_DIR, PROAD,       &
00023                      PFRAC_GR,                                                &
00024                      PBLD_HEIGHT, PWALL_O_HOR, PCAN_HW_RATIO,                 &
00025                      PROAD_O_GRND, PGARDEN_O_GRND, PWALL_O_GRND,              &
00026                      PALB_ROOF, PEMIS_ROOF,                                   &
00027                      PHC_ROOF,PTC_ROOF,PD_ROOF,                               &
00028                      PALB_ROAD, PEMIS_ROAD, PSVF_ROAD,                        &
00029                      PHC_ROAD,PTC_ROAD,PD_ROAD,                               &
00030                      PALB_WALL, PEMIS_WALL, PSVF_WALL,                        &
00031                      PSVF_GARDEN,                                             &
00032                      PHC_WALL,PTC_WALL,PD_WALL,                               &
00033                      PRN_ROOF, PH_ROOF, PLE_ROOF, PLEW_ROOF, PGFLUX_ROOF,     &
00034                      PRUNOFF_ROOF,                                            &
00035                      PRN_ROAD, PH_ROAD, PLE_ROAD, PLEW_ROAD, PGFLUX_ROAD,     &
00036                      PRUNOFF_ROAD,                                            &
00037                      PRN_WALL_A, PH_WALL_A, PLE_WALL_A, PGFLUX_WALL_A,        &
00038                      PRN_WALL_B, PH_WALL_B, PLE_WALL_B, PGFLUX_WALL_B,        &
00039                      PRN_GARDEN,PH_GARDEN,PLE_GARDEN, PGFLUX_GARDEN,          &
00040                      PRN_GREENROOF,PH_GREENROOF,PLE_GREENROOF, PGFLUX_GREENROOF, &
00041                      PRN_STRLROOF,PH_STRLROOF,PLE_STRLROOF, PGFLUX_STRLROOF,  &
00042                      PRN_BLT,PH_BLT,PLE_BLT, PGFLUX_BLT,                      &
00043                      PRNSNOW_ROOF, PHSNOW_ROOF, PLESNOW_ROOF, PGSNOW_ROOF,    &
00044                      PMELT_ROOF,                                              &
00045                      PRNSNOW_ROAD, PHSNOW_ROAD, PLESNOW_ROAD, PGSNOW_ROAD,    &
00046                      PMELT_ROAD,                                              &
00047                      PRN_GRND, PH_GRND, PLE_GRND, PGFLUX_GRND,                &
00048                      PRN_TOWN, PH_TOWN, PLE_TOWN, PGFLUX_TOWN, PEVAP_TOWN,    &
00049                      PRUNOFF_TOWN, PSFCO2,                                    &
00050                      PUW_GRND, PUW_ROOF, PDUWDU_GRND, PDUWDU_ROOF,            &
00051                      PUSTAR_TOWN, PCD, PCDN, PCH_TOWN, PRI_TOWN,              &
00052                      PTS_TOWN, PEMIS_TOWN, PDIR_ALB_TOWN, PSCA_ALB_TOWN,      &
00053                      PRESA_TOWN, PDQS_TOWN, PQF_TOWN, PQF_BLD,                &
00054                      PFLX_BLD, PAC_ROAD, PAC_GARDEN, PAC_GREENROOF,           &
00055                      PAC_ROAD_WAT, PAC_GARDEN_WAT, PAC_GREENROOF_WAT,         &
00056                      PABS_SW_ROOF,PABS_LW_ROOF,                               &
00057                      PABS_SW_SNOW_ROOF,PABS_LW_SNOW_ROOF,                     &
00058                      PABS_SW_ROAD,PABS_LW_ROAD,                               &
00059                      PABS_SW_SNOW_ROAD,PABS_LW_SNOW_ROAD,                     &
00060                      PABS_SW_WALL_A,PABS_LW_WALL_A,                           &
00061                      PABS_SW_WALL_B,PABS_LW_WALL_B,                           &
00062                      PABS_SW_GARDEN,PABS_LW_GARDEN,                           &
00063                      PABS_SW_GREENROOF,PABS_LW_GREENROOF,                     &
00064                      PG_GREENROOF_ROOF,PRUNOFF_GREENROOF,PDRAIN_GREENROOF,    &
00065                      HCOOL_COIL, PF_WATER_COND, HHEAT_COIL,                   &
00066                      HNATVENT, KDAY, PAUX_MAX, PT_FLOOR,                      &
00067                      PT_MASS, PH_BLD_COOL, PT_BLD_COOL, PH_BLD_HEAT,          &
00068                      PLE_BLD_COOL, PLE_BLD_HEAT, PH_WASTE, PLE_WASTE,         &
00069                      PF_WASTE_CAN, PHVAC_COOL, PHVAC_HEAT, PQIN, PQIN_FRAD,   &
00070                      PQIN_FLAT, PGR, PEFF_HEAT, PINF,                         &
00071                      PTCOOL_TARGET, PTHEAT_TARGET, PHR_TARGET, PT_WIN2,       &
00072                      PQI_BLD, PV_VENT, PCAP_SYS_HEAT, PCAP_SYS_RAT, PT_ADP,   &
00073                      PM_SYS_RAT, PCOP_RAT, PCAP_SYS, PM_SYS, PCOP, PQ_SYS,    &
00074                      PT_SYS, PTR_SW_WIN, PFAN_POWER, PHC_FLOOR, PTC_FLOOR,    &
00075                      PD_FLOOR, PT_WIN1, PABS_SW_WIN, PABS_LW_WIN, PSHGC,      &
00076                      PSHGC_SH, PUGG_WIN, PALB_WIN, PABS_WIN, PEMIT_LW_FAC,    &
00077                      PEMIT_LW_GRND, PT_RAD_IND, PREF_SW_GRND, PREF_SW_FAC,    &
00078                      PHU_BLD, PTIME, OSHADE, OSHAD_DAY, ONATVENT_NIGHT, HBEM, &
00079                      PN_FLOOR, PWALL_O_BLD, PGLAZ_O_BLD, PMASS_O_BLD,         &
00080                      PFLOOR_HW_RATIO, PF_FLOOR_MASS, PF_FLOOR_WALL,           &
00081                      PF_FLOOR_WIN, PF_FLOOR_ROOF, PF_WALL_FLOOR, PF_WALL_MASS,&
00082                      PF_WALL_WIN, PF_WIN_FLOOR, PF_WIN_MASS, PF_WIN_WALL,     &
00083                      PF_MASS_FLOOR, PF_MASS_WALL, PF_MASS_WIN, OCANOPY,       &
00084                      PTRAN_WIN, HCH_BEM, PROUGH_ROOF, PROUGH_WALL, PF_WIN_WIN )
00085 !   ##########################################################################
00086 !
00087 !!****  *TEB_GARDEN*  
00088 !!
00089 !!    PURPOSE
00090 !!    -------
00091 !
00092 !     
00093 !!**  METHOD
00094 !     ------
00095 !
00096 !
00097 !!    EXTERNAL
00098 !!    --------
00099 !!
00100 !!
00101 !!    IMPLICIT ARGUMENTS
00102 !!    ------------------
00103 !!
00104 !!      
00105 !!    REFERENCE
00106 !!    ---------
00107 !!
00108 !!      
00109 !!    AUTHOR
00110 !!    ------
00111 !!
00112 !!      A. Lemonsu          * Meteo-France *
00113 !!
00114 !!    MODIFICATIONS
00115 !!    -------------
00116 !!    Original    05/2009
00117 !!                04/2012 add PTRAN_WIN
00118 !!    modified    08/2012 HCH_BEM/ ROUGH_WALL and ROUGH_ROOF for buildind conv coef.
00119 !!    modified    10/2012 add PF_WIN_WIN as arg
00120 !-------------------------------------------------------------------------------
00121 !
00122 !*       0.     DECLARATIONS
00123 !               ------------
00124 !
00125 USE MODD_TYPE_DATE_SURF,    ONLY: DATE_TIME
00126 USE MODD_CSTS,              ONLY: XTT, XSTEFAN
00127 USE MODD_SURF_PAR,          ONLY: XUNDEF
00128 USE MODD_SNOW_PAR,          ONLY: XEMISSN, XANSMAX
00129 USE MODD_ISBA_PAR,          ONLY: XWGMIN
00130 USE MODD_TEB_n,             ONLY: LGARDEN, LGREENROOF
00131 USE MODD_TEB_GREENROOF_n,   ONLY: NLAYER_GR, XDG, XTG, XPLVTT
00132 !
00133 USE MODE_THERMOS
00134 USE MODE_SURF_SNOW_FRAC
00135 !
00136 USE MODI_GARDEN_PROPERTIES
00137 USE MODI_GREENROOF_PROPERTIES
00138 USE MODI_WINDOW_SHADING_AVAILABILITY
00139 USE MODI_URBAN_SOLAR_ABS
00140 USE MODI_URBAN_LW_COEF
00141 USE MODI_GARDEN
00142 USE MODI_GREENROOF
00143 USE MODI_TEB
00144 USE MODI_AVG_URBAN_FLUXES
00145 !
00146 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00147 USE PARKIND1  ,ONLY : JPRB
00148 !
00149 IMPLICIT NONE
00150 !
00151 !*      0.1    Declarations of arguments
00152 !
00153  CHARACTER(LEN=6)    , INTENT(IN)    :: HZ0H               ! TEB option for z0h roof & road
00154 !                                                         ! 'MASC95' : Mascart et al 1995
00155 !                                                         ! 'BRUT82' : Brustaert     1982
00156 !                                                         ! 'KAND07' : Kanda         2007
00157  CHARACTER(LEN=*),     INTENT(IN)  :: HIMPLICIT_WIND       ! wind implicitation option
00158 !                                                         ! 'OLD' = direct
00159 !                                                         ! 'NEW' = Taylor serie, order 1
00160  CHARACTER(LEN=4)    , INTENT(IN)    :: HROAD_DIR          ! TEB option for road direction
00161                                                           ! 'UNIF' : uniform roads
00162                                                           ! 'ORIE' : specified
00163                                                           !   road orientation 
00164  CHARACTER(LEN=4)    , INTENT(IN)    :: HWALL_OPT          ! TEB option for walls representation
00165                                                           ! 'UNIF' : uniform walls
00166                                                           ! 'TWO ' : 2 opposite  walls
00167 TYPE(DATE_TIME)     , INTENT(IN)    :: TPTIME             ! current date and time from teb
00168 REAL, DIMENSION(:),   INTENT(IN)    :: PTSUN              ! solar time   (s from midnight)
00169 
00170 !                                                         
00171 REAL, DIMENSION(:)  , INTENT(INOUT) :: PT_CANYON          ! canyon air temperature
00172 REAL, DIMENSION(:)  , INTENT(INOUT) :: PQ_CANYON          ! canyon air specific humidity
00173 REAL, DIMENSION(:)  , INTENT(IN)    :: PU_CANYON          ! canyon hor. wind
00174 REAL, DIMENSION(:)  , INTENT(IN)    :: PU_LOWCAN          ! wind near the road
00175 REAL, DIMENSION(:)  , INTENT(IN)    :: PT_LOWCAN          ! temp. near the road
00176 REAL, DIMENSION(:)  , INTENT(IN)    :: PQ_LOWCAN          ! hum. near the road
00177 REAL, DIMENSION(:)  , INTENT(IN)    :: PZ_LOWCAN          ! height of atm. var. near the road
00178 REAL, DIMENSION(:)  , INTENT(INOUT) :: PTI_BLD            ! inside building temperature
00179 REAL, DIMENSION(:,:), INTENT(INOUT) :: PT_ROOF            ! roof layers temperatures
00180 REAL, DIMENSION(:,:), INTENT(INOUT) :: PT_ROAD            ! road layers temperatures
00181 REAL, DIMENSION(:,:), INTENT(INOUT) :: PT_WALL_A          ! wall layers temperatures
00182 REAL, DIMENSION(:,:), INTENT(INOUT) :: PT_WALL_B          ! wall layers temperatures
00183 REAL, DIMENSION(:)  , INTENT(INOUT) :: PWS_ROOF           ! roof water reservoir
00184 REAL, DIMENSION(:)  , INTENT(INOUT) :: PWS_ROAD           ! road water reservoir
00185  CHARACTER(LEN=*)    , INTENT(IN)    :: HSNOW_ROOF         ! snow roof scheme 'NONE', 'D95 ', '1-L '
00186  CHARACTER(LEN=*)    , INTENT(IN)    :: HSNOW_ROAD         ! snow road scheme 'NONE', 'D95 ', '1-L '
00187 REAL, DIMENSION(:,:), INTENT(INOUT) :: PWSNOW_ROOF        ! snow layers reservoir
00188 REAL, DIMENSION(:,:), INTENT(INOUT) :: PTSNOW_ROOF        ! snow layers temperature
00189 REAL, DIMENSION(:,:), INTENT(INOUT) :: PRSNOW_ROOF        ! snow layers density
00190 REAL, DIMENSION(:)  , INTENT(INOUT) :: PASNOW_ROOF        ! snow albedo
00191 REAL, DIMENSION(:)  , INTENT(INOUT) :: PESNOW_ROOF        ! snow emissivity
00192 REAL, DIMENSION(:)  , INTENT(INOUT) :: PTSSNOW_ROOF       ! snow surface temperature
00193 REAL, DIMENSION(:,:), INTENT(INOUT) :: PWSNOW_ROAD        ! snow layers reservoir
00194 REAL, DIMENSION(:,:), INTENT(INOUT) :: PTSNOW_ROAD        ! snow layers temperature
00195 REAL, DIMENSION(:,:), INTENT(INOUT) :: PRSNOW_ROAD        ! snow layers density
00196 REAL, DIMENSION(:)  , INTENT(INOUT) :: PASNOW_ROAD        ! snow albedo
00197 REAL, DIMENSION(:)  , INTENT(INOUT) :: PESNOW_ROAD        ! snow emissivity
00198 REAL, DIMENSION(:)  , INTENT(INOUT) :: PTSSNOW_ROAD       ! snow surface temperature
00199 REAL, DIMENSION(:)  , INTENT(IN)    :: PPEW_A_COEF        ! implicit coefficients
00200 REAL, DIMENSION(:)  , INTENT(IN)    :: PPEW_B_COEF        ! for wind coupling
00201 REAL, DIMENSION(:)  , INTENT(IN)    :: PPEW_A_COEF_LOWCAN ! implicit coefficients for wind coupling
00202 REAL, DIMENSION(:)  , INTENT(IN)    :: PPEW_B_COEF_LOWCAN ! between low canyon wind and road
00203 REAL, DIMENSION(:)  , INTENT(IN)    :: PPS                ! pressure at the surface
00204 REAL, DIMENSION(:)  , INTENT(IN)    :: PPA                ! pressure at the first atmospheric level
00205 REAL, DIMENSION(:)  , INTENT(IN)    :: PEXNS              ! surface exner function
00206 REAL, DIMENSION(:)  , INTENT(IN)    :: PTA                ! temperature at the lowest level
00207 REAL, DIMENSION(:)  , INTENT(IN)    :: PQA                ! specific humidity at the lowest level
00208 REAL, DIMENSION(:)  , INTENT(IN)    :: PVMOD              ! module of the horizontal wind
00209 REAL, DIMENSION(:)  , INTENT(IN)    :: PEXNA              ! exner function at the lowest level
00210 REAL, DIMENSION(:)  , INTENT(IN)    :: PRHOA              ! air density at the lowest level
00211 REAL, DIMENSION(:)  , INTENT(IN)    :: PCO2               ! CO2 concentration in the air    (kg/m3)
00212 REAL, DIMENSION(:)  , INTENT(IN)    :: PLW_RAD            ! atmospheric infrared radiation
00213 REAL, DIMENSION(:,:), INTENT(IN)    :: PDIR_SW            ! incoming direct solar rad on an horizontal surface
00214 REAL, DIMENSION(:,:), INTENT(IN)    :: PSCA_SW            ! scattered incoming solar rad.
00215 REAL, DIMENSION(:)  , INTENT(IN)    :: PSW_BANDS          ! mean wavelength of each shortwave band (m)
00216 INTEGER,              INTENT(IN)    :: KSW                ! number of short-wave spectral bands
00217 REAL, DIMENSION(:)  , INTENT(IN)    :: PZENITH            ! solar zenithal angle
00218 REAL, DIMENSION(:)  , INTENT(IN)    :: PAZIM              ! solar azimuthal angle
00219                                                           ! (radian form N, clockwise)
00220 REAL, DIMENSION(:)  , INTENT(IN)    :: PRR                ! rain rate
00221 REAL, DIMENSION(:)  , INTENT(IN)    :: PSR                ! snow rate
00222 REAL, DIMENSION(:)  , INTENT(IN)    :: PH_TRAFFIC         ! anthropogenic sensible heat fluxes due to traffic
00223 REAL, DIMENSION(:)  , INTENT(IN)    :: PLE_TRAFFIC        ! anthropogenic latent heat fluxes due to traffic
00224 REAL, DIMENSION(:)  , INTENT(IN)    :: PH_INDUSTRY        ! anthropogenic sensible heat fluxes due to factories
00225 REAL, DIMENSION(:)  , INTENT(IN)    :: PLE_INDUSTRY       ! anthropogenic latent heat fluxes due to factories
00226 REAL, DIMENSION(:)  , INTENT(IN)    :: PZREF              ! reference height of the first atm level (temperature)
00227 REAL, DIMENSION(:)  , INTENT(IN)    :: PUREF              ! reference height of the first atm level (wind)
00228 REAL                , INTENT(IN)    :: PTSTEP             ! time step
00229 REAL, DIMENSION(:)  , INTENT(IN)    :: PZ0_TOWN           ! town roughness length for momentum
00230 REAL, DIMENSION(:)  , INTENT(IN)    :: PBLD               ! fraction of buildings
00231 REAL, DIMENSION(:)  , INTENT(IN)    :: PGARDEN            ! fraction of green areas
00232 REAL, DIMENSION(:)  , INTENT(IN)    :: PROAD_DIR          ! road direction (° from North, clockwise)
00233 REAL, DIMENSION(:)  , INTENT(IN)    :: PROAD              ! fraction of roads
00234 REAL, DIMENSION(:)  , INTENT(IN)    :: PFRAC_GR           ! fraction of green roofs
00235 REAL, DIMENSION(:)  , INTENT(IN)    :: PBLD_HEIGHT        ! buildings h
00236 REAL, DIMENSION(:)  , INTENT(IN)    :: PWALL_O_HOR        ! wall surf. / hor. surf.
00237 REAL, DIMENSION(:)  , INTENT(IN)    :: PCAN_HW_RATIO      ! canyon    h/W
00238 REAL, DIMENSION(:)  , INTENT(IN)    :: PROAD_O_GRND       ! road surf.   / (road+garden surf.) 
00239 REAL, DIMENSION(:)  , INTENT(IN)    :: PGARDEN_O_GRND     ! garden surf. / (road+garden surf.) 
00240 REAL, DIMENSION(:)  , INTENT(IN)    :: PWALL_O_GRND       ! wall surf.   / (road+garden surf.) 
00241 REAL, DIMENSION(:)  , INTENT(IN)    :: PALB_ROOF          ! roof albedo
00242 REAL, DIMENSION(:)  , INTENT(IN)    :: PEMIS_ROOF         ! roof emissivity
00243 REAL, DIMENSION(:,:), INTENT(IN)    :: PHC_ROOF           ! heat capacity for roof layers
00244 REAL, DIMENSION(:,:), INTENT(IN)    :: PTC_ROOF           ! thermal conductivity for roof layers
00245 REAL, DIMENSION(:,:), INTENT(IN)    :: PD_ROOF            ! depth of roof layers
00246 REAL, DIMENSION(:)  , INTENT(IN)    :: PALB_ROAD          ! road albedo
00247 REAL, DIMENSION(:)  , INTENT(IN)    :: PEMIS_ROAD         ! road emissivity
00248 REAL, DIMENSION(:,:), INTENT(IN)    :: PHC_ROAD           ! heat capacity for road layers
00249 REAL, DIMENSION(:,:), INTENT(IN)    :: PTC_ROAD           ! thermal conductivity for road layers
00250 REAL, DIMENSION(:,:), INTENT(IN)    :: PD_ROAD            ! depth of road layers
00251 REAL, DIMENSION(:)  , INTENT(IN)    :: PSVF_ROAD          ! road sky view factor
00252 REAL, DIMENSION(:)  , INTENT(IN)    :: PALB_WALL          ! wall albedo
00253 REAL, DIMENSION(:)  , INTENT(IN)    :: PEMIS_WALL         ! wall emissivity
00254 REAL, DIMENSION(:,:), INTENT(IN)    :: PHC_WALL           ! heat capacity for wall layers
00255 REAL, DIMENSION(:,:), INTENT(IN)    :: PTC_WALL           ! thermal conductivity for wall layers
00256 REAL, DIMENSION(:,:), INTENT(IN)    :: PD_WALL            ! depth of wall layers
00257 REAL, DIMENSION(:)  , INTENT(IN)    :: PSVF_WALL          ! wall sky view factor
00258 REAL, DIMENSION(:)  , INTENT(IN)    :: PSVF_GARDEN        ! green area sky view factor
00259      !
00260 REAL, DIMENSION(:)  , INTENT(OUT)   :: PRN_ROOF           ! net radiation over roof
00261 REAL, DIMENSION(:)  , INTENT(OUT)   :: PH_ROOF            ! sensible heat flux over roof
00262 REAL, DIMENSION(:)  , INTENT(OUT)   :: PLE_ROOF           ! latent heat flux over roof
00263 REAL, DIMENSION(:)  , INTENT(OUT)   :: PLEW_ROOF          ! latent heat flux over roof (snow)
00264 REAL, DIMENSION(:)  , INTENT(OUT)   :: PGFLUX_ROOF        ! flux through the roof
00265 REAL, DIMENSION(:)  , INTENT(OUT)   :: PRUNOFF_ROOF       ! runoff over the ground
00266 REAL, DIMENSION(:)  , INTENT(OUT)   :: PRN_ROAD           ! net radiation over road
00267 REAL, DIMENSION(:)  , INTENT(OUT)   :: PH_ROAD            ! sensible heat flux over road
00268 REAL, DIMENSION(:)  , INTENT(OUT)   :: PLE_ROAD           ! latent heat flux over road
00269 REAL, DIMENSION(:)  , INTENT(OUT)   :: PLEW_ROAD          ! latent heat flux over road (snow)
00270 REAL, DIMENSION(:)  , INTENT(OUT)   :: PGFLUX_ROAD        ! flux through the road
00271 REAL, DIMENSION(:)  , INTENT(OUT)   :: PRUNOFF_ROAD       ! runoff over the ground
00272 REAL, DIMENSION(:)  , INTENT(OUT)   :: PRN_WALL_A         ! net radiation over wall
00273 REAL, DIMENSION(:)  , INTENT(OUT)   :: PH_WALL_A          ! sensible heat flux over wall
00274 REAL, DIMENSION(:)  , INTENT(OUT)   :: PLE_WALL_A         ! latent heat flux over wall
00275 REAL, DIMENSION(:)  , INTENT(OUT)   :: PGFLUX_WALL_A      ! flux through the wall
00276 REAL, DIMENSION(:)  , INTENT(OUT)   :: PRN_WALL_B         ! net radiation over wall
00277 REAL, DIMENSION(:)  , INTENT(OUT)   :: PH_WALL_B          ! sensible heat flux over wall
00278 REAL, DIMENSION(:)  , INTENT(OUT)   :: PLE_WALL_B         ! latent heat flux over wall
00279 REAL, DIMENSION(:)  , INTENT(OUT)   :: PGFLUX_WALL_B      ! flux through the wall
00280 REAL, DIMENSION(:)  , INTENT(OUT)   :: PRN_GARDEN         ! net radiation over green areas
00281 REAL, DIMENSION(:)  , INTENT(OUT)   :: PH_GARDEN          ! sensible heat flux over green areas
00282 REAL, DIMENSION(:)  , INTENT(OUT)   :: PLE_GARDEN         ! latent heat flux over green areas
00283 REAL, DIMENSION(:)  , INTENT(OUT)   :: PGFLUX_GARDEN      ! flux through the green areas
00284 REAL, DIMENSION(:)  , INTENT(OUT)   :: PRN_GREENROOF      ! net radiation over greenroofs
00285 REAL, DIMENSION(:)  , INTENT(OUT)   :: PH_GREENROOF       ! sensible heat flux over greenroofs
00286 REAL, DIMENSION(:)  , INTENT(OUT)   :: PLE_GREENROOF      ! latent heat flux over greenroofs
00287 REAL, DIMENSION(:)  , INTENT(OUT)   :: PGFLUX_GREENROOF   ! flux through the greenroofs
00288 REAL, DIMENSION(:)  , INTENT(OUT)   :: PRN_STRLROOF       ! net radiation over structural roof
00289 REAL, DIMENSION(:)  , INTENT(OUT)   :: PH_STRLROOF        ! sensible heat flux over structural roof
00290 REAL, DIMENSION(:)  , INTENT(OUT)   :: PLE_STRLROOF       ! latent heat flux over structural roof
00291 REAL, DIMENSION(:)  , INTENT(OUT)   :: PGFLUX_STRLROOF    ! flux through the structural roof
00292 REAL, DIMENSION(:)  , INTENT(OUT)   :: PRN_BLT            ! net radiation over built surf 
00293 REAL, DIMENSION(:)  , INTENT(OUT)   :: PH_BLT             ! sensible heat flux over built surf 
00294 REAL, DIMENSION(:)  , INTENT(OUT)   :: PLE_BLT            ! latent heat flux over built surf 
00295 REAL, DIMENSION(:)  , INTENT(OUT)   :: PGFLUX_BLT         ! flux through the built surf 
00296 !
00297 REAL, DIMENSION(:)  , INTENT(OUT)   :: PRNSNOW_ROOF       ! net radiation over snow
00298 REAL, DIMENSION(:)  , INTENT(OUT)   :: PHSNOW_ROOF        ! sensible heat flux over snow
00299 REAL, DIMENSION(:)  , INTENT(OUT)   :: PLESNOW_ROOF       ! latent heat flux over snow
00300 REAL, DIMENSION(:)  , INTENT(OUT)   :: PGSNOW_ROOF        ! flux under the snow
00301 REAL, DIMENSION(:)  , INTENT(OUT)   :: PMELT_ROOF         ! snow melt
00302 REAL, DIMENSION(:)  , INTENT(OUT)   :: PRNSNOW_ROAD       ! net radiation over snow
00303 REAL, DIMENSION(:)  , INTENT(OUT)   :: PHSNOW_ROAD        ! sensible heat flux over snow
00304 REAL, DIMENSION(:)  , INTENT(OUT)   :: PLESNOW_ROAD       ! latent heat flux over snow
00305 REAL, DIMENSION(:)  , INTENT(OUT)   :: PGSNOW_ROAD        ! flux under the snow
00306 REAL, DIMENSION(:)  , INTENT(OUT)   :: PMELT_ROAD         ! snow melt
00307 !
00308 REAL, DIMENSION(:)  , INTENT(OUT)   :: PRN_GRND           ! net radiation over ground
00309 REAL, DIMENSION(:)  , INTENT(OUT)   :: PH_GRND            ! sensible heat flux over ground
00310 REAL, DIMENSION(:)  , INTENT(OUT)   :: PLE_GRND           ! latent heat flux over ground
00311 REAL, DIMENSION(:)  , INTENT(OUT)   :: PGFLUX_GRND        ! flux through the ground
00312 REAL, DIMENSION(:)  , INTENT(OUT)   :: PRN_TOWN           ! net radiation over town
00313 REAL, DIMENSION(:)  , INTENT(OUT)   :: PH_TOWN            ! sensible heat flux over town
00314 REAL, DIMENSION(:)  , INTENT(OUT)   :: PLE_TOWN           ! latent heat flux over town
00315 REAL, DIMENSION(:)  , INTENT(OUT)   :: PGFLUX_TOWN        ! flux through the ground
00316 REAL, DIMENSION(:)  , INTENT(OUT)   :: PEVAP_TOWN         ! evaporation flux (kg/m2/s)
00317 REAL, DIMENSION(:)  , INTENT(OUT)   :: PRUNOFF_TOWN       ! runoff over the ground
00318 REAL, DIMENSION(:)  , INTENT(OUT)   :: PSFCO2             ! flux of CO2       (kg/m2/s)
00319 REAL, DIMENSION(:)  , INTENT(OUT)   :: PUW_GRND           ! momentum flux for ground built surf
00320 REAL, DIMENSION(:)  , INTENT(OUT)   :: PUW_ROOF           ! momentum flux for roofs
00321 REAL, DIMENSION(:)  , INTENT(OUT)   :: PDUWDU_GRND        !
00322 REAL, DIMENSION(:)  , INTENT(OUT)   :: PDUWDU_ROOF        !
00323 REAL, DIMENSION(:)  , INTENT(OUT)   :: PUSTAR_TOWN        ! friciton velocity over town
00324 REAL, DIMENSION(:)  , INTENT(OUT)   :: PCD                ! town averaged drag coefficient
00325 REAL, DIMENSION(:)  , INTENT(OUT)   :: PCDN               ! town averaged neutral drag coefficient
00326 REAL, DIMENSION(:)  , INTENT(OUT)   :: PCH_TOWN           ! town averaged heat transfer coefficient
00327 REAL, DIMENSION(:)  , INTENT(OUT)   :: PRI_TOWN           ! town averaged Richardson number
00328 REAL, DIMENSION(:)  , INTENT(OUT)   :: PTS_TOWN           ! town surface temperature
00329 REAL, DIMENSION(:)  , INTENT(OUT)   :: PEMIS_TOWN         ! town equivalent emissivity
00330 REAL, DIMENSION(:)  , INTENT(OUT)   :: PDIR_ALB_TOWN      ! town equivalent direct albedo
00331 REAL, DIMENSION(:)  , INTENT(OUT)   :: PSCA_ALB_TOWN      ! town equivalent diffuse albedo
00332 REAL, DIMENSION(:)  , INTENT(OUT)   :: PRESA_TOWN         ! town aerodynamical resistance
00333 REAL, DIMENSION(:)  , INTENT(OUT)   :: PDQS_TOWN          ! heat storage inside town
00334 REAL, DIMENSION(:)  , INTENT(OUT)   :: PQF_TOWN           ! total anthropogenic heat
00335 REAL, DIMENSION(:)  , INTENT(OUT)   :: PQF_BLD            ! anthropogenic heat flux of domestic heating
00336 REAL, DIMENSION(:)  , INTENT(OUT)   :: PFLX_BLD           ! heat flx from inside bld through its structure
00337 REAL, DIMENSION(:)  , INTENT(OUT)   :: PAC_ROAD           ! road conductance
00338 REAL, DIMENSION(:)  , INTENT(OUT)   :: PAC_GARDEN         ! green area conductance
00339 REAL, DIMENSION(:)  , INTENT(OUT)   :: PAC_GREENROOF      ! green roof conductance
00340 REAL, DIMENSION(:)  , INTENT(OUT)   :: PAC_ROAD_WAT       ! road conductance for latent heat
00341 REAL, DIMENSION(:)  , INTENT(OUT)   :: PAC_GARDEN_WAT     ! green area conductance for latent heat
00342 REAL, DIMENSION(:)  , INTENT(OUT)   :: PAC_GREENROOF_WAT  ! green roof conductance for latent heat
00343 !
00344 REAL, DIMENSION(:)  , INTENT(OUT)   :: PABS_SW_ROOF       ! absorbed solar rad by roof
00345 REAL, DIMENSION(:)  , INTENT(OUT)   :: PABS_SW_SNOW_ROOF  ! absorbed solar rad by snow on roof
00346 REAL, DIMENSION(:)  , INTENT(OUT)   :: PABS_LW_ROOF       ! absorbed IR rad by roof
00347 REAL, DIMENSION(:)  , INTENT(OUT)   :: PABS_LW_SNOW_ROOF  ! absorbed IR rad by snow on roof
00348 REAL, DIMENSION(:)  , INTENT(OUT)   :: PABS_SW_ROAD       ! absorbed solar rad by road
00349 REAL, DIMENSION(:)  , INTENT(OUT)   :: PABS_SW_SNOW_ROAD  ! absorbed solar rad by snow on road
00350 REAL, DIMENSION(:)  , INTENT(OUT)   :: PABS_LW_ROAD       ! absorbed IR rad by road
00351 REAL, DIMENSION(:)  , INTENT(OUT)   :: PABS_LW_SNOW_ROAD  ! absorbed IR rad by snow on road
00352 REAL, DIMENSION(:)  , INTENT(OUT)   :: PABS_SW_WALL_A     ! absorbed solar rad by wall
00353 REAL, DIMENSION(:)  , INTENT(OUT)   :: PABS_LW_WALL_A     ! absorbed IR rad by wall
00354 REAL, DIMENSION(:)  , INTENT(OUT)   :: PABS_SW_WALL_B     ! absorbed solar rad by wall
00355 REAL, DIMENSION(:)  , INTENT(OUT)   :: PABS_LW_WALL_B     ! absorbed IR rad by wall
00356 REAL, DIMENSION(:)  , INTENT(OUT)   :: PABS_SW_GARDEN     ! absorbed solar rad by green areas
00357 REAL, DIMENSION(:)  , INTENT(OUT)   :: PABS_LW_GARDEN     ! absorbed IR rad by green areas
00358 REAL, DIMENSION(:)  , INTENT(OUT)   :: PABS_SW_GREENROOF  ! absorbed solar rad by green roofs
00359 REAL, DIMENSION(:)  , INTENT(OUT)   :: PABS_LW_GREENROOF  ! absorbed IR rad by green roofs
00360 REAL, DIMENSION(:)  , INTENT(OUT)   :: PG_GREENROOF_ROOF  ! heat flux between base of greenroof
00361 !                                                         !    and structural roof
00362 REAL, DIMENSION(:)  , INTENT(OUT)   :: PRUNOFF_GREENROOF  ! greenroof surface runoff
00363 REAL, DIMENSION(:)  , INTENT(OUT)   :: PDRAIN_GREENROOF   ! greenroof total vertical drainage
00364 !
00365 ! new arguments created after BEM
00366 !
00367  CHARACTER(LEN=6)    , INTENT(IN)    :: HCOOL_COIL
00368  CHARACTER(LEN=6)    , INTENT(IN)    :: HHEAT_COIL
00369 REAL, DIMENSION(:)  , INTENT(IN)    :: PF_WATER_COND      ! fraction of evaporation for the condensers
00370  CHARACTER(LEN=4), DIMENSION(:), INTENT(IN) :: HNATVENT
00371 INTEGER             , INTENT(IN)    :: KDAY               ! Simulation day
00372 REAL, DIMENSION(:)  , INTENT(INOUT) :: PAUX_MAX           ! Auxiliar variable for autosize calcs
00373 REAL, DIMENSION(:,:), INTENT(INOUT) :: PT_FLOOR           ! Floor layers temperatures [K]
00374 REAL, DIMENSION(:,:), INTENT(INOUT) :: PT_MASS            ! Internal mass layers temperatures [K]
00375 REAL, DIMENSION(:)  , INTENT(OUT)   :: PH_BLD_COOL        ! Sensible cooling energy demand  
00376                                                           ! of the building [W m-2(bld)]
00377 REAL, DIMENSION(:)  , INTENT(OUT)   :: PT_BLD_COOL        ! Total cooling energy demand  
00378                                                           ! of the building [W m-2(bld)]
00379 REAL, DIMENSION(:)  , INTENT(OUT)   :: PH_BLD_HEAT        ! Heating energy demand       
00380                                                           ! of the building [W m-2(bld)]
00381 REAL, DIMENSION(:  ), INTENT(OUT)   :: PLE_BLD_COOL       ! Latent cooling energy demand 
00382                                                           ! of the building [W m-2(bld)]
00383 REAL, DIMENSION(:)  , INTENT(OUT)   :: PLE_BLD_HEAT       ! Latent heating energy demand 
00384                                                           ! of the building [W m-2(bld)]
00385 REAL, DIMENSION(:)  , INTENT(OUT)   :: PH_WASTE           ! Sensible waste heat from HVAC system
00386                                                           ! [W m-2(tot)]
00387 REAL, DIMENSION(:)  , INTENT(OUT)   :: PLE_WASTE          ! Latent waste heat from HVAC system
00388                                                           ! [W m-2(tot)]
00389 REAL, DIMENSION(:)  , INTENT(IN)    :: PF_WASTE_CAN       ! fraction of waste heat released into the canyon
00390 REAL, DIMENSION(:)  , INTENT(OUT)   :: PHVAC_COOL         ! Energy consumption of the cooling system
00391                                                           ! [W m-2(bld)]
00392 REAL, DIMENSION(:)  , INTENT(OUT)   :: PHVAC_HEAT         ! Energy consumption of the heating system
00393                                                           ! [W m-2(bld)]
00394 REAL, DIMENSION(:)  , INTENT(IN)    :: PQIN               ! Internal heat gains [W m-2(floor)]
00395 REAL, DIMENSION(:)  , INTENT(IN)    :: PQIN_FRAD          ! Radiant fraction of internal heat gains
00396 REAL, DIMENSION(:)  , INTENT(IN)    :: PQIN_FLAT          ! Latent franction of internal heat gains
00397 REAL, DIMENSION(:)  , INTENT(IN)    :: PGR                ! Glazing ratio
00398 REAL, DIMENSION(:)  , INTENT(IN)    :: PEFF_HEAT          ! Efficiency of the heating system
00399 REAL, DIMENSION(:)  , INTENT(IN)    :: PINF               ! Infiltration flow rate [AC/H]
00400 REAL, DIMENSION(:)  , INTENT(IN)    :: PTCOOL_TARGET      ! Cooling setpoint of HVAC system [K]
00401 REAL, DIMENSION(:)  , INTENT(IN)    :: PTHEAT_TARGET      ! Heating setpoint of HVAC system [K]
00402 REAL, DIMENSION(:)  , INTENT(IN)    :: PHR_TARGET         ! Relative humidity setpoint
00403 REAL, DIMENSION(:)  , INTENT(OUT)   :: PT_WIN2            ! Indoor window temperature [K]
00404 REAL, DIMENSION(:)  , INTENT(INOUT) :: PQI_BLD            ! Indoor air specific humidity [kg kg-1]
00405 REAL, DIMENSION(:)  , INTENT(IN)    :: PV_VENT            ! Ventilation flow rate [AC/H]
00406 REAL, DIMENSION(:)  , INTENT(IN)    :: PCAP_SYS_HEAT      ! Capacity of the heating system 
00407                                                           ! [W m-2(bld)]
00408 REAL, DIMENSION(:)  , INTENT(INOUT) :: PCAP_SYS_RAT       ! Rated capacity of the cooling system
00409                                                           ! [W m-2(bld)]
00410 REAL, DIMENSION(:)  , INTENT(IN)    :: PT_ADP             ! Apparatus dewpoint temperature of the
00411                                                           ! cooling coil [K]
00412 REAL, DIMENSION(:)  , INTENT(INOUT) :: PM_SYS_RAT         ! Rated HVAC mass flow rate 
00413                                                           ! [kg s-1 m-2(bld)]
00414 REAL, DIMENSION(:)  , INTENT(IN)    :: PCOP_RAT           ! Rated COP of the cooling system
00415 REAL, DIMENSION(:)  , INTENT(OUT)   :: PCAP_SYS           ! Actual capacity of the cooling system
00416                                                           ! [W m-2(bld)] 
00417 REAL, DIMENSION(:)  , INTENT(OUT)   :: PM_SYS             ! Actual HVAC mass flow rate 
00418                                                           ! [kg s-1 m-2(bld)]
00419 REAL, DIMENSION(:)  , INTENT(OUT)   :: PCOP               ! COP of the cooling system
00420 REAL, DIMENSION(:)  , INTENT(OUT)   :: PQ_SYS             ! Supply air specific humidity [kg kg-1]
00421 REAL, DIMENSION(:)  , INTENT(OUT)   :: PT_SYS             ! Supply air temperature [K]
00422 REAL, DIMENSION(:)  , INTENT(OUT)   :: PTR_SW_WIN         ! Solar radiation transmitted throught
00423                                                           ! windows [W m-2(bld)]
00424 REAL, DIMENSION(:)  , INTENT(OUT)   :: PFAN_POWER         ! HVAC fan power
00425 REAL, DIMENSION(:,:), INTENT(IN)    :: PHC_FLOOR          ! heat capacity for road layers
00426 REAL, DIMENSION(:,:), INTENT(IN)    :: PTC_FLOOR          ! thermal conductivity for 
00427                                                           ! road layers
00428 REAL, DIMENSION(:,:), INTENT(IN)    :: PD_FLOOR           ! depth of road layers
00429 
00430 REAL, DIMENSION(:)  , INTENT(INOUT) :: PT_WIN1            ! outdoor window temperature [K]
00431 REAL, DIMENSION(:)  , INTENT(OUT)   :: PABS_SW_WIN        ! window absorbed shortwave radiation [W m-2] 
00432 REAL, DIMENSION(:)  , INTENT(OUT)   :: PABS_LW_WIN        ! absorbed infrared rad. [W m-2]
00433 REAL, DIMENSION(:)  , INTENT(IN)    :: PSHGC              ! window solar transmittance
00434 REAL, DIMENSION(:)  , INTENT(IN)    :: PSHGC_SH           ! window + shading solar heat gain coef.
00435 REAL, DIMENSION(:)  , INTENT(IN)    :: PUGG_WIN           ! window glass-to-glass U-factro [W m-2 K-1]
00436 REAL, DIMENSION(:)  , INTENT(OUT)   :: PALB_WIN           ! window albedo
00437 REAL, DIMENSION(:)  , INTENT(IN)    :: PABS_WIN           ! window absortance
00438 REAL, DIMENSION(:)  , INTENT(IN)    :: PTRAN_WIN          ! window transmittance
00439 !
00440 ! new argument for the UTCI calculation
00441 REAL, DIMENSION(:)  , INTENT(OUT)    :: PEMIT_LW_GRND     ! LW flux emitted by the ground (W/m² ground)
00442 REAL, DIMENSION(:)  , INTENT(OUT)    :: PEMIT_LW_FAC      ! LW flux emitted by the facade (W/m² ground)
00443 REAL, DIMENSION(:)  , INTENT(OUT)    :: PT_RAD_IND        ! Indoor mean radiant temperature [K]
00444 REAL, DIMENSION(:)  , INTENT(OUT)    :: PREF_SW_GRND      ! total solar rad reflected from ground
00445 REAL, DIMENSION(:)  , INTENT(OUT)    :: PREF_SW_FAC       ! total solar rad reflected from facade
00446 REAL, DIMENSION(:)  , INTENT(OUT)    :: PHU_BLD           ! Indoor relative humidity 0 < (-) < 1
00447 !
00448 ! new arguments for shading, schedule or natural ventilation
00449 REAL                , INTENT(IN)     :: PTIME             ! current time since midnight (UTC, s)
00450 LOGICAL,DIMENSION(:), INTENT(IN)     :: OSHADE
00451 LOGICAL,DIMENSION(:), INTENT(INOUT)  :: OSHAD_DAY         ! has shading been necessary this day ?
00452 LOGICAL,DIMENSION(:), INTENT(INOUT)  :: ONATVENT_NIGHT    ! has natural ventilation been necessary/possible this night ?
00453  CHARACTER(LEN=3)    , INTENT(IN)     :: HBEM              ! Building Energy model 'DEF' or 'BEM'
00454 !
00455 REAL, DIMENSION(:)  , INTENT(IN)     :: PN_FLOOR          ! Number of floors     
00456 REAL, DIMENSION(:)  , INTENT(IN)     :: PWALL_O_BLD       ! Wall area [m2_wall/m2_bld]
00457 REAL, DIMENSION(:)  , INTENT(IN)     :: PGLAZ_O_BLD       ! Window area [m2_win/m2_bld]
00458 REAL, DIMENSION(:)  , INTENT(IN)     :: PMASS_O_BLD       ! Mass area [m2_mass/m2_bld]
00459 REAL, DIMENSION(:)  , INTENT(IN)     :: PFLOOR_HW_RATIO   ! H/W ratio of 1 floor level
00460 REAL, DIMENSION(:)  , INTENT(IN)     :: PF_FLOOR_MASS     ! View factor floor-mass
00461 REAL, DIMENSION(:)  , INTENT(IN)     :: PF_FLOOR_WALL     ! View factor floor-wall
00462 REAL, DIMENSION(:)  , INTENT(IN)     :: PF_FLOOR_WIN      ! View factor floor-window
00463 REAL, DIMENSION(:)  , INTENT(IN)     :: PF_FLOOR_ROOF     ! View factor floor-roof
00464 REAL, DIMENSION(:)  , INTENT(IN)     :: PF_WALL_FLOOR     ! View factor wall-floor
00465 REAL, DIMENSION(:)  , INTENT(IN)     :: PF_WALL_MASS      ! View factor wall-mass
00466 REAL, DIMENSION(:)  , INTENT(IN)     :: PF_WALL_WIN       ! View factor wall-win
00467 REAL, DIMENSION(:)  , INTENT(IN)     :: PF_WIN_FLOOR      ! View factor win-floor
00468 REAL, DIMENSION(:)  , INTENT(IN)     :: PF_WIN_MASS       ! View factor win-mass
00469 REAL, DIMENSION(:)  , INTENT(IN)     :: PF_WIN_WALL       ! View factor win-wall
00470 REAL, DIMENSION(:)  , INTENT(IN)     :: PF_MASS_FLOOR     ! View factor mass-floor
00471 REAL, DIMENSION(:)  , INTENT(IN)     :: PF_MASS_WALL      ! View factor mass-wall
00472 REAL, DIMENSION(:)  , INTENT(IN)     :: PF_MASS_WIN       ! View factor mass-window
00473 LOGICAL             , INTENT(IN)     :: OCANOPY           ! is canopy active ?
00474  CHARACTER(LEN=5)    , INTENT(IN)     :: HCH_BEM         ! TEB option for building outside conv. coef
00475 REAL, DIMENSION(:)  , INTENT(IN)     :: PROUGH_ROOF     ! roof roughness coef.
00476 REAL, DIMENSION(:)  , INTENT(IN)     :: PROUGH_WALL     ! wall roughness coef.
00477 REAL, DIMENSION(:)  , INTENT(IN)     :: PF_WIN_WIN      ! indoor win to win view factor
00478 
00479 !*      0.2    Declarations of local variables
00480 !
00481 REAL, DIMENSION(SIZE(PTA)) :: ZTA            ! air temperature extrapolated at roof level
00482 REAL, DIMENSION(SIZE(PTA)) :: ZQA            ! air humidity extrapolated at roof level
00483 !
00484 REAL, DIMENSION(SIZE(PTA)) :: ZDN_ROOF       ! snow fraction on roofs
00485 REAL, DIMENSION(SIZE(PTA)) :: ZDN_ROAD       ! snow fraction on roads
00486 REAL, DIMENSION(SIZE(PTA)) :: ZDF_ROOF       ! free-snow fraction on roofs
00487 REAL, DIMENSION(SIZE(PTA)) :: ZDF_ROAD       ! free-snow fraction on roads
00488 REAL, DIMENSION(SIZE(PTA)) :: ZDELT_ROAD     ! fraction of water on roads
00489 REAL, DIMENSION(SIZE(PTA)) :: ZDELT_ROOF     ! fraction of water on roofs
00490 REAL, DIMENSION(SIZE(PTA)) :: ZAC_ROOF       ! roof conductance
00491 REAL, DIMENSION(SIZE(PTA)) :: ZAC_ROOF_WAT   ! roof water conductance
00492 REAL, DIMENSION(SIZE(PTA)) :: ZAC_WALL       ! wall conductance
00493 REAL, DIMENSION(SIZE(PTA)) :: ZAC_TOP        ! top conductance
00494 REAL, DIMENSION(SIZE(PTA)) :: ZQSAT_ROAD     ! hum of saturation for roads
00495 REAL, DIMENSION(SIZE(PTA)) :: ZQSAT_GARDEN   ! hum of saturation for green areas
00496 REAL, DIMENSION(SIZE(PTA)) :: ZQSAT_ROOF     ! hum of saturation for roofs
00497 REAL, DIMENSION(SIZE(PTA)) :: ZQSAT_GREENROOF! hum of saturation for green roofs
00498 !
00499 ! coefficients for LW computations over snow (from previous time-step)
00500 !
00501 REAL, DIMENSION(SIZE(PTA)) :: ZTSSNOW_ROOF   ! roof snow temp at previous time-step
00502 REAL, DIMENSION(SIZE(PTA)) :: ZTSSNOW_ROAD   ! road snow temp at previous time-step
00503 REAL, DIMENSION(SIZE(PTA)) :: ZESNOW_ROOF    ! snow emissivity at previous time-step
00504 REAL, DIMENSION(SIZE(PTA)) :: ZESNOW_ROAD    ! snow emissivity at previous time-step
00505 !
00506 ! incoming shortwave radiation
00507 !
00508 REAL, DIMENSION(SIZE(PTA)) :: ZDIR_SW             ! direct  solar rad
00509 REAL, DIMENSION(SIZE(PTA)) :: ZSCA_SW             ! diffuse solar rad
00510 INTEGER                    :: JSWB
00511 !
00512 ! albedo & emissivity
00513 !
00514 REAL, DIMENSION(SIZE(PTA)) :: ZALB_GARDEN    ! albedo     for green areas
00515 REAL, DIMENSION(SIZE(PTA)) :: ZEMIS_GARDEN   ! emissivity for green areas
00516 REAL, DIMENSION(SIZE(PTA)) :: ZALB_GREENROOF ! albedo     for green roofs
00517 REAL, DIMENSION(SIZE(PTA)) :: ZEMIS_GREENROOF! emissivity for green roofs
00518 !
00519 ! radiation received by surfaces
00520 !
00521 REAL, DIMENSION(SIZE(PTA)) :: ZREC_SW_ROAD        ! solar rad received by roads
00522 REAL, DIMENSION(SIZE(PTA)) :: ZREC_SW_WALL_A      ! solar rad received by walls
00523 REAL, DIMENSION(SIZE(PTA)) :: ZREC_SW_WALL_B      ! solar rad received by walls
00524 REAL, DIMENSION(SIZE(PTA)) :: ZREC_SW_GARDEN      ! solar rad received by gardens
00525 REAL, DIMENSION(SIZE(PTA)) :: ZREC_SW_SNOW_ROAD   ! solar rad received by snow on roads
00526 !
00527 REAL, DIMENSION(SIZE(PTA)) :: ZREC_LW_GARDEN      ! IR rad received by gardens
00528 !
00529 REAL, DIMENSION(SIZE(PTA)) :: ZSW_RAD_GARDEN      ! solar radiation reaching urban green areas
00530 !
00531 ! coefficients for LW contributions
00532 !
00533 REAL, DIMENSION(SIZE(PTA)) :: ZLW_WA_TO_WB        ! LW contrib. wall       -> opposite wall
00534 REAL, DIMENSION(SIZE(PTA)) :: ZLW_WA_TO_R         ! LW contrib. wall       -> road
00535 REAL, DIMENSION(SIZE(PTA)) :: ZLW_WB_TO_R         ! LW contrib. wall       -> road
00536 REAL, DIMENSION(SIZE(PTA)) :: ZLW_WA_TO_G         ! LW contrib. wall       -> green
00537 REAL, DIMENSION(SIZE(PTA)) :: ZLW_WB_TO_G         ! LW contrib. wall       -> green
00538 REAL, DIMENSION(SIZE(PTA)) :: ZLW_WA_TO_WIN       ! Radiative heat trasfer coeff wall-window 
00539 REAL, DIMENSION(SIZE(PTA)) :: ZLW_WB_TO_WIN       ! Radiative heat trasfer coeff wall-window 
00540                                                   ! [W K-1 m-2] 
00541 REAL, DIMENSION(SIZE(PTA)) :: ZLW_WA_TO_NR        ! LW contrib. wall       -> road(snow)
00542 REAL, DIMENSION(SIZE(PTA)) :: ZLW_WB_TO_NR        ! LW contrib. wall       -> road(snow)
00543 REAL, DIMENSION(SIZE(PTA)) :: ZLW_R_TO_WA         ! LW contrib. road       -> wall
00544 REAL, DIMENSION(SIZE(PTA)) :: ZLW_R_TO_WB         ! LW contrib. road       -> wall
00545 REAL, DIMENSION(SIZE(PTA)) :: ZLW_R_TO_WIN        ! Radiative heat trasfer coeff road-window 
00546                                                   ! [W K-1 m-2] 
00547 REAL, DIMENSION(SIZE(PTA)) :: ZLW_G_TO_WA         ! LW contrib. green      -> wall
00548 REAL, DIMENSION(SIZE(PTA)) :: ZLW_G_TO_WB         ! LW contrib. green      -> wall
00549 REAL, DIMENSION(SIZE(PTA)) :: ZLW_G_TO_WIN        ! L.W. interactions GARDEN areas->road
00550                                                   !
00551 REAL, DIMENSION(SIZE(PTA)) :: ZLW_WIN_TO_WA       ! Radiative heat trasfer coeff window-wall
00552                                                   ! [W K-1 m-2] 
00553 REAL, DIMENSION(SIZE(PTA)) :: ZLW_WIN_TO_WB       ! Radiative heat trasfer coeff window-wall
00554                                                   ! [W K-1 m-2] 
00555 REAL, DIMENSION(SIZE(PTA)) :: ZLW_WIN_TO_R        ! Radiative heat trasfer coeff window-road 
00556                                                   ! [W K-1 m-2]
00557 REAL, DIMENSION(SIZE(PTA)) :: ZLW_WIN_TO_G        ! Radiative heat trasfer coeff window-garden 
00558                                                   ! [W K-1 m-2]
00559 REAL, DIMENSION(SIZE(PTA)) :: ZLW_WIN_TO_NR       ! Radiative heat trasfer coeff window-road(snow) 
00560                                                   ! [W K-1 m-2] 
00561 REAL, DIMENSION(SIZE(PTA)) :: ZLW_S_TO_WA         ! LW contrib. sky        -> wall
00562 REAL, DIMENSION(SIZE(PTA)) :: ZLW_S_TO_WB         ! LW contrib. sky        -> wall
00563 REAL, DIMENSION(SIZE(PTA)) :: ZLW_S_TO_R          ! LW contrib. sky        -> road
00564 REAL, DIMENSION(SIZE(PTA)) :: ZLW_S_TO_G          ! LW contrib. sky        -> green
00565 REAL, DIMENSION(SIZE(PTA)) :: ZLW_S_TO_WIN        ! Radiative heat trasfer coeff window-sky 
00566                                                   ! [W K-1 m-2]
00567 REAL, DIMENSION(SIZE(PTA)) :: ZLW_S_TO_NR         ! LW contrib. sky        -> road(snow)
00568 REAL, DIMENSION(SIZE(PTA)) :: ZLW_NR_TO_WA        ! LW contrib. road(snow) -> wall
00569 REAL, DIMENSION(SIZE(PTA)) :: ZLW_NR_TO_WB        ! LW contrib. road(snow) -> wall
00570 REAL, DIMENSION(SIZE(PTA)) :: ZLW_NR_TO_WIN       ! L.W. interactions snow(road)->GARDEN areas
00571                                                   !
00572 REAL, DIMENSION(SIZE(PTA)) :: ZREC_SW_WIN         ! solar received by windows [W m-2(win)]
00573 REAL, DIMENSION(SIZE(PTA)) :: ZT_SKY              ! sky temperature [K]
00574 !
00575 ! local variable at previous time-step
00576 !
00577 REAL, DIMENSION(SIZE(PTA)) :: ZPET_A_COEF          
00578 REAL, DIMENSION(SIZE(PTA)) :: ZPET_B_COEF          
00579 REAL, DIMENSION(SIZE(PTA)) :: ZPEQ_A_COEF          
00580 REAL, DIMENSION(SIZE(PTA)) :: ZPEQ_B_COEF          
00581 !
00582 REAL, DIMENSION(SIZE(PTA)) :: ZUW_ROAD            ! momentum flux for roads
00583 REAL, DIMENSION(SIZE(PTA)) :: ZUW_GARDEN          ! momentum flux for green areas
00584 REAL, DIMENSION(SIZE(PTA)) :: ZUW_GREENROOF       ! momentum flux for green roofs
00585 REAL, DIMENSION(SIZE(PTA)) :: ZDUWDU_ROAD         !
00586 !
00587 REAL, DIMENSION(SIZE(PTA)) :: ZAC_AGG_GARDEN      ! aggreg. aeodynamic resistance for green areas
00588 REAL, DIMENSION(SIZE(PTA)) :: ZHU_AGG_GARDEN      ! aggreg. relative humidity for green areas
00589 REAL, DIMENSION(SIZE(PTA)) :: ZAC_AGG_GREENROOF   ! aggreg. aeodynamic resistance for green roofs
00590 REAL, DIMENSION(SIZE(PTA)) :: ZHU_AGG_GREENROOF   ! aggreg. relative humidity for green roofs
00591 !
00592 !  surfaces relative fractions
00593 !
00594 REAL, DIMENSION(SIZE(PTA)) :: ZROOF_FRAC          ! roof, wall and
00595 REAL, DIMENSION(SIZE(PTA)) :: ZWALL_FRAC          ! road fractions
00596 REAL, DIMENSION(SIZE(PTA)) :: ZROAD_FRAC          ! of exchange surf.
00597 REAL, DIMENSION(SIZE(PTA)) :: ZGARDEN_FRAC        !                  
00598 REAL, DIMENSION(SIZE(PTA)) :: ZTOTS_O_HORS        ! total canyon+roof surface
00599 !                                                 ! over horizontal surface
00600 REAL, DIMENSION(SIZE(PTA)) :: ZWALL_O_ROAD        ! wall surface over road surface
00601 REAL, DIMENSION(SIZE(PTA)) :: ZWALL_O_GRND        ! wall surface over (road+green area) surface
00602 !
00603 ! surface temperatures
00604 !
00605 REAL, DIMENSION(SIZE(PTA)) :: ZTS_GARDEN          ! surface temperature of urban green areas at t
00606 REAL, DIMENSION(SIZE(PTA)) :: ZTS_GREENROOF       ! surface temperature of urban greenroofs at t
00607 REAL, DIMENSION(SIZE(PTA)) :: ZMTC_O_GR_R1        ! mean thermal conductivity over distance 
00608 !                                                 ! between two layers (bottom GR & roof)
00609 !
00610 ! fluxes from green surfaces
00611 !
00612 REAL, DIMENSION(SIZE(PTA)) :: ZEVAP_GARDEN        ! evaporation (kg/m2/s)
00613 REAL, DIMENSION(SIZE(PTA)) :: ZSFCO2_GARDEN       ! CO2 fluxes (kg/m2/s)
00614 REAL, DIMENSION(SIZE(PTA)) :: ZEMIT_LW_GARDEN     ! LW flux emitted by the garden (W/m² garden)
00615 REAL, DIMENSION(SIZE(PTA)) :: ZEVAP_GREENROOF     ! evaporation over greenroofs (kg/m2/s)
00616 REAL, DIMENSION(SIZE(PTA)) :: ZSFCO2_GREENROOF    ! CO2 fluxes over greenroofs (kg/m2/s)
00617 !
00618 ! fluxes from built surfaces
00619 REAL, DIMENSION(SIZE(PTA)) :: ZEMIT_LW_ROAD       ! LW flux emitted by the road (W/m² road)
00620 !
00621 !new local variables for shading
00622 REAL, DIMENSION(SIZE(PTA)) :: ZE_SHADING          ! energy not ref., nor absorbed, nor
00623                                                   ! trans. by glazing [Wm-2(win)]
00624 LOGICAL, DIMENSION(SIZE(PTA)) :: GSHADE           ! describes if one encounters the
00625 !                                                 ! conditions to close windows
00626 !                                              
00627 INTEGER :: JJ
00628 
00629 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00630 !-------------------------------------------------------------------------------
00631 !
00632 !*      1.     Initializations
00633 !              ---------------
00634 !
00635 !*      1.0    broadband radiative fluxes
00636 !              --------------------------
00637 !
00638 IF (LHOOK) CALL DR_HOOK('TEB_GARDEN',0,ZHOOK_HANDLE)
00639 ZDIR_SW(:) = 0.
00640 ZSCA_SW(:) = 0.
00641 !
00642 DO JSWB=1,KSW
00643   DO JJ=1,SIZE(PDIR_SW,1)
00644     ZDIR_SW(JJ) = ZDIR_SW(JJ) + PDIR_SW(JJ,JSWB)
00645     ZSCA_SW(JJ) = ZSCA_SW(JJ) + PSCA_SW(JJ,JSWB)
00646   ENDDO
00647 END DO
00648 !
00649 !
00650 !*      1.1    surfaces relative fractions
00651 !              ---------------------------
00652 !
00653 DO JJ=1,SIZE(PROAD)
00654   IF (PROAD(JJ) .GT. 0.) THEN
00655     ZTOTS_O_HORS(JJ) = 1. + PWALL_O_HOR(JJ)
00656     ZROOF_FRAC(JJ)   = PBLD(JJ)        / ZTOTS_O_HORS(JJ)
00657     ZWALL_FRAC(JJ)   = PWALL_O_HOR(JJ) / ZTOTS_O_HORS(JJ)
00658     ZROAD_FRAC(JJ)   = PROAD(JJ)       / ZTOTS_O_HORS(JJ)
00659     ZGARDEN_FRAC(JJ) = PGARDEN(JJ)     / ZTOTS_O_HORS(JJ)
00660     ZWALL_O_ROAD(JJ) = ZWALL_FRAC(JJ) /  ZROAD_FRAC(JJ)
00661     ZWALL_O_GRND(JJ) = ZWALL_FRAC(JJ) / (ZROAD_FRAC(JJ)+ZGARDEN_FRAC(JJ))
00662   ELSEIF (PBLD(JJ) .EQ. 0. .AND. PROAD(JJ) .EQ. 0.) THEN
00663     ZTOTS_O_HORS(JJ) = 1. + PWALL_O_HOR(JJ)
00664     ZROOF_FRAC(JJ)   = 0.
00665     ZWALL_FRAC(JJ)   = PWALL_O_HOR(JJ) / ZTOTS_O_HORS(JJ)
00666     ZROAD_FRAC(JJ)   = 0.
00667     ZGARDEN_FRAC(JJ) = PGARDEN(JJ)     / ZTOTS_O_HORS(JJ)
00668     ZWALL_O_ROAD(JJ) = 0.
00669     ZWALL_O_GRND(JJ) = ZWALL_FRAC(JJ) / ZGARDEN_FRAC(JJ)
00670   ENDIF
00671 ENDDO
00672 !
00673 !-------------------------------------------------------------------------------
00674 !
00675 !*      2.     Snow-covered surfaces relative effects
00676 !              --------------------------------------
00677 !
00678 !*      2.1    Snow-covered surfaces relative fractions (at previous time-step)
00679 !              ----------------------------------------
00680  CALL SNOW_FRAC_ROAD(PWSNOW_ROAD(:,1),PSR(:)>0.,ZDN_ROAD,ZDF_ROAD)
00681  CALL SNOW_FRAC_ROOF(PWSNOW_ROOF(:,1),PSR(:)>0.,ZDN_ROOF,ZDF_ROOF)
00682 !
00683 !* new snow albedo
00684 !
00685 WHERE (PWSNOW_ROAD(:,1)==0. .AND. PSR(:)>0.) PASNOW_ROAD(:) = XANSMAX
00686 WHERE (PWSNOW_ROOF(:,1)==0. .AND. PSR(:)>0.) PASNOW_ROOF(:) = XANSMAX
00687 !
00688 !*      2.2    If snow was not present at previous time-step but is falling
00689 !              ------------------------------------------------------------
00690 !
00691 WHERE (PWSNOW_ROAD(:,1)==0. .AND. PSR(:)>0.)
00692   PASNOW_ROAD(:) = XANSMAX
00693   PESNOW_ROAD(:) = XEMISSN
00694   PTSSNOW_ROAD(:)= MIN(PT_ROAD(:,1), XTT)
00695 END WHERE
00696 WHERE (PWSNOW_ROOF(:,1)==0. .AND. PSR(:)>0.)
00697   PASNOW_ROOF(:) = XANSMAX
00698   PESNOW_ROOF(:) = XEMISSN
00699   PTSSNOW_ROOF(:)= MIN(PT_ROOF(:,1), XTT)
00700 END WHERE
00701 !
00702 !*      2.3    Radiative snow variables at previous time-step
00703 !              ----------------------------------------------
00704 !
00705 ZESNOW_ROOF  (:) = PESNOW_ROOF  (:)
00706 ZESNOW_ROAD  (:) = PESNOW_ROAD  (:)
00707 ZTSSNOW_ROOF (:) = PTSSNOW_ROOF (:)
00708 ZTSSNOW_ROAD (:) = PTSSNOW_ROAD (:)
00709 !
00710 !-------------------------------------------------------------------------------
00711 !
00712 !*      3.     Extrapolation of atmospheric T and q at roof level (for fluxes computation)
00713 !              --------------------------------------------------
00714 !
00715 ZTA(:) = PTA(:) * PEXNS(:) / PEXNA(:)
00716 ZQA(:) = PQA(:) * QSAT(PTA(:),PPS(:)) / QSAT(ZTA(:),PPA(:))
00717 !
00718 !-------------------------------------------------------------------------------
00719 !
00720 !*      4.     Grid-averaged albedo and emissivity of green areas
00721 !              --------------------------------------------------
00722 !
00723 ZALB_GARDEN   = XUNDEF
00724 ZEMIS_GARDEN  = XUNDEF
00725 ZTS_GARDEN    = XUNDEF
00726 !
00727 IF (LGARDEN) THEN
00728  CALL GARDEN_PROPERTIES(PDIR_SW, PSCA_SW, PSW_BANDS, KSW,     &
00729                         ZTS_GARDEN, ZEMIS_GARDEN, ZALB_GARDEN )
00730 ENDIF
00731 !
00732 ! for greenroofs :
00733 !
00734 ZALB_GREENROOF   = XUNDEF
00735 ZEMIS_GREENROOF  = XUNDEF
00736 ZTS_GREENROOF    = XUNDEF
00737 !
00738 IF (LGREENROOF) THEN
00739  CALL GREENROOF_PROPERTIES(PDIR_SW, PSCA_SW, PSW_BANDS, KSW,     &
00740                            ZTS_GREENROOF, ZEMIS_GREENROOF, ZALB_GREENROOF )
00741 ENDIF
00742 !
00743 !-------------------------------------------------------------------------------
00744 !
00745 !*      5.     Solar radiation
00746 !              ---------------
00747 !
00748 !* checks if one encouters the conditions for closing the windows at day
00749 !  (needs to be equiped of solar protections and not to be confortable inside)
00750 !  
00751 GSHADE(:) = .FALSE.
00752 IF (HBEM=="BEM") &
00753  CALL WINDOW_SHADING_AVAILABILITY(OSHADE, PTI_BLD, PTCOOL_TARGET,GSHADE)
00754 !
00755 !* computes solar radiation exchanges
00756 !
00757  CALL URBAN_SOLAR_ABS(HBEM, HROAD_DIR, HWALL_OPT,                   &
00758                      ZDIR_SW, ZSCA_SW, PZENITH, PAZIM,             &
00759                      PBLD, PGARDEN, PROAD_DIR, PROAD, PFRAC_GR,    &
00760                      PWALL_O_HOR, PCAN_HW_RATIO,                   &
00761                      PALB_ROOF,                                    &
00762                      PALB_ROAD, PSVF_ROAD, PALB_WALL, PSVF_WALL,   &
00763                      ZALB_GARDEN, PSVF_GARDEN,                     &
00764                      ZALB_GREENROOF,                               &
00765                      PASNOW_ROOF, PASNOW_ROAD,                     &
00766                      ZDN_ROOF, ZDF_ROOF, ZDN_ROAD, ZDF_ROAD,       &
00767                      PGR, PABS_WIN, PSHGC, PSHGC_SH, PALB_WIN,     &
00768                      PABS_SW_ROOF, PABS_SW_ROAD,                   &
00769                      PABS_SW_WALL_A, PABS_SW_WALL_B,               &
00770                      PABS_SW_GARDEN, PABS_SW_GREENROOF,            &
00771                      PABS_SW_SNOW_ROOF, PABS_SW_SNOW_ROAD,         &
00772                      ZREC_SW_ROAD,  ZREC_SW_SNOW_ROAD,             &
00773                      ZREC_SW_WALL_A, ZREC_SW_WALL_B,               &
00774                      ZREC_SW_GARDEN,                               &
00775                      PDIR_ALB_TOWN,PSCA_ALB_TOWN,                  &
00776                      ZSW_RAD_GARDEN, PABS_SW_WIN, ZREC_SW_WIN,     &
00777                      PTRAN_WIN,                                    &
00778                      PREF_SW_GRND, PREF_SW_FAC,                    &
00779                      PTR_SW_WIN, ZE_SHADING, OSHAD_DAY,            &
00780                      GSHADE                                        )
00781 !
00782 !-------------------------------------------------------------------------------
00783 !
00784 !*      6.     LW properties
00785 !              -------------
00786 !
00787   CALL URBAN_LW_COEF(PGR, PBLD, PLW_RAD,                                &
00788                      PEMIS_ROAD, PSVF_ROAD, PEMIS_WALL, PSVF_WALL,      &
00789                      ZEMIS_GARDEN, PROAD, PGARDEN,                      &
00790                      PESNOW_ROAD,                                       &
00791                      PTSSNOW_ROAD, PT_WALL_A(:,1), PT_WALL_B(:,1),      &
00792                      PT_ROAD(:,1), ZTS_GARDEN, PT_WIN1,                 &
00793                      ZLW_WA_TO_WB, ZLW_WA_TO_R, ZLW_WB_TO_R,            &
00794                      ZLW_WA_TO_NR, ZLW_WB_TO_NR,ZLW_WA_TO_G,ZLW_WB_TO_G,&
00795                      ZLW_WA_TO_WIN, ZLW_WB_TO_WIN,                      &
00796                      ZLW_R_TO_WA, ZLW_R_TO_WB, ZLW_R_TO_WIN,            &
00797                      ZLW_G_TO_WA, ZLW_G_TO_WB, ZLW_G_TO_WIN,            &
00798                      ZLW_S_TO_WA, ZLW_S_TO_WB, ZLW_S_TO_R,              &
00799                      ZLW_S_TO_NR, ZLW_S_TO_G,ZLW_S_TO_WIN,              &
00800                      ZLW_WIN_TO_WA, ZLW_WIN_TO_WB,                      &
00801                      ZLW_WIN_TO_R, ZLW_WIN_TO_NR, ZLW_WIN_TO_G,         &
00802                      ZLW_NR_TO_WA, ZLW_NR_TO_WB, ZLW_NR_TO_WIN          )
00803 !
00804 !-------------------------------------------------------------------------------
00805 !
00806 ! The subroutine is splitted in 2 because of compilation optimization issues
00807  CALL TEB_GARDEN2
00808  CALL TEB_GARDEN3
00809 !
00810 IF (LHOOK) CALL DR_HOOK('TEB_GARDEN',1,ZHOOK_HANDLE)
00811 !-------------------------------------------------------------------------------
00812 CONTAINS
00813 !-------------------------------------------------------------------------------
00814 SUBROUTINE TEB_GARDEN2
00815 !
00816 !*      7.     Terms of radiation absorption
00817 !              -----------------------------
00818 !
00819 !*      7.1    IR rad received by gardens (snow free and snow covered separately)
00820 !              --------------------------
00821 !
00822 IF (LGARDEN) THEN
00823   ZT_SKY  (:) = (PLW_RAD(:)/XSTEFAN)**0.25
00824   ZREC_LW_GARDEN(:) = (ZLW_S_TO_G  (:) * (ZT_SKY(:)     - ZTS_GARDEN(:))   &
00825                      + ZLW_WA_TO_G (:) * (PT_WALL_A(:,1)- ZTS_GARDEN(:))   &
00826                      + ZLW_WB_TO_G (:) * (PT_WALL_B(:,1)- ZTS_GARDEN(:))   &
00827                      + ZLW_WIN_TO_G(:) * (PT_WIN1(:)    - ZTS_GARDEN(:)) ) &
00828                      / ZEMIS_GARDEN(:) + XSTEFAN * ZTS_GARDEN(:)**4
00829 ELSE
00830   ZREC_LW_GARDEN      (:) = XUNDEF
00831 END IF
00832 !
00833 !-------------------------------------------------------------------------------
00834 !
00835 !*      8.     Treatment of green areas
00836 !              ------------------------
00837 !
00838 !*      8.1    Implicit coeefs for T and Q
00839 !              ---------------------------
00840 !
00841 !* explicit coupling for the time being.
00842 !  canopy may need implicitation if there is a lot a garden in the grid mesh
00843 !
00844 ZPET_A_COEF(:) = 0.
00845 ZPET_B_COEF(:) = PT_LOWCAN(:) / PEXNS(:)
00846 ZPEQ_A_COEF(:) = 0.
00847 ZPEQ_B_COEF(:) = PQ_LOWCAN(:)
00848 !
00849 !*      8.2    Call ISBA for green areas
00850 !              -------------------------
00851 !
00852 IF (LGARDEN) THEN
00853 !
00854   CALL GARDEN(HIMPLICIT_WIND, TPTIME, PTSUN, PPEW_A_COEF_LOWCAN, PPEW_B_COEF_LOWCAN, &
00855               ZPET_A_COEF, ZPEQ_A_COEF, ZPET_B_COEF, ZPEQ_B_COEF,                  &
00856               PTSTEP, PZ_LOWCAN,                                                   &
00857               PT_LOWCAN, PQ_LOWCAN, PEXNS, PRHOA, PCO2, PPS, PRR, PSR, PZENITH,    &
00858               ZREC_SW_GARDEN, ZREC_LW_GARDEN, PU_LOWCAN,                           &
00859               PRN_GARDEN,PH_GARDEN,PLE_GARDEN,PGFLUX_GARDEN, ZSFCO2_GARDEN,        &
00860               ZEVAP_GARDEN, ZUW_GARDEN,                                            &
00861               PAC_GARDEN,ZQSAT_GARDEN,ZTS_GARDEN,                                  &
00862               ZAC_AGG_GARDEN, ZHU_AGG_GARDEN                                       )
00863 
00864   PAC_GARDEN_WAT(:) = PAC_GARDEN(:)
00865   PABS_SW_GARDEN(:) = (1.-ZALB_GARDEN(:)) * ZREC_SW_GARDEN
00866   PABS_LW_GARDEN(:) = ZEMIS_GARDEN(:) * ZREC_LW_GARDEN(:) - &
00867                       XSTEFAN * ZEMIS_GARDEN(:) * ZTS_GARDEN(:)**4  
00868   ZEMIT_LW_GARDEN(:) = XSTEFAN * ZTS_GARDEN(:)**4 + &
00869                       (1 - ZEMIS_GARDEN(:)) / ZEMIS_GARDEN(:) * PABS_LW_GARDEN(:)   
00870 
00871 ELSE
00872 !
00873  PRN_GARDEN    (:) = 0.
00874  PH_GARDEN     (:) = 0.
00875  PLE_GARDEN    (:) = 0.
00876  PGFLUX_GARDEN (:) = 0.
00877  ZUW_GARDEN    (:) = 0.
00878  PAC_GARDEN    (:) = 0.
00879  PGFLUX_GARDEN (:) = 0.
00880  ZEVAP_GARDEN  (:) = 0.
00881  ZSFCO2_GARDEN (:) = 0.
00882  ZQSAT_GARDEN  (:) = XUNDEF
00883  ZTS_GARDEN    (:) = XUNDEF
00884  ZAC_AGG_GARDEN(:) = XUNDEF
00885  ZHU_AGG_GARDEN(:) = XUNDEF
00886  PAC_GARDEN_WAT(:) = XUNDEF
00887  PABS_SW_GARDEN(:) = XUNDEF
00888  PABS_LW_GARDEN(:) = XUNDEF
00889 !
00890 ENDIF
00891 !
00892 !*      8.3    Call ISBA for greenroofs
00893 !              -------------------------
00894 !
00895 IF (LGREENROOF) THEN
00896 !
00897   CALL GREENROOF(HIMPLICIT_WIND, TPTIME, PTSUN, PPEW_A_COEF, PPEW_B_COEF,            &
00898                 ZPET_A_COEF, ZPEQ_A_COEF, ZPET_B_COEF, ZPEQ_B_COEF,                  &
00899                 PTSTEP, PZREF, PUREF,                                                &
00900                 PTA, PQA, PEXNS, PEXNA,PRHOA, PCO2, PPS, PRR, PSR, PZENITH,          &
00901                 ZDIR_SW+ZSCA_SW, PLW_RAD, PVMOD,                                     &
00902                 PRN_GREENROOF,PH_GREENROOF,PLE_GREENROOF,PGFLUX_GREENROOF,           &
00903                 ZSFCO2_GREENROOF,ZEVAP_GREENROOF, ZUW_GREENROOF,                     &
00904                 PAC_GREENROOF,ZQSAT_GREENROOF,ZTS_GREENROOF,                         &
00905                 ZAC_AGG_GREENROOF, ZHU_AGG_GREENROOF,PG_GREENROOF_ROOF,              &
00906                 PRUNOFF_GREENROOF, PDRAIN_GREENROOF                                  )  
00907 !
00908   PAC_GREENROOF_WAT(:) = PAC_GREENROOF(:)
00909   PABS_SW_GREENROOF(:) = (1.-ZALB_GREENROOF(:)) * (ZDIR_SW+ZSCA_SW)
00910   PABS_LW_GREENROOF(:) = ZEMIS_GREENROOF * PLW_RAD - XSTEFAN * ZEMIS_GREENROOF * ZTS_GREENROOF**4
00911 
00912 ELSE
00913 !
00914  PRN_GREENROOF    (:) = 0.
00915  PH_GREENROOF     (:) = 0.
00916  PLE_GREENROOF    (:) = 0.
00917  PGFLUX_GREENROOF (:) = 0.
00918  ZUW_GREENROOF    (:) = 0.
00919  PAC_GREENROOF    (:) = 0.
00920  ZEVAP_GREENROOF  (:) = 0.
00921  ZSFCO2_GREENROOF (:) = 0.
00922  PRUNOFF_GREENROOF(:) = 0.
00923  PDRAIN_GREENROOF (:) = 0.
00924  ZQSAT_GREENROOF  (:) = XUNDEF
00925  ZTS_GREENROOF    (:) = XUNDEF
00926  ZAC_AGG_GREENROOF(:) = XUNDEF
00927  ZHU_AGG_GREENROOF(:) = XUNDEF
00928  PABS_SW_GREENROOF(:) = XUNDEF
00929  PABS_LW_GREENROOF(:) = XUNDEF
00930  ZMTC_O_GR_R1     (:) = XUNDEF
00931  PG_GREENROOF_ROOF(:) = XUNDEF
00932 !
00933 ENDIF
00934 
00935 END SUBROUTINE TEB_GARDEN2
00936 !-------------------------------------------------------------------------------
00937 SUBROUTINE TEB_GARDEN3
00938 !
00939 !*     9.      Treatment of built covers
00940 !              -------------------------
00941 !
00942   CALL TEB  (HZ0H, HIMPLICIT_WIND, HWALL_OPT, HBEM,                   &
00943              PT_CANYON, PQ_CANYON, PU_CANYON,                         &
00944              PT_LOWCAN, PQ_LOWCAN, PU_LOWCAN, PZ_LOWCAN,              &
00945              PTI_BLD,                                                 &
00946              PT_ROOF, PT_ROAD, PT_WALL_A, PT_WALL_B,                  &
00947              PWS_ROOF, PWS_ROAD,                                      &
00948              HSNOW_ROOF,                                              &
00949              PWSNOW_ROOF, PTSNOW_ROOF, PRSNOW_ROOF, PASNOW_ROOF,      &
00950              PTSSNOW_ROOF, PESNOW_ROOF,                               &
00951              HSNOW_ROAD,                                              &
00952              PWSNOW_ROAD, PTSNOW_ROAD, PRSNOW_ROAD, PASNOW_ROAD,      &
00953              PTSSNOW_ROAD, PESNOW_ROAD,                               &
00954              PPEW_A_COEF, PPEW_B_COEF,                                &
00955              PPEW_A_COEF_LOWCAN, PPEW_B_COEF_LOWCAN,                  &
00956              PPS, PPA, PEXNS, PEXNA,                                  &
00957              PTA, PQA, PRHOA,                                         &
00958              PLW_RAD,                                                 &
00959              PRR, PSR,                                                &
00960              PZREF, PUREF, PVMOD,                                     &
00961              PH_TRAFFIC, PLE_TRAFFIC, PH_INDUSTRY, PLE_INDUSTRY,      &
00962              PTSTEP,                                                  &
00963              PZ0_TOWN,                                                &
00964              PBLD, PGARDEN, PROAD, PFRAC_GR,                          &
00965              PBLD_HEIGHT, PWALL_O_HOR, PCAN_HW_RATIO, PWALL_O_GRND,   &
00966              ZDF_ROOF, ZDN_ROOF, ZDF_ROAD, ZDN_ROAD,                  &
00967              ZQSAT_ROOF, ZQSAT_ROAD, ZDELT_ROOF, ZDELT_ROAD,          &
00968              PEMIS_ROOF,                                              &
00969              PHC_ROOF,PTC_ROOF,PD_ROOF,                               &
00970              PEMIS_ROAD,                                              &
00971              PHC_ROAD,PTC_ROAD,PD_ROAD,                               &
00972              PEMIS_WALL,                                              &
00973              ZTS_GARDEN,                                              &
00974              PHC_WALL,PTC_WALL,PD_WALL,                               &
00975              PRN_ROOF, PH_ROOF, PLE_ROOF, PLEW_ROOF, PGFLUX_ROOF,     &
00976              PRUNOFF_ROOF,                                            &
00977              PRN_GREENROOF, PH_GREENROOF, PLE_GREENROOF,              &
00978              PGFLUX_GREENROOF, ZUW_GREENROOF,                         &
00979              PRN_STRLROOF, PH_STRLROOF, PLE_STRLROOF, PGFLUX_STRLROOF,&
00980              PRN_ROAD, PH_ROAD, PLE_ROAD, PLEW_ROAD, PGFLUX_ROAD,     &
00981              PRUNOFF_ROAD,                                            &
00982              PRN_WALL_A, PH_WALL_A, PLE_WALL_A, PGFLUX_WALL_A,        &
00983              PRN_WALL_B, PH_WALL_B, PLE_WALL_B, PGFLUX_WALL_B,        &
00984              PRN_BLT,PH_BLT,PLE_BLT,PGFLUX_BLT,                       &
00985              PRNSNOW_ROOF, PHSNOW_ROOF, PLESNOW_ROOF, PGSNOW_ROOF,    &
00986              PMELT_ROOF,                                              &
00987              PRNSNOW_ROAD, PHSNOW_ROAD, PLESNOW_ROAD, PGSNOW_ROAD,    &
00988              PMELT_ROAD,                                              &
00989              PG_GREENROOF_ROOF,                                       &
00990              PRUNOFF_TOWN,                                            &
00991              ZUW_ROAD, PUW_ROOF, ZDUWDU_ROAD, PDUWDU_ROOF,            &
00992              PUSTAR_TOWN, PCD, PCDN, PCH_TOWN, PRI_TOWN,              &
00993              PRESA_TOWN, PDQS_TOWN, PQF_TOWN, PQF_BLD, PFLX_BLD,      &
00994              ZAC_ROOF, PAC_ROAD, ZAC_WALL, ZAC_TOP, PAC_GARDEN,       &
00995              ZAC_ROOF_WAT, PAC_ROAD_WAT,                              &
00996              PABS_SW_ROOF, PABS_LW_ROOF,                              &
00997              PABS_SW_SNOW_ROOF, PABS_LW_SNOW_ROOF,                    &
00998              PABS_SW_ROAD, PABS_LW_ROAD,                              &
00999              PABS_SW_SNOW_ROAD, PABS_LW_SNOW_ROAD,                    &
01000              PABS_SW_WALL_A, PABS_LW_WALL_A,                          &
01001              PABS_SW_WALL_B, PABS_LW_WALL_B,                          &
01002              ZLW_WA_TO_WB,                                            &
01003              ZLW_WA_TO_R, ZLW_WB_TO_R,                                &
01004              ZLW_WA_TO_NR, ZLW_WB_TO_NR,                              &
01005              ZLW_R_TO_WA, ZLW_R_TO_WB,                                &
01006              ZLW_G_TO_WA, ZLW_G_TO_WB,                                &
01007              ZLW_S_TO_WA, ZLW_S_TO_WB, ZLW_S_TO_R,                    &
01008              ZLW_S_TO_NR, ZLW_NR_TO_WA, ZLW_NR_TO_WB,                 &
01009              ZLW_NR_TO_WIN, ZLW_WA_TO_WIN, ZLW_WB_TO_WIN,             &
01010              ZLW_G_TO_WIN,                                            &
01011              ZLW_R_TO_WIN, ZLW_S_TO_WIN, ZLW_WIN_TO_WA, ZLW_WIN_TO_WB,&
01012              ZLW_WIN_TO_R, ZLW_WIN_TO_NR,                             &
01013              HNATVENT,                                                &
01014              HCOOL_COIL, PF_WATER_COND, HHEAT_COIL,                   &
01015              .FALSE., KDAY, PAUX_MAX, PT_FLOOR,                       & 
01016              PT_MASS, PH_BLD_COOL, PT_BLD_COOL,                       &    
01017              PH_BLD_HEAT, PLE_BLD_COOL, PLE_BLD_HEAT,                 &
01018              PH_WASTE, PLE_WASTE, PF_WASTE_CAN, PHVAC_COOL,           &
01019              PHVAC_HEAT, PQIN, PQIN_FRAD, PQIN_FLAT,                  &
01020              PGR, PEFF_HEAT, PINF, PTCOOL_TARGET,                     &
01021              PTHEAT_TARGET, PHR_TARGET, PT_WIN2, PQI_BLD,             &
01022              PV_VENT, PCAP_SYS_HEAT, PCAP_SYS_RAT, PT_ADP,            &
01023              PM_SYS_RAT, PCOP_RAT, PCAP_SYS, PM_SYS, PCOP,            &
01024              PQ_SYS, PT_SYS, PTR_SW_WIN, PFAN_POWER, PHC_FLOOR,       &
01025              PTC_FLOOR, PD_FLOOR, PT_WIN1, PABS_SW_WIN, PABS_LW_WIN,  &
01026              PUGG_WIN, PEMIT_LW_FAC, ZEMIT_LW_ROAD, PT_RAD_IND,       &
01027              PHU_BLD, PTIME, ZE_SHADING, ONATVENT_NIGHT,              &
01028              PN_FLOOR, PWALL_O_BLD, PGLAZ_O_BLD,                      &
01029              PMASS_O_BLD, PFLOOR_HW_RATIO,                            &
01030              PF_FLOOR_MASS, PF_FLOOR_WALL, PF_FLOOR_WIN,              &
01031              PF_FLOOR_ROOF, PF_WALL_FLOOR, PF_WALL_MASS, PF_WALL_WIN, &
01032              PF_WIN_FLOOR, PF_WIN_MASS, PF_WIN_WALL, PF_MASS_FLOOR,   &
01033              PF_MASS_WALL, PF_MASS_WIN, OCANOPY,                      &
01034              HCH_BEM, PROUGH_ROOF, PROUGH_WALL, PF_WIN_WIN            )
01035 !
01036 !-------------------------------------------------------------------------------
01037 !
01038 !*     10.     Aggregation
01039 !              -----------
01040 !
01041  CALL AVG_URBAN_FLUXES(PTS_TOWN, PEMIS_TOWN,                                    &
01042                      PT_CANYON, PQ_CANYON,                                     &
01043                      PT_LOWCAN, PQ_LOWCAN,                                     &
01044                      PT_ROOF(:,1),PT_ROAD(:,1),PT_WALL_A(:,1), PT_WALL_B(:,1), &
01045                      ZTS_GARDEN,                                               &
01046                      ZTA, ZQA, PRHOA, PPS,                                     &
01047                      PH_TRAFFIC, PLE_TRAFFIC, PH_INDUSTRY, PLE_INDUSTRY,       &
01048                      PBLD, PROAD, PGARDEN, PWALL_O_HOR, ZWALL_O_GRND,          &
01049                      PFRAC_GR,                                                 &
01050                      PEMIS_ROOF, ZESNOW_ROOF, ZEMIS_GREENROOF,                 &
01051                      PLW_RAD,                                                  &
01052                      PABS_LW_ROOF, PABS_LW_WALL_A, PABS_LW_WALL_B,             &
01053                      PABS_LW_ROAD, PABS_LW_GARDEN, PABS_LW_GREENROOF,          &
01054                      PABS_LW_SNOW_ROOF, PABS_LW_SNOW_ROAD,                     &
01055                      ZAC_ROOF, ZAC_ROOF_WAT,                                   &
01056                      ZAC_WALL, PAC_ROAD, PAC_ROAD_WAT, ZAC_TOP,                &
01057                      PAC_GARDEN,                                               &
01058                      ZQSAT_GARDEN, ZAC_AGG_GARDEN, ZHU_AGG_GARDEN,             &
01059                      ZQSAT_ROOF, ZQSAT_ROAD,                                   &
01060                      ZDELT_ROOF, ZDELT_ROAD,                                   &
01061                      ZROOF_FRAC, ZWALL_FRAC, ZROAD_FRAC, ZGARDEN_FRAC,         &
01062                      ZTOTS_O_HORS,                                             &
01063                      ZDF_ROOF, ZDN_ROOF, ZDF_ROAD, ZDN_ROAD,                   &
01064                      PRN_ROOF, PH_ROOF, PLE_ROOF, PGFLUX_ROOF,                 &
01065                      PRN_ROAD, PH_ROAD, PLE_ROAD, PGFLUX_ROAD,                 &
01066                      PRN_GARDEN, PH_GARDEN, PLE_GARDEN, PGFLUX_GARDEN,         &
01067                      PRN_WALL_A, PH_WALL_A, PLE_WALL_A, PGFLUX_WALL_A,         &
01068                      PRN_WALL_B, PH_WALL_B, PLE_WALL_B, PGFLUX_WALL_B,         &
01069                      PLEW_ROOF, PLESNOW_ROOF,                                  &
01070                      PLEW_ROAD, PLESNOW_ROAD, PHSNOW_ROAD,                     &
01071                      ZEVAP_GARDEN, ZEVAP_GREENROOF,                            &
01072                      PRN_GRND, PH_GRND, PLE_GRND, PGFLUX_GRND,                 &
01073                      PRN_TOWN, PH_TOWN, PLE_TOWN, PGFLUX_TOWN, PEVAP_TOWN,     &
01074                      PH_WASTE, PLE_WASTE, PF_WASTE_CAN,                        &
01075                      PABS_LW_WIN, PT_WIN1, PGR, ZEMIT_LW_ROAD, ZEMIT_LW_GARDEN,&
01076                      PEMIT_LW_GRND, HBEM, PSVF_ROAD, PSVF_GARDEN, PSVF_WALL,   &
01077                      PGARDEN_O_GRND, PROAD_O_GRND,                             &
01078                      PEMIS_ROAD, PESNOW_ROAD, PEMIS_WALL, ZEMIS_GARDEN, OCANOPY)
01079 !
01080 PSFCO2(:) = PGARDEN(:) * ZSFCO2_GARDEN(:) + PBLD(:) * PFRAC_GR(:) * ZSFCO2_GREENROOF(:) ! no CO2 flux from built and road yet.
01081 !
01082 !-------------------------------------------------------------------------------
01083 !
01084 !*     11.     Momentum flux for ground built surfaces
01085 !              ---------------------------------------
01086 !
01087 PUW_GRND (:)     = (PROAD(:)*ZUW_ROAD(:) + PGARDEN(:)*ZUW_GARDEN(:)) / (PROAD(:)+PGARDEN(:))
01088 !
01089 PDUWDU_GRND (:)  = 0.
01090 !
01091 END SUBROUTINE TEB_GARDEN3
01092 !
01093 !-------------------------------------------------------------------------------
01094 !
01095 !
01096 END SUBROUTINE TEB_GARDEN