SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/window_e_budget.F90
Go to the documentation of this file.
00001 SUBROUTINE WINDOW_E_BUDGET(PU_WIN, PEMIS_WIN, PF_WIN_FLOOR, PF_WIN_WALL, PF_WIN_MASS, &
00002                            PLW_W_TO_WIN, PLW_R_TO_WIN, PLW_G_TO_WIN,                  &
00003                            PLW_NR_TO_WIN, PLW_S_TO_WIN, PRAD_ROOF_WIN, PRAD_WALL_WIN, &
00004                            PABS_SW_WIN, PLW_RAD, PAC_WALL,                 &
00005                            PRADHT_IN, PTI_BLD, PTS_MASS, PTS_FLOOR, PRHOA, PDN_ROAD,  &
00006                            PT_CANYON, PTS_WALL, PTS_ROAD, PTSNOW_ROAD,                &
00007                            PTS_GARDEN, PT_WIN1, PT_WIN2, PRAD_WIN_FLOOR,              &
00008                            PRAD_WIN_MASS, PCONV_WIN_BLD, PEMIT_LW_WIN, PABS_LW_WIN, PLOAD_IN_WIN)
00009 !###################################################################################################################################
00010 !
00011 !!****  *WINDOW_E_BUDGET*  
00012 !!
00013 !!    PURPOSE
00014 !!    -------
00015 !
00016 !     Computes the evoultion of window temperature
00017 !         
00018 !     
00019 !!**  METHOD
00020 !     ------
00021 !
00022 ! window is supposed double pane with no thermal capacity
00023 ! a steady state energy balance is applied to both layers that exchanges U_WIN(T1 - T2)
00024 !
00025 !!    EXTERNAL
00026 !!    --------
00027 !!
00028 !!
00029 !!    IMPLICIT ARGUMENTS
00030 !!    ------------------
00031 !!
00032 !!    MODD_CST
00033 !!
00034 !!      
00035 !!    REFERENCE
00036 !!    ---------
00037 !!
00038 !!      
00039 !!    AUTHOR
00040 !!    ------
00041 !!
00042 !!      B. Bueno           * Meteo-France *
00043 !!
00044 !!    MODIFICATIONS
00045 !!    -------------
00046 !!      Original    04/2011 
00047 !!      G. Pigeon   10/11/2011 exteranlized window balance from wall_layer_e_budget to window_e_budget and use fluxes from layers for
00048 !                              which the balance has been computed before (roof and wall) and returns the fluxes to the compartments
00049 !                              computed afterwards (floor, mass, bld)
00050 !!      G. Pigeon      09/2012 new indoor conv. coef
00051 !!      G. Pigeon      10/2012 separate abs from outdoor on both side of window
00052 !!                            + add loads for indoor face of the window
00053 !-------------------------------------------------------------------------------
00054 !
00055 !*       0.     DECLARATIONS
00056 !               ------------
00057 !
00058 USE MODD_CSTS,ONLY : XCPD, XSTEFAN
00059 USE MODE_CONV_DOE
00060 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00061 USE PARKIND1  ,ONLY : JPRB
00062 !
00063 IMPLICIT NONE
00064 !
00065 !*      0.1    declarations of arguments
00066 !
00067 REAL, DIMENSION(:), INTENT(IN)    :: PU_WIN       ! window U-factor [W m-2 K-1]
00068 REAL, DIMENSION(:), INTENT(IN)    :: PEMIS_WIN    ! window emissivity
00069 REAL, DIMENSION(:), INTENT(IN)    :: PF_WIN_FLOOR ! window floor view factor
00070 REAL, DIMENSION(:), INTENT(IN)    :: PF_WIN_WALL  ! window wall view factor
00071 REAL, DIMENSION(:), INTENT(IN)    :: PF_WIN_MASS  ! window mass view factor
00072 REAL, DIMENSION(:), INTENT(IN)    :: PLW_W_TO_WIN ! Radiative heat trasfer coeff window-wall outdoor
00073                                                   ! [W K-1 m-2] 
00074 REAL, DIMENSION(:), INTENT(IN)    :: PLW_R_TO_WIN ! Radiative heat trasfer coeff window-road 
00075                                                   ! [W K-1 m-2]
00076 REAL, DIMENSION(:), INTENT(IN)    :: PLW_G_TO_WIN ! Radiative heat trasfer coeff window-garden
00077 REAL, DIMENSION(:), INTENT(IN)    :: PLW_NR_TO_WIN! Radiative heat trasfer coeff window-snow
00078 REAL, DIMENSION(:), INTENT(IN)    :: PLW_S_TO_WIN ! Radiative heat trasfer coeff window-sky 
00079                                                   ! [W K-1 m-2]
00080 REAL, DIMENSION(:), INTENT(IN)    :: PRAD_ROOF_WIN  ! rad. fluxes from roof to win [W m-2(roof)]
00081 REAL, DIMENSION(:), INTENT(IN)    :: PRAD_WALL_WIN  ! rad. fluxes from wall to win [W m-2(roof)]
00082 REAL, DIMENSION(:), INTENT(IN)    :: PABS_SW_WIN  ! window absorbed shortwave radiation [W m-2]
00083 REAL, DIMENSION(:), INTENT(IN)    :: PLW_RAD      ! atmospheric infrared radiation
00084 REAL, DIMENSION(:), INTENT(IN)    :: PAC_WALL     ! aerodynamical conductance between wall and canyon
00085 REAL, DIMENSION(:),   INTENT(IN)  :: PRADHT_IN     ! Indoor radiant heat transfer coefficient
00086                                                     ! [W K-1 m-2]
00087 REAL, DIMENSION(:), INTENT(IN)    :: PTI_BLD      ! inside building temperature
00088 REAL, DIMENSION(:), INTENT(IN)    :: PTS_MASS     ! surface mass temperature  [K]
00089 REAL, DIMENSION(:), INTENT(IN)    :: PTS_FLOOR    ! floor layers temperatures [K]
00090 REAL, DIMENSION(:), INTENT(IN)    :: PRHOA        ! rho
00091 REAL, DIMENSION(:), INTENT(IN)    :: PDN_ROAD     ! snow-covered fraction on roads
00092 REAL, DIMENSION(:), INTENT(IN)    :: PT_CANYON    ! air canyon temperature
00093 REAL, DIMENSION(:), INTENT(IN)    :: PTS_WALL     ! wall outdoor surface temperature
00094 REAL, DIMENSION(:), INTENT(IN)    :: PTS_ROAD     ! road surface temperature
00095 REAL, DIMENSION(:), INTENT(IN)    :: PTSNOW_ROAD  ! road snow temperature
00096 REAL, DIMENSION(:), INTENT(IN)    :: PTS_GARDEN   ! green area surface temperature
00097 REAL, DIMENSION(:), INTENT(OUT)   :: PT_WIN1      ! outdoor window temperature [K]
00098 REAL, DIMENSION(:), INTENT(OUT)   :: PT_WIN2      ! indoor window temperature [K]
00099 REAL, DIMENSION(:), INTENT(OUT)   :: PRAD_WIN_FLOOR ! rad. fluxes from window to floor [W m-2(window)]
00100 REAL, DIMENSION(:), INTENT(OUT)   :: PRAD_WIN_MASS  ! rad. fluxes from window to mass [W m-2(window)]
00101 REAL, DIMENSION(:), INTENT(OUT)   :: PCONV_WIN_BLD  ! conv. fluxes from window to bld [W m-2(window)]
00102 REAL, DIMENSION(:), INTENT(OUT)   :: PEMIT_LW_WIN  ! Longwave radiation emitted by the window [W m-2(window)]
00103 REAL, DIMENSION(:), INTENT(OUT)   :: PABS_LW_WIN   ! Longwave radiation absorbed by the window [W m-2(window)]
00104 REAL, DIMENSION(:), INTENT(IN)    :: PLOAD_IN_WIN  ! solar + internal heat gain 
00105 !
00106 !*      0.2    declarations of local variables
00107 !
00108 REAL, DIMENSION(SIZE(PT_CANYON)) :: ZT_SKY         ! sky temperature [K]
00109 REAL, DIMENSION(SIZE(PT_CANYON)) :: ZA12           ! 
00110 REAL, DIMENSION(SIZE(PT_CANYON)) :: ZB2            ! auxiliar variables for window temperature
00111 REAL, DIMENSION(SIZE(PT_CANYON)) :: ZB1            ! calculations
00112 REAL, DIMENSION(SIZE(PT_CANYON)) :: ZA21           !
00113 REAL, DIMENSION(SIZE(PT_CANYON)) :: ZCHTC_IN_WIN   ! indoor convective heat transfer coef. window [W m-2 K-1]
00114 INTEGER :: JJ
00115 
00116 !*      Preliminaries
00117 !       -------------
00118 ZCHTC_IN_WIN = CHTC_VERT_DOE(PT_WIN2, PTI_BLD)
00119 DO JJ=1,SIZE(ZCHTC_IN_WIN)
00120    ZCHTC_IN_WIN(JJ) = MAX(1., ZCHTC_IN_WIN(JJ))
00121 ENDDO
00122 
00123 !*      1.    Sky temperature
00124 !             ---------------
00125 ZT_SKY(:) = (PLW_RAD(:)/XSTEFAN)**0.25
00126 !  
00127 ZA12(:) = ZCHTC_IN_WIN(:)   &
00128          + PRADHT_IN(:) * PF_WIN_MASS(:)  &
00129          + PRADHT_IN(:) * PF_WIN_FLOOR(:) &
00130          + PU_WIN(:)
00131 !
00132 ZB1(:)  = ZCHTC_IN_WIN   (:) * PTI_BLD (:)             &
00133          + PRADHT_IN(:) * PF_WIN_MASS(:) * PTS_MASS(:)             &
00134          + PF_WIN_WALL(:) * PRAD_WALL_WIN(:) &
00135          + PF_WIN_FLOOR(:) * PRAD_ROOF_WIN(:) &
00136          + PRADHT_IN(:) * PF_WIN_FLOOR(:)* PTS_FLOOR(:) &
00137          + PLOAD_IN_WIN(:) + PABS_SW_WIN(:) /2.
00138 !
00139 ZA21(:) = - PAC_WALL     (:) * PRHOA(:)*XCPD   &
00140            - PLW_S_TO_WIN (:)                  &
00141            - PLW_W_TO_WIN (:)                  &
00142            - PLW_R_TO_WIN (:) *(1.-PDN_ROAD(:))&
00143            - PLW_G_TO_WIN (:)                  &
00144            - PLW_NR_TO_WIN(:) * PDN_ROAD(:)    &
00145            - PU_WIN(:)
00146 !
00147 ZB2(:)  = - PAC_WALL     (:) * PRHOA(:)*XCPD*PT_CANYON(:)   &
00148            - PLW_S_TO_WIN (:) * ZT_SKY(:)                     &
00149            - PLW_W_TO_WIN (:) * PTS_WALL(:)                   &
00150            - PLW_R_TO_WIN (:) *(1.-PDN_ROAD(:)) * PTS_ROAD(:) &
00151            - PLW_G_TO_WIN (:) * PTS_GARDEN(:)                 &
00152            - PLW_NR_TO_WIN(:) * PDN_ROAD(:) * PTSNOW_ROAD(:) &
00153            - PABS_SW_WIN  (:) /2.
00154 !
00155 ! compute outdoor temperature
00156 PT_WIN1(:) = ( ZB2(:) - ZB1(:)*PU_WIN(:)/ZA12(:) ) / &
00157               ( ZA21(:) + PU_WIN(:)**2/ZA12(:) )
00158 !
00159 ! compute indoor temperature
00160 PT_WIN2(:) = (ZB1(:) + PU_WIN(:)*PT_WIN1(:) ) / ZA12(:)
00161 !
00162 ! outdoor infrared radiation absorded by the window
00163 PABS_LW_WIN(:)    = PLW_S_TO_WIN (:) * (ZT_SKY     (:) - PT_WIN1(:)) + &
00164   (1.-PDN_ROAD(:))*  PLW_R_TO_WIN (:) * (PTS_ROAD   (:) - PT_WIN1(:)) + &
00165                      PLW_G_TO_WIN (:) * (PTS_GARDEN (:) - PT_WIN1(:)) + &
00166                      PLW_W_TO_WIN (:) * (PTS_WALL  (:)  - PT_WIN1(:)) + &
00167       PDN_ROAD(:) * PLW_NR_TO_WIN(:) * (PTSNOW_ROAD(:) - PT_WIN1(:))
00168 !
00169 ! outdoor infrared radiation emited by the window
00170 PEMIT_LW_WIN(:) = XSTEFAN * PT_WIN1(:)**4 + (1 - PEMIS_WIN(:))/PEMIS_WIN(:) * PABS_LW_WIN(:)
00171 !
00172 PRAD_WIN_FLOOR(:) = PRADHT_IN(:)   * (PT_WIN2(:) - PTS_FLOOR(:))
00173 PRAD_WIN_MASS(:)  = PRADHT_IN(:)   * (PT_WIN2(:) - PTS_MASS(:))
00174 PCONV_WIN_BLD(:)  = ZCHTC_IN_WIN(:) * (PT_WIN2(:) - PTI_BLD(:))
00175 !
00176 END SUBROUTINE WINDOW_E_BUDGET