!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier !SFX_LIC This is part of the SURFEX software governed by the CeCILL licence !SFX_LIC version 2.1. See Licence_CeCILL_V2.1-en.txt and Licence_CeCILL_V2.1-fr.txt !SFX_LIC for details. ! ######### 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