SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/trad_body.F90
Go to the documentation of this file.
00001 MODULE MODI_TRAD_BODY
00002 INTERFACE
00003 FUNCTION TRAD_BODY(PSCA_SW, PREF_SW_FAC, PREF_SW_GRND,   &
00004                    PEMIT_LW_FAC, PEMIT_LW_GRND, PLW_RAD, &
00005                    PBLD, PBLD_HEIGHT, PWALL_O_HOR,       &
00006                    PDIR_SW, PZENITH) RESULT(PTRAD_BODY)
00007 REAL, DIMENSION(:), INTENT(IN)  :: PSCA_SW       ! Diffuse solar radiation (W/m²)
00008 REAL, DIMENSION(:), INTENT(IN)  :: PREF_SW_FAC   ! Solar radiation reflected by facade [wall + glazing] (W/m²)
00009 REAL, DIMENSION(:), INTENT(IN)  :: PREF_SW_GRND  ! Solar radiation reflected by ground [road + garden] (W/m²)
00010 REAL, DIMENSION(:), INTENT(IN)  :: PEMIT_LW_FAC  ! Longwave radiation emitted by the facade [wall + glazing] (W/m²)
00011 REAL, DIMENSION(:), INTENT(IN)  :: PEMIT_LW_GRND ! Longwave radiation emitted by the ground [road + garden] (W/m²)
00012 REAL, DIMENSION(:), INTENT(IN)  :: PLW_RAD       ! Atmospheric longwave radiation (W/m²)
00013 REAL, DIMENSION(:), INTENT(IN)  :: PBLD          ! plan area density of building (m²bld/m²urban)
00014 REAL, DIMENSION(:), INTENT(IN)  :: PBLD_HEIGHT   ! building height (m)
00015 REAL, DIMENSION(:), INTENT(IN)  :: PWALL_O_HOR   ! ratio between facade and urban horizontal surface (m²facade/m²urban)
00016 REAL, DIMENSION(:), INTENT(IN), OPTIONAL :: PDIR_SW !Direct solar radiation (W/m²)
00017 REAL, DIMENSION(:), INTENT(IN), OPTIONAL :: PZENITH !solar zenithal angle (rad from vert.)
00018 REAL, DIMENSION(SIZE(PSCA_SW)) :: PTRAD_BODY
00019 END FUNCTION TRAD_BODY
00020 END INTERFACE
00021 END MODULE MODI_TRAD_BODY
00022 !   ##########################################################################
00023 FUNCTION TRAD_BODY(PSCA_SW, PREF_SW_FAC, PREF_SW_GRND, PEMIT_LW_FAC, PEMIT_LW_GRND, PLW_RAD,&
00024                    PBLD, PBLD_HEIGHT, PWALL_O_HOR, PDIR_SW, PZENITH) RESULT(PTRAD_BODY)
00025 !   ##########################################################################
00026 !
00027 !!****  *TRAD_BODY  
00028 !!
00029 !!    PURPOSE
00030 !!    -------
00031 !
00032 !     Computes the radiant temperature equivalent to the total radiation
00033 !     received by the human body
00034 !     
00035 !!**  METHOD
00036 !     ------
00037 !
00038 !!    EXTERNAL
00039 !!    --------
00040 !!
00041 !!    IMPLICIT ARGUMENTS
00042 !!    ------------------
00043 !! à compléter
00044 !!    MODD_CST
00045 !!
00046 !!    REFERENCE
00047 !!    ---------
00048 !!   www.utci.org
00049 !!      
00050 !!    AUTHOR
00051 !!    ------
00052 !!
00053 !!      G. Pigeon           * Meteo-France *
00054 !!
00055 !!    MODIFICATIONS
00056 !!    -------------
00057 !!      Original  03/2011
00058 !-------------------------------------------------------------------------------
00059 !
00060 !*       0.     DECLARATIONS
00061 !               ------------
00062 !
00063 USE MODD_CSTS, ONLY : XSTEFAN, XPI
00064 !
00065 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00066 USE PARKIND1  ,ONLY : JPRB
00067 !
00068 IMPLICIT NONE
00069 !
00070 !*      0.1    declarations of arguments
00071 REAL, DIMENSION(:), INTENT(IN)  :: PSCA_SW       ! Diffuse solar radiation (W/m²)
00072 REAL, DIMENSION(:), INTENT(IN)  :: PREF_SW_FAC   ! Solar radiation reflected by facade [wall + glazing] (W/m²)
00073 REAL, DIMENSION(:), INTENT(IN)  :: PREF_SW_GRND  ! Solar radiation reflected by ground [road + garden] (W/m²)
00074 REAL, DIMENSION(:), INTENT(IN)  :: PEMIT_LW_FAC  ! Longwave radiation emitted by the facade [wall + glazing] (W/m²)
00075 REAL, DIMENSION(:), INTENT(IN)  :: PEMIT_LW_GRND ! Longwave radiation emitted by the ground [road + garden] (W/m²)
00076 REAL, DIMENSION(:), INTENT(IN)  :: PLW_RAD       ! Atmospheric longwave radiation (W/m²)
00077 REAL, DIMENSION(:), INTENT(IN)  :: PBLD          ! plan area density of building (m²bld/m²urban)
00078 REAL, DIMENSION(:), INTENT(IN)  :: PBLD_HEIGHT   ! building height (m)
00079 REAL, DIMENSION(:), INTENT(IN)  :: PWALL_O_HOR   ! ratio between facade and urban horizontal surface (m²facade/m²urban)
00080 REAL, DIMENSION(:), INTENT(IN), OPTIONAL :: PDIR_SW !Direct solar radiation (W/m²)
00081 REAL, DIMENSION(:), INTENT(IN), OPTIONAL :: PZENITH !solar zenithal angle (rad from vert.)
00082 !REAL, DIMENSION(:), INTENT(IN) :: PDIR_SW !Direct solar radiation (W/m²)
00083 !REAL, DIMENSION(:), INTENT(IN) :: PZENITH !solar zenithal angle (rad from vert.)
00084 REAL, DIMENSION(SIZE(PSCA_SW))    :: PTRAD_BODY
00085 !REAL, DIMENSION(:) :: PTRAD_BODY
00086 
00087 !*      0.2    declarations of local variables
00088 REAL :: ZHB = 1.7 !average height of human person (m)
00089 REAL :: ZAB = 0.7 !absorption coef of solar radiation by human body
00090 REAL :: ZEB = 0.97 !emissivity of human body
00091 !REAL, DIMENSION(SIZE(PBLD)) :: TRAD_BODY
00092 REAL, DIMENSION(SIZE(PBLD)) :: ZWROAD !width of the road (m)
00093 REAL, DIMENSION(SIZE(PBLD)) :: ZL1, ZL2, ZL4 !lengths for view factor calculation
00094 REAL, DIMENSION(SIZE(PBLD)) :: ZFFAC !facade view factor of human body
00095 REAL, DIMENSION(SIZE(PBLD)) :: ZFGRND !ground view factor of human body
00096 REAL, DIMENSION(SIZE(PBLD)) :: ZFSKY !sky view factor of human body
00097 REAL, DIMENSION(SIZE(PBLD)) :: ZDIRSWBODY !solar radiation received by human body
00098 REAL, DIMENSION(SIZE(PBLD)) :: ZELEV !solar elevation angle
00099 REAL, DIMENSION(SIZE(PBLD)) :: ZRADBODY !total radiation received by human body
00100 INTEGER :: JJ
00101 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00102 !
00103 IF (LHOOK) CALL DR_HOOK('TRAD_BODY',0,ZHOOK_HANDLE)
00104 !
00105 DO JJ = 1, SIZE(PBLD_HEIGHT) 
00106   !
00107   !*  1 - calculation of view factors
00108   ZWROAD(JJ) = PBLD_HEIGHT(JJ) * 2. * (1. - PBLD(JJ)) / PWALL_O_HOR(JJ)
00109   !
00110   ZL1(JJ) = SQRT(ZHB**2                   + (ZWROAD(JJ)/2.)**2)
00111   ZL2(JJ) = SQRT( PBLD_HEIGHT(JJ)**2      + (ZWROAD(JJ)/2.)**2)
00112   ZL4(JJ) = SQRT((PBLD_HEIGHT(JJ)-ZHB)**2 + (ZWROAD(JJ)/2.)**2)
00113   !
00114   ZFFAC (JJ) = (ZL1(JJ) + ZL2(JJ) - ZWROAD(JJ)/2. - ZL4(JJ)) / (2. * ZHB)
00115   ZFGRND(JJ) = 0.5*ZWROAD(JJ)/ZHB
00116   ZFGRND(JJ) = 0.5 * (ZFGRND(JJ) + 1. - SQRT(ZFGRND(JJ))**2 + 1.) 
00117   ZFSKY (JJ) = 1. - ZFFAC(JJ) - ZFGRND(JJ)
00118   !
00119   !*  2 - base calculation for both sun and shade
00120   ZRADBODY(JJ) = ZAB/ZEB * &
00121               ( PSCA_SW(JJ)*ZFSKY(JJ) + PREF_SW_FAC (JJ)*ZFFAC(JJ) + PREF_SW_GRND (JJ)*ZFGRND(JJ) ) &
00122               + PLW_RAD(JJ)*ZFSKY(JJ) + PEMIT_LW_FAC(JJ)*ZFFAC(JJ) + PEMIT_LW_GRND(JJ)*ZFGRND(JJ)
00123   !
00124 ENDDO
00125 !
00126 
00127 !*  3 - add direct contribution in case of sunny conditions 
00128 IF (PRESENT(PDIR_SW) .AND. PRESENT(PZENITH)) THEN
00129   DO JJ = 1, SIZE(PBLD_HEIGHT)
00130     ZELEV(JJ) = XPI/2. - PZENITH(JJ)
00131     IF (ZELEV(JJ) < 1E-6) ZELEV(JJ) = 0.
00132     ZDIRSWBODY(JJ) = PDIR_SW(JJ) * 0.308 * COS( ZELEV(JJ)*(1-(ZELEV(JJ)*180./XPI)**2)/48402. )
00133       ! the direct solar radiation is weighted by a projected area factor which can be expressed by this equation
00134       ! for a rotationally symmetric human being (Fanger, 1970)
00135     ZRADBODY  (JJ) = ZRADBODY(JJ) + ZAB/ZEB*ZDIRSWBODY(JJ)
00136   ENDDO
00137 ENDIF
00138 
00139 !PTRAD_BODY(:) = (ZRADBODY(:)/XSTEFAN)**0.25
00140 DO JJ=1, SIZE(PBLD_HEIGHT)
00141    PTRAD_BODY(JJ) = (ZRADBODY(JJ)/XSTEFAN)**0.25
00142 ENDDO
00143 !
00144 IF (LHOOK) CALL DR_HOOK('TRAD_BODY',1,ZHOOK_HANDLE)
00145 !
00146 END FUNCTION TRAD_BODY