SURFEX v7.3
General documentation of Surfex
|
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