INTERFACE:
subroutine Light(lbg, ubg, lbp, ubp, num_natvegp, filter_natvegp)DESCRIPTION:
Calculate light competition Update fpc for establishment routine Called once per year
USES:
use clmtypeARGUMENTS:
implicit none integer, intent(in) :: lbg, ubg ! gridcell bounds integer, intent(in) :: lbp, ubp ! pft bounds integer, intent(in) :: num_natvegp ! number of naturally-vegetated pfts in filter integer, intent(in) :: filter_natvegp(ubp-lbp+1) ! pft filter for naturally-vegetated pointsCALLED FROM:
subroutine dv in module CNDVModREVISION HISTORY:
Author: Sam Levis (adapted from Stephen Sitch's LPJ subroutine light) 3/4/02, Peter Thornton: Migrated to new data structures. 2005.10: Sam Levis updated to work with CNLOCAL VARIABLES:
local pointers to implicit in arguments integer , pointer :: ivt(:) ! pft vegetation type integer , pointer :: pgridcell(:) ! gridcell index of corresponding pft integer , pointer :: tree(:) ! ecophys const - tree pft or not real(r8), pointer :: slatop(:) !specific leaf area at top of canopy, projected area basis [m^2/gC] real(r8), pointer :: dsladlai(:) !dSLA/dLAI, projected area basis [m^2/gC] real(r8), pointer :: woody(:) ! ecophys const - woody pft or not real(r8), pointer :: leafcmax(:) ! (gC/m2) leaf C storage real(r8), pointer :: deadstemc(:) ! (gC/m2) dead stem C real(r8), pointer :: dwood(:) ! ecophys const - wood density (gC/m3) real(r8), pointer :: reinickerp(:) ! ecophys const - parameter in allomet real(r8), pointer :: crownarea_max(:) ! ecophys const - tree maximum crown a real(r8), pointer :: allom1(:) ! ecophys const - parameter in allomet local pointers to implicit inout arguments real(r8), pointer :: crownarea(:) ! area that each individual tree takes up (m^2) real(r8), pointer :: fpcgrid(:) ! foliar projective cover on gridcell (fraction) real(r8), pointer :: nind(:) ! number of individuals