SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE VEG( PSW_RAD, PTA, PQA, PPS, PRGL, PLAI, PRSMIN, & 00003 PGAMMA, PF2, PRS ) 00004 ! #################################################################### 00005 ! 00006 !!**** *VEG* 00007 !! 00008 !! PURPOSE 00009 !! ------- 00010 ! 00011 ! Calculates the surface stomatal resistance Rs 00012 ! 00013 ! 00014 !!** METHOD 00015 !! ------ 00016 ! 00017 ! First calculates the F coefficients (i.e., f, F1, F2, F3, and F4). 00018 ! 00019 ! Then, we have 00020 ! 00021 ! Rs = Rsmin / ( F1 F2 F3 F4 LAI ) 00022 ! 00023 !! EXTERNAL 00024 !! -------- 00025 !! 00026 !! none 00027 !! 00028 !! IMPLICIT ARGUMENTS 00029 !! ------------------ 00030 !! 00031 !! none 00032 !! 00033 !! 00034 !! REFERENCE 00035 !! --------- 00036 !! 00037 !! Noilhan and Planton (1989) 00038 !! Belair (1995) 00039 !! 00040 !! AUTHOR 00041 !! ------ 00042 !! 00043 !! S. Belair * Meteo-France * 00044 !! 00045 !! MODIFICATIONS 00046 !! ------------- 00047 !! Original 13/03/95 00048 !! (P.Jabouille) 13/11/96 mininum value for ZF1 00049 !! (V. Masson) 28/08/98 add PF2 for Calvet (1998) CO2 computations 00050 !! (V. Masson) 01/03/03 puts PF2 in a separate routine 00051 !! (A. Boone) 21/1&/11 Rs_max in MODD_ISBA_PAR 00052 !------------------------------------------------------------------------------- 00053 ! 00054 !* 0. DECLARATIONS 00055 ! ------------ 00056 ! 00057 USE MODD_ISBA_PAR, ONLY : XRS_MAX 00058 USE MODE_THERMOS 00059 ! 00060 ! 00061 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00062 USE PARKIND1 ,ONLY : JPRB 00063 ! 00064 IMPLICIT NONE 00065 ! 00066 !* 0.1 declarations of arguments 00067 ! 00068 ! 00069 REAL, DIMENSION(:), INTENT(IN) :: PSW_RAD, PTA, PQA, PPS 00070 ! PSW_RAD = incoming solar radiation 00071 ! PTA = near-surface air temperature 00072 ! PQA = near-surface air specific humidity 00073 ! PPS = surface pressure 00074 ! 00075 REAL, DIMENSION(:), INTENT(IN) :: PRGL, PLAI, PRSMIN, PGAMMA 00076 ! PRGL = coefficient in the Rs formulation 00077 ! PLAI = leaf area index 00078 ! PRSMIN = minimum surface resistance 00079 ! PGAMMA = coef. in the Rs calculation 00080 ! 00081 REAL, DIMENSION(:), INTENT(IN) :: PF2 ! water stress coefficient 00082 REAL, DIMENSION(:), INTENT(OUT) :: PRS ! ground stomatal resistance 00083 ! 00084 ! 00085 !* 0.2 declarations of local variables 00086 ! 00087 REAL, DIMENSION(SIZE(PSW_RAD)) :: ZF, ZF1, ZF3, ZF4 00088 ! temporary factors necessary to 00089 ! calculate the surface stomatao resistance 00090 ! 00091 REAL, DIMENSION(SIZE(PSW_RAD)) :: ZQSAT 00092 ! ZQSAT = specific humidity at saturation 00093 ! 00094 ! 00095 !* 0.3 declarations of local parameters: 00096 ! 00097 REAL, PARAMETER :: ZDENOM_MIN = 1.E-6 ! minimum denominator: 00098 ! ! numerical factor to prevent division by 0 00099 REAL, PARAMETER :: ZFACTR_MIN = 1.E-3 ! minimum value for some parameters 00100 ! ! to prevent from being too small 00101 REAL, PARAMETER :: ZRS_MIN = 1.E-4 ! minimum canopy resistance (s m-1) 00102 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00103 !------------------------------------------------------------------------------- 00104 ! 00105 !* 1. THE 'ZF1' FACTOR 00106 ! --------------- 00107 ! This factor measures the influence 00108 ! of the photosynthetically active radiation 00109 ! 00110 IF (LHOOK) CALL DR_HOOK('VEG',0,ZHOOK_HANDLE) 00111 ZF(:) = 0.55*2.*PSW_RAD(:) / (PRGL(:)+ ZDENOM_MIN ) / ( PLAI(:)+ ZDENOM_MIN ) 00112 ZF1(:) = ( ZF(:) + PRSMIN(:)/XRS_MAX) /( 1. + ZF(:) ) 00113 ZF1(:) = MAX( ZF1(:), ZDENOM_MIN ) 00114 ! 00115 !------------------------------------------------------------------------------- 00116 ! 00117 !* 3. THE 'ZF3' FACTOR 00118 ! ---------------- 00119 ! This factor represents the effect of 00120 ! vapor pressure deficit of the atmosphere. 00121 ! For very humid air, the stomatal resistance 00122 ! is a small, whereas it increases as the 00123 ! air is drier. 00124 ! 00125 ! 00126 ZQSAT(:) = QSAT(PTA(:),PPS(:)) 00127 ! 00128 ZF3(:) = MAX( 1. - PGAMMA(:)*( ZQSAT(:) - PQA(:) )*1000. , ZFACTR_MIN ) 00129 ! 00130 !------------------------------------------------------------------------------- 00131 ! 00132 !* 4. THE 'ZF4' FACTOR 00133 ! ---------------- 00134 ! This factor introduces an air temperature 00135 ! dependance on the surface stomatal resistance 00136 ! 00137 ZF4(:) = MAX( 1.0 - 0.0016*(298.15-PTA(:))**2, ZFACTR_MIN ) 00138 ! 00139 !------------------------------------------------------------------------------- 00140 ! 00141 !* 5. THE SURFACE STOMATAL RESISTANCE 00142 ! ------------------------------- 00143 ! 00144 ! use Jarvis-resistance (in standard ISBA version): 00145 ! otherwise use Jacobs/ISBA-Ags method (see routine COTWORES) 00146 ! 00147 PRS(:) = PRSMIN(:) / ( PLAI(:)+ ZDENOM_MIN ) & 00148 / ZF1(:) / PF2(:) /ZF3(:) / ZF4(:) 00149 ! 00150 PRS(:) = MIN( PRS(:), XRS_MAX) 00151 PRS(:) = MAX( PRS(:), ZRS_MIN) 00152 IF (LHOOK) CALL DR_HOOK('VEG',1,ZHOOK_HANDLE) 00153 ! 00154 !------------------------------------------------------------------------------- 00155 ! 00156 END SUBROUTINE VEG