|
SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE WET_LEAVES_FRAC(PWRM, PVEG, PWRMAX_CF, PZ0, PLAI, PWRMAX, PDELTA) 00003 ! ############################################################################ 00004 ! 00005 !!**** *WET_LEAVES_FRAC* 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 ! 00010 ! 00011 !!** METHOD 00012 !! ------ 00013 ! 00014 ! 00015 !! EXTERNAL 00016 !! -------- 00017 !! 00018 !! 00019 !! IMPLICIT ARGUMENTS 00020 !! ------------------ 00021 !! 00022 !! 00023 !! 00024 !! REFERENCE 00025 !! --------- 00026 !! 00027 !! 00028 !! AUTHOR 00029 !! ------ 00030 !! 00031 !! S. Belair * Meteo-France * 00032 !! 00033 !! MODIFICATIONS 00034 !! ------------- 00035 !! Original 13/03/95 00036 !! (A.Boone) 11/26/98 Option for PDELTA: forested vs default surface 00037 !! B. Decharme 2008 Add optional maximum value for the fraction of the foliage covered by intercepted water 00038 !------------------------------------------------------------------------------- 00039 ! 00040 !* 0. DECLARATIONS 00041 ! ------------ 00042 ! 00043 USE MODD_SURF_ATM, ONLY : XDELTA_MAX 00044 ! 00045 ! 00046 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00047 USE PARKIND1 ,ONLY : JPRB 00048 ! 00049 IMPLICIT NONE 00050 ! 00051 !* 0.1 declarations of arguments 00052 ! 00053 ! 00054 REAL, DIMENSION(:), INTENT(IN) :: PWRM 00055 ! PWRM = liquid water retained on the foliage 00056 ! of the vegetation 00057 ! 00058 REAL, DIMENSION(:), INTENT(IN) :: PVEG, PWRMAX_CF, PLAI, PZ0 00059 ! PVEG = vegetation fraction 00060 ! PLAI = leaf area index 00061 ! PWRMAX_CF = coefficient for maximum water interception 00062 ! storage capacity on the vegetation (kg/m2) 00063 ! PZ0 = roughness length 00064 ! 00065 ! 00066 REAL, DIMENSION(:), INTENT(OUT) :: PWRMAX 00067 ! PWRMAX = maximum equivalent water content 00068 ! in the vegetation canopy 00069 ! 00070 REAL, DIMENSION(:), INTENT(OUT) :: PDELTA 00071 ! PDELTA = fraction of the foliage covered 00072 ! by intercepted water 00073 ! 00074 ! 00075 ! 00076 !* 0.2 declarations of local variables 00077 ! 00078 ! 00079 ! 00080 REAL, DIMENSION(SIZE(PVEG)) :: ZCOEF, 00081 ! ZCOEF = work array 00082 ZWR, & 00083 ! Interception reservoir limited by WRMAX 00084 ZDELTA_LOW, & 00085 ! ZDELTA_LOW = fraction of the foliage covered 00086 ! by intercepted water for low vegetation 00087 ZDELTA_HIGH 00088 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00089 ! ZDELTA_HIGH = fraction of the foliage covered 00090 ! by intercepted water for high vegetation 00091 00092 !------------------------------------------------------------------------------- 00093 ! 00094 IF (LHOOK) CALL DR_HOOK('WET_LEAVES_FRAC',0,ZHOOK_HANDLE) 00095 PDELTA(:) = 0. 00096 ! 00097 !* 2. FRACTION OF THE FOLIAGE COVERED BY INTERCEPTED WATER (DELTA) 00098 ! ------------------------------------------------------------ 00099 ! 00100 ! first calculate the maximum value of 00101 ! equivalent water content in the 00102 ! vegetation canopy 00103 ! 00104 PWRMAX(:) = PWRMAX_CF(:) * PVEG(:) * PLAI(:) 00105 ! 00106 ZWR(:) = MIN(PWRM(:),PWRMAX(:)) 00107 ! 00108 WHERE (PVEG(:)>0. .AND. PWRMAX>0.) 00109 !* calculate 'DELTA' 00110 ! 00111 !* 2.1 Low vegetation, Deardorff (1978) formulmation: 00112 ! --------------------------------------------- 00113 ! 00114 ZDELTA_LOW(:) = ( ZWR(:)/PWRMAX(:) )**(2./3.) 00115 ! 00116 !* 2.2 High vegetation, Manzi (1993) formulmation: 00117 ! ------------------------------------------ 00118 ! 00119 ! Manzi (1993) [see also Delire et al. JGR 1997] 00120 ! The dynamic vegetation roughness length 00121 ! is used to determine which formulation 00122 ! for 'DELTA' is used. This formulation 00123 ! was calibrated for ARME (tropical forrest) 00124 ! and so is used for forest canopies. It 00125 ! results in 'smeared' (time and amplitude) 00126 ! evaporation from interception relative to 00127 ! that using Deardorff (above). 00128 ! 00129 ZCOEF(:) = 1. + 2.*PLAI(:) 00130 ! 00131 ZDELTA_HIGH(:) = ZWR(:)/( (1.-ZCOEF(:))*ZWR(:) + ZCOEF(:)*PWRMAX(:) ) 00132 ! 00133 ! 00134 !* 2.3 Ponderation between low and high vegetation (min and max thresholds: z0 of 0.5m and 1m) 00135 ! ------------------------------------------ 00136 ! 00137 ZCOEF(:) = MAX(MIN(2.*PZ0(:)-1. ,1.),0.) 00138 ! 00139 PDELTA(:) = (1.-ZCOEF(:)) * ZDELTA_LOW(:) + ZCOEF(:) * ZDELTA_HIGH(:) 00140 ! 00141 END WHERE 00142 ! 00143 PDELTA(:) = MIN(XDELTA_MAX,PDELTA(:)) 00144 IF (LHOOK) CALL DR_HOOK('WET_LEAVES_FRAC',1,ZHOOK_HANDLE) 00145 ! 00146 !------------------------------------------------------------------------------- 00147 ! 00148 END SUBROUTINE WET_LEAVES_FRAC
1.8.0