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 BauerleUSES:
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, npcropminARGUMENTS:
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: