INTERFACE:
subroutine CNEcosystemDyn(lbc, ubc, lbp, ubp, num_soilc, filter_soilc, &
num_soilp, filter_soilp, num_pcropp, filter_pcropp, doalb)
DESCRIPTION:
The core CN code is executed here. Calculates fluxes for maintenance respiration, decomposition, allocation, phenology, and growth respiration. These routines happen on the radiation time step so that canopy structure stays synchronized with albedo calculations.
USES:
use clmtype
use spmdMod , only: masterproc
use CNSetValueMod , only: CNZeroFluxes
use CNNDynamicsMod , only: CNNDeposition,CNNFixation, CNNLeaching
use CNMRespMod , only: CNMResp
use CNDecompMod , only: CNDecompAlloc
use CNPhenologyMod , only: CNPhenology
use CNGRespMod , only: CNGResp
use CNCStateUpdate1Mod , only: CStateUpdate1,CStateUpdate0
use CNNStateUpdate1Mod , only: NStateUpdate1
use CNGapMortalityMod , only: CNGapMortality
use CNCStateUpdate2Mod , only: CStateUpdate2, CStateUpdate2h
use CNNStateUpdate2Mod , only: NStateUpdate2, NStateUpdate2h
use CNFireMod , only: CNFireArea, CNFireFluxes
use CNCStateUpdate3Mod , only: CStateUpdate3
use CNNStateUpdate3Mod , only: NStateUpdate3
use CNBalanceCheckMod , only: CBalanceCheck, NBalanceCheck
use CNPrecisionControlMod, only: CNPrecisionControl
use CNVegStructUpdateMod , only: CNVegStructUpdate
use CNAnnualUpdateMod , only: CNAnnualUpdate
use CNSummaryMod , only: CSummary, NSummary
#if (defined C13)
use CNC13StateUpdate1Mod , only: C13StateUpdate1,C13StateUpdate0
use CNC13StateUpdate2Mod , only: C13StateUpdate2, C13StateUpdate2h
use CNC13StateUpdate3Mod , only: C13StateUpdate3
use CNC13FluxMod , only: C13Flux1, C13Flux2, C13Flux2h, C13Flux3
use C13SummaryMod , only: C13Summary
#endif
use pftdynMod , only: CNHarvest
use CNWoodProductsMod , only: CNWoodProducts
ARGUMENTS:
implicit none
integer, intent(in) :: lbc, ubc ! column bounds
integer, intent(in) :: lbp, ubp ! pft bounds
integer, intent(in) :: num_soilc ! number of soil columns in filter
integer, intent(in) :: filter_soilc(ubc-lbc+1) ! filter for soil columns
integer, intent(in) :: num_soilp ! number of soil pfts in filter
integer, intent(in) :: filter_soilp(ubp-lbp+1) ! filter for soil pfts
integer, intent(in) :: num_pcropp ! number of prog. crop pfts in filter
integer, intent(in) :: filter_pcropp(:)! filter for prognostic crop pfts
logical, intent(in) :: doalb ! true = surface albedo calculation time step
CALLED FROM:
REVISION HISTORY:
10/22/03, Peter Thornton: created from EcosystemDyn during migration to
new vector code.
11/3/03, Peter Thornton: removed update of elai, esai, frac_veg_nosno_alb.
These are now done in CNVegStructUpdate(), which is called
prior to SurfaceAlbedo().
11/13/03, Peter Thornton: switched from nolake to soil filtering.
LOCAL VARIABLES:
local pointers to implicit in arguments local pointers to implicit out arguments !OTHER LOCAL VARIABLES: