Initial commit
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
subroutine StomatalConductance(pco2s,rehulfsurf,gammas,
|
||||
& pvapordef_s,rayDzero,assim_net,istommodel,
|
||||
& stomintercept,stomslope,gswmod)
|
||||
implicit none
|
||||
|
||||
!=====================Inputs===================================
|
||||
! pvapordef_s: water vapor partial pressure deficit at the leaf surface [Pa]
|
||||
! istommodel: which stomatal conductance model to use
|
||||
! 1 = Ball - Berry Model
|
||||
! 2 = Ray Leuning model using leaf surface CO2 concentration
|
||||
! 3 = Belinda E. Medlyn model
|
||||
! 4 = Dewar model
|
||||
! stomintercept: Interception in the Ball - Berry model or the Leuning version [mol H2O m-2 s-1]
|
||||
! stomslope: Slope in the Ball - Berry model or the leuning version [--]
|
||||
! rayDzero: D0 in the Ray Leuning modified Ball - Berry Model [Pa]
|
||||
!
|
||||
! assim_net: net rate of CO2 uptake per unit leaf area
|
||||
! calculated from the biochemical model[umol m-2 s-1]
|
||||
! gammas: CO2 compensation point (ppm)
|
||||
! pco2s: CO2 concentration at the leaf surface or internal CO2 (ppm)
|
||||
! rehulfsurf: relative humidity at the leaf surface [0-1]
|
||||
|
||||
integer istommodel
|
||||
double precision pco2s,rehulfsurf,gammas,
|
||||
& pvapordef_s,rayDzero,stomintercept,
|
||||
& stomslope,assim_net
|
||||
|
||||
!=====================Outputs=================================
|
||||
! gswmod: stomatal conductance for water vapor calculated
|
||||
! from stomatal conductance model [mol m-2 s-1]
|
||||
double precision gswmod
|
||||
|
||||
if(istommodel.eq.1)then
|
||||
! Ball - Berry model
|
||||
gswmod=stomintercept+stomslope*assim_net*
|
||||
& rehulfsurf/pco2s
|
||||
gswmod=dmax1(gswmod,stomintercept)
|
||||
endif
|
||||
if(istommodel.eq.2)then
|
||||
! Ray Leuning model using leaf surface CO2 or internal CO2
|
||||
gswmod=stomintercept+stomslope*assim_net/
|
||||
& ((pco2s-gammas)*(1.0d0+pvapordef_s/rayDzero))
|
||||
gswmod=dmax1(gswmod,stomintercept)
|
||||
endif
|
||||
if(istommodel.eq.3)then
|
||||
!Belinda Medlyn model
|
||||
gswmod=stomintercept+(1.0d0+stomslope/dsqrt(1.0d-3*pvapordef_s))
|
||||
&*assim_net/pco2s
|
||||
gswmod=dmax1(gswmod,stomintercept)
|
||||
endif
|
||||
if(istommodel.eq.4)then
|
||||
! Dewar model
|
||||
gswmod=(stomintercept+stomslope*assim_net)/
|
||||
& (pco2s*(1.0d0+pvapordef_s/rayDzero))
|
||||
gswmod=dmax1(gswmod,stomintercept)
|
||||
endif
|
||||
|
||||
return
|
||||
end subroutine StomatalConductance
|
||||
|
||||
subroutine Der_StomatalConductance(pco2s,rehulfsurf,
|
||||
& gammas,pvapordef_s,rayDzero,assim_net,istommodel,
|
||||
& stomintercept,stomslope,derivb,derivslope,derivd0)
|
||||
implicit none
|
||||
|
||||
!=====================Inputs===================================
|
||||
! pvapordef_s: water vapor partial pressure deficit at the leaf surface [Pa]
|
||||
! istommodel: which stomatal conductance model to use
|
||||
! 1 = Ball - Berry Model
|
||||
! 2 = Ray Leuning model using leaf surface CO2 concentration
|
||||
! 3 = Belinda Medlyn model
|
||||
! 4 = Dewar model
|
||||
! stomintercept: Interception in the Ball - Berry model or the Leuning version [mol H2O m-2 s-1]
|
||||
! stomslope: Slope in the Ball - Berry model or the leuning version [--]
|
||||
! rayDzero: D0 in the Ray Leuning modified Ball - Berry Model [Pa]
|
||||
!
|
||||
! assim_net: net rate of CO2 uptake per unit leaf area
|
||||
! calculated from the biochemical model[umol m-2 s-1]
|
||||
! gammas: CO2 compensation point (ppm)
|
||||
! pco2s: CO2 concentration at the leaf surface or internal CO2 (ppm)
|
||||
! rehulfsurf: relative humidity at the leaf surface [0-1]
|
||||
|
||||
integer istommodel
|
||||
double precision pco2s,rehulfsurf,gammas,
|
||||
& pvapordef_s,rayDzero,stomintercept,
|
||||
& stomslope,assim_net
|
||||
|
||||
!=====================Outputs=================================
|
||||
! gswmod: stomatal conductance for water vapor calculated
|
||||
! from stomatal conductance model [mol m-2 s-1]
|
||||
double precision derivb,derivslope,derivd0
|
||||
|
||||
derivb=1.0d0
|
||||
if(istommodel.eq.1)then
|
||||
! Ball - Berry model
|
||||
derivslope=assim_net*rehulfsurf/pco2s
|
||||
endif
|
||||
if(istommodel.eq.2)then
|
||||
! Ray Leuning model using leaf surface CO2
|
||||
derivslope=assim_net/
|
||||
& ((pco2s-gammas)*(1.0d0+pvapordef_s/rayDzero))
|
||||
derivd0=(stomslope*assim_net/(pco2s-gammas))*
|
||||
& pvapordef_s/((rayDzero+pvapordef_s)**2.0d0)
|
||||
endif
|
||||
if(istommodel.eq.3)then
|
||||
! Belinda E. Medlyn model
|
||||
derivslope=assim_net/(pco2s*dsqrt(1.0d-3*pvapordef_s))
|
||||
endif
|
||||
if(istommodel.eq.4)then
|
||||
! Ray Leuning model using leaf surface partial pressure
|
||||
derivb=1.0d0/(pco2s*(1.0d0+pvapordef_s/rayDzero))
|
||||
derivslope=assim_net/
|
||||
& (pco2s*(1.0d0+pvapordef_s/rayDzero))
|
||||
derivd0=((stomintercept+stomslope*assim_net)/pco2s)*
|
||||
& pvapordef_s/((rayDzero+pvapordef_s)**2.0d0)
|
||||
endif
|
||||
return
|
||||
end subroutine Der_StomatalConductance
|
||||
Reference in New Issue
Block a user