SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/window_data.F90
Go to the documentation of this file.
00001 !     #############################################################
00002 SUBROUTINE WINDOW_DATA(KI)
00003 !     #############################################################
00004 !
00005 !
00006 !!****  *WINDOW_DATA*  
00007 !!
00008 !!    PURPOSE
00009 !!    -------
00010 !
00011 !     Computes the radiative properties of the window
00012 !         
00013 !     
00014 !!**  METHOD
00015 !!     ------
00016 !! uses U_WIN (window conductivity) and SHGC (window solar heat gain coef)
00017 !! to compute the normal incident transmittance/reflectance
00018 !! a factor to normal incident tran/ref is applied to take into account all
00019 !! possible incidence between 18° and 72°
00020 !!
00021 !!
00022 !!    EXTERNAL
00023 !!    --------
00024 !!
00025 !!
00026 !!    IMPLICIT ARGUMENTS
00027 !!    ------------------
00028 !!
00029 !!    MODD_CST
00030 !!
00031 !!      
00032 !!    REFERENCE
00033 !!    ---------
00034 !!
00035 !! Simple Window Model from EnergyPlus Engineering Reference V7, 2012, p. 217.
00036 !!      
00037 !!    AUTHOR
00038 !!    ------
00039 !!
00040 !!      B. Bueno           * Meteo-France *
00041 !!
00042 !!    MODIFICATIONS
00043 !!    -------------
00044 !!      Original    11/10
00045 !!      G. Pigeon & J. Le Bras  09/12 apply new factor to normal incident tran/ref
00046 !-------------------------------------------------------------------------------
00047 !
00048 !*       0.     DECLARATIONS
00049 !               ------------
00050 !
00051 
00052 !
00053 USE MODD_BEM_n, ONLY: XSHGC, XU_WIN, XALB_WIN, XABS_WIN, XUGG_WIN, XTRAN_WIN
00054 !
00055 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00056 USE PARKIND1  ,ONLY : JPRB
00057 !
00058 IMPLICIT NONE
00059 !
00060 INTEGER,             INTENT(IN)  :: KI        ! number of points
00061 !
00062 REAL, DIMENSION(KI) :: ZR_IW      ! interior film resistance under winter conditions
00063 REAL, DIMENSION(KI) :: ZR_OW      ! exterior fild resistance uder winter conditions
00064 REAL, DIMENSION(KI) :: ZR_IS      ! interior film resistance under summer conditions
00065 REAL, DIMENSION(KI) :: ZR_OS      ! exterior fild resistance uder summer conditions
00066 REAL, DIMENSION(KI) :: ZFRAC      ! inward flowing fraction
00067 REAL, DIMENSION(KI) :: ZTRAN_WIN_NORM   ! Window transmittance for normal incident beam
00068 REAL, DIMENSION(KI) :: ZALB_WIN_NORM   ! Window reflectance for normal incident beam
00069 REAL,DIMENSION(KI)  :: ZFAC_TRAN ! transmittance factor of the window to the normal incidence
00070 REAL,DIMENSION(KI)  :: ZFAC_ALB  ! reflectance (albedo) factor of the window to normal incidence
00071 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00072 
00073 REAL:: TA, RA, TBCD, RBCD, TD, RD, TE, RE, TFGHI, RFGHI, TFH, RFH, TJ, RJ
00074 !
00075 
00076 !* initialization and determine transmittance and reflectance factor of the window
00077 
00078 !Curve AT temp Et        RA = R temp Et
00079 TA = 0.9237767331    ; RA = 1.6911265959
00080 TBCD = 0.8802058937  ; RBCD = 1.5239470129
00081 TD = 0.893430955     ; RD = 1.0888507586
00082 TE = 0.8743096978    ; RE = 1.5494187256
00083 TFH = 0.8424427652   ; RFH = 1.0983010317
00084 TFGHI = 0.8327695761 ; RFGHI = 1.3316554732
00085 TJ = 0.7889001341    ; RJ = 1.0837577691
00086 
00087 WHERE (XU_WIN <= 1.42) !from 3 building BLD, TOUR and MI-2005
00088    !ZONE 1   
00089    WHERE (XSHGC>=0.45)   
00090       ZFAC_TRAN = TE 
00091          ZFAC_ALB = RE 
00092    END WHERE
00093    !ZONE 2
00094    WHERE (XSHGC<0.45 .AND. XSHGC>0.35)
00095       ZFAC_TRAN = TJ+(XSHGC-0.35)*(TE-TJ)/(0.45-0.35) 
00096          ZFAC_ALB = RJ+(XSHGC-0.35)*(RE-RJ)/(0.45-0.35)    
00097    END WHERE
00098    !ZONE 3
00099    WHERE(XSHGC<=0.35)
00100       ZFAC_TRAN = TJ  
00101          ZFAC_ALB = RJ
00102    END WHERE   
00103 END WHERE
00104 
00105 
00106 WHERE (XU_WIN>1.42 .AND. XU_WIN<1.70)
00107    !ZONE 4   
00108    WHERE (XSHGC>=0.55)
00109       ZFAC_TRAN = TE 
00110          ZFAC_ALB = RE
00111    END WHERE
00112    !ZONE 5
00113    WHERE (XSHGC>0.5 .AND. XSHGC<0.55)
00114       ZFAC_TRAN = TE+(XU_WIN-1.42)*((TFGHI+(XSHGC-0.5)*(TE-TFGHI)/(0.55-0.50))-TE)/(1.70-1.42)  
00115          ZFAC_ALB = RE+(XU_WIN-1.42)*((RFGHI+(XSHGC-0.5)*(RE-RFGHI)/(0.55-0.50))-RE)/(1.70-1.42)
00116    END WHERE
00117    !ZONE 6
00118    WHERE (XSHGC>=0.45 .AND. XSHGC<=0.5)
00119       ZFAC_TRAN =  TE+(XU_WIN-1.42)*(TFGHI-TE)/(1.70-1.42)
00120          ZFAC_ALB = RE+(XU_WIN-1.42)*(RFGHI-RE)/(1.70-1.42)
00121    END WHERE
00122    !ZONE 7
00123    WHERE (XSHGC>0.35 .AND. XSHGC<0.45)
00124       ZFAC_TRAN = (TJ+(XSHGC-0.35)*(TE-TJ)/(0.45-0.35))+(XU_WIN-1.42)*(TFGHI-(TJ+(XSHGC-0.35)*(TE-TJ)/(0.45-0.35)))/(1.70-1.42)  
00125          
00126       ZFAC_ALB = (RJ+(XSHGC-0.35)*(RE-RJ)/(0.45-0.35))+(XU_WIN-1.42)*(RFGHI-(RJ+(XSHGC-0.35)*(RE-RJ)/(0.45-0.35)))/(1.70-1.42) 
00127    END WHERE
00128    !ZONE 8
00129    WHERE (XSHGC>=0.30 .AND. XSHGC<=0.35)
00130       ZFAC_TRAN =  TJ+(XU_WIN-1.42)*(TFGHI-TJ)/(1.70-1.42)
00131          ZFAC_ALB = RJ+(XU_WIN-1.42)*(RFGHI-RJ)/(1.70-1.42)
00132    END WHERE
00133    !ZONE 9
00134    WHERE (XSHGC>0.25 .AND. XSHGC<0.35)
00135       ZFAC_TRAN = TJ+(XU_WIN-1.42)*((TFH+(XSHGC-0.25)*(TJ-TFH)/(0.30-0.25))-TJ)/(1.70-1.42)  
00136          ZFAC_ALB = RJ+(XU_WIN-1.42)*((RFH+(XSHGC-0.25)*(RJ-RFH)/(0.30-0.25))-RJ)/(1.70-1.42)
00137    END WHERE
00138    !ZONE 10
00139    WHERE (XSHGC<=0.25)
00140       ZFAC_TRAN =  TJ+(XU_WIN-1.42)*(TFH-TJ)/(1.70-1.42)
00141          ZFAC_ALB = RJ+(XU_WIN-1.42)*(RFH-RJ)/(1.70-1.42)
00142    END WHERE
00143 
00144 
00145 END WHERE
00146 
00147 
00148 WHERE (XU_WIN>=1.70 .AND. XU_WIN<=3.41)
00149    !ZONE 11   
00150    WHERE (XSHGC>=0.55)
00151       ZFAC_TRAN = TE  
00152          ZFAC_ALB = RE
00153    END WHERE
00154    !ZONE 12
00155    WHERE (XSHGC > 0.5 .AND. XSHGC<0.55)
00156       ZFAC_TRAN = TFGHI+(XSHGC-0.50)*(TE-TFGHI)/(0.55-0.50) 
00157          ZFAC_ALB = RFGHI+(XSHGC-0.50)*(RE-RFGHI)/(0.55-0.50) 
00158    END WHERE    
00159    !ZONE 13
00160    WHERE (XSHGC>=0.30 .AND. XSHGC<=0.50)
00161       ZFAC_TRAN = TFGHI  
00162          ZFAC_ALB = RFGHI
00163    END WHERE
00164 
00165    !ZONE 14
00166    WHERE (XSHGC > 0.25 .AND. XSHGC<0.30)
00167       ZFAC_TRAN = TFH+(XSHGC-0.25)*(TFGHI-TFH)/(0.30-0.25) 
00168          ZFAC_ALB = RFGHI+(XSHGC-0.25)*(RFGHI-RFH)/(0.30-0.25) 
00169    END WHERE 
00170    !ZONE 15
00171    WHERE (XSHGC<=0.25)
00172       ZFAC_TRAN = TFH  
00173          ZFAC_ALB = RFH
00174    END WHERE
00175 
00176 END WHERE
00177 
00178 WHERE (XU_WIN>3.41 .AND. XU_WIN<4.54)
00179    !ZONE 16
00180    WHERE (XSHGC>=0.65)
00181       ZFAC_TRAN =  TE+(XU_WIN-3.41)*(TA-TE)/(4.54-3.41)
00182          ZFAC_ALB = RE+(XU_WIN-3.41)*(RA-RE)/(4.54-3.41)
00183    END WHERE
00184    !ZONE 17
00185    WHERE (XSHGC>0.60 .AND. XSHGC<0.65)
00186       ZFAC_TRAN = TE+(XU_WIN-3.41)*((TBCD+(XSHGC-0.60)*(TA-TBCD)/(0.65-0.60))-TE)/(4.54-3.41)  
00187          ZFAC_ALB = RE+(XU_WIN-3.41)*((RBCD+(XSHGC-0.60)*(RA-RBCD)/(0.65-0.60))-RE)/(4.54-3.41)
00188    END WHERE
00189    !ZONE 18
00190    WHERE (XSHGC>=0.55 .AND. XSHGC<=0.60)
00191       ZFAC_TRAN =  TE+(XU_WIN-3.41)*(TBCD-TE)/(4.54-3.41)
00192          ZFAC_ALB = RE+(XU_WIN-3.41)*(RBCD-RE)/(4.54-3.41)
00193    END WHERE
00194    !ZONE 19
00195    WHERE (XSHGC>0.50 .AND. XSHGC<0.55)
00196       ZFAC_TRAN = (TFGHI+(XSHGC-0.50)*(TE-TFGHI)/(0.55-0.50)) + &
00197                             (XU_WIN-3.41)*(TBCD-(TFGHI+(XSHGC-0.50)*(TE-TFGHI)/(0.55-0.50)))/(4.54-3.41)  
00198          
00199       ZFAC_ALB = (RFGHI+(XSHGC-0.50)*(RE-RFGHI)/(0.55-0.50)) + &
00200                            (XU_WIN-3.41)*(RBCD-(RFGHI+(XSHGC-0.50)*(RE-RFGHI)/(0.55-0.50)))/(4.54-3.41) 
00201    END WHERE
00202    !ZONE 20
00203    WHERE (XSHGC>=0.45 .AND. XSHGC<=0.50)
00204       ZFAC_TRAN =  TFGHI+(XU_WIN-3.41)*(TBCD-TFGHI)/(4.54-3.41)
00205          ZFAC_ALB = RFGHI+(XU_WIN-3.41)*(RBCD-RFGHI)/(4.54-3.41)
00206    END WHERE
00207    !ZONE 21
00208    WHERE (XSHGC>0.30 .AND. XSHGC<0.45)
00209       ZFAC_TRAN = TFGHI+(XU_WIN-3.41)*((TA+(XSHGC-0.30)*(TBCD-TA)/(0.45-0.30))-TFGHI)/(4.54-3.41)  
00210          ZFAC_ALB = RFGHI+(XU_WIN-3.41)*((RA+(XSHGC-0.30)*(RBCD-RA)/(0.45-0.30))-RFGHI)/(4.54-3.41)
00211    END WHERE
00212    !ZONE 22
00213    WHERE (XSHGC>0.25 .AND. XSHGC<0.30)
00214       ZFAC_TRAN = (TFH+(XSHGC-0.25)*(TFGHI-TFH)/(0.30-0.25)) + &
00215                   (XU_WIN-3.41)*(TD-(TFH+(XSHGC-0.30)*(TFGHI-TFH)/(0.30-0.25)))/(4.54-3.41)  
00216          ZFAC_ALB = (RFH+(XSHGC-0.25)*(RFGHI-RFH)/(0.30-0.25)) + &
00217                     (XU_WIN-3.41)*(RD-(RFH+(XSHGC-0.30)*(RFGHI-RFH)/(0.30-0.25)))/(4.54-3.41)
00218    END WHERE
00219    !ZONE 23
00220    WHERE (XSHGC<=0.25)
00221       ZFAC_TRAN =  TFH+(XU_WIN-3.41)*(TD-TFH)/(4.54-3.41)
00222          ZFAC_ALB = RFH+(XU_WIN-3.41)*(RD-RFH)/(4.54-3.41)
00223    END WHERE
00224 
00225 END WHERE
00226 
00227 
00228 WHERE (XU_WIN>=4.54)
00229    !ZONE 24
00230    WHERE (XSHGC>=0.65)
00231       ZFAC_TRAN = TA  
00232          ZFAC_ALB = RA
00233    END WHERE
00234    !ZONE 25
00235    WHERE (XSHGC >= 0.60 .AND. XSHGC<=0.65)
00236       ZFAC_TRAN = TBCD+(XSHGC-0.60)*(TA-TBCD)/(0.65-0.60) 
00237          ZFAC_ALB = RBCD+(XSHGC-0.60)*(RA-RBCD)/(0.65-0.60) 
00238    END WHERE 
00239    !ZONE 26
00240    WHERE (XSHGC>=0.45 .AND. XSHGC<=0.60)
00241       ZFAC_TRAN = TBCD  
00242          ZFAC_ALB = RBCD
00243    END WHERE
00244    !ZONE 27
00245    WHERE (XSHGC >= 0.30 .AND. XSHGC<=0.45)
00246       ZFAC_TRAN = TD+(XSHGC-0.30)*(TBCD-TD)/(0.45-0.30) 
00247          ZFAC_ALB = RD+(XSHGC-0.30)*(RBCD-RD)/(0.45-0.30) 
00248    END WHERE
00249    !ZONE 28
00250    WHERE (XSHGC<=0.30)
00251       ZFAC_TRAN = TD  
00252          ZFAC_ALB = RD
00253    END WHERE
00254    
00255 
00256 END WHERE
00257 
00258 !*      A.     Determine glass-to-glass U-factor
00259 !              ---------------------------------
00260 !
00261 IF (LHOOK) CALL DR_HOOK('WINDOW_DATA',0,ZHOOK_HANDLE)
00262 !
00263 WHERE (XU_WIN(:) < 5.85)
00264   ZR_IW(:) = 1. / (0.359073*log(XU_WIN(:)) + 6.949915)
00265 ELSEWHERE
00266   ZR_IW(:) = 1. / (1.788041*    XU_WIN(:)  - 2.886625)
00267 END WHERE
00268 !
00269 ZR_OW(:) = 1. / (0.025342*XU_WIN(:) + 29.163853)
00270 !
00271 XUGG_WIN(:) = 1./(1./XU_WIN(:) - ZR_IW(:) - ZR_OW(:))
00272 !
00273 !*      B.     Determine layer solar transmittance
00274 !              -----------------------------------
00275 !
00276 WHERE (XU_WIN(:) > 4.5) 
00277   WHERE (XSHGC(:) < 0.7206)
00278     ZTRAN_WIN_NORM(:) = 0.939998 * XSHGC(:)**2 + 0.20332 * XSHGC(:)
00279   ELSE WHERE
00280     ZTRAN_WIN_NORM(:) = 1.30415 * XSHGC(:) - 0.30515
00281   END WHERE
00282 END WHERE 
00283 
00284 WHERE (XU_WIN(:) < 3.4)
00285   WHERE (XSHGC(:) <= 0.15)
00286     ZTRAN_WIN_NORM(:) = 0.41040 * XSHGC(:)
00287   ELSE WHERE
00288     ZTRAN_WIN_NORM(:) = 0.085775 * XSHGC(:)**2 + 0.963954 * XSHGC(:) - 0.084958
00289   END WHERE
00290 END WHERE
00291 
00292 WHERE (XU_WIN(:) >= 3.4 .AND. XU_WIN(:) <=4.5)
00293    WHERE(XSHGC(:) <= 0.15)
00294       ZTRAN_WIN_NORM(:) = 0.5* (0.939998 * XSHGC(:)**2 + (0.20332+0.41040) * XSHGC(:))
00295    ELSE WHERE
00296       WHERE(XSHGC(:) > 0.15 .AND. XSHGC(:) < 0.7206)
00297          ZTRAN_WIN_NORM(:) = 0.5 * ((0.939998+0.085775) * XSHGC(:)**2 + (0.20332 + 0.963954) * XSHGC(:) - 0.084958)
00298       ELSE WHERE
00299          ZTRAN_WIN_NORM(:) = 0.5*(0.085775 * XSHGC(:)**2 + (0.963954+1.30415) * XSHGC(:) - (0.084958+0.30515))
00300       END WHERE
00301    END WHERE
00302 END WHERE
00303 !
00304 !
00305 !*      C.     Determine layer solar reflectance
00306 !              ---------------------------------
00307 !
00308 WHERE (XU_WIN(:) > 4.5)
00309   ZR_IS(:) = 1. / ( 29.436546*(XSHGC(:)-ZTRAN_WIN_NORM(:))**3         &
00310                   - 21.943415*(XSHGC(:)-ZTRAN_WIN_NORM(:))**2         &
00311                   + 9.945872 *(XSHGC(:)-ZTRAN_WIN_NORM(:)) + 7.426151 )
00312 !
00313   ZR_OS (:) = 1./ ( 2.225824*(XSHGC(:)-ZTRAN_WIN_NORM(:)) + 20.57708 )
00314 ELSE WHERE
00315    WHERE(XU_WIN(:) >= 3.4)
00316       ZR_IS(:) = 0.5 * (                                                &
00317                 1. / ( 29.436546*(XSHGC(:)-ZTRAN_WIN_NORM(:))**3        &
00318                   - 21.943415*(XSHGC(:)-ZTRAN_WIN_NORM(:))**2           &
00319                   + 9.945872 *(XSHGC(:)-ZTRAN_WIN_NORM(:)) + 7.426151 ) &
00320               + 1./ (199.8208128*(XSHGC(:)-ZTRAN_WIN_NORM(:))**3        &
00321                   - 90.639733*(XSHGC(:)-ZTRAN_WIN_NORM(:))**2           &
00322                   + 19.737055*(XSHGC(:)-ZTRAN_WIN_NORM(:)) + 6.766575) ) 
00323 !
00324       ZR_OS (:) = 0.5 * ( &
00325                   1./ ( 2.225824*(XSHGC(:)-ZTRAN_WIN_NORM(:)) + 20.57708 ) &
00326                 + 1./ ( 5.763355*(XSHGC(:)-ZTRAN_WIN_NORM(:)) + 20.541528 ) )
00327 !
00328    ELSE WHERE
00329       ZR_IS (:) = 1./ (199.8208128*(XSHGC(:)-ZTRAN_WIN_NORM(:))**3       &
00330                   - 90.639733*(XSHGC(:)-ZTRAN_WIN_NORM(:))**2        &
00331                   + 19.737055*(XSHGC(:)-ZTRAN_WIN_NORM(:)) + 6.766575)
00332 !
00333       ZR_OS(:) = 1./ ( 5.763355*(XSHGC(:)-ZTRAN_WIN_NORM(:)) + 20.541528 )
00334    END WHERE
00335 !
00336 END WHERE
00337 !
00338 ZFRAC(:) = (ZR_OS(:) + 0.5*(1./XUGG_WIN(:))) /               &
00339            (ZR_OS(:) + 1./XUGG_WIN(:) + ZR_IS(:))
00340 !
00341 ZALB_WIN_NORM(:) = 1. - ZTRAN_WIN_NORM(:) - (XSHGC(:)-ZTRAN_WIN_NORM(:)) / ZFRAC(:)
00342 !
00343 !*      D.     Determine layer solar absortance
00344 !              --------------------------------
00345 !
00346 
00347 XTRAN_WIN(:) = ZTRAN_WIN_NORM(:) * ZFAC_TRAN 
00348 XALB_WIN(:) = ZALB_WIN_NORM(:) * ZFAC_ALB
00349 !
00350 XABS_WIN(:) = 1. - XALB_WIN(:) - XTRAN_WIN(:)
00351 !
00352 IF (LHOOK) CALL DR_HOOK('WINDOW_DATA',1,ZHOOK_HANDLE)
00353 !
00354 END SUBROUTINE WINDOW_DATA