Skip to content
Snippets Groups Projects
alloc_check_teb.F90 5.16 KiB
Newer Older
  • Learn to ignore specific revisions
  • SUBROUTINE ALLOC_CHECK_TEB(CT,KI,KCOMP)
    
    USE MODD_CHECK_TEB, ONLY : CHECK_TEB_t
    
    USE MODD_SURF_PAR, ONLY : XUNDEF
    
    USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
    USE PARKIND1  ,ONLY : JPRB
    !
    IMPLICIT NONE
    
    TYPE(CHECK_TEB_t), INTENT(INOUT) :: CT
    INTEGER,           INTENT(IN) :: KI     ! number of points
    INTEGER,           INTENT(IN) :: KCOMP  ! number of BEM building compartiments
      
    REAL(KIND=JPRB) :: ZHOOK_HANDLE
    !-------------------------------------------------------------------------------------
    IF (LHOOK) CALL DR_HOOK('ALLOC_CHECK_TEB',0,ZHOOK_HANDLE)
    !-------------------------------------------------------------------------------------)
    !
      ALLOCATE(CT%XFLUXFLOOR(KI))          ! Heat flux into the ground floor
      ALLOCATE(CT%XFLX_BLD_ROOF(KI))       ! Heat exchange between roof and indoor air
      ALLOCATE(CT%XFLX_BLD_WALL_A(KI))     ! Heat exchange between wall A and indoor air
      ALLOCATE(CT%XFLX_BLD_WALL_B(KI))     ! Heat exchange between wall B and indoor air
      !
      ALLOCATE(CT%XHEAT_RR_ROAD(KI))
      ALLOCATE(CT%XHEAT_RR_ROOF(KI))
      !
      ALLOCATE(CT%XSEN_SNOW_DIF_ROAD(KI)) ! Sensible heat due to snowfall on road
      ALLOCATE(CT%XSEN_SNOW_DIF_ROOF(KI)) ! Sensible heat due to snowfall on roof
      !
      ALLOCATE(CT%XDIAG_DCS_AREA(KI))
      !
      ALLOCATE(CT%XSEN_GREENROOF(KI))
      ALLOCATE(CT%XLAT_GREENROOF(KI))
    
      ALLOCATE(CT%XLAT_SOIL_TO_GARDEN(KI))
    
      ALLOCATE(CT%XWATER_ROAD(KI))
      ALLOCATE(CT%XWATER_BLD(KI))
      ALLOCATE(CT%XWATER_GARDEN(KI))
      !
      ALLOCATE(CT%XSEN_MELT_ROAD(KI))
      ALLOCATE(CT%XSEN_MELT_ROOF(KI))
      ALLOCATE(CT%XDIFF_SNOW_WAT_ROAD(KI))
      ALLOCATE(CT%XDIFF_SNOW_WAT_ROOF(KI))
    
      ALLOCATE(CT%XCONV_LAT_SEN_ROAD(KI))
      ALLOCATE(CT%XCONV_LAT_SEN_ROOF(KI))
      !
      ALLOCATE(CT%XDQS_SNOW_ROOF(KI))
      ALLOCATE(CT%XDQS_SNOW_ROAD(KI))
    
      ALLOCATE(CT%XRHOI(KI,KCOMP))
    
      ALLOCATE(CT%XRN(KI))
      ALLOCATE(CT%XH (KI))
      ALLOCATE(CT%XLE(KI))
    
      ALLOCATE(CT%XLW_WALA_TO_ROAD(KI))
      ALLOCATE(CT%XLW_WALB_TO_ROAD(KI))
      ALLOCATE(CT%XLW_WIND_TO_ROAD(KI))
      ALLOCATE(CT%XLW_WALA_TO_GARD(KI))
      ALLOCATE(CT%XLW_WALB_TO_GARD(KI))
      ALLOCATE(CT%XLW_WIND_TO_GARD(KI))
      ALLOCATE(CT%XLW_ROAD_TO_WIND(KI))
      ALLOCATE(CT%XLW_WALL_TO_WIND(KI))
      ALLOCATE(CT%XLW_SNOW_TO_WIND(KI))
      ALLOCATE(CT%XLW_GARD_TO_WIND(KI))
      ALLOCATE(CT%XLW_ROAD_TO_WALA(KI))
      ALLOCATE(CT%XLW_GARD_TO_WALA(KI))
      ALLOCATE(CT%XLW_SNOW_TO_WALA(KI))
      ALLOCATE(CT%XLW_WALB_TO_WALA(KI))
      ALLOCATE(CT%XLW_WIND_TO_WALA(KI))
      ALLOCATE(CT%XLW_ROAD_TO_WALB(KI))
      ALLOCATE(CT%XLW_GARD_TO_WALB(KI))
      ALLOCATE(CT%XLW_SNOW_TO_WALB(KI))
      ALLOCATE(CT%XLW_WALA_TO_WALB(KI))
      ALLOCATE(CT%XLW_WIND_TO_WALB(KI))
      ALLOCATE(CT%XLW_WALA_TO_SNOW(KI))
      ALLOCATE(CT%XLW_WALB_TO_SNOW(KI))
      ALLOCATE(CT%XLW_WIND_TO_SNOW(KI))
      ALLOCATE(CT%XLW_ROAD_TO_HV(KI))
      ALLOCATE(CT%XLW_WALA_TO_HV(KI))
      ALLOCATE(CT%XLW_WALB_TO_HV(KI))
      ALLOCATE(CT%XLW_WIND_TO_HV(KI))
      ALLOCATE(CT%XLW_GARD_TO_HV(KI))
      ALLOCATE(CT%XLW_SNOW_TO_HV(KI))
      ALLOCATE(CT%XLW_HV_TO_ROAD(KI))
      ALLOCATE(CT%XLW_HV_TO_WALA(KI))
      ALLOCATE(CT%XLW_HV_TO_WALB(KI))
      ALLOCATE(CT%XLW_HV_TO_WIND(KI))
      ALLOCATE(CT%XLW_HV_TO_GARD(KI))
      ALLOCATE(CT%XLW_HV_TO_SNOW(KI))
    
      CT%XFLUXFLOOR = XUNDEF          ! Heat flux into the ground floor
      CT%XFLX_BLD_ROOF = XUNDEF       ! Heat exchange between roof and indoor air
      CT%XFLX_BLD_WALL_A = XUNDEF     ! Heat exchange between wall A and indoor air
      CT%XFLX_BLD_WALL_B = XUNDEF     ! Heat exchange between wall B and indoor air
      !
      CT%XHEAT_RR_ROAD = XUNDEF
      CT%XHEAT_RR_ROOF = XUNDEF
      !
      CT%XSEN_SNOW_DIF_ROAD = XUNDEF ! Sensible heat due to snowfall on road
      CT%XSEN_SNOW_DIF_ROOF = XUNDEF ! Sensible heat due to snowfall on roof
      !
      CT%XDIAG_DCS_AREA = XUNDEF
      !
      CT%XSEN_GREENROOF = XUNDEF
      CT%XLAT_GREENROOF = XUNDEF
    
      CT%XLAT_SOIL_TO_GARDEN = XUNDEF
      !
      CT%XWATER_ROAD = XUNDEF
      CT%XWATER_BLD = XUNDEF
      CT%XWATER_GARDEN = XUNDEF
      !
      CT%XSEN_MELT_ROAD = XUNDEF
      CT%XSEN_MELT_ROOF = XUNDEF
      CT%XDIFF_SNOW_WAT_ROAD = XUNDEF
      CT%XDIFF_SNOW_WAT_ROOF = XUNDEF
    
      CT%XCONV_LAT_SEN_ROAD = XUNDEF
      CT%XCONV_LAT_SEN_ROOF = XUNDEF
      !
      CT%XDQS_SNOW_ROOF = XUNDEF
      CT%XDQS_SNOW_ROAD = XUNDEF
    
      CT%XRHOI = XUNDEF
    
      CT%XRN = XUNDEF
      CT%XH  = XUNDEF
      CT%XLE = XUNDEF
    
      CT%XLW_WALA_TO_ROAD = XUNDEF
      CT%XLW_WALB_TO_ROAD = XUNDEF
      CT%XLW_WIND_TO_ROAD = XUNDEF
      CT%XLW_WALA_TO_GARD = XUNDEF
      CT%XLW_WALB_TO_GARD = XUNDEF
      CT%XLW_WIND_TO_GARD = XUNDEF
      CT%XLW_ROAD_TO_WIND = XUNDEF
      CT%XLW_WALL_TO_WIND = XUNDEF
      CT%XLW_SNOW_TO_WIND = XUNDEF
      CT%XLW_GARD_TO_WIND = XUNDEF
      CT%XLW_ROAD_TO_WALA = XUNDEF
      CT%XLW_GARD_TO_WALA = XUNDEF
      CT%XLW_SNOW_TO_WALA = XUNDEF
      CT%XLW_WALB_TO_WALA = XUNDEF
      CT%XLW_WIND_TO_WALA = XUNDEF
      CT%XLW_ROAD_TO_WALB = XUNDEF
      CT%XLW_GARD_TO_WALB = XUNDEF
      CT%XLW_SNOW_TO_WALB = XUNDEF
      CT%XLW_WALA_TO_WALB = XUNDEF
      CT%XLW_WIND_TO_WALB = XUNDEF
      CT%XLW_WALA_TO_SNOW = XUNDEF
      CT%XLW_WALB_TO_SNOW = XUNDEF
      CT%XLW_WIND_TO_SNOW = XUNDEF
      CT%XLW_ROAD_TO_HV = XUNDEF
      CT%XLW_WALA_TO_HV = XUNDEF
      CT%XLW_WALB_TO_HV = XUNDEF
      CT%XLW_WIND_TO_HV = XUNDEF
      CT%XLW_GARD_TO_HV = XUNDEF
      CT%XLW_SNOW_TO_HV = XUNDEF
      CT%XLW_HV_TO_ROAD = XUNDEF
      CT%XLW_HV_TO_WALA = XUNDEF
      CT%XLW_HV_TO_WALB = XUNDEF
      CT%XLW_HV_TO_WIND = XUNDEF
      CT%XLW_HV_TO_GARD = XUNDEF
      CT%XLW_HV_TO_SNOW = XUNDEF
    
    IF (LHOOK) CALL DR_HOOK('ALLOC_CHECK_TEB',1,ZHOOK_HANDLE)
    
    END SUBROUTINE