next up previous contents
Next: pftconrd Up: Routine/Function Prologues Previous: CNHarvestPftToColumn   Contents

Fortran: Module Interface pftvarcon (Source File: pftvarcon.F90)

Module containing vegetation constants and method to read and initialize vegetation (PFT) constants.


   use shr_kind_mod, only : r8 => shr_kind_r8
   use abortutils  , only : endrun
   use clm_varpar  , only : mxpft, numpft, numrad, ivis, inir
   use clm_varctl  , only : iulog
   implicit none
   Vegetation type constants
   character(len=40) pftname(0:mxpft) !PFT description
   integer :: noveg                  !value for not vegetated 
   integer :: ndllf_evr_tmp_tree     !value for Needleleaf evergreen temperate tree
   integer :: ndllf_evr_brl_tree     !value for Needleleaf evergreen boreal tree
   integer :: ndllf_dcd_brl_tree     !value for Needleleaf deciduous boreal tree
   integer :: nbrdlf_evr_trp_tree    !value for Broadleaf evergreen tropical tree
   integer :: nbrdlf_evr_tmp_tree    !value for Broadleaf evergreen temperate tree
   integer :: nbrdlf_dcd_trp_tree    !value for Broadleaf deciduous tropical tree
   integer :: nbrdlf_dcd_tmp_tree    !value for Broadleaf deciduous temperate tree
   integer :: nbrdlf_dcd_brl_tree    !value for Broadleaf deciduous boreal tree
   integer :: ntree                  !value for last type of tree
   integer :: nbrdlf_evr_shrub       !value for Broadleaf evergreen shrub
   integer :: nbrdlf_dcd_tmp_shrub   !value for Broadleaf deciduous temperate shrub
   integer :: nbrdlf_dcd_brl_shrub   !value for Broadleaf deciduous boreal shrub
   integer :: nc3_arctic_grass       !value for C3 arctic grass
   integer :: nc3_nonarctic_grass    !value for C3 non-arctic grass
   integer :: nc4_grass              !value for C4 grass
   integer :: npcropmin              !value for first crop
   integer :: ncorn                  !value for corn
   integer :: nscereal               !value for spring temperate cereal
   integer :: nwcereal               !value for winter temperate cereal
   integer :: nsoybean               !value for soybean
   integer :: npcropmax              !value for last prognostic crop in list
   integer :: nc3crop                !value for generic crop
   integer :: nirrig                 !value for irrigated generic crop
   real(r8):: dleaf(0:mxpft)       !characteristic leaf dimension (m)
   real(r8):: c3psn(0:mxpft)       !photosynthetic pathway: 0. = c4, 1. = c3
   real(r8):: mp(0:mxpft)          !slope of conductance-to-photosynthesis relationship
   real(r8):: qe25(0:mxpft)        !quantum efficiency at 25C (umol CO2 / umol photon)
   real(r8):: xl(0:mxpft)          !leaf/stem orientation index
   real(r8):: rhol(0:mxpft,numrad) !leaf reflectance: 1=vis, 2=nir
   real(r8):: rhos(0:mxpft,numrad) !stem reflectance: 1=vis, 2=nir
   real(r8):: taul(0:mxpft,numrad) !leaf transmittance: 1=vis, 2=nir
   real(r8):: taus(0:mxpft,numrad) !stem transmittance: 1=vis, 2=nir
   real(r8):: z0mr(0:mxpft)        !ratio of momentum roughness length to canopy top height (-)
   real(r8):: displar(0:mxpft)     !ratio of displacement height to canopy top height (-)
   real(r8):: roota_par(0:mxpft)   !CLM rooting distribution parameter [1/m]
   real(r8):: rootb_par(0:mxpft)   !CLM rooting distribution parameter [1/m]
   real(r8):: crop(0:mxpft)        ! crop pft: 0. = not crop, 1. = crop pft
   real(r8):: irrigated(0:mxpft)   ! irrigated pft: 0. = not, 1. = irrigated
   real(r8):: smpso(0:mxpft)       !soil water potential at full stomatal opening (mm)
   real(r8):: smpsc(0:mxpft)       !soil water potential at full stomatal closure (mm)
   real(r8):: fnitr(0:mxpft)       !foliage nitrogen limitation factor (-)
   ! begin new pft parameters for CN code
   real(r8):: slatop(0:mxpft)      !SLA at top of canopy [m^2/gC]
   real(r8):: dsladlai(0:mxpft)    !dSLA/dLAI [m^2/gC]
   real(r8):: leafcn(0:mxpft)      !leaf C:N [gC/gN]
   real(r8):: flnr(0:mxpft)        !fraction of leaf N in Rubisco [no units]
   real(r8):: woody(0:mxpft)       !woody lifeform flag (0 or 1)
   real(r8):: lflitcn(0:mxpft)      !leaf litter C:N (gC/gN)
   real(r8):: frootcn(0:mxpft)      !fine root C:N (gC/gN)
   real(r8):: livewdcn(0:mxpft)     !live wood (phloem and ray parenchyma) C:N (gC/gN)
   real(r8):: deadwdcn(0:mxpft)     !dead wood (xylem and heartwood) C:N (gC/gN)
   real(r8):: grperc(0:mxpft)       !growth respiration parameter
   real(r8):: grpnow(0:mxpft)       !growth respiration parameter
   for crop
   real(r8):: graincn(0:mxpft)      !grain C:N (gC/gN)
   real(r8):: mxtmp(0:mxpft)        !parameter used in accFlds
   real(r8):: baset(0:mxpft)        !parameter used in accFlds
   real(r8):: declfact(0:mxpft)     !parameter used in CNAllocation
   real(r8):: bfact(0:mxpft)        !parameter used in CNAllocation
   real(r8):: aleaff(0:mxpft)       !parameter used in CNAllocation
   real(r8):: arootf(0:mxpft)       !parameter used in CNAllocation
   real(r8):: astemf(0:mxpft)       !parameter used in CNAllocation
   real(r8):: arooti(0:mxpft)       !parameter used in CNAllocation
   real(r8):: fleafi(0:mxpft)       !parameter used in CNAllocation
   real(r8):: allconsl(0:mxpft)     !parameter used in CNAllocation
   real(r8):: allconss(0:mxpft)     !parameter used in CNAllocation
   real(r8):: ztopmx(0:mxpft)       !parameter used in CNVegStructUpdate
   real(r8):: laimx(0:mxpft)        !parameter used in CNVegStructUpdate
   real(r8):: gddmin(0:mxpft)       !parameter used in CNPhenology
   real(r8):: hybgdd(0:mxpft)       !parameter used in CNPhenology
   real(r8):: lfemerg(0:mxpft)      !parameter used in CNPhenology
   real(r8):: grnfill(0:mxpft)      !parameter used in CNPhenology
   integer :: mxmat(0:mxpft)        !parameter used in CNPhenology
   integer :: mnNHplantdate(0:mxpft)!minimum planting date for NorthHemisphere (YYYYMMDD)
   integer :: mxNHplantdate(0:mxpft)!maximum planting date for NorthHemisphere (YYYYMMDD)
   integer :: mnSHplantdate(0:mxpft)!minimum planting date for SouthHemisphere (YYYYMMDD)
   integer :: mxSHplantdate(0:mxpft)!maximum planting date for SouthHemisphere (YYYYMMDD)
   real(r8):: planttemp(0:mxpft)    !planting temperature used in CNPhenology (K)
   real(r8):: minplanttemp(0:mxpft) !mininum planting temperature used in CNPhenology (K)
   real(r8):: froot_leaf(0:mxpft)   !allocation parameter: new fine root C per new leaf C (gC/gC) 
   real(r8):: stem_leaf(0:mxpft)    !allocation parameter: new stem c per new leaf C (gC/gC)
   real(r8):: croot_stem(0:mxpft)   !allocation parameter: new coarse root C per new stem C (gC/gC)
   real(r8):: flivewd(0:mxpft)      !allocation parameter: fraction of new wood that is live (phloem and ray parenchyma) (no units)
   real(r8):: fcur(0:mxpft)         !allocation parameter: fraction of allocation that goes to currently displayed growth, remainder to storage
   real(r8):: fcurdv(0:mxpft)       !alternate fcur for use with cndv
   real(r8):: lf_flab(0:mxpft)      !leaf litter labile fraction
   real(r8):: lf_fcel(0:mxpft)      !leaf litter cellulose fraction
   real(r8):: lf_flig(0:mxpft)      !leaf litter lignin fraction
   real(r8):: fr_flab(0:mxpft)      !fine root litter labile fraction
   real(r8):: fr_fcel(0:mxpft)      !fine root litter cellulose fraction
   real(r8):: fr_flig(0:mxpft)      !fine root litter lignin fraction
   real(r8):: leaf_long(0:mxpft)    !leaf longevity (yrs)
   real(r8):: evergreen(0:mxpft)    !binary flag for evergreen leaf habit (0 or 1)
   real(r8):: stress_decid(0:mxpft) !binary flag for stress-deciduous leaf habit (0 or 1)
   real(r8):: season_decid(0:mxpft) !binary flag for seasonal-deciduous leaf habit (0 or 1)
   real(r8):: pconv(0:mxpft)        !proportion of deadstem to conversion flux
   real(r8):: pprod10(0:mxpft)      !proportion of deadstem to 10-yr product pool
   real(r8):: pprod100(0:mxpft)     !proportion of deadstem to 100-yr product pool
   real(r8):: pprodharv10(0:mxpft)  !harvest mortality proportion of deadstem to 10-yr pool
   ! new pft parameters for CN-fire code
   real(r8):: resist(0:mxpft)       !resistance to fire (no units)
   ! pft parameters for CNDV code
   ! from LPJ subroutine pftparameters
   real(r8) pftpar20(0:mxpft)       !tree maximum crown area (m2)
   real(r8) pftpar28(0:mxpft)       !min coldest monthly mean temperature
   real(r8) pftpar29(0:mxpft)       !max coldest monthly mean temperature
   real(r8) pftpar30(0:mxpft)       !min growing degree days (>= 5 deg C)
   real(r8) pftpar31(0:mxpft)       !upper limit of temperature of the warmest month (twmax)
   real(r8), parameter :: reinickerp = 1.6_r8 !parameter in allometric equation
   real(r8), parameter :: dwood  = 2.5e5_r8   !cn wood density (gC/m3); lpj:2.0e5
   real(r8), parameter :: allom1 = 100.0_r8   !parameters in
   real(r8), parameter :: allom2 =  40.0_r8   !...allometric
   real(r8), parameter :: allom3 =   0.5_r8   !...equations
   real(r8), parameter :: allom1s = 250.0_r8  !modified for shrubs by
   real(r8), parameter :: allom2s =   8.0_r8  !X.D.Z
   public :: pftconrd ! Read and initialize vegetation (PFT) constants
   Created by Sam Levis (put into module form by Mariana Vertenstein)
   10/21/03, Peter Thornton: Added new variables for CN code
   06/24/09, Erik Kluzek: Add indices for all pft types, and add expected_pftnames array and comparision
   09/17/10, David Lawrence: Modified code to read in netCDF pft physiology file


Erik Kluzek 2011-06-15