SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/greenroof_properties.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE GREENROOF_PROPERTIES(PDIR_SW, PSCA_SW, PSW_BANDS, KSW,      &
00003                                      PTS, PEMIS, PALB                       )  
00004 !     ##########################################################################
00005 !
00006 !!****  *GREENROOF_PROPERTIES*  
00007 !!
00008 !!    PURPOSE
00009 !!    -------
00010 !
00011 !     Based on garden_properties
00012 !     Calculates grid-averaged albedo and emissivity (according to snow scheme)
00013 !         
00014 !!    EXTERNAL
00015 !!    --------
00016 !!
00017 !!    none
00018 !!
00019 !!    IMPLICIT ARGUMENTS
00020 !!    ------------------ 
00021 !!      
00022 !!    AUTHOR
00023 !!    ------
00024 !!
00025 !!      S. Belair           * Meteo-France *
00026 !!
00027 !!    MODIFICATIONS
00028 !!    -------------
00029 !!      Original                      ?     
00030 !!      C. de Munck and A. Lemonsu    09/2011  
00031 !-------------------------------------------------------------------------------
00032 !
00033 !*       0.     DECLARATIONS
00034 !               ------------
00035 !
00036 USE MODD_SURF_PAR,            ONLY : XUNDEF
00037 !
00038 USE MODD_TEB_GREENROOF_n,     ONLY :  CISBA_GR, TSNOW, XALBNIR, XALBVIS, XALBUV, &
00039                                       XALBNIR_VEG, XALBVIS_VEG, XALBUV_VEG,      &
00040                                       XALBNIR_SOIL, XALBVIS_SOIL,                &
00041                                       XALBUV_SOIL, LTR_ML_GR,                    &
00042                                       XVEG, XLAI, XZ0,                           &
00043                                       XEMIS, XTG,                                &
00044                                       XPSN, XPSNV, XPSNG, XPSNV_A,               &
00045                                       XSNOWFREE_ALB_VEG,                         &
00046                                       XSNOWFREE_ALB_SOIL,                        &
00047                                       XSNOWFREE_ALB                                                    
00048 !
00049 USE MODI_ISBA_PROPERTIES
00050 !
00051 !
00052 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00053 USE PARKIND1  ,ONLY : JPRB
00054 !
00055 IMPLICIT NONE
00056 !
00057 !*      0.1    declarations of arguments
00058 !
00059 REAL, DIMENSION(:,:), INTENT(IN)   :: PDIR_SW            ! direct incoming solar radiation
00060 REAL, DIMENSION(:,:), INTENT(IN)   :: PSCA_SW            ! diffus incoming solar radiation
00061 REAL, DIMENSION(:)  , INTENT(IN)   :: PSW_BANDS          ! mean wavelength of each shortwave band (m)
00062 INTEGER,              INTENT(IN)   :: KSW                ! number of short-wave spectral bands
00063 !
00064 REAL, DIMENSION(:)  , INTENT(OUT)  :: PTS                ! radiative surface temperature
00065 REAL, DIMENSION(:)  , INTENT(OUT)  :: PEMIS              ! green areas emissivity
00066 REAL, DIMENSION(:)  , INTENT(OUT)  :: PALB               ! green areas albedo
00067 !
00068 !-------------------------------------------------------------------------------
00069 !
00070 !*      0.2    Local variables
00071 !              ---------------
00072 !
00073 INTEGER                        :: JLAYER
00074 INTEGER                        :: JSWB
00075 !
00076 REAL, DIMENSION(SIZE(PALB))    :: ZTSNOSNOW ! surf. temp. on snow free part
00077 REAL, DIMENSION(SIZE(PALB))    :: ZTSSNOW   ! surf. temp. on snow covered part
00078 REAL, DIMENSION(SIZE(PALB))    :: ZANOSNOW  ! snow-free surface albedo
00079 REAL, DIMENSION(SIZE(PALB))    :: ZASNOW    ! snow albedo
00080 REAL, DIMENSION(SIZE(PALB))    :: ZENOSNOW  ! snow-free surface emissivity
00081 REAL, DIMENSION(SIZE(PALB))    :: ZESNOW    ! snow emissivity
00082 !
00083 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00084 !-------------------------------------------------------------------------------
00085 !
00086 !* only one patch for gardens
00087 IF (LHOOK) CALL DR_HOOK('GREENROOF_PROPERTIES',0,ZHOOK_HANDLE)
00088 !
00089  CALL ISBA_PROPERTIES(CISBA_GR, LTR_ML_GR, TSNOW, 1,             &
00090                       PDIR_SW, PSCA_SW, PSW_BANDS, KSW,          &
00091                       XALBNIR, XALBVIS, XALBUV,                  &
00092                       XALBNIR_VEG, XALBVIS_VEG, XALBUV_VEG,      &
00093                       XALBNIR_SOIL, XALBVIS_SOIL,                &
00094                       XALBUV_SOIL,                               &
00095                       XVEG, XLAI, XZ0, XEMIS, XTG(:,1),          &
00096                       ZASNOW,ZANOSNOW,                           &
00097                       ZESNOW,ZENOSNOW,                           &
00098                       ZTSSNOW,ZTSNOSNOW,                         &
00099                       XSNOWFREE_ALB_VEG, XSNOWFREE_ALB_SOIL,     &
00100                       XALBNIR_VEG, XALBVIS_VEG, XALBNIR_SOIL, XALBVIS_SOIL, &
00101                       XPSN, XPSNV_A, XPSNG, XPSNV                )
00102 !
00103 XSNOWFREE_ALB = ZANOSNOW
00104 !
00105 !* averaged albedo
00106 PALB =  XPSN(:)    * ZASNOW              + (1.-XPSN(:)) * ZANOSNOW
00107 !* averaged emissivity
00108 PEMIS=  XPSN(:)    * ZESNOW              + (1.-XPSN(:)) * ZENOSNOW
00109 !* averaged surface radiative temperature
00110 !  (recomputed from emitted long wave)
00111 PTS  =((XPSN(:)    * ZESNOW * ZTSSNOW**4 + (1.-XPSN(:)) * ZENOSNOW * ZTSNOSNOW**4) / PEMIS)**0.25
00112 IF (LHOOK) CALL DR_HOOK('GREENROOF_PROPERTIES',1,ZHOOK_HANDLE)
00113 !
00114 !-------------------------------------------------------------------------------
00115 !
00116 END SUBROUTINE GREENROOF_PROPERTIES