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_TKFRZ
ARGUMENTS:
implicit none
integer , intent(in) :: lbg, ubg ! gridcell bounds
integer , intent(in) :: lbp, ubp ! pft bounds
CALLED 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(:)