SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/ccetr.F90
Go to the documentation of this file.
00001 !     #########
00002    SUBROUTINE CCETR(PXIA,PIA,PXMUS,PABC,PLAI)
00003 !
00004 !!***   *CCETR* ***
00005 !!
00006 !!    PURPOSE
00007 !!    -------
00008 !!    Calculates radiative transfer within the canopy
00009 !!
00010 !!**  METHOD
00011 !!    ------
00012 !!    Calvet et al. 1998 Forr. Agri. Met. 
00013 !!    [from model of Jacobs(1994) and Roujean(1996)]
00014 !!
00015 !!    EXTERNAL
00016 !!    --------
00017 !!    none
00018 !!
00019 !!    IMPLICIT ARGUMENTS
00020 !!    ------------------      
00021 !!    USE MODD_CO2V_PAR
00022 !!
00023 !!    REFERENCE
00024 !!    ---------
00025 !!    Calvet et al. 1998 Forr. Agri. Met. 
00026 !!      
00027 !!    AUTHOR
00028 !!    ------
00029 !!        A. Boone           * Meteo-France *
00030 !!      (following Belair)
00031 !!
00032 !!    MODIFICATIONS
00033 !!    -------------
00034 !!      Original    27/10/97 
00035 !!
00036 !-------------------------------------------------------------------------------
00037 !
00038 USE MODD_CO2V_PAR, ONLY : XDIFRACF, XXGT, XXBOMEGA
00039 !
00040 !*       0.     DECLARATIONS
00041 !               ------------
00042 !
00043 !
00044 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00045 USE PARKIND1  ,ONLY : JPRB
00046 !
00047 IMPLICIT NONE
00048 !
00049 !*      0.1    declarations of arguments
00050 !
00051 REAL, INTENT(IN)               :: PABC
00052 !                              PABC    = abscissa needed for integration
00053 !                                       of net assimilation and stomatal 
00054 !                                       conductance over canopy depth
00055 !
00056 REAL, DIMENSION(:), INTENT(IN) :: PIA,PXMUS,PLAI
00057 !                                  PIA   = absorbed PAR
00058 !                              PXMUS = cosine of solar zenith angle
00059 !                              PLAI  = leaf area index
00060 !
00061 REAL, DIMENSION(:), INTENT(OUT):: PXIA
00062 !                              PXIA  = incident radiation after diffusion
00063 !
00064 !*      0.2    declarations of local variables
00065 !
00066 REAL, DIMENSION(SIZE(PIA,1))   :: ZXFD,ZXSLAI,ZXIDF,ZXIDR
00067 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00068 !                              ZXFD   = fraction of diffusion
00069 !                              ZXSLAI = LAI of upper layer 
00070 !                              ZXIDF  = interception of diffusion
00071 !                              ZXIDR  = direct interception
00072 !
00073  !----------------------------------------------------------------------
00074   !
00075    IF (LHOOK) CALL DR_HOOK('CCETR',0,ZHOOK_HANDLE)
00076    PXIA(:) = 0.
00077    !
00078    WHERE (PIA(:)>0.)
00079    !
00080    ! diffusion fraction
00081    !
00082    ! fraction of diffusion
00083    !
00084      ZXFD(:)   = XDIFRACF/(XDIFRACF + PXMUS(:))                 
00085    !
00086    ! LAI of upper layer
00087    !
00088      ZXSLAI(:) = PLAI(:)*(1.0-PABC)                             
00089    !
00090    ! interception of diffusion
00091    !
00092      ZXIDF(:)  = ZXFD(:)*(1.0-EXP(-0.8*ZXSLAI(:)*XXBOMEGA))   
00093    !
00094    ! direct interception
00095    !
00096      ZXIDR(:)  = (1.0-ZXFD(:))*(1.0-EXP(                       &
00097                     -XXGT*ZXSLAI(:)*XXBOMEGA/PXMUS(:)))     
00098    !
00099    ! Adjusted radiation:
00100    !
00101      PXIA(:)   = PIA(:)*(1.0-ZXIDF(:)-ZXIDR(:)) 
00102    !
00103    END WHERE
00104 IF (LHOOK) CALL DR_HOOK('CCETR',1,ZHOOK_HANDLE)
00105  !
00106 END SUBROUTINE CCETR