SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE COTWO(PCSP, PF2, PIA, PDS, PGAMMT, & 00003 PFZERO, PEPSO, PANMAX, PGMEST, PGC, PDMAX, & 00004 PAN, PGS, PRD ) 00005 ! ######################################################################### 00006 ! 00007 !!**** *COTWO* 00008 !! 00009 !! PURPOSE 00010 !! ------- 00011 ! 00012 ! Calculates net assimilation of CO2 and leaf conductance. 00013 ! 00014 !!** METHOD 00015 !! ------ 00016 ! Calvet et al. 1998 Forr. Agri. Met. [from model of Jacobs(1994)] 00017 !! 00018 !! EXTERNAL 00019 !! -------- 00020 !! none 00021 !! 00022 !! IMPLICIT ARGUMENTS 00023 !! ------------------ 00024 !! 00025 !! USE MODD_CO2V_PAR 00026 !! 00027 !! REFERENCE 00028 !! --------- 00029 !! 00030 !! Calvet et al. 1998 Forr. Agri. Met. 00031 !! 00032 !! AUTHOR 00033 !! ------ 00034 !! 00035 !! A. Boone * Meteo-France * 00036 !! (following Belair) 00037 !! 00038 !! MODIFICATIONS 00039 !! ------------- 00040 !! Original 27/10/97 00041 !! L. Jarlan 27/10/04 : Add of photosynthesis (PPST variable) as output 00042 !! of the routine in order to manage the calculation 00043 !! of Soil respiration in cotwores and cotworestress 00044 !! P Le Moigne 09/2005 AGS modifs of L. Jarlan 00045 !! A.L. Gibelin 07/2009 : Suppress GPP and PPST as outputs 00046 !! GPP is calculated in cotwores.f90 and cotworestress.f90 00047 !! B. Decharme 2012 : optimization 00048 !! 00049 !------------------------------------------------------------------------------- 00050 ! 00051 USE MODD_CSTS, ONLY : XMV, XMD, XRHOLW 00052 USE MODD_CO2V_PAR, ONLY : XRDCF, XAIRTOH2O, XCO2TOH2O, XCONDSTMIN 00053 ! 00054 !* 0. DECLARATIONS 00055 ! ------------ 00056 ! 00057 ! 00058 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00059 USE PARKIND1 ,ONLY : JPRB 00060 ! 00061 IMPLICIT NONE 00062 ! 00063 !* 0.1 declarations of arguments 00064 ! 00065 ! 00066 ! Atmospheric forcing: 00067 REAL, DIMENSION(:), INTENT(IN):: PCSP, PF2, PIA, PDS,PGAMMT 00068 ! PCSP = atmospheric concentration of CO2 00069 ! PF2 = normalized soil water stress 00070 ! PIA = incident solar radiation 00071 ! PDS = saturation deficit of atmosphere 00072 ! verses the leaf surface (with correction) 00073 ! PGAMMT = compensation point 00074 ! 00075 ! Time constants: 00076 ! 00077 REAL, DIMENSION(:), INTENT(IN) :: PFZERO, PEPSO, PANMAX, PGMEST, PGC, PDMAX 00078 ! PFZERO = ideal value of F, no photorespiration 00079 ! or saturation deficit 00080 ! PEPSO = maximum initial quantum use efficiency 00081 ! (kgCO2 J-1 PAR) 00082 ! PGAMM = CO2 conpensation concentration (kgCO2 kgAir-1) 00083 ! PANMAX = maximum net assimilation 00084 ! PGMEST = temperature response 00085 ! of mesophyll conductance 00086 ! PGC = cuticular conductance (m s-1) 00087 ! PDMAX = maximum saturation deficit of 00088 ! atmosphere tolerate by vegetation 00089 ! 00090 ! CO2 model outputs: 00091 REAL, DIMENSION(:), INTENT(OUT) :: PAN, PGS, PRD 00092 ! PAN = Net assimilation of CO2 00093 ! PGS = Leaf conductance 00094 ! PRD = Dark Respiration 00095 ! 00096 ! 00097 !* 0.2 declarations of local variables 00098 ! 00099 ! 00100 REAL, DIMENSION(SIZE(PAN)) :: ZFMIN, ZDRAP, ZF 00101 ! ZFMIN = minimum f factor 00102 ! ZDRAP = ratio Ds/Dmax 00103 ! ZF = factor related to diffusion 00104 ! 00105 REAL, DIMENSION(SIZE(PAN)) :: ZCSP, ZCI, ZCMIN, ZAMIN 00106 ! ZCSP = atmospheric concentration 00107 ! of CO2 00108 ! ZCI = Leaf Internal concentration 00109 ! of CO2 00110 ! ZCMIN = minimim internal leaf 00111 ! CO2 concentration 00112 ! ZAMIN = minimum net 00113 ! assimilation 00114 ! 00115 REAL, DIMENSION(SIZE(PAN)) :: ZAM, ZEPS, ZLEF, ZAGR, ZAG 00116 ! ZAM = net assimilation as a 00117 ! function of CO2 deficit 00118 ! ZEPS = initial quantum 00119 ! use efficiency 00120 ! ZLEF = leaf transpiration 00121 ! ZAGR = assimilation rate ratio 00122 ! ZAG = modified gross assimilation 00123 ! rate 00124 ! 00125 REAL, DIMENSION(SIZE(PAN)) :: ZGSC, ZGS 00126 ! ZGSC = stomatal conductance to CO2 00127 ! ZGS = cuticular conductance (m s-1) 00128 ! 00129 INTEGER :: JJ, ITER 00130 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00131 !------------------------------------------------------------------------------- 00132 ! 00133 !* X. COMPUTE PRELIMINARY QUANITIES NEEDED FOR CO2 MODEL 00134 ! -------------------------------------------------- 00135 ! 00136 IF (LHOOK) CALL DR_HOOK('COTWO',0,ZHOOK_HANDLE) 00137 ! 00138 DO JJ = 1, SIZE(PAN) 00139 ! 00140 !* X. BEGIN CO2 MODEL: 00141 ! ---------------- 00142 ! 00143 ! Equation #s in 00144 ! Jacob's Thesis: 00145 ! 00146 ! Eq. 3.21 00147 ZFMIN(JJ) = PGC(JJ)/(PGC(JJ)+PGMEST(JJ)) ! fmin 00148 ! fmin <= f0, and so f <= f0 00149 ZFMIN(JJ) = MIN(ZFMIN(JJ),PFZERO(JJ)) 00150 ! fmin > 0, and so PCI > PGAMMT 00151 ZFMIN(JJ) = MAX(ZFMIN(JJ),1.E-10) 00152 ! 00153 ! f from specific humidity deficit ds (g kg-1) 00154 ! 00155 IF (PDMAX(JJ).NE.0.) THEN 00156 ZDRAP(JJ)=MIN(1.0,PDS(JJ)/PDMAX(JJ)) 00157 ELSE 00158 ZDRAP(JJ)=1. 00159 ENDIF 00160 ZF(JJ) = PFZERO(JJ)*(1.0-ZDRAP(JJ)) + ZFMIN(JJ)*ZDRAP(JJ) 00161 ! 00162 ZCSP(JJ) = MAX(PCSP(JJ),PGAMMT(JJ)+1.e-6) 00163 ! 00164 ! ci/cs ratio = f+(1.-f)*gammt/cs ; internal leaf CO2 concentration: 00165 ! 00166 ZCI(JJ) = ZCSP(JJ)*(ZF(JJ)+(1.0-ZF(JJ))*PGAMMT(JJ)/ZCSP(JJ)) 00167 ! 00168 ! 00169 ! Eq. 3.23 00170 ZCMIN(JJ) = (PGC(JJ)*ZCSP(JJ) + PGMEST(JJ)*PGAMMT(JJ))/(PGMEST(JJ)+PGC(JJ)) 00171 ! 00172 ! residual photosynthesis rate (kgCO2 kgAir-1 m s-1) 00173 ! 00174 ZAMIN(JJ) = PGMEST(JJ)*(ZCMIN(JJ)-PGAMMT(JJ)) 00175 ! 00176 ! 00177 ! Eq. 3.12 00178 ! 00179 ! light response curve (kgCO2 kgAir-1 m s-1) 00180 ! 00181 ZAM(JJ) = PGMEST(JJ)*(ZCI(JJ)-PGAMMT(JJ)) 00182 ! 00183 ZAM(JJ) = -ZAM(JJ)/PANMAX(JJ) 00184 ZAM(JJ) = PANMAX(JJ)*(1.0d0 - EXP(ZAM(JJ)*1.0d0)) 00185 ZAM(JJ) = MAX(ZAM(JJ),ZAMIN(JJ)) 00186 ! 00187 PRD(JJ) = ZAM(JJ)*XRDCF 00188 ! 00189 ! Initial quantum use efficiency (kgCO2 J-1 PAR m3 kgAir-1): 00190 ! 00191 ZEPS(JJ) = PEPSO(JJ)*(ZCI(JJ) - PGAMMT(JJ))/(ZCI(JJ) + 2.0*PGAMMT(JJ)) 00192 ! 00193 IF (ZAM(JJ).NE.0.) THEN 00194 PAN(JJ) = (ZAM(JJ) + PRD(JJ))*( 1.0 - EXP(-ZEPS(JJ)*PIA(JJ) & 00195 /(ZAM(JJ) + PRD(JJ))) ) - PRD(JJ) 00196 ELSE 00197 PAN(JJ) = 0. 00198 ENDIF 00199 PAN(JJ) = MAX(-PRD(JJ),PAN(JJ)) 00200 ! 00201 ! Eq. 3.28 00202 IF (ZAM(JJ).NE.0.) THEN 00203 ZAGR(JJ) = (PAN(JJ) + PRD(JJ))/(ZAM(JJ) + PRD(JJ)) 00204 ELSE 00205 ZAGR(JJ)=0. 00206 ENDIF 00207 ! 00208 ZAG(JJ) = PAN(JJ) - ZAMIN(JJ)*ZDRAP(JJ)*ZAGR(JJ) + & 00209 PRD(JJ)*(1.0-ZAGR(JJ)) 00210 ! 00211 ZLEF(JJ) = 0.0 ! initialize leaf transpiration 00212 ! 00213 ENDDO 00214 ! 00215 ! Iterate bewteen GSC and LEF: 00216 ! 00217 ! Iterations are for stomatal conductance and stomatal evaporation only 00218 ! 00219 DO ITER = 1, 3 00220 ! 00221 DO JJ = 1, SIZE(PAN) 00222 ! 00223 ! stomatal conductance for CO2 (m s-1): 00224 ! 00225 ZGSC(JJ) = ZAG(JJ)/(ZCSP(JJ) - ZCI(JJ)) 00226 ZGSC(JJ) = MAX( XCONDSTMIN, ZGSC(JJ)) 00227 ZGSC(JJ) = ZGSC(JJ) + XAIRTOH2O*ZLEF(JJ)*( (ZCSP(JJ) + & 00228 ZCI(JJ))/(2.0*(ZCSP(JJ) - ZCI(JJ))) ) 00229 ! 00230 IF (ITER<3) THEN 00231 ! 00232 ZGS(JJ) = 1.6*ZGSC(JJ) 00233 ! 00234 ! compute transpiration (kgH2O kgAir-1 m s-1) from specific 00235 ! humidity deficit 00236 ! 00237 ! Eq. 3.5 00238 ZLEF(JJ) = ZGS(JJ)*PDS(JJ) 00239 ! 00240 ENDIF 00241 ! 00242 ENDDO 00243 ! 00244 ENDDO 00245 ! 00246 ! End of iterations 00247 ! 00248 ! Final calculation of leaf conductance (stomatal AND cuticular) 00249 ! 00250 ! Eq. 3.16 00251 PGS(:) = XCO2TOH2O*ZGSC(:) + PGC(:) 00252 ! 00253 IF (LHOOK) CALL DR_HOOK('COTWO',1,ZHOOK_HANDLE) 00254 ! 00255 END SUBROUTINE COTWO