next up previous contents
Next: Fortran: Module Interface CNFireMod Up: Fortran: Module Interface CNEcosystemDynMod Previous: CNEcosystemDynInit   Contents



   subroutine CNEcosystemDyn(lbc, ubc, lbp, ubp, num_soilc, filter_soilc, &
                      num_soilp, filter_soilp, num_pcropp, filter_pcropp, doalb)

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.


     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
     use pftdynMod               , only: CNHarvest
     use CNWoodProductsMod    , only: CNWoodProducts
     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
   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 pointers to implicit in arguments
   local pointers to implicit out arguments

Erik Kluzek 2011-06-15