INTERFACE:
subroutine Establishment(lbg, ubg, lbp, ubp)DESCRIPTION:
Calculates establishment of new pfts Called once per year
USES:
use clmtype use clm_varpar , only : numpft use clm_varcon , only : istsoil use clm_varctl , only : iulog use pftvarcon , only : noveg, nc3_arctic_grass use shr_const_mod, only : SHR_CONST_CDAY, SHR_CONST_PI, SHR_CONST_TKFRZARGUMENTS:
implicit none integer , intent(in) :: lbg, ubg ! gridcell bounds integer , intent(in) :: lbp, ubp ! pft boundsCALLED FROM:
subroutine dv in module CNDVModREVISION HISTORY:
Author: Sam Levis (adapted from Stephen Sitch's LPJ subr. establishment) 3/4/02, Peter Thornton: Migrated to new data structures. 10/05 , Sam Levis: adapted to work with CN 09/07 , Sam Levis: as 10/05 but with current CNLOCAL VARIABLES:
local pointers to implicit in arguments logical , pointer :: pftmayexist(:) ! exclude seasonal decid pfts from tropics [1=true, 0=false] integer , pointer :: plandunit(:) ! landunit of corresponding pft integer , pointer :: pgridcell(:) ! gridcell of corresponding pft integer , pointer :: ltype(:) ! landunit type for corresponding pft real(r8), pointer :: tmomin20(:) ! 20-yr running mean of tmomin real(r8), pointer :: agdd20(:) ! 20-yr running mean of agdd real(r8), pointer :: agddtw(:) ! accumulated growing degree days above twmax real(r8), pointer :: prec365(:) ! 365-day running mean of tot. precipitation 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 :: crownarea_max(:) ! ecophys const - tree maximum crown area [m2] real(r8), pointer :: twmax(:) ! ecophys const - upper limit of temperature of the warmest month real(r8), pointer :: reinickerp(:) ! ecophys const - parameter in allometric equation real(r8), pointer :: dwood(:) ! ecophys const - wood density (gC/m3) real(r8), pointer :: allom1(:) ! ecophys const - parameter in allometric real(r8), pointer :: tcmin(:) ! ecophys const - minimum coldest monthly mean temperature real(r8), pointer :: tcmax(:) ! ecophys const - maximum coldest monthly mean temperature real(r8), pointer :: gddmin(:) ! ecophys const - minimum growing degree days (at or above 5 C) real(r8), pointer :: leafcmax(:) ! (gC/m2) ann max leaf C real(r8), pointer :: deadstemc(:) ! (gC/m2) dead stem C real(r8), pointer :: annsum_npp(:) ! annual sum NPP (gC/m2/yr) real(r8), pointer :: annsum_litfall(:) ! annual sum litfall (gC/m2/yr) local pointers to implicit in/out arguments integer , pointer :: ivt(:) ! vegetation type for this pft logical , pointer :: present(:) ! true=> PFT present in patch real(r8), pointer :: nind(:) ! number of individuals (#/m**2) local pointers to implicit out arguments real(r8), pointer :: fpcgrid(:) ! foliar projective cover on gridcell (fraction) real(r8), pointer :: crownarea(:) ! area that each individual tree takes up (m^2) real(r8), pointer :: greffic(:) ! lpj's growth efficiency real(r8), pointer :: heatstress(:)