SUBROUTINE TEB_GARDEN_STRUCT (OGARDEN, OGREENROOF, OSOLAR_PANEL, &
HZ0H, HIMPLICIT_WIND, HROAD_DIR, HWALL_OPT, TPTIME, &
PTSUN, PT_CAN, PQ_CAN, PU_CAN, &
PT_LOWCAN, PQ_LOWCAN, PU_LOWCAN, PZ_LOWCAN, PTI_BLD, &
PT_ROOF, PT_ROAD, PT_WALL_A, PT_WALL_B, &
PWS_ROOF,PWS_ROAD, &
HSNOW_ROOF, &
PWSNOW_ROOF, PTSNOW_ROOF, PRSNOW_ROOF, PASNOW_ROOF, &
PTSSNOW_ROOF, PESNOW_ROOF, &
HSNOW_ROAD, &
PWSNOW_ROAD, PTSNOW_ROAD, PRSNOW_ROAD, PASNOW_ROAD, &
PTSSNOW_ROAD, PESNOW_ROAD, &
PPEW_A_COEF, PPEW_B_COEF, &
PPEW_A_COEF_LOWCAN, PPEW_B_COEF_LOWCAN, &
PPS, PPA, PEXNS, PEXNA, &
PTA, PQA, PRHOA, PCO2, &
PLW_RAD, PDIR_SW, PSCA_SW, PSW_BANDS, KSW, &
PZENITH, PAZIM, &
PRR, PSR, &
PZREF, PUREF, PVMOD, &
PH_TRAFFIC, PLE_TRAFFIC, PH_INDUSTRY, PLE_INDUSTRY, &
PTSTEP, PZ0_TOWN, PBLD, PGARDEN, PROAD_DIR, PROAD, &
PFRAC_GR, &
PBLD_HEIGHT, PWALL_O_HOR, PCAN_HW_RATIO, &
PROAD_O_GRND, PGARDEN_O_GRND, PWALL_O_GRND, &
PALB_ROOF, PEMIS_ROOF, &
PHC_ROOF,PTC_ROOF,PD_ROOF, &
PALB_ROAD, PEMIS_ROAD, PSVF_ROAD, &
PHC_ROAD,PTC_ROAD,PD_ROAD, &
PALB_WALL, PEMIS_WALL, PSVF_WALL, &
PSVF_GARDEN, &
PHC_WALL,PTC_WALL,PD_WALL, &
PRN_ROOF, PH_ROOF, PLE_ROOF, PLEW_ROOF, PGFLUX_ROOF, &
PRUNOFF_ROOF, &
PRN_ROAD, PH_ROAD, PLE_ROAD, PLEW_ROAD, PGFLUX_ROAD, &
PRUNOFF_ROAD, &
PRN_WALL_A, PH_WALL_A, PLE_WALL_A, PGFLUX_WALL_A, &
PRN_WALL_B, PH_WALL_B, PLE_WALL_B, PGFLUX_WALL_B, &
PRN_STRLROOF,PH_STRLROOF,PLE_STRLROOF, PGFLUX_STRLROOF, &
PRUNOFF_STRLROOF, &
PRN_BLT,PH_BLT,PLE_BLT, PGFLUX_BLT, &
PRNSNOW_ROOF, PHSNOW_ROOF, PLESNOW_ROOF, PGSNOW_ROOF, &
PMELT_ROOF, &
PRNSNOW_ROAD, PHSNOW_ROAD, PLESNOW_ROAD, PGSNOW_ROAD, &
PMELT_ROAD, &
PRN_GRND, PH_GRND, PLE_GRND, PGFLUX_GRND, &
PRN_TOWN, PH_TOWN, PLE_TOWN, PGFLUX_TOWN, PEVAP_TOWN, &
PRUNOFF_TOWN, PSFCO2, &
PUW_GRND, PUW_ROOF, PDUWDU_GRND, PDUWDU_ROOF, &
PUSTAR_TOWN, PCD, PCDN, PCH_TOWN, PRI_TOWN, &
PTS_TOWN, PEMIS_TOWN, PDIR_ALB_TOWN, PSCA_ALB_TOWN, &
PRESA_TOWN, PDQS_TOWN, PQF_TOWN, PQF_BLD, &
PFLX_BLD, PAC_ROAD, PAC_GARDEN, PAC_GREENROOF, &
PAC_ROAD_WAT, PAC_GARDEN_WAT, PAC_GREENROOF_WAT, &
PABS_SW_ROOF,PABS_LW_ROOF, &
PABS_SW_SNOW_ROOF,PABS_LW_SNOW_ROOF, &
PABS_SW_ROAD,PABS_LW_ROAD, &
PABS_SW_SNOW_ROAD,PABS_LW_SNOW_ROAD, &
PABS_SW_WALL_A,PABS_LW_WALL_A, &
PABS_SW_WALL_B,PABS_LW_WALL_B, &
PABS_SW_PANEL,PABS_LW_PANEL, &
PABS_SW_GARDEN,PABS_LW_GARDEN, &
PABS_SW_GREENROOF,PABS_LW_GREENROOF, &
PG_GREENROOF_ROOF, &
HCOOL_COIL, PF_WATER_COND, HHEAT_COIL, &
HNATVENT, PNATVENT, KDAY, PAUX_MAX, PT_FLOOR, &
PT_MASS, PH_BLD_COOL, PT_BLD_COOL, PH_BLD_HEAT, &
PLE_BLD_COOL, PLE_BLD_HEAT, PH_WASTE, PLE_WASTE, &
PF_WASTE_CAN, PHVAC_COOL, PHVAC_HEAT, PQIN, PQIN_FRAD, &
PQIN_FLAT, PGR, PEFF_HEAT, PINF, &
PTCOOL_TARGET, PTHEAT_TARGET, PHR_TARGET, PT_WIN2, &
PQI_BLD, PV_VENT, PCAP_SYS_HEAT, PCAP_SYS_RAT, PT_ADP, &
PM_SYS_RAT, PCOP_RAT, PCAP_SYS, PM_SYS, PCOP, PQ_SYS, &
PT_SYS, PTR_SW_WIN, PFAN_POWER, PHC_FLOOR, PTC_FLOOR, &
PD_FLOOR, PT_WIN1, PABS_SW_WIN, PABS_LW_WIN, PSHGC, &
PSHGC_SH, PUGG_WIN, PALB_WIN, PABS_WIN, PEMIT_LW_FAC, &
PEMIT_LW_GRND, PT_RAD_IND, PREF_SW_GRND, PREF_SW_FAC, &
PHU_BLD, PTIME, OSHADE, PSHADE, OSHAD_DAY, ONATVENT_NIGHT, HBEM, &
PN_FLOOR, PWALL_O_BLD, PGLAZ_O_BLD, PMASS_O_BLD, &
PFLOOR_HW_RATIO, PF_FLOOR_MASS, PF_FLOOR_WALL, &
PF_FLOOR_WIN, PF_FLOOR_ROOF, PF_WALL_FLOOR, PF_WALL_MASS,&
PF_WALL_WIN, PF_WIN_FLOOR, PF_WIN_MASS, PF_WIN_WALL, &
PF_MASS_FLOOR, PF_MASS_WALL, PF_MASS_WIN, OCANOPY, &
PTRAN_WIN, HCH_BEM, PROUGH_ROOF, PROUGH_WALL, PF_WIN_WIN,&
OPAR_RD_IRRIG, PRD_START_MONTH, PRD_END_MONTH, &
PRD_START_HOUR, PRD_END_HOUR, PRD_24H_IRRIG, PIRRIG_ROAD,&
PEMIS_PANEL, PALB_PANEL, PEFF_PANEL, PFRAC_PANEL, &
PRESIDENTIAL, &
PTHER_PROD_PANEL, PPHOT_PROD_PANEL, PPROD_PANEL, &
PTHER_PROD_BLD , PPHOT_PROD_BLD , PPROD_BLD , &
PTHER_PRODC_DAY, PH_PANEL, PRN_PANEL, &
PDT_RES, PDT_OFF, &
PCUR_TCOOL_TARGET, PCUR_THEAT_TARGET, PCUR_QIN )
! ##########################################################################
!
!!**** *TEB_GARDEN_STRUCT*
!!
!! PURPOSE
!! -------
!
! To put all individual variables in the corresponding fortran structure
! for the call to TEB_GARDEN routine.
!
!!** METHOD
! ------
!
!
!! EXTERNAL
!! --------
!!
!!
!! IMPLICIT ARGUMENTS
!! ------------------
!!
!!
!! REFERENCE
!! ---------
!!
!!
!! AUTHOR
!! ------
!!
!! V. Masson * Meteo-France *
!!
!! MODIFICATIONS
!! -------------
!! Original 03/2018
!-------------------------------------------------------------------------------
!
!* 0. DECLARATIONS
! ------------
!
USE MODD_TYPE_DATE_SURF
USE MODD_SURF_PAR, ONLY : XUNDEF
!
USE MODD_DATA_COVER_n, ONLY : DATA_COVER_t
USE MODD_SFX_GRID_n, ONLY : GRID_t
USE MODD_TEB_OPTION_n, ONLY : TEB_OPTIONS_t
USE MODD_TEB_n, ONLY : TEB_t
USE MODD_BEM_OPTION_n, ONLY : BEM_OPTIONS_t
USE MODD_BEM_n, ONLY : BEM_t
USE MODD_TEB_PANEL_n, ONLY : TEB_PANEL_t
USE MODD_TEB_IRRIG_n, ONLY : TEB_IRRIG_t
USE MODD_DIAG_MISC_TEB_n, ONLY : DIAG_MISC_TEB_t
USE MODD_SURFEX_n, ONLY : TEB_GARDEN_MODEL_t
USE MODD_SURFEX_n, ONLY : TEB_GREENROOF_MODEL_t
!
USE MODI_ALLOC_TEB_STRUCT
USE MODI_DEALLOC_TEB_STRUCT
USE MODI_TEB_GARDEN
!
IMPLICIT NONE
!
!* 0.1 Declarations of arguments
!
!
!
!
LOGICAL, INTENT(IN) :: OGARDEN ! Flag to use a garden model inside the canyon
LOGICAL, INTENT(IN) :: OGREENROOF ! Flag to use a greenroof model on roofs
LOGICAL, INTENT(IN) :: OSOLAR_PANEL ! Flag to use a Solar Panel model on roofs
CHARACTER(LEN=6) , INTENT(IN) :: HZ0H ! TEB option for z0h roof & road
! ! 'MASC95' : Mascart et al 1995
! ! 'BRUT82' : Brustaert 1982
! ! 'KAND07' : Kanda 2007
CHARACTER(LEN=*), INTENT(IN) :: HIMPLICIT_WIND ! wind implicitation option
! ! 'OLD' = direct
! ! 'NEW' = Taylor serie, order 1
CHARACTER(LEN=4) , INTENT(IN) :: HROAD_DIR ! TEB option for road direction
! 'UNIF' : uniform roads
! 'ORIE' : specified
! road orientation
CHARACTER(LEN=4) , INTENT(IN) :: HWALL_OPT ! TEB option for walls representation
! 'UNIF' : uniform walls
! 'TWO ' : 2 opposite walls
TYPE(DATE_TIME) , INTENT(IN) :: TPTIME ! current date and time from teb
REAL, DIMENSION(:), INTENT(IN) :: PTSUN ! solar time (s from midnight)
!
REAL, DIMENSION(:) , INTENT(INOUT) :: PT_CAN ! canyon air temperature
REAL, DIMENSION(:) , INTENT(INOUT) :: PQ_CAN ! canyon air specific humidity
REAL, DIMENSION(:) , INTENT(IN) :: PU_CAN ! canyon hor. wind
REAL, DIMENSION(:) , INTENT(IN) :: PU_LOWCAN ! wind near the road
REAL, DIMENSION(:) , INTENT(IN) :: PT_LOWCAN ! temp. near the road
REAL, DIMENSION(:) , INTENT(IN) :: PQ_LOWCAN ! hum. near the road
REAL, DIMENSION(:) , INTENT(IN) :: PZ_LOWCAN ! height of atm. var. near the road
REAL, DIMENSION(:) , INTENT(INOUT) :: PTI_BLD ! inside building temperature
REAL, DIMENSION(:,:), INTENT(INOUT) :: PT_ROOF ! roof layers temperatures
REAL, DIMENSION(:,:), INTENT(INOUT) :: PT_ROAD ! road layers temperatures
REAL, DIMENSION(:,:), INTENT(INOUT) :: PT_WALL_A ! wall layers temperatures
REAL, DIMENSION(:,:), INTENT(INOUT) :: PT_WALL_B ! wall layers temperatures
REAL, DIMENSION(:) , INTENT(INOUT) :: PWS_ROOF ! roof water reservoir
REAL, DIMENSION(:) , INTENT(INOUT) :: PWS_ROAD ! road water reservoir
CHARACTER(LEN=*) , INTENT(IN) :: HSNOW_ROOF ! snow roof scheme 'NONE', 'D95 ', '1-L '
CHARACTER(LEN=*) , INTENT(IN) :: HSNOW_ROAD ! snow road scheme 'NONE', 'D95 ', '1-L '
REAL, DIMENSION(:,:), INTENT(INOUT) :: PWSNOW_ROOF ! snow layers reservoir
REAL, DIMENSION(:,:), INTENT(INOUT) :: PTSNOW_ROOF ! snow layers temperature
REAL, DIMENSION(:,:), INTENT(INOUT) :: PRSNOW_ROOF ! snow layers density
REAL, DIMENSION(:) , INTENT(INOUT) :: PASNOW_ROOF ! snow albedo
REAL, DIMENSION(:) , INTENT(INOUT) :: PESNOW_ROOF ! snow emissivity
REAL, DIMENSION(:) , INTENT(INOUT) :: PTSSNOW_ROOF ! snow surface temperature
REAL, DIMENSION(:,:), INTENT(INOUT) :: PWSNOW_ROAD ! snow layers reservoir
REAL, DIMENSION(:,:), INTENT(INOUT) :: PTSNOW_ROAD ! snow layers temperature
REAL, DIMENSION(:,:), INTENT(INOUT) :: PRSNOW_ROAD ! snow layers density
REAL, DIMENSION(:) , INTENT(INOUT) :: PASNOW_ROAD ! snow albedo
REAL, DIMENSION(:) , INTENT(INOUT) :: PESNOW_ROAD ! snow emissivity
REAL, DIMENSION(:) , INTENT(INOUT) :: PTSSNOW_ROAD ! snow surface temperature
REAL, DIMENSION(:) , INTENT(IN) :: PPEW_A_COEF ! implicit coefficients
REAL, DIMENSION(:) , INTENT(IN) :: PPEW_B_COEF ! for wind coupling
REAL, DIMENSION(:) , INTENT(IN) :: PPEW_A_COEF_LOWCAN ! implicit coefficients for wind coupling
REAL, DIMENSION(:) , INTENT(IN) :: PPEW_B_COEF_LOWCAN ! between low canyon wind and road
REAL, DIMENSION(:) , INTENT(IN) :: PPS ! pressure at the surface
REAL, DIMENSION(:) , INTENT(IN) :: PPA ! pressure at the first atmospheric level
REAL, DIMENSION(:) , INTENT(IN) :: PEXNS ! surface exner function
REAL, DIMENSION(:) , INTENT(IN) :: PTA ! temperature at the lowest level
REAL, DIMENSION(:) , INTENT(IN) :: PQA ! specific humidity at the lowest level
REAL, DIMENSION(:) , INTENT(IN) :: PVMOD ! module of the horizontal wind
REAL, DIMENSION(:) , INTENT(IN) :: PEXNA ! exner function at the lowest level
REAL, DIMENSION(:) , INTENT(IN) :: PRHOA ! air density at the lowest level
REAL, DIMENSION(:) , INTENT(IN) :: PCO2 ! CO2 concentration in the air (kg/m3)
REAL, DIMENSION(:) , INTENT(IN) :: PLW_RAD ! atmospheric infrared radiation
REAL, DIMENSION(:,:), INTENT(IN) :: PDIR_SW ! incoming direct solar rad on an horizontal surface
REAL, DIMENSION(:,:), INTENT(IN) :: PSCA_SW ! scattered incoming solar rad.
REAL, DIMENSION(:) , INTENT(IN) :: PSW_BANDS ! mean wavelength of each shortwave band (m)
INTEGER, INTENT(IN) :: KSW ! number of short-wave spectral bands
REAL, DIMENSION(:) , INTENT(IN) :: PZENITH ! solar zenithal angle
REAL, DIMENSION(:) , INTENT(IN) :: PAZIM ! solar azimuthal angle
! (radian form N, clockwise)
REAL, DIMENSION(:) , INTENT(IN) :: PRR ! rain rate
REAL, DIMENSION(:) , INTENT(IN) :: PSR ! snow rate
REAL, DIMENSION(:) , INTENT(IN) :: PH_TRAFFIC ! anthropogenic sensible heat fluxes due to traffic
REAL, DIMENSION(:) , INTENT(IN) :: PLE_TRAFFIC ! anthropogenic latent heat fluxes due to traffic
REAL, DIMENSION(:) , INTENT(IN) :: PH_INDUSTRY ! anthropogenic sensible heat fluxes due to factories
REAL, DIMENSION(:) , INTENT(IN) :: PLE_INDUSTRY ! anthropogenic latent heat fluxes due to factories
REAL, DIMENSION(:) , INTENT(IN) :: PZREF ! reference height of the first atm level (temperature)
REAL, DIMENSION(:) , INTENT(IN) :: PUREF ! reference height of the first atm level (wind)
REAL , INTENT(IN) :: PTSTEP ! time step
REAL, DIMENSION(:) , INTENT(IN) :: PZ0_TOWN ! town roughness length for momentum
REAL, DIMENSION(:) , INTENT(IN) :: PBLD ! fraction of buildings
REAL, DIMENSION(:) , INTENT(IN) :: PGARDEN ! fraction of green areas
REAL, DIMENSION(:) , INTENT(IN) :: PROAD_DIR ! road direction (deg from North, clockwise)
REAL, DIMENSION(:) , INTENT(IN) :: PROAD ! fraction of roads
REAL, DIMENSION(:) , INTENT(IN) :: PFRAC_GR ! fraction of green roofs
REAL, DIMENSION(:) , INTENT(IN) :: PBLD_HEIGHT ! buildings h
REAL, DIMENSION(:) , INTENT(IN) :: PWALL_O_HOR ! wall surf. / hor. surf.
REAL, DIMENSION(:) , INTENT(IN) :: PCAN_HW_RATIO ! canyon h/W
REAL, DIMENSION(:) , INTENT(IN) :: PROAD_O_GRND ! road surf. / (road+garden surf.)
REAL, DIMENSION(:) , INTENT(IN) :: PGARDEN_O_GRND ! garden surf. / (road+garden surf.)
REAL, DIMENSION(:) , INTENT(IN) :: PWALL_O_GRND ! wall surf. / (road+garden surf.)
REAL, DIMENSION(:) , INTENT(IN) :: PALB_ROOF ! roof albedo
REAL, DIMENSION(:) , INTENT(IN) :: PEMIS_ROOF ! roof emissivity
REAL, DIMENSION(:,:), INTENT(IN) :: PHC_ROOF ! heat capacity for roof layers
REAL, DIMENSION(:,:), INTENT(IN) :: PTC_ROOF ! thermal conductivity for roof layers
REAL, DIMENSION(:,:), INTENT(IN) :: PD_ROOF ! depth of roof layers
REAL, DIMENSION(:) , INTENT(IN) :: PALB_ROAD ! road albedo
REAL, DIMENSION(:) , INTENT(IN) :: PEMIS_ROAD ! road emissivity
REAL, DIMENSION(:,:), INTENT(IN) :: PHC_ROAD ! heat capacity for road layers
REAL, DIMENSION(:,:), INTENT(IN) :: PTC_ROAD ! thermal conductivity for road layers
REAL, DIMENSION(:,:), INTENT(IN) :: PD_ROAD ! depth of road layers
REAL, DIMENSION(:) , INTENT(IN) :: PSVF_ROAD ! road sky view factor
REAL, DIMENSION(:) , INTENT(IN) :: PALB_WALL ! wall albedo
REAL, DIMENSION(:) , INTENT(IN) :: PEMIS_WALL ! wall emissivity
REAL, DIMENSION(:,:), INTENT(IN) :: PHC_WALL ! heat capacity for wall layers
REAL, DIMENSION(:,:), INTENT(IN) :: PTC_WALL ! thermal conductivity for wall layers
REAL, DIMENSION(:,:), INTENT(IN) :: PD_WALL ! depth of wall layers
REAL, DIMENSION(:) , INTENT(IN) :: PSVF_WALL ! wall sky view factor
REAL, DIMENSION(:) , INTENT(IN) :: PSVF_GARDEN ! green area sky view factor
!
REAL, DIMENSION(:) , INTENT(OUT) :: PRN_ROOF ! net radiation over roof
REAL, DIMENSION(:) , INTENT(OUT) :: PH_ROOF ! sensible heat flux over roof
REAL, DIMENSION(:) , INTENT(OUT) :: PLE_ROOF ! latent heat flux over roof
REAL, DIMENSION(:) , INTENT(OUT) :: PLEW_ROOF ! latent heat flux over roof (snow)
REAL, DIMENSION(:) , INTENT(OUT) :: PGFLUX_ROOF ! flux through the roof
REAL, DIMENSION(:) , INTENT(OUT) :: PRUNOFF_ROOF ! runoff over the ground
REAL, DIMENSION(:) , INTENT(OUT) :: PRN_ROAD ! net radiation over road
REAL, DIMENSION(:) , INTENT(OUT) :: PH_ROAD ! sensible heat flux over road
REAL, DIMENSION(:) , INTENT(OUT) :: PLE_ROAD ! latent heat flux over road
REAL, DIMENSION(:) , INTENT(OUT) :: PLEW_ROAD ! latent heat flux over road (snow)
REAL, DIMENSION(:) , INTENT(OUT) :: PGFLUX_ROAD ! flux through the road
REAL, DIMENSION(:) , INTENT(OUT) :: PRUNOFF_ROAD ! runoff over the ground
REAL, DIMENSION(:) , INTENT(OUT) :: PRN_WALL_A ! net radiation over wall
REAL, DIMENSION(:) , INTENT(OUT) :: PH_WALL_A ! sensible heat flux over wall
REAL, DIMENSION(:) , INTENT(OUT) :: PLE_WALL_A ! latent heat flux over wall
REAL, DIMENSION(:) , INTENT(OUT) :: PGFLUX_WALL_A ! flux through the wall
REAL, DIMENSION(:) , INTENT(OUT) :: PRN_WALL_B ! net radiation over wall
REAL, DIMENSION(:) , INTENT(OUT) :: PH_WALL_B ! sensible heat flux over wall
REAL, DIMENSION(:) , INTENT(OUT) :: PLE_WALL_B ! latent heat flux over wall
REAL, DIMENSION(:) , INTENT(OUT) :: PGFLUX_WALL_B ! flux through the wall
REAL, DIMENSION(:) , INTENT(OUT) :: PRN_STRLROOF ! net radiation over structural roof
REAL, DIMENSION(:) , INTENT(OUT) :: PH_STRLROOF ! sensible heat flux over structural roof
REAL, DIMENSION(:) , INTENT(OUT) :: PLE_STRLROOF ! latent heat flux over structural roof
REAL, DIMENSION(:) , INTENT(OUT) :: PGFLUX_STRLROOF ! flux through the structural roof
REAL, DIMENSION(:) , INTENT(OUT) :: PRUNOFF_STRLROOF ! runoff aver structural roof
REAL, DIMENSION(:) , INTENT(OUT) :: PRN_BLT ! net radiation over built surf
REAL, DIMENSION(:) , INTENT(OUT) :: PH_BLT ! sensible heat flux over built surf
REAL, DIMENSION(:) , INTENT(OUT) :: PLE_BLT ! latent heat flux over built surf
REAL, DIMENSION(:) , INTENT(OUT) :: PGFLUX_BLT ! flux through the built surf
!
REAL, DIMENSION(:) , INTENT(OUT) :: PRNSNOW_ROOF ! net radiation over snow
REAL, DIMENSION(:) , INTENT(OUT) :: PHSNOW_ROOF ! sensible heat flux over snow
REAL, DIMENSION(:) , INTENT(OUT) :: PLESNOW_ROOF ! latent heat flux over snow
REAL, DIMENSION(:) , INTENT(OUT) :: PGSNOW_ROOF ! flux under the snow
REAL, DIMENSION(:) , INTENT(OUT) :: PMELT_ROOF ! snow melt
REAL, DIMENSION(:) , INTENT(OUT) :: PRNSNOW_ROAD ! net radiation over snow
REAL, DIMENSION(:) , INTENT(OUT) :: PHSNOW_ROAD ! sensible heat flux over snow
REAL, DIMENSION(:) , INTENT(OUT) :: PLESNOW_ROAD ! latent heat flux over snow
REAL, DIMENSION(:) , INTENT(OUT) :: PGSNOW_ROAD ! flux under the snow
REAL, DIMENSION(:) , INTENT(OUT) :: PMELT_ROAD ! snow melt
!
REAL, DIMENSION(:) , INTENT(OUT) :: PRN_GRND ! net radiation over ground
REAL, DIMENSION(:) , INTENT(OUT) :: PH_GRND ! sensible heat flux over ground
REAL, DIMENSION(:) , INTENT(OUT) :: PLE_GRND ! latent heat flux over ground
REAL, DIMENSION(:) , INTENT(OUT) :: PGFLUX_GRND ! flux through the ground
REAL, DIMENSION(:) , INTENT(OUT) :: PRN_TOWN ! net radiation over town
REAL, DIMENSION(:) , INTENT(OUT) :: PH_TOWN ! sensible heat flux over town
REAL, DIMENSION(:) , INTENT(OUT) :: PLE_TOWN ! latent heat flux over town
REAL, DIMENSION(:) , INTENT(OUT) :: PGFLUX_TOWN ! flux through the ground
REAL, DIMENSION(:) , INTENT(OUT) :: PEVAP_TOWN ! evaporation flux (kg/m2/s)
REAL, DIMENSION(:) , INTENT(OUT) :: PRUNOFF_TOWN ! runoff over the ground
REAL, DIMENSION(:) , INTENT(OUT) :: PSFCO2 ! flux of CO2 (m/s*kg_CO2/kg_air)
REAL, DIMENSION(:) , INTENT(OUT) :: PUW_GRND ! momentum flux for ground built surf
REAL, DIMENSION(:) , INTENT(OUT) :: PUW_ROOF ! momentum flux for roofs
REAL, DIMENSION(:) , INTENT(OUT) :: PDUWDU_GRND !
REAL, DIMENSION(:) , INTENT(OUT) :: PDUWDU_ROOF !
REAL, DIMENSION(:) , INTENT(OUT) :: PUSTAR_TOWN ! friciton velocity over town
REAL, DIMENSION(:) , INTENT(OUT) :: PCD ! town averaged drag coefficient
REAL, DIMENSION(:) , INTENT(OUT) :: PCDN ! town averaged neutral drag coefficient
REAL, DIMENSION(:) , INTENT(OUT) :: PCH_TOWN ! town averaged heat transfer coefficient
REAL, DIMENSION(:) , INTENT(OUT) :: PRI_TOWN ! town averaged Richardson number
REAL, DIMENSION(:) , INTENT(OUT) :: PTS_TOWN ! town surface temperature
REAL, DIMENSION(:) , INTENT(OUT) :: PEMIS_TOWN ! town equivalent emissivity
REAL, DIMENSION(:) , INTENT(OUT) :: PDIR_ALB_TOWN ! town equivalent direct albedo
REAL, DIMENSION(:) , INTENT(OUT) :: PSCA_ALB_TOWN ! town equivalent diffuse albedo
REAL, DIMENSION(:) , INTENT(OUT) :: PRESA_TOWN ! town aerodynamical resistance
REAL, DIMENSION(:) , INTENT(OUT) :: PDQS_TOWN ! heat storage inside town
REAL, DIMENSION(:) , INTENT(OUT) :: PQF_TOWN ! total anthropogenic heat
REAL, DIMENSION(:) , INTENT(OUT) :: PQF_BLD ! anthropogenic heat flux of domestic heating
REAL, DIMENSION(:) , INTENT(OUT) :: PFLX_BLD ! heat flx from inside bld through its structure
REAL, DIMENSION(:) , INTENT(OUT) :: PAC_ROAD ! road conductance
REAL, DIMENSION(:) , INTENT(OUT) :: PAC_GARDEN ! green area conductance
REAL, DIMENSION(:) , INTENT(OUT) :: PAC_GREENROOF ! green roof conductance
REAL, DIMENSION(:) , INTENT(OUT) :: PAC_ROAD_WAT ! road conductance for latent heat
REAL, DIMENSION(:) , INTENT(OUT) :: PAC_GARDEN_WAT ! green area conductance for latent heat
REAL, DIMENSION(:) , INTENT(OUT) :: PAC_GREENROOF_WAT ! green roof conductance for latent heat
!
REAL, DIMENSION(:) , INTENT(OUT) :: PABS_SW_ROOF ! absorbed solar rad by roof
REAL, DIMENSION(:) , INTENT(OUT) :: PABS_SW_SNOW_ROOF ! absorbed solar rad by snow on roof
REAL, DIMENSION(:) , INTENT(OUT) :: PABS_LW_ROOF ! absorbed IR rad by roof
REAL, DIMENSION(:) , INTENT(OUT) :: PABS_LW_SNOW_ROOF ! absorbed IR rad by snow on roof
REAL, DIMENSION(:) , INTENT(OUT) :: PABS_SW_ROAD ! absorbed solar rad by road
REAL, DIMENSION(:) , INTENT(OUT) :: PABS_SW_SNOW_ROAD ! absorbed solar rad by snow on road
REAL, DIMENSION(:) , INTENT(OUT) :: PABS_LW_ROAD ! absorbed IR rad by road
REAL, DIMENSION(:) , INTENT(OUT) :: PABS_LW_SNOW_ROAD ! absorbed IR rad by snow on road
REAL, DIMENSION(:) , INTENT(OUT) :: PABS_SW_WALL_A ! absorbed solar rad by wall
REAL, DIMENSION(:) , INTENT(OUT) :: PABS_LW_WALL_A ! absorbed IR rad by wall
REAL, DIMENSION(:) , INTENT(OUT) :: PABS_SW_WALL_B ! absorbed solar rad by wall
REAL, DIMENSION(:) , INTENT(OUT) :: PABS_LW_WALL_B ! absorbed IR rad by wall
REAL, DIMENSION(:) , INTENT(OUT) :: PABS_SW_PANEL ! absorbed solar rad by solar panels
REAL, DIMENSION(:) , INTENT(OUT) :: PABS_LW_PANEL ! absorbed IR rad by solar panels
REAL, DIMENSION(:) , INTENT(OUT) :: PABS_SW_GARDEN ! absorbed solar rad by green areas
REAL, DIMENSION(:) , INTENT(OUT) :: PABS_LW_GARDEN ! absorbed IR rad by green areas
REAL, DIMENSION(:) , INTENT(OUT) :: PABS_SW_GREENROOF ! absorbed solar rad by green roofs
REAL, DIMENSION(:) , INTENT(OUT) :: PABS_LW_GREENROOF ! absorbed IR rad by green roofs
REAL, DIMENSION(:) , INTENT(OUT) :: PG_GREENROOF_ROOF ! heat flux between base of greenroof
! ! and structural roof
!
! new arguments created after BEM
!
CHARACTER(LEN=12) , INTENT(IN) :: HCOOL_COIL
CHARACTER(LEN=6) , INTENT(IN) :: HHEAT_COIL
REAL, DIMENSION(:) , INTENT(IN) :: PF_WATER_COND ! fraction of evaporation for the condensers
CHARACTER(LEN=4), DIMENSION(:), INTENT(IN) :: HNATVENT
REAL, DIMENSION(:) , INTENT(IN) :: PNATVENT ! flag to describe surventilation system for i/o
! 0 for NONE, 1 for MANU and 2 for AUTO
INTEGER , INTENT(IN) :: KDAY ! Simulation day
REAL, DIMENSION(:) , INTENT(INOUT) :: PAUX_MAX ! Auxiliar variable for autosize calcs
REAL, DIMENSION(:,:), INTENT(INOUT) :: PT_FLOOR ! Floor layers temperatures [K]
REAL, DIMENSION(:,:), INTENT(INOUT) :: PT_MASS ! Internal mass layers temperatures [K]
REAL, DIMENSION(:) , INTENT(OUT) :: PH_BLD_COOL ! Sensible cooling energy demand
! of the building [W m-2(bld)]
REAL, DIMENSION(:) , INTENT(OUT) :: PT_BLD_COOL ! Total cooling energy demand
! of the building [W m-2(bld)]
REAL, DIMENSION(:) , INTENT(OUT) :: PH_BLD_HEAT ! Heating energy demand
! of the building [W m-2(bld)]
REAL, DIMENSION(: ), INTENT(OUT) :: PLE_BLD_COOL ! Latent cooling energy demand
! of the building [W m-2(bld)]
REAL, DIMENSION(:) , INTENT(OUT) :: PLE_BLD_HEAT ! Latent heating energy demand
! of the building [W m-2(bld)]
REAL, DIMENSION(:) , INTENT(OUT) :: PH_WASTE ! Sensible waste heat from HVAC system
! [W m-2(tot)]
REAL, DIMENSION(:) , INTENT(OUT) :: PLE_WASTE ! Latent waste heat from HVAC system
! [W m-2(tot)]
REAL, DIMENSION(:) , INTENT(IN) :: PF_WASTE_CAN ! fraction of waste heat released into the canyon
REAL, DIMENSION(:) , INTENT(OUT) :: PHVAC_COOL ! Energy consumption of the cooling system
! [W m-2(bld)]
REAL, DIMENSION(:) , INTENT(OUT) :: PHVAC_HEAT ! Energy consumption of the heating system
! [W m-2(bld)]
REAL, DIMENSION(:) , INTENT(IN) :: PQIN ! Internal heat gains [W m-2(floor)]
REAL, DIMENSION(:) , INTENT(IN) :: PQIN_FRAD ! Radiant fraction of internal heat gains
REAL, DIMENSION(:) , INTENT(IN) :: PQIN_FLAT ! Latent franction of internal heat gains
REAL, DIMENSION(:) , INTENT(IN) :: PGR ! Glazing ratio
REAL, DIMENSION(:) , INTENT(IN) :: PEFF_HEAT ! Efficiency of the heating system
REAL, DIMENSION(:) , INTENT(IN) :: PINF ! Infiltration flow rate [AC/H]
REAL, DIMENSION(:) , INTENT(IN) :: PTCOOL_TARGET ! Cooling setpoint of HVAC system [K]
REAL, DIMENSION(:) , INTENT(IN) :: PTHEAT_TARGET ! Heating setpoint of HVAC system [K]
REAL, DIMENSION(:) , INTENT(IN) :: PHR_TARGET ! Relative humidity setpoint
REAL, DIMENSION(:) , INTENT(INOUT) :: PT_WIN2 ! Indoor window temperature [K]
REAL, DIMENSION(:) , INTENT(INOUT) :: PQI_BLD ! Indoor air specific humidity [kg kg-1]
REAL, DIMENSION(:) , INTENT(IN) :: PV_VENT ! Ventilation flow rate [AC/H]
REAL, DIMENSION(:) , INTENT(IN) :: PCAP_SYS_HEAT ! Capacity of the heating system
! [W m-2(bld)]
REAL, DIMENSION(:) , INTENT(INOUT) :: PCAP_SYS_RAT ! Rated capacity of the cooling system
! [W m-2(bld)]
REAL, DIMENSION(:) , INTENT(IN) :: PT_ADP ! Apparatus dewpoint temperature of the
! cooling coil [K]
REAL, DIMENSION(:) , INTENT(INOUT) :: PM_SYS_RAT ! Rated HVAC mass flow rate
! [kg s-1 m-2(bld)]
REAL, DIMENSION(:) , INTENT(IN) :: PCOP_RAT ! Rated COP of the cooling system
REAL, DIMENSION(:) , INTENT(OUT) :: PCAP_SYS ! Actual capacity of the cooling system
! [W m-2(bld)]
REAL, DIMENSION(:) , INTENT(OUT) :: PM_SYS ! Actual HVAC mass flow rate
! [kg s-1 m-2(bld)]
REAL, DIMENSION(:) , INTENT(OUT) :: PCOP ! COP of the cooling system
REAL, DIMENSION(:) , INTENT(OUT) :: PQ_SYS ! Supply air specific humidity [kg kg-1]
REAL, DIMENSION(:) , INTENT(OUT) :: PT_SYS ! Supply air temperature [K]
REAL, DIMENSION(:) , INTENT(OUT) :: PTR_SW_WIN ! Solar radiation transmitted throught
! windows [W m-2(bld)]
REAL, DIMENSION(:) , INTENT(OUT) :: PFAN_POWER ! HVAC fan power
REAL, DIMENSION(:,:), INTENT(IN) :: PHC_FLOOR ! heat capacity for road layers
REAL, DIMENSION(:,:), INTENT(IN) :: PTC_FLOOR ! thermal conductivity for
! road layers
REAL, DIMENSION(:,:), INTENT(IN) :: PD_FLOOR ! depth of road layers
REAL, DIMENSION(:) , INTENT(INOUT) :: PT_WIN1 ! outdoor window temperature [K]
REAL, DIMENSION(:) , INTENT(OUT) :: PABS_SW_WIN ! window absorbed shortwave radiation [W m-2]
REAL, DIMENSION(:) , INTENT(OUT) :: PABS_LW_WIN ! absorbed infrared rad. [W m-2]
REAL, DIMENSION(:) , INTENT(IN) :: PSHGC ! window solar transmittance
REAL, DIMENSION(:) , INTENT(IN) :: PSHGC_SH ! window + shading solar heat gain coef.
REAL, DIMENSION(:) , INTENT(IN) :: PUGG_WIN ! window glass-to-glass U-factro [W m-2 K-1]
REAL, DIMENSION(:) , INTENT(OUT) :: PALB_WIN ! window albedo
REAL, DIMENSION(:) , INTENT(IN) :: PABS_WIN ! window absortance
REAL, DIMENSION(:) , INTENT(IN) :: PTRAN_WIN ! window transmittance
!
! new argument for the UTCI calculation
REAL, DIMENSION(:) , INTENT(OUT) :: PEMIT_LW_GRND ! LW flux emitted by the ground (W/m2 ground)
REAL, DIMENSION(:) , INTENT(OUT) :: PEMIT_LW_FAC ! LW flux emitted by the facade (W/m2 ground)
REAL, DIMENSION(:) , INTENT(OUT) :: PT_RAD_IND ! Indoor mean radiant temperature [K]
REAL, DIMENSION(:) , INTENT(OUT) :: PREF_SW_GRND ! total solar rad reflected from ground
REAL, DIMENSION(:) , INTENT(OUT) :: PREF_SW_FAC ! total solar rad reflected from facade
REAL, DIMENSION(:) , INTENT(OUT) :: PHU_BLD ! Indoor relative humidity 0 < (-) < 1
!
! new arguments for shading, schedule or natural ventilation
REAL , INTENT(IN) :: PTIME ! current time since midnight (UTC, s)
LOGICAL,DIMENSION(:), INTENT(IN) :: OSHADE
REAL, DIMENSION(:) , INTENT(IN) :: PSHADE ! flag to activate shading devices -> REAL for i/o 0. or 1
LOGICAL,DIMENSION(:), INTENT(INOUT) :: OSHAD_DAY ! has shading been necessary this day ?
LOGICAL,DIMENSION(:), INTENT(INOUT) :: ONATVENT_NIGHT ! has natural ventilation been necessary/possible this night ?
CHARACTER(LEN=3) , INTENT(IN) :: HBEM ! Building Energy model 'DEF' or 'BEM'
!
REAL, DIMENSION(:) , INTENT(IN) :: PN_FLOOR ! Number of floors
REAL, DIMENSION(:) , INTENT(IN) :: PWALL_O_BLD ! Wall area [m2_wall/m2_bld]
REAL, DIMENSION(:) , INTENT(IN) :: PGLAZ_O_BLD ! Window area [m2_win/m2_bld]
REAL, DIMENSION(:) , INTENT(IN) :: PMASS_O_BLD ! Mass area [m2_mass/m2_bld]
REAL, DIMENSION(:) , INTENT(IN) :: PFLOOR_HW_RATIO ! H/W ratio of 1 floor level
REAL, DIMENSION(:) , INTENT(IN) :: PF_FLOOR_MASS ! View factor floor-mass
REAL, DIMENSION(:) , INTENT(IN) :: PF_FLOOR_WALL ! View factor floor-wall
REAL, DIMENSION(:) , INTENT(IN) :: PF_FLOOR_WIN ! View factor floor-window
REAL, DIMENSION(:) , INTENT(IN) :: PF_FLOOR_ROOF ! View factor floor-roof
REAL, DIMENSION(:) , INTENT(IN) :: PF_WALL_FLOOR ! View factor wall-floor
REAL, DIMENSION(:) , INTENT(IN) :: PF_WALL_MASS ! View factor wall-mass
REAL, DIMENSION(:) , INTENT(IN) :: PF_WALL_WIN ! View factor wall-win
REAL, DIMENSION(:) , INTENT(IN) :: PF_WIN_FLOOR ! View factor win-floor
REAL, DIMENSION(:) , INTENT(IN) :: PF_WIN_MASS ! View factor win-mass
REAL, DIMENSION(:) , INTENT(IN) :: PF_WIN_WALL ! View factor win-wall
REAL, DIMENSION(:) , INTENT(IN) :: PF_MASS_FLOOR ! View factor mass-floor
REAL, DIMENSION(:) , INTENT(IN) :: PF_MASS_WALL ! View factor mass-wall
REAL, DIMENSION(:) , INTENT(IN) :: PF_MASS_WIN ! View factor mass-window
LOGICAL , INTENT(IN) :: OCANOPY ! is canopy active ?
CHARACTER(LEN=5) , INTENT(IN) :: HCH_BEM ! TEB option for building outside conv. coef
REAL, DIMENSION(:) , INTENT(IN) :: PROUGH_ROOF ! roof roughness coef.
REAL, DIMENSION(:) , INTENT(IN) :: PROUGH_WALL ! wall roughness coef.
REAL, DIMENSION(:) , INTENT(IN) :: PF_WIN_WIN ! indoor win to win view factor
!
!* arguments for road watering
!
LOGICAL, INTENT(IN) :: OPAR_RD_IRRIG ! True if there is potentially irrigation
REAL, DIMENSION(:), INTENT(IN) :: PRD_START_MONTH! First month of irrigation
REAL, DIMENSION(:), INTENT(IN) :: PRD_END_MONTH ! Last month of irrigation
REAL, DIMENSION(:), INTENT(IN) :: PRD_START_HOUR ! First hour of irrigation (included)
REAL, DIMENSION(:), INTENT(IN) :: PRD_END_HOUR ! Last hour of irrigation (excluded)
REAL, DIMENSION(:), INTENT(IN) :: PRD_24H_IRRIG ! diurnal averaged irrigation flux (kg/m2/s)
REAL, DIMENSION(:), INTENT(OUT) :: PIRRIG_ROAD ! man-made watering of roads (kg/m2/s)
!
!* arguments for solar panels
!
REAL, DIMENSION(:), INTENT(IN) :: PEMIS_PANEL ! Emissivity of solar panels (-)
REAL, DIMENSION(:), INTENT(IN) :: PALB_PANEL ! Albedo of solar panels (-)
REAL, DIMENSION(:), INTENT(IN) :: PEFF_PANEL ! Efficiency of solar panel (-)
REAL, DIMENSION(:), INTENT(IN) :: PFRAC_PANEL ! Fraction of solar panel on roofs (-)
REAL, DIMENSION(:), INTENT(OUT) :: PTHER_PROD_PANEL ! Thermal Energy production of solar panel on roofs (W/m2 panel)
REAL, DIMENSION(:), INTENT(OUT) :: PPHOT_PROD_PANEL ! Photovoltaic Energy production of solar panel on roofs (W/m2 panel)
REAL, DIMENSION(:), INTENT(OUT) :: PPROD_PANEL ! Averaged Energy production of solar panel on roofs (W/m2 panel)
REAL, DIMENSION(:), INTENT(OUT) :: PTHER_PROD_BLD ! Thermal Energy production of solar panel on roofs (W/m2 bld )
REAL, DIMENSION(:), INTENT(OUT) :: PPHOT_PROD_BLD ! Photovoltaic Energy production of solar panel on roofs (W/m2 bld )
REAL, DIMENSION(:), INTENT(OUT) :: PPROD_BLD ! Averaged Energy production of solar panel on roofs (W/m2 bld )
REAL, DIMENSION(:), INTENT(INOUT) :: PTHER_PRODC_DAY ! Present day integrated thermal production of energy (J/m2 panel)
REAL, DIMENSION(:), INTENT(OUT) :: PH_PANEL ! Sensible heat flux from solar panels (W/m2 panel)
REAL, DIMENSION(:), INTENT(OUT) :: PRN_PANEL ! Net radiation of solar panel (W/m2 panel)
!
!* arguments for building's use description
!
REAL, DIMENSION(:), INTENT(IN) :: PRESIDENTIAL ! Fraction of residential use (-)
REAL, INTENT(IN) :: PDT_RES ! target temperature change when unoccupied (K) (residential buildings)
REAL, INTENT(IN) :: PDT_OFF ! target temperature change when unoccupied (K) (office buildings)
REAL, DIMENSION(:), INTENT(OUT) :: PCUR_TCOOL_TARGET ! Cooling target temperature at current time (K)
REAL, DIMENSION(:), INTENT(OUT) :: PCUR_THEAT_TARGET ! Heating target temperature at current time (K)
REAL, DIMENSION(:), INTENT(OUT) :: PCUR_QIN ! Internal heat gains at current time (W/m2 floor)
LOGICAL :: debug = .FALSE.
!
!
!* 0.2 Declarations of local variables
!
TYPE(DATA_COVER_t) :: DTCO
TYPE(GRID_t) :: G
TYPE(TEB_OPTIONS_t) :: TOP
TYPE(TEB_t) :: T
TYPE(BEM_OPTIONS_t) :: BOP
TYPE(BEM_t) :: B
TYPE(TEB_PANEL_t) :: TPN
TYPE(TEB_IRRIG_t) :: TIR
TYPE(DIAG_MISC_TEB_t) :: DMT
TYPE(TEB_GARDEN_MODEL_t) :: GDM
TYPE(TEB_GREENROOF_MODEL_t) :: GRM
!
INTEGER :: KTEB_P ! TEB current patch number
logical :: exist ! TODO: testing remove
!
!-------------------------------------------------------------------------------
!
!* All OUT (not IN or INOUT) dummy arguments are set to value XUNDEF at the beginning of the routine.
!
PRN_ROOF = XUNDEF ! net radiation over roof
PH_ROOF = XUNDEF ! sensible heat flux over roof
PLE_ROOF = XUNDEF ! latent heat flux over roof
PLEW_ROOF = XUNDEF ! latent heat flux over roof (snow)
PGFLUX_ROOF = XUNDEF ! flux through the roof
PRUNOFF_ROOF = XUNDEF ! runoff over the ground
PRN_ROAD = XUNDEF ! net radiation over road
PH_ROAD = XUNDEF ! sensible heat flux over road
PLE_ROAD = XUNDEF ! latent heat flux over road
PLEW_ROAD = XUNDEF ! latent heat flux over road (snow)
PGFLUX_ROAD = XUNDEF ! flux through the road
PRUNOFF_ROAD = XUNDEF ! runoff over the ground
PRN_WALL_A = XUNDEF ! net radiation over wall
PH_WALL_A = XUNDEF ! sensible heat flux over wall
PLE_WALL_A = XUNDEF ! latent heat flux over wall
PGFLUX_WALL_A = XUNDEF ! flux through the wall
PRN_WALL_B = XUNDEF ! net radiation over wall
PH_WALL_B = XUNDEF ! sensible heat flux over wall
PLE_WALL_B = XUNDEF ! latent heat flux over wall
PGFLUX_WALL_B = XUNDEF ! flux through the wall
PRN_STRLROOF = XUNDEF ! net radiation over structural roof
PH_STRLROOF = XUNDEF ! sensible heat flux over structural roof
PLE_STRLROOF = XUNDEF ! latent heat flux over structural roof
PGFLUX_STRLROOF = XUNDEF ! flux through the structural roof
PRUNOFF_STRLROOF = XUNDEF ! runoff aver structural roof
PRN_BLT = XUNDEF ! net radiation over built surf
PH_BLT = XUNDEF ! sensible heat flux over built surf
PLE_BLT = XUNDEF ! latent heat flux over built surf
PGFLUX_BLT = XUNDEF ! flux through the built surf
!
PRNSNOW_ROOF = XUNDEF ! net radiation over snow
PHSNOW_ROOF = XUNDEF ! sensible heat flux over snow
PLESNOW_ROOF = XUNDEF ! latent heat flux over snow
PGSNOW_ROOF = XUNDEF ! flux under the snow
PMELT_ROOF = XUNDEF ! snow melt
PRNSNOW_ROAD = XUNDEF ! net radiation over snow
PHSNOW_ROAD = XUNDEF ! sensible heat flux over snow
PLESNOW_ROAD = XUNDEF ! latent heat flux over snow
PGSNOW_ROAD = XUNDEF ! flux under the snow
PMELT_ROAD = XUNDEF ! snow melt
!
PRN_GRND = XUNDEF ! net radiation over ground
PH_GRND = XUNDEF ! sensible heat flux over ground
PLE_GRND = XUNDEF ! latent heat flux over ground
PGFLUX_GRND = XUNDEF ! flux through the ground
PRN_TOWN = XUNDEF ! net radiation over town
PH_TOWN = XUNDEF ! sensible heat flux over town
PLE_TOWN = XUNDEF ! latent heat flux over town
PGFLUX_TOWN = XUNDEF ! flux through the ground
PEVAP_TOWN = XUNDEF ! evaporation flux (kg/m2/s)
PRUNOFF_TOWN = XUNDEF ! runoff over the ground
PSFCO2 = XUNDEF ! flux of CO2 (m/s*kg_CO2/kg_air)
PUW_GRND = XUNDEF ! momentum flux for ground built surf
PUW_ROOF = XUNDEF ! momentum flux for roofs
PDUWDU_GRND = XUNDEF !
PDUWDU_ROOF = XUNDEF !
PUSTAR_TOWN = XUNDEF ! friciton velocity over town
PCD = XUNDEF ! town averaged drag coefficient
PCDN = XUNDEF ! town averaged neutral drag coefficient
PCH_TOWN = XUNDEF ! town averaged heat transfer coefficient
PRI_TOWN = XUNDEF ! town averaged Richardson number
PTS_TOWN = XUNDEF ! town surface temperature
PEMIS_TOWN = XUNDEF ! town equivalent emissivity
PDIR_ALB_TOWN = XUNDEF ! town equivalent direct albedo
PSCA_ALB_TOWN = XUNDEF ! town equivalent diffuse albedo
PRESA_TOWN = XUNDEF ! town aerodynamical resistance
PDQS_TOWN = XUNDEF ! heat storage inside town
PQF_TOWN = XUNDEF ! total anthropogenic heat
PQF_BLD = XUNDEF ! anthropogenic heat flux of domestic heating
PFLX_BLD = XUNDEF ! heat flx from inside bld through its structure
PAC_ROAD = XUNDEF ! road conductance
PAC_GARDEN = XUNDEF ! green area conductance
PAC_GREENROOF = XUNDEF ! green roof conductance
PAC_ROAD_WAT = XUNDEF ! road conductance for latent heat
PAC_GARDEN_WAT = XUNDEF ! green area conductance for latent heat
PAC_GREENROOF_WAT= XUNDEF ! green roof conductance for latent heat
!
PABS_SW_ROOF = XUNDEF ! absorbed solar rad by roof
PABS_SW_SNOW_ROOF= XUNDEF ! absorbed solar rad by snow on roof
PABS_LW_ROOF = XUNDEF ! absorbed IR rad by roof
PABS_LW_SNOW_ROOF= XUNDEF ! absorbed IR rad by snow on roof
PABS_SW_ROAD = XUNDEF ! absorbed solar rad by road
PABS_SW_SNOW_ROAD= XUNDEF ! absorbed solar rad by snow on road
PABS_LW_ROAD = XUNDEF ! absorbed IR rad by road
PABS_LW_SNOW_ROAD= XUNDEF ! absorbed IR rad by snow on road
PABS_SW_WALL_A = XUNDEF ! absorbed solar rad by wall
PABS_LW_WALL_A = XUNDEF ! absorbed IR rad by wall
PABS_SW_WALL_B = XUNDEF ! absorbed solar rad by wall
PABS_LW_WALL_B = XUNDEF ! absorbed IR rad by wall
PABS_SW_PANEL = XUNDEF ! absorbed solar rad by solar panels
PABS_LW_PANEL = XUNDEF ! absorbed IR rad by solar panels
PABS_SW_GARDEN = XUNDEF ! absorbed solar rad by green areas
PABS_LW_GARDEN = XUNDEF ! absorbed IR rad by green areas
PABS_SW_GREENROOF= XUNDEF ! absorbed solar rad by green roofs
PABS_LW_GREENROOF= XUNDEF ! absorbed IR rad by green roofs
PG_GREENROOF_ROOF= XUNDEF ! heat flux between base of greenroof
! ! and structural roof
PH_BLD_COOL = XUNDEF ! Sensible cooling energy demand
! of the building [W m-2(bld)]
PT_BLD_COOL = XUNDEF ! Total cooling energy demand
! of the building [W m-2(bld)]
PH_BLD_HEAT = XUNDEF ! Heating energy demand
! of the building [W m-2(bld)]
PLE_BLD_COOL = XUNDEF ! Latent cooling energy demand
! of the building [W m-2(bld)]
PLE_BLD_HEAT = XUNDEF ! Latent heating energy demand
! of the building [W m-2(bld)]
PH_WASTE = XUNDEF ! Sensible waste heat from HVAC system
! [W m-2(tot)]
PLE_WASTE = XUNDEF ! Latent waste heat from HVAC system
! [W m-2(tot)]
PHVAC_COOL = XUNDEF ! Energy consumption of the cooling system
! [W m-2(bld)]
PHVAC_HEAT = XUNDEF ! Energy consumption of the heating system
! [W m-2(bld)]
PCAP_SYS = XUNDEF ! Actual capacity of the cooling system
! [W m-2(bld)]
PM_SYS = XUNDEF ! Actual HVAC mass flow rate
! [kg s-1 m-2(bld)]
PCOP = XUNDEF ! COP of the cooling system
PQ_SYS = XUNDEF ! Supply air specific humidity [kg kg-1]
PT_SYS = XUNDEF ! Supply air temperature [K]
PTR_SW_WIN = XUNDEF ! Solar radiation transmitted throught
! windows [W m-2(bld)]
PFAN_POWER = XUNDEF ! HVAC fan power
PABS_SW_WIN = XUNDEF ! window absorbed shortwave radiation [W m-2]
PABS_LW_WIN = XUNDEF ! absorbed infrared rad. [W m-2]
PALB_WIN = XUNDEF ! window albedo
!
! new argument for the UTCI calculation
PEMIT_LW_GRND = XUNDEF ! LW flux emitted by the ground (W/m2 ground)
PEMIT_LW_FAC = XUNDEF ! LW flux emitted by the facade (W/m2 ground)
PT_RAD_IND = XUNDEF ! Indoor mean radiant temperature [K]
PREF_SW_GRND = XUNDEF ! total solar rad reflected from ground
PREF_SW_FAC = XUNDEF ! total solar rad reflected from facade
PHU_BLD = XUNDEF ! Indoor relative humidity 0 < (-) < 1
PIRRIG_ROAD = XUNDEF ! man-made watering of roads (kg/m2/s)
!
!* arguments for solar panels
!
PTHER_PROD_PANEL = XUNDEF! Thermal Energy production of solar panel on roofs (W/m2 panel)
PPHOT_PROD_PANEL = XUNDEF! Photovoltaic Energy production of solar panel on roofs (W/m2 panel)
PPROD_PANEL = XUNDEF! Averaged Energy production of solar panel on roofs (W/m2 panel)
PTHER_PROD_BLD = XUNDEF! Thermal Energy production of solar panel on roofs (W/m2 bld )
PPHOT_PROD_BLD = XUNDEF! Photovoltaic Energy production of solar panel on roofs (W/m2 bld )
PPROD_BLD = XUNDEF! Averaged Energy production of solar panel on roofs (W/m2 bld )
PH_PANEL = XUNDEF! Sensible heat flux from solar panels (W/m2 panel)
PRN_PANEL = XUNDEF! Net radiation of solar panel (W/m2 panel)
!
!* arguments for building's use description
!
PCUR_TCOOL_TARGET = XUNDEF! Cooling target temperature at current time (K)
PCUR_THEAT_TARGET = XUNDEF! Heating target temperature at current time (K)
PCUR_QIN = XUNDEF! Internal heat gains at current time (W/m2 floor)
!
!-------------------------------------------------------------------------------
!
!* Allocate all the local structure variables
!
CALL ALLOC_TEB_STRUCT(SIZE(PT_ROOF,2),SIZE(PT_ROAD,2),SIZE(PT_WALL_A,2),SIZE(PT_FLOOR,2), &
DTCO, G, TOP, T, BOP, B, TPN, TIR, DMT, GDM, GRM)
!
! This is of course not optimized here, because at each time step, the structures are allocated, set and deallocated at the end.
! This is done so only to show that the structures can be independant from the rest of the code above (here the driver.F90 program).
! The structures could be saved from one time-step to another by putting them in a dedicated module for example.
!
!-------------------------------------------------------------------------------
!
! BEM OPTIONS structure
!
BOP%NFLOOR_LAYER = SIZE(PT_FLOOR,2)
BOP%CCOOL_COIL = HCOOL_COIL
BOP%CHEAT_COIL = HHEAT_COIL
! Not supported as hvac_autosize.F90 is not included
BOP%LAUTOSIZE = .FALSE.
!-------------------------------------------------------------------------------
!
! BEM structure
!
!
! Floor parameters
!
B%XHC_FLOOR(1,:) = PHC_FLOOR(1,:) ! floor layers heat capacity (J/K/m3)
B%XTC_FLOOR(1,:) = PTC_FLOOR(1,:) ! floor layers thermal conductivity (W/K/m)
B%XD_FLOOR (1,:) = PD_FLOOR (1,:) ! depth of floor layers (m)
!
! HVAC parameters
!
B%XTCOOL_TARGET = PTCOOL_TARGET ! cooling setpoint of indoor air
B%XTHEAT_TARGET = PTHEAT_TARGET ! heating setpoint of indoor air
B%XF_WASTE_CAN = PF_WASTE_CAN ! fraction of waste heat released into the canyon
B%XEFF_HEAT = PEFF_HEAT ! efficiency of the heating system
!
! Indoor parameters
!
B%XTI_BLD = PTI_BLD ! building interior temperature (K)
B%XT_FLOOR(1,:) = PT_FLOOR(1,:) ! floor layer temperatures (K)
B%XT_MASS (1,:) = PT_MASS (1,:) ! Air cooled building internal th. mass temperature (K)
!
B%XQIN = PQIN ! internal heat gains [W m-2(floor)]
B%XQIN_FRAD = PQIN_FRAD ! radiant fraction of internal heat gains
B%XSHGC = PSHGC ! solar heat gain coef. of windows
B%XSHGC_SH = PSHGC_SH ! solar heat gain coef. of windows + shading
B%XTRAN_WIN = PTRAN_WIN ! window transmittance (-)
B%XGR = PGR ! glazing ratio
B%XINF = PINF ! infiltration/ventilation flow rate [AC/H]
!
! New parameters
!
B%XF_WATER_COND = PF_WATER_COND ! fraction of evaporation for condensers (cooling system)
B%XAUX_MAX = PAUX_MAX ! Auxiliar variable for autosize calcs
B%XQIN_FLAT = PQIN_FLAT ! Latent franction of internal heat gains
B%XHR_TARGET = PHR_TARGET ! Relative humidity setpoint
B%XT_WIN2 = PT_WIN2 ! Indoor window temperature [K]
B%XQI_BLD = PQI_BLD ! Indoor air specific humidity [kg kg-1]
B%XV_VENT = PV_VENT ! Ventilation flow rate [AC/H]
B%XCAP_SYS_HEAT = PCAP_SYS_HEAT ! Capacity of the heating system
! [W m-2(bld)]
B%XCAP_SYS_RAT = PCAP_SYS_RAT ! Rated capacity of the cooling system
! [W m-2(bld)]
B%XT_ADP = PT_ADP ! Apparatus dewpoint temperature of the
! cooling coil [K]
B%XM_SYS_RAT = PM_SYS_RAT ! Rated HVAC mass flow rate
! [kg s-1 m-2(bld)]
B%XCOP_RAT = PCOP_RAT ! Rated COP of the cooling system
B%XT_WIN1 = PT_WIN1 ! outdoor window temperature [K]
B%XABS_WIN = PABS_WIN ! window absortance
B%XUGG_WIN = PUGG_WIN ! Window glass-to-glass U-factor [K m W-2]
B%LSHADE = OSHADE ! flag to activate shading devices -> LOGICAL in the code
B%XSHADE = PSHADE ! flag to activate shading devices -> REAL for i/o 0. or 1.
B%CNATVENT = HNATVENT ! flag to activate natural ventilation 'NONE', 'MANU', 'AUTO'
B%XNATVENT = PNATVENT ! flag to describe surventilation system for i/o
! 0 for NONE, 1 for MANU and 2 for AUTO
B%LSHAD_DAY = OSHAD_DAY !Has shading been necessary this day ?
B%LNATVENT_NIGHT = ONATVENT_NIGHT !Has nocturnal surventilation been necessary and possible this night ?
!
!indoor relative surfaces and view factors
B%XN_FLOOR = PN_FLOOR ! Number of floors
B%XGLAZ_O_BLD = PGLAZ_O_BLD ! Window area [m2_win/m2_bld]
B%XMASS_O_BLD = PMASS_O_BLD ! Mass area [m2_mass/m2_bld]
B%XFLOOR_HW_RATIO = PFLOOR_HW_RATIO ! H/W ratio of 1 floor level
B%XF_FLOOR_MASS = PF_FLOOR_MASS ! View factor floor-mass
B%XF_FLOOR_WALL = PF_FLOOR_WALL ! View factor floor-wall
B%XF_FLOOR_WIN = PF_FLOOR_WIN ! View factor floor-window
B%XF_FLOOR_ROOF = PF_FLOOR_ROOF ! View factor floor-roof
B%XF_WALL_FLOOR = PF_WALL_FLOOR ! View factor wall-floor
B%XF_WALL_MASS = PF_WALL_MASS ! View factor wall-mass
B%XF_WALL_WIN = PF_WALL_WIN ! View factor wall-win
B%XF_WIN_FLOOR = PF_WIN_FLOOR ! View factor win-floor
B%XF_WIN_MASS = PF_WIN_MASS ! View factor win-mass
B%XF_WIN_WALL = PF_WIN_WALL ! View factor win-wall
B%XF_WIN_WIN = PF_WIN_WIN ! indoor View factor win-win
B%XF_MASS_FLOOR = PF_MASS_FLOOR ! View factor mass-floor
B%XF_MASS_WALL = PF_MASS_WALL ! View factor mass-wall
B%XF_MASS_WIN = PF_MASS_WIN ! View factor mass-window
!-------------------------------------------------------------------------------
!
! TEB OPTIONS structure
!
TOP%LGARDEN = OGARDEN ! T: Urban green areas (call ISBA from TEB)
! F: No urban green areas
TOP%CROAD_DIR = HROAD_DIR ! TEB option for road directions
! 'UNIF' : no specific direction
! 'ORIE' : many road ORIEntations
! ( one per TEB patch)
TOP%CWALL_OPT = HWALL_OPT ! TEB option for walls
! 'UNIF' : uniform walls
! 'TWO ' : two separated walls
TOP%CZ0H = HZ0H ! TEB option for z0h roof & road
! 'MASC95' : Mascart et al 1995
! 'BRUT82' : Brustaert 1982
! 'KAND07' : Kanda 2007
TOP%CCH_BEM = HCH_BEM ! BEM option for roof/wall outside convective coefficient
! 'DOE-2' : DOE-2 model from
! EnergyPlus Engineering reference, p65
TOP%CBEM = HBEM ! TEB option for the building energy model
! 'DEF': DEFault version force-restore model from Masson et al. 2002
! 'BEM': Building Energy Model Bueno et al. 2011
TOP%LGREENROOF = OGREENROOF ! T: green roofs (call ISBA from TEB)
TOP%LSOLAR_PANEL = OSOLAR_PANEL ! T: solar panels on roofs
!
! type of initialization of vegetation: from cover types (ecoclimap) or parameters prescribed
!
!
! Number of layers
!
TOP%NROOF_LAYER = SIZE(PT_ROOF,2) ! number of layers in roofs
TOP%NROAD_LAYER = SIZE(PT_ROAD,2) ! number of layers in roads
TOP%NWALL_LAYER = SIZE(PT_WALL_A,2) ! number of layers in walls
!
! Date:
!
TOP%TTIME = TPTIME ! current date and time
!
! Time-step:
!
TOP%XTSTEP = PTSTEP ! time step for TEB
!
!-------------------------------------------------------------------------------
!
! TEB structure
!
! Geometric Parameters:
!
T%XROAD_DIR = PROAD_DIR ! Road direction (deg from North, clockwise)
T%XGARDEN = PGARDEN ! fraction of veg in the streets (-)
T%XGREENROOF = PFRAC_GR ! fraction of greenroofs on roofs (-)
T%XBLD = PBLD ! fraction of buildings (-)
T%XROAD = PROAD ! fraction of roads (-)
T%XCAN_HW_RATIO = PCAN_HW_RATIO ! canyon h/W (-)
T%XBLD_HEIGHT = PBLD_HEIGHT ! buildings height 'h' (m)
T%XWALL_O_HOR = PWALL_O_HOR ! wall surf. / hor. surf. (-)
T%XROAD_O_GRND = PROAD_O_GRND ! road surf. / (road + garden surf.) (-)
T%XGARDEN_O_GRND = PGARDEN_O_GRND ! gard. surf. / (road + garden surf.)(-)
T%XWALL_O_GRND = PWALL_O_GRND ! wall surf. / (road + garden surf.) (-)
T%XWALL_O_BLD = PWALL_O_BLD ! wall surf. / bld surf. (-)
T%XZ0_TOWN = PZ0_TOWN ! roughness length for momentum (m)
T%XSVF_ROAD = PSVF_ROAD ! road sky view factor (-)
T%XSVF_GARDEN = PSVF_GARDEN ! green area sky view factor (-)
T%XSVF_WALL = PSVF_WALL ! wall sky view factor (-)
!
! Roof parameters
!
T%XALB_ROOF = PALB_ROOF ! roof albedo (-)
T%XEMIS_ROOF = PEMIS_ROOF ! roof emissivity (-)
T%XHC_ROOF = PHC_ROOF ! roof layers heat capacity (J/K/m3)
T%XTC_ROOF = PTC_ROOF ! roof layers thermal conductivity (W/K/m)
T%XD_ROOF = PD_ROOF ! depth of roof layers (m)
T%XROUGH_ROOF= PROUGH_ROOF ! roof roughness coef
!
!
! Road parameters
!
T%XALB_ROAD = PALB_ROAD ! road albedo (-)
T%XEMIS_ROAD = PEMIS_ROAD ! road emissivity (-)
T%XHC_ROAD = PHC_ROAD ! road layers heat capacity (J/K/m3)
T%XTC_ROAD = PTC_ROAD ! road layers thermal conductivity (W/K/m)
T%XD_ROAD = PD_ROAD ! depth of road layers (m)
!
! Wall parameters
!
T%XALB_WALL = PALB_WALL ! wall albedo (-)
T%XEMIS_WALL = PEMIS_WALL ! wall emissivity (-)
T%XHC_WALL = PHC_WALL ! wall layers heat capacity (J/K/m3)
T%XTC_WALL = PTC_WALL ! wall layers thermal conductivity (W/K/m)
T%XD_WALL = PD_WALL ! depth of wall layers (m)
T%XROUGH_WALL= PROUGH_WALL ! wall roughness coef
!
! Building's use type
!
T%XRESIDENTIAL = PRESIDENTIAL ! fraction of Residential use (-)
T%XDT_RES = PDT_RES ! target temperature change when unoccupied (K) (residential buildings)
T%XDT_OFF = PDT_OFF ! target temperature change when unoccupied (K) (offices buildings)
!
! anthropogenic fluxes
!
T%XH_TRAFFIC = PH_TRAFFIC ! anthropogenic sensible
! ! heat fluxes due to traffic (W/m2)
T%XLE_TRAFFIC = PLE_TRAFFIC ! anthropogenic latent
! ! heat fluxes due to traffic (W/m2)
T%XH_INDUSTRY = PH_INDUSTRY ! anthropogenic sensible
! ! heat fluxes due to factories (W/m2)
T%XLE_INDUSTRY = PLE_INDUSTRY ! anthropogenic latent
! ! heat fluxes due to factories (W/m2)
!
! Prognostic variables:
!
T%XWS_ROOF = PWS_ROOF ! roof water reservoir (kg/m2)
T%XWS_ROAD = PWS_ROAD ! road water reservoir (kg/m2)
T%XT_ROOF = PT_ROOF ! roof layer temperatures (K)
T%XT_ROAD = PT_ROAD ! road layer temperatures (K)
T%XT_WALL_A= PT_WALL_A ! wall layer temperatures (K)
T%XT_WALL_B= PT_WALL_B ! wall layer temperatures (K)
!
!
!
! Semi-prognostic variables:
!
T%XT_CANYON = PT_CAN ! canyon air temperature (K)
T%XQ_CANYON = PQ_CAN ! canyon air specific humidity (kg/kg)
!
!
! Prognostic snow on roofs:
!
T%TSNOW_ROOF%SCHEME = HSNOW_ROOF ! snow scheme
T%TSNOW_ROOF%WSNOW = PWSNOW_ROOF ! snow (& liq. water) content (kg/m2)
T%TSNOW_ROOF%T = PTSNOW_ROOF ! temperature (K)
T%TSNOW_ROOF%RHO = PRSNOW_ROOF ! density (kg m-3)
T%TSNOW_ROOF%ALB = PASNOW_ROOF ! albedo (-)
T%TSNOW_ROOF%EMIS = PESNOW_ROOF ! emissivity (-)
T%TSNOW_ROOF%TS = PTSSNOW_ROOF ! Surface temperature (K)
!
! Prognostic snow on roads:
!
T%TSNOW_ROAD%SCHEME = HSNOW_ROAD ! snow scheme
T%TSNOW_ROAD%WSNOW = PWSNOW_ROAD ! snow (& liq. water) content (kg/m2)
T%TSNOW_ROAD%T = PTSNOW_ROAD ! temperature (K)
T%TSNOW_ROAD%RHO = PRSNOW_ROAD ! density (kg m-3)
T%TSNOW_ROAD%ALB = PASNOW_ROAD ! albedo (-)
T%TSNOW_ROAD%EMIS = PESNOW_ROAD ! emissivity (-)
T%TSNOW_ROAD%TS = PTSSNOW_ROAD ! Surface temperature (K)
!-------------------------------------------------------------------------------
!
! solar panels
!
TPN%XEMIS_PANEL = PEMIS_PANEL ! emissivity of solar panels (-)
TPN%XALB_PANEL = PALB_PANEL ! albedo of soolar panels (-)
TPN%XEFF_PANEL = PEFF_PANEL ! Efficiency coefficient of solar panels (-)
TPN%XFRAC_PANEL = PFRAC_PANEL ! Fraction of SOLAR panels on roofs (-)
TPN%XTHER_PRODC_DAY = PTHER_PRODC_DAY ! Present day integrated thermal production of energy (J/m2 panel)
!-------------------------------------------------------------------------------
!
! Irrigation
!
TIR%LPAR_RD_IRRIG = OPAR_RD_IRRIG ! flag to use prescribed irrigation for roads
TIR%XRD_START_MONTH = PRD_START_MONTH ! roads : start month for irrigation (included)
TIR%XRD_END_MONTH = PRD_END_MONTH ! roads : end month for irrigation (included)
TIR%XRD_START_HOUR = PRD_START_HOUR ! roads : start solar hour for irrigation (included, hour)
TIR%XRD_END_HOUR = PRD_END_HOUR ! roads : end solar hour for irrigation (excluded, hour)
TIR%XRD_24H_IRRIG = PRD_24H_IRRIG ! roads : total irrigation over 24 hours (kg/m2)
!
!-------------------------------------------------------------------------------
!
! TEB diagnostics structure
!
DMT%XZ0_TOWN = PZ0_TOWN ! town roughness length
!-------------------------------------------------------------------------------
!
if (debug) then
! TODO remove when not needed anymore
inquire(file="trace_before.csv", exist=exist)
if (exist) then
open(12, file="trace_before.csv", status="old", position="append", action="write")
else
open(12, file="trace_before.csv", status="new", action="write")
end if
write(12, *) PTSUN, PT_CAN, PQ_CAN, PU_CAN, PT_LOWCAN, PQ_LOWCAN, &
PU_LOWCAN, PZ_LOWCAN, PPEW_A_COEF, PPEW_B_COEF, PPEW_A_COEF_LOWCAN, &
PPEW_B_COEF_LOWCAN, PPS, PPA, PEXNS, PEXNA, PTA, PQA, PRHOA, PCO2, &
PLW_RAD, PDIR_SW, PSCA_SW, PSW_BANDS, KSW, PZENITH, PAZIM, PRR, PSR, &
PZREF, PUREF, PVMOD, PH_TRAFFIC, PLE_TRAFFIC, PTSTEP, PLEW_ROOF, PLEW_ROAD, &
PLE_WALL_A, PLE_WALL_B, PRNSNOW_ROOF, PHSNOW_ROOF, PLESNOW_ROOF, PGSNOW_ROOF,PMELT_ROOF,&
PRNSNOW_ROAD, PHSNOW_ROAD, PLESNOW_ROAD, PGSNOW_ROAD, PMELT_ROAD, PRN_GRND, PH_GRND, &
PLE_GRND, PGFLUX_GRND, PRN_TOWN, PH_TOWN, PLE_TOWN, PGFLUX_TOWN, PEVAP_TOWN, &
PSFCO2, PUW_GRND, PUW_ROOF, PDUWDU_GRND, PDUWDU_ROOF, &
PUSTAR_TOWN, PCD, PCDN, PCH_TOWN, PRI_TOWN, PTS_TOWN, PEMIS_TOWN, &
PDIR_ALB_TOWN, PSCA_ALB_TOWN, PRESA_TOWN, PAC_ROAD, PAC_GARDEN, PAC_GREENROOF, &
PAC_ROAD_WAT, PAC_GARDEN_WAT, PAC_GREENROOF_WAT, KDAY, PEMIT_LW_FAC, PEMIT_LW_GRND, &
PT_RAD_IND, PREF_SW_GRND, PREF_SW_FAC, PHU_BLD, PTIME, PPROD_BLD
close(12)
end if
KTEB_P = 1
CALL TEB_GARDEN (DTCO, G, TOP, T, BOP, B, TPN, TIR, DMT, GDM, GRM, KTEB_P, &
HIMPLICIT_WIND, PTSUN, PT_CAN, PQ_CAN, PU_CAN, PT_LOWCAN, PQ_LOWCAN, &
PU_LOWCAN, PZ_LOWCAN, PPEW_A_COEF, PPEW_B_COEF, PPEW_A_COEF_LOWCAN, &
PPEW_B_COEF_LOWCAN, PPS, PPA, PEXNS, PEXNA, PTA, PQA, PRHOA, PCO2, &
PLW_RAD, PDIR_SW, PSCA_SW, PSW_BANDS, KSW, PZENITH, PAZIM, PRR, PSR, &
PZREF, PUREF, PVMOD, PH_TRAFFIC, PLE_TRAFFIC, PTSTEP, PLEW_ROOF, PLEW_ROAD, &
PLE_WALL_A, PLE_WALL_B, PRNSNOW_ROOF, PHSNOW_ROOF, PLESNOW_ROOF, PGSNOW_ROOF,PMELT_ROOF,&
PRNSNOW_ROAD, PHSNOW_ROAD, PLESNOW_ROAD, PGSNOW_ROAD, PMELT_ROAD, PRN_GRND, PH_GRND, &
PLE_GRND, PGFLUX_GRND, PRN_TOWN, PH_TOWN, PLE_TOWN, PGFLUX_TOWN, PEVAP_TOWN, &
PSFCO2, PUW_GRND, PUW_ROOF, PDUWDU_GRND, PDUWDU_ROOF, &
PUSTAR_TOWN, PCD, PCDN, PCH_TOWN, PRI_TOWN, PTS_TOWN, PEMIS_TOWN, &
PDIR_ALB_TOWN, PSCA_ALB_TOWN, PRESA_TOWN, PAC_ROAD, PAC_GARDEN, PAC_GREENROOF, &
PAC_ROAD_WAT, PAC_GARDEN_WAT, PAC_GREENROOF_WAT, KDAY, PEMIT_LW_FAC, PEMIT_LW_GRND, &
PT_RAD_IND, PREF_SW_GRND, PREF_SW_FAC, PHU_BLD, PTIME, PPROD_BLD )
if (debug) then
! TODO remove when not needed anymore
inquire(file="trace_after.csv", exist=exist)
if (exist) then
open(12, file="trace_after.csv", status="old", position="append", action="write")
else
open(12, file="trace_after.csv", status="new", action="write")
end if
write(12, *) PTSUN, PT_CAN, PQ_CAN, PU_CAN, PT_LOWCAN, PQ_LOWCAN, &
PU_LOWCAN, PZ_LOWCAN, PPEW_A_COEF, PPEW_B_COEF, PPEW_A_COEF_LOWCAN, &
PPEW_B_COEF_LOWCAN, PPS, PPA, PEXNS, PEXNA, PTA, PQA, PRHOA, PCO2, &
PLW_RAD, PDIR_SW, PSCA_SW, PSW_BANDS, KSW, PZENITH, PAZIM, PRR, PSR, &
PZREF, PUREF, PVMOD, PH_TRAFFIC, PLE_TRAFFIC, PTSTEP, PLEW_ROOF, PLEW_ROAD, &
PLE_WALL_A, PLE_WALL_B, PRNSNOW_ROOF, PHSNOW_ROOF, PLESNOW_ROOF, PGSNOW_ROOF,PMELT_ROOF,&
PRNSNOW_ROAD, PHSNOW_ROAD, PLESNOW_ROAD, PGSNOW_ROAD, PMELT_ROAD, PRN_GRND, PH_GRND, &
PLE_GRND, PGFLUX_GRND, PRN_TOWN, PH_TOWN, PLE_TOWN, PGFLUX_TOWN, PEVAP_TOWN, &
PSFCO2, PUW_GRND, PUW_ROOF, PDUWDU_GRND, PDUWDU_ROOF, &
PUSTAR_TOWN, PCD, PCDN, PCH_TOWN, PRI_TOWN, PTS_TOWN, PEMIS_TOWN, &
PDIR_ALB_TOWN, PSCA_ALB_TOWN, PRESA_TOWN, PAC_ROAD, PAC_GARDEN, PAC_GREENROOF, &
PAC_ROAD_WAT, PAC_GARDEN_WAT, PAC_GREENROOF_WAT, KDAY, PEMIT_LW_FAC, PEMIT_LW_GRND, &
PT_RAD_IND, PREF_SW_GRND, PREF_SW_FAC, PHU_BLD, PTIME, PPROD_BLD
close(12)
end if
!
!-------------------------------------------------------------------------------
!
! update of BEM prognostic variables
!
PTI_BLD = B%XTI_BLD
PQI_BLD = B%XQI_BLD
PT_FLOOR = B%XT_FLOOR
PT_MASS = B%XT_MASS
PT_WIN1 = B%XT_WIN1
PT_WIN2 = B%XT_WIN2
!
PAUX_MAX = B%XAUX_MAX
PCAP_SYS_RAT = B%XCAP_SYS_RAT
PM_SYS_RAT = B%XM_SYS_RAT
!
PALB_WIN = B%XALB_WIN ! window albedo
!
OSHAD_DAY = B%LSHAD_DAY
ONATVENT_NIGHT = B%LNATVENT_NIGHT
!
! update of TEB prognostic variables
!
PT_ROOF = T%XT_ROOF
PT_ROAD = T%XT_ROAD
PT_WALL_A = T%XT_WALL_A
PT_WALL_B = T%XT_WALL_B
PWS_ROOF = T%XWS_ROOF
PWS_ROAD = T%XWS_ROAD
!
PWSNOW_ROOF = T%TSNOW_ROOF%WSNOW
PTSNOW_ROOF = T%TSNOW_ROOF%T
PRSNOW_ROOF = T%TSNOW_ROOF%RHO
PASNOW_ROOF = T%TSNOW_ROOF%ALB
PESNOW_ROOF = T%TSNOW_ROOF%EMIS
PTSSNOW_ROOF = T%TSNOW_ROOF%TS
!
PWSNOW_ROAD = T%TSNOW_ROAD%WSNOW
PTSNOW_ROAD = T%TSNOW_ROAD%T
PRSNOW_ROAD = T%TSNOW_ROAD%RHO
PASNOW_ROAD = T%TSNOW_ROAD%ALB
PESNOW_ROAD = T%TSNOW_ROAD%EMIS
PTSSNOW_ROAD = T%TSNOW_ROAD%TS
!
! Warning: Can temperature and humidity, XT_CANYON and XQ_CANYON are present in the structure, but
! are not updated in teb_garden and routines called by it. This is the PT_CAN and PQ_CAN
! arguments of teb_garden routines that are physically updated.
! So we update the variables in the structure, but this has no consequences, because
! these variables are not used in teb_garden.
!
T%XT_CANYON = PT_CAN
T%XQ_CANYON = PQ_CAN
!
!-------------------------------------------------------------------------------
!
! output diagnostics in TEB structure
!
!-------------------------------------------------------------------------------
!
! solar panels
!
PTHER_PRODC_DAY = TPN%XTHER_PRODC_DAY ! Present day integrated thermal production of energy (J/m2 panel)
!
!-------------------------------------------------------------------------------
!
! TEB diagnostics structure
!
PQF_BLD = DMT%XQF_BLD ! domestic heating
PFLX_BLD = DMT%XFLX_BLD ! heat flux from bld
PQF_TOWN = DMT%XQF_TOWN ! total anthropogenic heat
PDQS_TOWN= DMT%XDQS_TOWN ! storage inside building
!
PH_WALL_A = DMT%XH_WALL_A ! wall sensible heat flux (W/m2)
PH_WALL_B = DMT%XH_WALL_B ! wall sensible heat flux (W/m2)
PH_ROOF = DMT%XH_ROOF ! roof sensible heat flux (W/m2)
PH_ROAD = DMT%XH_ROAD ! road sensible heat flux (W/m2)
PH_STRLROOF = DMT%XH_STRLROOF ! structural roof sens. heat flux (W/m2)
PH_BLT = DMT%XH_BLT ! built surf sensible heat flux (W/m2)
PRN_WALL_A = DMT%XRN_WALL_A ! net radiation at wall (W/m2)
PRN_WALL_B = DMT%XRN_WALL_B ! net radiation at wall (W/m2)
PRN_ROOF = DMT%XRN_ROOF ! net radiation at roof (W/m2)
PRN_ROAD = DMT%XRN_ROAD ! net radiation at road (W/m2)
PRN_STRLROOF= DMT%XRN_STRLROOF!net radiation at structural roofs(W/m2)
PRN_BLT = DMT%XRN_BLT ! net radiation at built surf (W/m2)
PGFLUX_WALL_A = DMT%XGFLUX_WALL_A !net wall conduction flux (W/m2)
PGFLUX_WALL_B = DMT%XGFLUX_WALL_B !net wall conduction flux (W/m2)
PGFLUX_ROOF = DMT%XGFLUX_ROOF ! net roof conduction flux (W/m2)
PGFLUX_ROAD = DMT%XGFLUX_ROAD ! net road conduction flux (W/m2)
PGFLUX_STRLROOF = DMT%XGFLUX_STRLROOF !net structural roof cond flux (W/m2)
PGFLUX_BLT = DMT%XGFLUX_BLT! net built surf conduction flux (W/m2)
PLE_ROOF = DMT%XLE_ROOF ! roof latent heat flux (W/m2)
PLE_ROAD = DMT%XLE_ROAD ! road latent heat flux (W/m2)
PLE_STRLROOF = DMT%XLE_STRLROOF !structural roof latent heat flux (W/m2)
PLE_BLT = DMT%XLE_BLT ! built surf latent heat flux (W/m2)
!
PRUNOFF_TOWN = DMT%XRUNOFF_TOWN ! aggregated water runoff for town (kg/m2/s)
PRUNOFF_ROAD = DMT%XRUNOFF_ROAD ! water runoff for roads (kg/m2/s)
PIRRIG_ROAD = DMT%XIRRIG_ROAD ! road man-made watering rate (kg/m2/s)
PRUNOFF_ROOF = DMT%XRUNOFF_ROOF ! aggregated water runoff for roofs (kg/m2/s)
PRUNOFF_STRLROOF= DMT%XRUNOFF_STRLROOF ! water runoff for structural roofs (kg/m2/s)
!
PABS_SW_ROOF = DMT%XABS_SW_ROOF ! absorbed shortwave radiation over roofs
PABS_SW_SNOW_ROOF= DMT%XABS_SW_SNOW_ROOF ! absorbed longwave radiation over roofs
PABS_LW_ROOF = DMT%XABS_LW_ROOF ! absorbed shortwave radiation over roofs
PABS_LW_SNOW_ROOF= DMT%XABS_LW_SNOW_ROOF! absorbed longwave radiation over roofs
PABS_SW_ROAD = DMT%XABS_SW_ROAD ! absorbed shortwave radiation over roads
PABS_SW_SNOW_ROAD= DMT%XABS_SW_SNOW_ROAD ! absorbed longwave radiation over roads
PABS_LW_ROAD = DMT%XABS_LW_ROAD ! absorbed shortwave radiation over roads
PABS_LW_SNOW_ROAD= DMT%XABS_LW_SNOW_ROAD ! absorbed longwave radiation over roads
PABS_SW_WALL_A = DMT%XABS_SW_WALL_A ! absorbed shortwave radiation over walls
PABS_SW_WALL_B = DMT%XABS_SW_WALL_B ! absorbed shortwave radiation over walls
PABS_LW_WALL_A = DMT%XABS_LW_WALL_A ! absorbed shortwave radiation over walls
PABS_LW_WALL_B = DMT%XABS_LW_WALL_B ! absorbed shortwave radiation over walls
PABS_SW_GARDEN = DMT%XABS_SW_GARDEN ! absorbed shortwave radiation over green areas
PABS_LW_GARDEN = DMT%XABS_LW_GARDEN ! absorbed shortwave radiation over green areas
PABS_SW_GREENROOF= DMT%XABS_SW_GREENROOF ! absorbed shortwave radiation over green roofs
PABS_LW_GREENROOF= DMT%XABS_LW_GREENROOF ! absorbed shortwave radiation over green roofs
PG_GREENROOF_ROOF= DMT%XG_GREENROOF_ROOF ! Heat flux between green roof and structural roof
PABS_SW_PANEL = DMT%XABS_SW_PANEL ! absorbed shortwave radiation over solar panels
PABS_LW_PANEL = DMT%XABS_LW_PANEL ! absorbed longwave radiation over solar panels
!
PRN_PANEL = DMT%XRN_PANEL ! net radiation over solar panels (W/m2)
PH_PANEL = DMT%XH_PANEL ! sensible heat flux over solar panels (W/m2)
PTHER_PROD_PANEL = DMT%XTHER_PROD_PANEL ! thermal production of solar panels (W/m2 thermal panel)
PPHOT_PROD_PANEL = DMT%XPHOT_PROD_PANEL ! photovoltaic production of solar panels (W/m2 photovoltaic panel)
PPROD_PANEL = DMT%XPROD_PANEL ! production of solar panels (W/m2 panel)
PTHER_PROD_BLD = DMT%XTHER_PROD_BLD ! thermal production of solar panels (W/m2 bld)
PPHOT_PROD_BLD = DMT%XPHOT_PROD_BLD ! photovoltaic production of solar panels (W/m2 bld)
PH_BLD_COOL = DMT%XH_BLD_COOL ! Sensible cooling energy demand
! of the building [W m-2(bld)]
PT_BLD_COOL = DMT%XT_BLD_COOL ! Total cooling energy demand
! of the building [W m-2(bld)]
PH_BLD_HEAT = DMT%XH_BLD_HEAT ! Heating energy demand
! of the building [W m-2(bld)]
PLE_BLD_COOL = DMT%XLE_BLD_COOL ! Latent cooling energy demand
! of the building [W m-2(bld)]
PLE_BLD_HEAT = DMT%XLE_BLD_HEAT ! Latent heating energy demand
! of the building [W m-2(bld)]
PH_WASTE = DMT%XH_WASTE ! Sensible waste heat from HVAC system
! [W m-2(tot)]
PLE_WASTE = DMT%XLE_WASTE ! Latent waste heat from HVAC system
! [W m-2(tot)]
PHVAC_COOL = DMT%XHVAC_COOL ! Energy consumption of the cooling system
! [W m-2(bld)]
PHVAC_HEAT = DMT%XHVAC_HEAT ! Energy consumption of the heating system
! [W m-2(bld)]
PCAP_SYS = DMT%XCAP_SYS ! Actual capacity of the cooling system
! [W m-2(bld)]
PM_SYS = DMT%XM_SYS ! Actual HVAC mass flow rate
! [kg s-1 m-2(bld)]
PCOP = DMT%XCOP ! COP of the cooling system
PQ_SYS = DMT%XQ_SYS ! Supply air specific humidity [kg kg-1]
PT_SYS = DMT%XT_SYS ! Supply air temperature [K]
PTR_SW_WIN = DMT%XTR_SW_WIN ! Solar radiation transmitted throught
! windows [W m-2(bld)]
PFAN_POWER = DMT%XFAN_POWER ! HVAC fan power
PABS_SW_WIN = DMT%XABS_SW_WIN ! window absorbed shortwave radiation [W m-2]
PABS_LW_WIN = DMT%XABS_LW_WIN ! absorbed infrared rad. [W m-2]
PCUR_TCOOL_TARGET = DMT%XTCOOL_TARGET ! Cooling target temperature at current time (K)
PCUR_THEAT_TARGET = DMT%XTHEAT_TARGET ! Heating target temperature at current time (K)
PCUR_QIN = DMT%XQIN ! Internal heat gains at current time (W/m2 floor)
!
!-------------------------------------------------------------------------------
!
CALL DEALLOC_TEB_STRUCT(TOP,T,BOP,B,TPN,TIR,DMT,GDM,GRM)
!
!-------------------------------------------------------------------------------
!
END SUBROUTINE TEB_GARDEN_STRUCT