next up previous contents
Next: Fortran: Module Interface clm_driverInitMod Up: Fortran: Module Interface CanopyFluxesMod Previous: CanopyFluxes   Contents



    subroutine Stomata (fn, filterp, lbp, ubp, ei, ea, o2, co2, rb, dayl_factor, phase)

Leaf stomatal resistance and leaf photosynthesis. Modifications for CN code.


   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
      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
      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'
   subroutine CanopyFluxes in this module
   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 ()
   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)

Erik Kluzek 2011-06-15