SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/wall_layer_e_budget.F90
Go to the documentation of this file.
00001 !   ##########################################################################
00002     SUBROUTINE WALL_LAYER_E_BUDGET(HBEM, PT_WALL, PTS_WALL_B, PTI_WALL_B, PTSTEP,          &
00003                                    PHC_WALL, PTC_WALL, PD_WALL, PDN_ROAD, PRHOA, PAC_WALL, &
00004                                    PAC_BLD, PTI_BLD, PLW_RAD, PPS, PEXNS,     &
00005                                    PABS_SW_WALL, PT_CANYON, PTS_ROAD, PTSNOW_ROAD,         &
00006                                    PTS_GARDEN, PTS_MASS, PTS_FLOOR, PEMIS_WALL,            &
00007                                    PLW_WA_TO_WB, PLW_R_TO_W, PLW_G_TO_W, PLW_NR_TO_W,      &
00008                                    PLW_WIN_TO_W, PLW_S_TO_W,                               &
00009                                    PT_WIN1,                                                &
00010                                    PFLX_BLD_WALL, PDQS_WALL, PT_WIN2, PABS_LW_WALL,        &
00011                                    PEMIT_LW_WALL, PH_WALL, PIMB_WALL, PF_WALL_MASS,        &
00012                                    PF_WALL_FLOOR, PF_WALL_WIN, PRADHT_IN, PRAD_ROOF_WALL,  &
00013                                    PRAD_WALL_WIN, PRAD_WALL_FLOOR,                         &
00014                                    PRAD_WALL_MASS, PCONV_WALL_BLD, PLOAD_IN_WALL ) 
00015 !   ##########################################################################
00016 !
00017 !!****  *ROAD_WALL_LAYER_E_BUDGET*  
00018 !!
00019 !!    PURPOSE
00020 !!    -------
00021 !
00022 !     Computes the evoultion of roads and walls surface temperatures
00023 !         
00024 !     
00025 !!**  METHOD
00026 !     ------
00027 !
00028 !    6 : equations for evolution of Ts_road and Ts_wall simultaneously
00029 !        *************************************************************
00030 !
00031 !     dTw_k(t) / dt = 1/(dw_k*Cw_k) * (- 2*Kw_k-1*(Tw_k-Tw_k-1)/(dw_k-1 +dw_k) 
00032 !                                      - 2*Kw_k  *(Tw_k-Tw_k+1)/(dw_k+1 +dw_k) )
00033 !
00034 !     dTw_1(t) / dt = 1/(dw_1*Cw_1) * (  Rn_w - H_w - LE_w 
00035 !                                      - 2*Kw_1*(Tw_1-Tw_2)/(dw_1 +dw_2)       )
00036 !
00037 !
00038 !       with
00039 !
00040 !   K*_k  = (d*_k+ d*_k+1)/(d*_k/k*_k+ d*_k+1/k*_k+1)
00041 !
00042 !   Rn_w = abs_Rg_w 
00043 !  - sigma * emis_w                                                   * Ts_w**4 (t+dt)
00044 !  +         emis_w                       *      SVF_w                * LWR
00045 !  + sigma * emis_w * emis_r              *      SVF_w                * Ts_r**4 (t+dt)
00046 !  + sigma * emis_w * emis_w              * (1-2*SVF_w)               * Ts_w**4 (t+dt)
00047 !  +         emis_w            (1-emis_r) *      SVF_r  *      SVF_w  * LWR
00048 !  +         emis_w            (1-emis_w) *      SVF_w  * (1-2*SVF_w) * LWR
00049 !  + sigma * emis_w * emis_w * (1-emis_r) *      SVF_w  * (1-  SVF_r) * Ts_w**4 (t+dt)
00050 !  + sigma * emis_w * emis_w * (1-emis_w) * (1-2*SVF_w) * (1-2*SVF_w) * Ts_w**4 (t+dt)
00051 !  + sigma * emis_w * emis_r * (1-emis_w) *      SVF_w  * (1-2*SVF_w) * Ts_r**4 (t+dt)
00052 !
00053 !  H_w  = rho Cp CH V ( Ts_w (t+dt) - Ta_canyon )
00054 !
00055 !  LE_w = rho Lv CH V ( qs_w (t+dt) - qa_canyon )
00056 !
00057 !
00058 ! The system is implicited (or semi-implicited).
00059 !
00060 ! ZIMPL=1    ---> implicit system
00061 ! ZIMPL=0.5  ---> semi-implicit system
00062 ! ZIMPL=0    ---> explicit system
00063 !
00064 !
00065 !
00066 !
00067 !!    EXTERNAL
00068 !!    --------
00069 !!
00070 !!
00071 !!    IMPLICIT ARGUMENTS
00072 !!    ------------------
00073 !!
00074 !!    MODD_CST
00075 !!
00076 !!      
00077 !!    REFERENCE
00078 !!    ---------
00079 !!
00080 !!      
00081 !!    AUTHOR
00082 !!    ------
00083 !!
00084 !!      V. Masson           * Meteo-France *
00085 !!
00086 !!    MODIFICATIONS
00087 !!    -------------
00088 !!      Original    23/01/98 
00089 !!                  21/11/01 (V. Masson and A. Lemonsu) bug of latent flux
00090 !!                           for very strong evaporation (all reservoir emptied
00091 !!                           in one time-step)
00092 !!                     02/11 (V. Masson) splits the routine for road and walls separately
00093 !!                     01/12 (V. Masson) separates the 2 walls
00094 !!                     09/12 (G. Pigeon) modif internal convective coef convection
00095 !!                     10/12 (G. Pigeon) add solar heat gain of indoor wall
00096 !-------------------------------------------------------------------------------
00097 !
00098 !*       0.     DECLARATIONS
00099 !               ------------
00100 !
00101 USE MODD_CSTS,ONLY : XCPD, XSTEFAN
00102 !
00103 USE MODI_LAYER_E_BUDGET_GET_COEF
00104 USE MODI_LAYER_E_BUDGET
00105 USE MODE_CONV_DOE
00106 !
00107 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00108 USE PARKIND1  ,ONLY : JPRB
00109 !
00110 IMPLICIT NONE
00111 !
00112 !*      0.1    declarations of arguments
00113 !
00114 REAL, DIMENSION(:,:), INTENT(INOUT) :: PT_WALL    ! wall layers temperatures
00115 REAL, DIMENSION(:),   INTENT(IN)  :: PTS_WALL_B ! opposite wall surface temperature
00116 REAL, DIMENSION(:),   INTENT(IN)  :: PTI_WALL_B ! opposite wall internal temperature
00117 REAL,               INTENT(IN)    :: PTSTEP       ! time step
00118  CHARACTER(LEN=3), INTENT(IN)      :: HBEM         ! Building Energy model 'DEF' or 'BEM'
00119 REAL, DIMENSION(:,:), INTENT(IN)  :: PHC_WALL     ! heat capacity for wall layers
00120 REAL, DIMENSION(:,:), INTENT(IN)  :: PTC_WALL     ! thermal conductivity for wall layers
00121 REAL, DIMENSION(:,:), INTENT(IN)  :: PD_WALL      ! depth of wall layers
00122 REAL, DIMENSION(:), INTENT(IN)    :: PDN_ROAD     ! snow-covered fraction on roads
00123 REAL, DIMENSION(:), INTENT(IN)    :: PRHOA        ! rho
00124 REAL, DIMENSION(:), INTENT(IN)    :: PAC_WALL     ! aerodynamical conductance [m/s]
00125 !                                                 ! between wall and canyon
00126 REAL, DIMENSION(:), INTENT(IN)    :: PAC_BLD      ! aerodynamical conductance
00127                                                   ! inside the building itself
00128 REAL, DIMENSION(:), INTENT(IN)    :: PTI_BLD      ! inside building temperature
00129 REAL, DIMENSION(:), INTENT(IN)    :: PLW_RAD      ! atmospheric infrared radiation
00130 REAL, DIMENSION(:), INTENT(IN)    :: PPS          ! pressure at the surface
00131 REAL, DIMENSION(:), INTENT(IN)    :: PEXNS        ! surface Exner function
00132 REAL, DIMENSION(:), INTENT(IN)    :: PABS_SW_WALL ! absorbed solar radiation
00133 REAL, DIMENSION(:), INTENT(IN)    :: PT_CANYON    ! air canyon temperature
00134 REAL, DIMENSION(:), INTENT(IN)    :: PTS_ROAD     ! road surface temperature
00135 REAL, DIMENSION(:), INTENT(IN)    :: PTSNOW_ROAD  ! road snow temperature
00136 REAL, DIMENSION(:), INTENT(IN)    :: PTS_GARDEN   ! green area surface temperature
00137 REAL, DIMENSION(:), INTENT(IN)    :: PTS_MASS     ! surface mass temperature  [K]
00138 REAL, DIMENSION(:), INTENT(IN)    :: PTS_FLOOR    ! floor layers temperatures [K]
00139 REAL, DIMENSION(:), INTENT(IN)    :: PEMIS_WALL   ! wall emissivity
00140 !
00141 REAL, DIMENSION(:), INTENT(IN)    :: PLW_WA_TO_WB ! LW interactions wall  -> opposite wall
00142 REAL, DIMENSION(:), INTENT(IN)    :: PLW_R_TO_W   ! LW interactions road -> wall ; DEF formulation 
00143 REAL, DIMENSION(:), INTENT(IN)    :: PLW_G_TO_W   ! LW interactions garden -> wall ; DEF formulation
00144 REAL, DIMENSION(:), INTENT(IN)    :: PLW_S_TO_W   ! LW interactions sky   -> wall 
00145 REAL, DIMENSION(:), INTENT(IN)    :: PLW_NR_TO_W  ! LW interactions road(snow) -> wall 
00146 REAL, DIMENSION(:), INTENT(IN)    :: PLW_WIN_TO_W ! Radiative heat trasfer coeff wall-window 
00147                                                   ! [W K-1 m-2]
00148 !
00149 REAL, DIMENSION(:), INTENT(IN)    :: PT_WIN1      ! outdoor window temperature [K]
00150 REAL, DIMENSION(:), INTENT(OUT)   :: PFLX_BLD_WALL! flux from bld to wall
00151 REAL, DIMENSION(:), INTENT(INOUT) :: PDQS_WALL    ! heat storage inside the wall 
00152 REAL, DIMENSION(:), INTENT(IN)    :: PT_WIN2      ! indoor window temperature [K]
00153 REAL, DIMENSION(:), INTENT(OUT)   :: PABS_LW_WALL ! absorbed infrared rad. [W m-2(wall)]
00154 REAL, DIMENSION(:), INTENT(OUT)   :: PEMIT_LW_WALL  ! LW flux emitted by the wall [W m-2(wall)]
00155 REAL, DIMENSION(:), INTENT(OUT)   :: PH_WALL      ! Sensible heat flux from wall to air [W/m²(wall)]
00156                                                   ! wall = facade - glazing
00157 REAL, DIMENSION(:), INTENT(OUT)   :: PIMB_WALL    ! wall residual energy imbalance 
00158                                                   ! for verification [W m-2]
00159 REAL, DIMENSION(:),   INTENT(IN)  :: PF_WALL_FLOOR ! View factor wall-floor
00160 REAL, DIMENSION(:),   INTENT(IN)  :: PF_WALL_MASS  ! View factor wall-mass
00161 REAL, DIMENSION(:),   INTENT(IN)  :: PF_WALL_WIN   ! View factor wall-win
00162 REAL, DIMENSION(:),   INTENT(IN)  :: PRADHT_IN     ! Indoor radiant heat transfer coefficient
00163                                                     ! [W K-1 m-2]
00164 REAL, DIMENSION(:), INTENT(IN)    :: PRAD_ROOF_WALL ! rad. fluxes from roof to wall [W m-2(roof)]
00165 REAL, DIMENSION(:), INTENT(OUT)   :: PRAD_WALL_WIN  ! rad. fluxes from wall to win  [W m-2(wall)]
00166 REAL, DIMENSION(:), INTENT(OUT)   :: PRAD_WALL_FLOOR! rad. fluxes from wall to floor [W m-2(wall)]
00167 REAL, DIMENSION(:), INTENT(OUT)   :: PRAD_WALL_MASS ! rad. fluxes from wall to mass [W m-2(wall)]
00168 REAL, DIMENSION(:), INTENT(OUT)   :: PCONV_WALL_BLD ! conv. fluxes from wall to bld [W m-2(wall)]
00169 
00170 REAL, DIMENSION(:), INTENT(IN)    :: PLOAD_IN_WALL  ! LOAD from solar heat gain + rad int. gains  W/m² [Wall]
00171 
00172 
00173 !
00174 !*      0.2    declarations of local variables
00175 !
00176 !
00177 REAL :: ZIMPL=1.0      ! implicit coefficient
00178 REAL :: ZEXPL=0.0      ! explicit coefficient
00179 !
00180 REAL, DIMENSION(SIZE(PPS),SIZE(PT_WALL,2)) ::  ZA, ! lower diag.
00181                                                ZB, ! main  diag.
00182                                                ZC, ! upper diag.
00183                                                ZY   ! r.h.s.                       
00184 !
00185 REAL, DIMENSION(SIZE(PPS)) :: ZMTC_O_D_WALL_IN
00186 REAL, DIMENSION(SIZE(PPS)) :: ZDF_ROAD    ! Road snow free fraction
00187 REAL, DIMENSION(SIZE(PPS)) :: ZRHO_ACF_W  ! rho * conductance
00188 !                                         !     * snow-free f.
00189 !
00190 ! thermal capacity times layer depth
00191 REAL, DIMENSION(SIZE(PPS)) :: ZTS_WALL       ! wall surface temperature
00192 REAL, DIMENSION(SIZE(PPS)) :: ZTI_WALL       ! wall indoor surface temperature
00193 REAL, DIMENSION(SIZE(PPS)) :: ZTI_WALL_CONV  ! wall indoor surface temperature for conv. flux
00194 REAL, DIMENSION(SIZE(PPS)) :: ZT_SKY         ! sky temperature [K]
00195 !
00196 REAL, DIMENSION(SIZE(PPS)) :: ZTI_ROOF       ! Indoor roof temperature [K]
00197 REAL, DIMENSION(SIZE(PPS)) :: ZDIF_RAD_WALL_ROOF !diff between the rad flux that should receive the wall from the roof
00198                                                  ! and what it really receives [W m-2(bld)]
00199 REAL, DIMENSION(SIZE(PPS)) :: ZRAD_WALL_ROOF     ! rad flux between the wall and the roof computed for the wall balance
00200 REAL, DIMENSION(SIZE(PPS)) :: ZF_WALL_WALL       ! View factor wall-wall inside the building
00201 REAL, DIMENSION(SIZE(PPS)) :: ZCHTC_IN_WALL  ! indoor convective heat transfer coeff wall [W m-2 K-1]
00202 INTEGER :: IWALL_LAYER           ! number of wall layers
00203 INTEGER :: JJ                    ! loop counter
00204 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00205 !-------------------------------------------------------------------------------
00206 IF (LHOOK) CALL DR_HOOK('WALL_LAYER_E_BUDGET',0,ZHOOK_HANDLE)
00207 !
00208  CALL LAYER_E_BUDGET_GET_COEF( PT_WALL, PTSTEP, ZIMPL, PHC_WALL, PTC_WALL, PD_WALL, &
00209                               ZA, ZB, ZC, ZY )
00210 !
00211 IWALL_LAYER = SIZE(PT_WALL,2)
00212 !
00213 DO JJ=1,SIZE(PDN_ROAD)
00214   !
00215   ZDF_ROAD(JJ) = 1. - PDN_ROAD(JJ)
00216   !
00217   ZTS_WALL(JJ) = PT_WALL(JJ,1)
00218   ZTI_WALL(JJ) = PT_WALL(JJ, IWALL_LAYER)
00219   !
00220   !*      2.1    outdoor convective flux properties 
00221   !              ----------------------------------
00222   !
00223   ZRHO_ACF_W (JJ) = PRHOA(JJ) * PAC_WALL(JJ)
00224   !
00225   !*      2.2    Sky temperature
00226   !              ---------------
00227   !
00228   ZT_SKY(JJ) = (PLW_RAD(JJ)/XSTEFAN)**0.25
00229   !  
00230   !*      2.3    indoor average thermal conductivity
00231   !              -----------------------------------
00232   !
00233   IF (HBEM .EQ. "DEF") THEN
00234     ZMTC_O_D_WALL_IN(JJ) = 2. * PTC_WALL(JJ,IWALL_LAYER) / PD_WALL (JJ,IWALL_LAYER)
00235     ZMTC_O_D_WALL_IN(JJ) = 1./(  1./ZMTC_O_D_WALL_IN(JJ)  + 1./(XCPD*PRHOA(JJ)*PAC_BLD(JJ)))
00236   ENDIF
00237 ENDDO  
00238   !  
00239   !*      2.4    indoor convective coefficient
00240   !              -----------------------------
00241   !
00242   ZCHTC_IN_WALL(:) = CHTC_VERT_DOE(PT_WALL(:,IWALL_LAYER), PTI_BLD(:))
00243   DO JJ=1,SIZE(ZCHTC_IN_WALL)
00244      ZCHTC_IN_WALL(JJ) = MAX(1., ZCHTC_IN_WALL(JJ))
00245   ENDDO
00246 
00247 !
00248 !-------------------------------------------------------------------------------
00249 !
00250 !*      3.    Outer wall layer coefficients
00251 !             ------------------------------
00252 !
00253 DO JJ=1,SIZE(PT_WALL,1)
00254   !
00255   ZB(JJ,1) = ZB(JJ,1) + ZIMPL * XCPD/PEXNS(JJ) * ZRHO_ACF_W(JJ)
00256   !
00257   ZY(JJ,1) = ZY(JJ,1) + PABS_SW_WALL(JJ)  &
00258                       + XCPD/PEXNS(JJ) * ZRHO_ACF_W(JJ) * ( PT_CANYON(JJ) - ZEXPL * ZTS_WALL(JJ) )
00259   !
00260   !
00261   ZB(JJ,1) = ZB(JJ,1) &
00262              + ZIMPL * ( PLW_S_TO_W(JJ) + PLW_WA_TO_WB(JJ)                &
00263                        + ZDF_ROAD(JJ)*PLW_R_TO_W(JJ) +  PLW_G_TO_W(JJ)    &
00264                        + PDN_ROAD(JJ) *   PLW_NR_TO_W(JJ)                 &
00265                        + PLW_WIN_TO_W(JJ)  )    
00266   !
00267   ZY(JJ,1) = ZY(JJ,1) + &
00268                          PLW_S_TO_W(JJ) * (ZT_SKY(JJ)     - ZEXPL * ZTS_WALL(JJ))  &
00269                        + PLW_WA_TO_WB(JJ) * (PTS_WALL_B(JJ) - ZEXPL * ZTS_WALL(JJ))  &
00270        + ZDF_ROAD(JJ) *  PLW_R_TO_W(JJ)  * (PTS_ROAD(JJ)   - ZEXPL * ZTS_WALL(JJ))  &
00271                        + PLW_G_TO_W(JJ)  * (PTS_GARDEN(JJ) - ZEXPL * ZTS_WALL(JJ)) &
00272        + PDN_ROAD(JJ) *  PLW_NR_TO_W(JJ) * (PTSNOW_ROAD(JJ)- ZEXPL * ZTS_WALL(JJ))  &
00273                        + PLW_WIN_TO_W(JJ) * (PT_WIN1(JJ)    - ZEXPL * ZTS_WALL(JJ))  
00274 
00275   !
00276 ENDDO
00277 !
00278 !-------------------------------------------------------------------------------
00279 !
00280 !*      4.    Inside wall layer coefficients
00281 !             -----------------------------
00282 !
00283 DO JJ=1,SIZE(PT_WALL,1)
00284   !                
00285   IF (HBEM=="DEF") THEN
00286     !
00287     ZB(JJ,IWALL_LAYER) = ZB(JJ,IWALL_LAYER) + ZIMPL * ZMTC_O_D_WALL_IN(JJ)
00288     !
00289     ZY(JJ,IWALL_LAYER) = ZY(JJ,IWALL_LAYER) &
00290                         + ZMTC_O_D_WALL_IN(JJ) * PTI_BLD(JJ) &
00291                         - ZEXPL * ZMTC_O_D_WALL_IN(JJ) * PT_WALL(JJ,IWALL_LAYER)
00292     !
00293   ELSEIF (HBEM=="BEM") THEN
00294     !
00295     ZF_WALL_WALL (JJ) = 1. - PF_WALL_MASS(JJ) - PF_WALL_WIN(JJ) - 2.*PF_WALL_FLOOR(JJ) 
00296     !
00297      ZB(JJ,IWALL_LAYER) = ZB(JJ,IWALL_LAYER) + ZIMPL *               &
00298                         (ZCHTC_IN_WALL(JJ) * 4./3. + PRADHT_IN(JJ) *           &
00299                          (  PF_WALL_MASS(JJ) +     PF_WALL_WIN  (JJ) &
00300                           + ZF_WALL_WALL(JJ) + 2 * PF_WALL_FLOOR(JJ)))
00301     !
00302     ZTI_ROOF(JJ) = PRAD_ROOF_WALL(JJ) / PRADHT_IN(JJ) + PT_WALL(JJ,IWALL_LAYER)
00303     ZY(JJ,IWALL_LAYER) = ZY(JJ,IWALL_LAYER) +  &
00304         ZCHTC_IN_WALL(JJ) * (PTI_BLD(JJ) - 1./3. * PT_WALL(JJ, IWALL_LAYER) * (4 * ZEXPL -1)) + &
00305         PRADHT_IN(JJ) * ( &
00306            PF_WALL_MASS (JJ) * (PTS_MASS(JJ)  - ZEXPL * PT_WALL(JJ,IWALL_LAYER)) + &
00307            PF_WALL_WIN  (JJ) * (PT_WIN2 (JJ)  - ZEXPL * PT_WALL(JJ,IWALL_LAYER)) + &
00308            PF_WALL_FLOOR(JJ) * (PTS_FLOOR(JJ) - ZEXPL * PT_WALL(JJ,IWALL_LAYER)) + &
00309            ZF_WALL_WALL (JJ) * (PTI_WALL_B(JJ)- ZEXPL * PT_WALL(JJ,IWALL_LAYER)) + &
00310            PF_WALL_FLOOR(JJ) * (ZTI_ROOF(JJ) - ZEXPL * PT_WALL(JJ,IWALL_LAYER)) )+ &
00311            PLOAD_IN_WALL(JJ)
00312     !
00313   ENDIF
00314   !
00315 END DO
00316 !
00317 !-------------------------------------------------------------------------------
00318 !
00319 !*      5.    heat conduction calculation
00320 !             ---------------------------
00321 !
00322  CALL LAYER_E_BUDGET( PT_WALL, PTSTEP, ZIMPL, PHC_WALL, PTC_WALL, PD_WALL, &
00323                      ZA, ZB, ZC, ZY, PDQS_WALL )
00324 !
00325 !-------------------------------------------------------------------------------
00326 !
00327 !*   6.   diagnostics of flux echanged with the wall
00328 !         ------------------------------------------
00329 !
00330 !
00331 !* radiative surface temperature used during the energy balance
00332 ZTS_WALL(:) = ZIMPL * PT_WALL(:,1) + ZEXPL * ZTS_WALL(:)
00333 !
00334 PABS_LW_WALL(:) = PLW_S_TO_W  (:) * (ZT_SKY     (:) - ZTS_WALL(:)) + &
00335      ZDF_ROAD(:) *PLW_R_TO_W  (:) * (PTS_ROAD   (:) - ZTS_WALL(:)) + &
00336                   PLW_G_TO_W  (:) * (PTS_GARDEN (:) - ZTS_WALL(:)) + &
00337                   PLW_WA_TO_WB(:) * (PTS_WALL_B (:) - ZTS_WALL(:)) + &
00338                   PLW_WIN_TO_W(:) * (PT_WIN1    (:) - ZTS_WALL(:)) + &
00339      PDN_ROAD(:) *PLW_NR_TO_W (:) * (PTSNOW_ROAD(:) - ZTS_WALL(:))
00340 !
00341 !* emitted lw flux
00342 PEMIT_LW_WALL(:) = XSTEFAN * PT_WALL(:,1)**4 + &
00343                    (1 - PEMIS_WALL(:))/PEMIS_WALL(:) * PABS_LW_WALL(:)
00344 !
00345 !* sensible heat flux to outdoor
00346 PH_WALL(:) = ZRHO_ACF_W(:) * XCPD/PEXNS(:) *  &
00347              ( ZIMPL*PT_WALL(:,1) + ZEXPL*ZTS_WALL(:) - PT_CANYON(:) )
00348 !
00349 IF (HBEM=='BEM') THEN
00350     !
00351     !compute ZTI_WALL used in flux calculation
00352     ZTI_WALL_CONV(:) = 4./3. * ZIMPL * PT_WALL(:,IWALL_LAYER) + 1./3. * ZTI_WALL(:) * (4 * ZEXPL -1.)
00353     ZTI_WALL(:) = ZEXPL * ZTI_WALL(:) + ZIMPL * PT_WALL(:,IWALL_LAYER) 
00354     !
00355     !compute IR exchanged fluxes with the roof in the wall balance
00356     ZRAD_WALL_ROOF(:)  = PRADHT_IN(:)     * (ZTI_WALL(:) - ZTI_ROOF(:))
00357     !compute the difference with the IR flux echanged between roof and wall for
00358     !the roof balance, this difference will be added to the floor 
00359     ZDIF_RAD_WALL_ROOF(:)  = ZRAD_WALL_ROOF(:) + PRAD_ROOF_WALL(:)
00360 
00361     !compute exchanged fluxes with other surfaces for which the balance is done after
00362     PRAD_WALL_FLOOR(:) = PRADHT_IN(:)     * (ZTI_WALL(:) - PTS_FLOOR(:))
00363     ! contribution of the difference between the flux from the wall/flux from
00364     ! the roof
00365     PRAD_WALL_FLOOR(:) = PRAD_WALL_FLOOR(:) + ZDIF_RAD_WALL_ROOF(:) 
00366     PRAD_WALL_MASS(:)  = PRADHT_IN(:)     * (ZTI_WALL(:) - PTS_MASS(:))
00367     PRAD_WALL_WIN(:)   = PRADHT_IN(:)     * (ZTI_WALL(:) - PT_WIN2(:))
00368     PCONV_WALL_BLD(:)  = ZCHTC_IN_WALL  (:) * (ZTI_WALL_CONV(:) - PTI_BLD (:))
00369     !
00370     !
00371     PFLX_BLD_WALL  (:) = -PCONV_WALL_BLD(:) &
00372        + PF_WALL_FLOOR(:) * PRAD_ROOF_WALL(:)                             &
00373        + PRADHT_IN(:) *(PF_WALL_MASS (:) * (PTS_MASS (:) - ZTI_WALL(:)) &
00374                        + PF_WALL_WIN  (:) * (PT_WIN2 (:)  - ZTI_WALL(:)) &
00375                        + PF_WALL_FLOOR(:) * (PTS_FLOOR(:) - ZTI_WALL(:)) )
00376 !
00377 !* wall energy residual imbalance for verification
00378 !  -----------------------------------------------
00379   PIMB_WALL(:) = PABS_SW_WALL(:) + PABS_LW_WALL(:)  &
00380                - PDQS_WALL(:) - PH_WALL(:)         &
00381                + PFLX_BLD_WALL(:)
00382 !
00383 !
00384 END IF
00385 !
00386 !-------------------------------------------------------------------------------
00387 IF (LHOOK) CALL DR_HOOK('WALL_LAYER_E_BUDGET',1,ZHOOK_HANDLE)
00388 !
00389 END SUBROUTINE WALL_LAYER_E_BUDGET