!-------------------------------------- LICENCE BEGIN ------------------------------------ !Environment Canada - Atmospheric Science and Technology License/Disclaimer, ! version 3; Last Modified: May 7, 2008. !This is free but copyrighted software; you can use/redistribute/modify it under the terms !of the Environment Canada - Atmospheric Science and Technology License/Disclaimer !version 3 or (at your option) any later version that should be found at: !http://collaboration.cmc.ec.gc.ca/science/rpn.comm/license.html ! !This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; !without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. !See the above mentioned License/Disclaimer for more details. !You should have received a copy of the License/Disclaimer along with this software; !if not, you can write to: EC-RPN COMM Group, 2121 TransCanada, suite 500, Dorval (Quebec), !CANADA, H9P 1J3; or send e-mail to service.rpn@ec.gc.ca !-------------------------------------- LICENCE END --------------------------------------MODULE MODI_TEB 1 ! ! ! INTERFACE ! ! SUBROUTINE TEB (PT_CANYON, PQ_CANYON, PU_CANYON, & PTI_BLD, & PT_ROOF, PT_ROAD, PT_WALL, 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, & PPS, PPA, PEXNS, PEXNA, PTA, PQA, PRHOA, & PLW_RAD, PDIR_SW_RAD, PSCA_SW_RAD, PZENITH, & PRR, PSR, & PZREF, PUREF, PVMOD, & PH_TRAFFIC, PLE_TRAFFIC, PH_INDUSTRY, PLE_INDUSTRY, & PTSTEP, & PZ0_TOWN, & PBLD,PBLD_HEIGHT,PWALL_O_HOR,PCAN_HW_RATIO, & 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, & PHC_WALL,PTC_WALL,PD_WALL, & PRN_ROOF, PH_ROOF, PLE_ROOF, PLES_ROOF, PGFLUX_ROOF, & PRUNOFF_ROOF, & PRN_ROAD, PH_ROAD, PLE_ROAD, PLES_ROAD, PGFLUX_ROAD, & PRUNOFF_ROAD, & PRN_WALL, PH_WALL, PLE_WALL, PGFLUX_WALL, & PRNSNOW_ROOF, PHSNOW_ROOF, PLESNOW_ROOF, PGSNOW_ROOF, & PMELT_ROOF, & PRNSNOW_ROAD, PHSNOW_ROAD, PLESNOW_ROAD, PGSNOW_ROAD, & PMELT_ROAD, & PRN_TOWN, PH_TOWN, PLE_TOWN, PGFLUX_TOWN, PEVAP_TOWN, & PRUNOFF_TOWN, PUSTAR_TOWN, PCH_TOWN, PRI_TOWN, & PTS_TOWN, PEMIS_TOWN, PDIR_ALB_TOWN, PSCA_ALB_TOWN, PRESA_TOWN ) ! ! !* 0.1 declarations of arguments ! ! REAL, DIMENSION(:), INTENT(INOUT) :: PT_CANYON ! canyon air temperature REAL, DIMENSION(:), INTENT(INOUT) :: PQ_CANYON ! canyon air specific humidity REAL, DIMENSION(:), INTENT(OUT) :: PU_CANYON ! canyon hor. wind 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 ! 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) :: 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) :: PLW_RAD ! atmospheric infrared radiation REAL, DIMENSION(:), INTENT(IN) :: PDIR_SW_RAD ! incoming direct solar radiation ! on an horizontal surface REAL, DIMENSION(:), INTENT(IN) :: PZENITH ! solar zenithal angle REAL, DIMENSION(:), INTENT(IN) :: PSCA_SW_RAD ! scattered incoming solar rad. 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 ! atmospheric level (temperature) REAL, DIMENSION(:), INTENT(IN) :: PUREF ! reference height of the first ! atmospheric 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) :: 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) :: 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(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) :: PLES_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) :: PLES_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 ! net radiation over wall REAL, DIMENSION(:), INTENT(OUT) :: PH_WALL ! sensible heat flux over wall REAL, DIMENSION(:), INTENT(OUT) :: PLE_WALL ! latent heat flux over wall REAL, DIMENSION(:), INTENT(OUT) :: PGFLUX_WALL ! flux through the wall ! 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_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) :: PUSTAR_TOWN ! friction velocity over town 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 ! ! END SUBROUTINE TEB ! ! ! END INTERFACE ! ! ! END MODULE MODI_TEB