INTERFACE:
subroutine Stomata (fn, filterp, lbp, ubp, ei, ea, o2, co2, rb, dayl_factor, phase)DESCRIPTION:
Leaf stomatal resistance and leaf photosynthesis. Modifications for CN code.
REVISION HISTORY:
22 January 2004: Created by Peter Thornton
4/14/05: Peter Thornton: Converted Ci from local variable to pps struct member
now returns cisun or cisha per pft as implicit output argument.
Also sets alphapsnsun and alphapsnsha.
4/25/05, Peter Thornton: Adopted as the default code for CLM, together with
modifications for sun/shade canopy. Renamed from StomataCN to Stomata,
and eliminating the older Stomata subroutine
3/6/09: Peter Thornton; added dayl_factor control on Vcmax, from Bill Bauerle
USES:
use shr_kind_mod , only : r8 => shr_kind_r8
use shr_const_mod, only : SHR_CONST_TKFRZ, SHR_CONST_RGAS
use clmtype
use clm_atmlnd , only : clm_a2l
use spmdMod , only: masterproc
use pftvarcon , only : nbrdlf_dcd_tmp_shrub
use pftvarcon , only : nsoybean, npcropmin
ARGUMENTS:
implicit none
integer , intent(in) :: fn ! size of pft filter
integer , intent(in) :: filterp(fn) ! pft filter
integer , intent(in) :: lbp, ubp ! pft bounds
real(r8), intent(in) :: ei(lbp:ubp) ! vapor pressure inside leaf (sat vapor press at tl) (pa)
real(r8), intent(in) :: ea(lbp:ubp) ! vapor pressure of canopy air (pa)
real(r8), intent(in) :: o2(lbp:ubp) ! atmospheric o2 concentration (pa)
real(r8), intent(in) :: co2(lbp:ubp) ! atmospheric co2 concentration (pa)
real(r8), intent(inout) :: rb(lbp:ubp) ! boundary layer resistance (s/m)
real(r8), intent(in) :: dayl_factor(lbp:ubp) ! scalar (0-1) for daylength
character(len=*), intent(in) :: phase ! 'sun' or 'sha'
CALLED FROM:
subroutine CanopyFluxes in this moduleLOCAL VARIABLES:
local pointers to implicit in variables
new ecophys variables (leafcn, flnr) added 1/26/04
integer , pointer :: pcolumn(:) ! pft's column index
integer , pointer :: pgridcell(:) ! pft's gridcell index
integer , pointer :: ivt(:) ! pft vegetation type
real(r8), pointer :: qe25(:) ! quantum efficiency at 25C (umol CO2 / umol photon)
real(r8), pointer :: c3psn(:) ! photosynthetic pathway: 0. = c4, 1. = c3
real(r8), pointer :: mp(:) ! slope of conductance-to-photosynthesis relationship
real(r8), pointer :: tgcm(:) ! air temperature at agcm reference height (kelvin)
real(r8), pointer :: forc_pbot(:) ! atmospheric pressure (Pa)
real(r8), pointer :: tl(:) ! leaf temperature (Kelvin)
real(r8), pointer :: btran(:) ! soil water transpiration factor (0 to 1)
real(r8), pointer :: apar(:) ! par absorbed per unit lai (w/m**2)
real(r8), pointer :: leafcn(:) ! leaf C:N (gC/gN)
real(r8), pointer :: flnr(:) ! fraction of leaf N in the Rubisco enzyme (gN Rubisco / gN leaf)
real(r8), pointer :: sla(:) ! specific leaf area, projected area basis (m^2/gC)
real(r8), pointer :: fnitr(:) ! foliage nitrogen limitation factor (-)
local pointers to implicit inout variables
real(r8), pointer :: rs(:) ! leaf stomatal resistance (s/m)
real(r8), pointer :: psn(:) ! foliage photosynthesis (umol co2 /m**2/ s) [always +]
real(r8), pointer :: ci(:) ! intracellular leaf CO2 (Pa)
#if (defined C13)
real(r8), pointer :: alphapsn(:) ! 13C fractionation factor for PSN ()
#endif
local pointers to implicit out variables
real(r8), pointer :: lnc(:) ! leaf N concentration per unit projected LAI (gN leaf/m^2)
real(r8), pointer :: vcmx(:) ! maximum rate of carboxylation (umol co2/m**2/s)
LOCAL VARIABLES: