INTERFACE:
subroutine C13StateUpdate1(num_soilc, filter_soilc, num_soilp, filter_soilp)DESCRIPTION:
On the radiation time step, update all the prognostic carbon state variables (except for gap-phase mortality and fire fluxes)
USES:
use clmtype
use clm_time_manager, only: get_step_size
ARGUMENTS:
implicit none
integer, intent(in) :: num_soilc ! number of soil columns filter
integer, intent(in) :: filter_soilc(:) ! filter for soil columns
integer, intent(in) :: num_soilp ! number of soil pfts in filter
integer, intent(in) :: filter_soilp(:) ! filter for soil pfts
CALLED FROM:
subroutine CNEcosystemDynREVISION HISTORY:
8/1/03: Created by Peter Thornton 12/5/03, Peter Thornton: Added livewood turnover fluxesLOCAL VARIABLES:
local pointers to implicit in arrays
real(r8), pointer :: woody(:) ! binary flag for woody lifeform (1=woody, 0=not woody)
real(r8), pointer :: cwdc_to_litr2c(:)
real(r8), pointer :: cwdc_to_litr3c(:)
real(r8), pointer :: frootc_to_litr1c(:)
real(r8), pointer :: frootc_to_litr2c(:)
real(r8), pointer :: frootc_to_litr3c(:)
real(r8), pointer :: leafc_to_litr1c(:)
real(r8), pointer :: leafc_to_litr2c(:)
real(r8), pointer :: leafc_to_litr3c(:)
real(r8), pointer :: litr1_hr(:)
real(r8), pointer :: litr1c_to_soil1c(:)
real(r8), pointer :: litr2_hr(:)
real(r8), pointer :: litr2c_to_soil2c(:)
real(r8), pointer :: litr3_hr(:)
real(r8), pointer :: litr3c_to_soil3c(:)
real(r8), pointer :: soil1_hr(:)
real(r8), pointer :: soil1c_to_soil2c(:)
real(r8), pointer :: soil2_hr(:)
real(r8), pointer :: soil2c_to_soil3c(:)
real(r8), pointer :: soil3_hr(:)
real(r8), pointer :: soil3c_to_soil4c(:)
real(r8), pointer :: soil4_hr(:)
real(r8), pointer :: col_ctrunc(:) ! (gC/m2) column-level sink for C truncation
integer , pointer :: ivt(:) ! pft vegetation type
real(r8), pointer :: deadcrootc_xfer_to_deadcrootc(:)
real(r8), pointer :: deadstemc_xfer_to_deadstemc(:)
real(r8), pointer :: frootc_xfer_to_frootc(:)
real(r8), pointer :: leafc_xfer_to_leafc(:)
real(r8), pointer :: livecrootc_xfer_to_livecrootc(:)
real(r8), pointer :: livestemc_xfer_to_livestemc(:)
real(r8), pointer :: cpool_to_xsmrpool(:)
real(r8), pointer :: cpool_to_deadcrootc(:)
real(r8), pointer :: cpool_to_deadcrootc_storage(:)
real(r8), pointer :: cpool_to_deadstemc(:)
real(r8), pointer :: cpool_to_deadstemc_storage(:)
real(r8), pointer :: cpool_to_frootc(:)
real(r8), pointer :: cpool_to_frootc_storage(:)
real(r8), pointer :: cpool_to_gresp_storage(:)
real(r8), pointer :: cpool_to_leafc(:)
real(r8), pointer :: cpool_to_leafc_storage(:)
real(r8), pointer :: cpool_to_livecrootc(:)
real(r8), pointer :: cpool_to_livecrootc_storage(:)
real(r8), pointer :: cpool_to_livestemc(:)
real(r8), pointer :: cpool_to_livestemc_storage(:)
real(r8), pointer :: deadcrootc_storage_to_xfer(:)
real(r8), pointer :: deadstemc_storage_to_xfer(:)
real(r8), pointer :: frootc_storage_to_xfer(:)
real(r8), pointer :: frootc_to_litter(:)
real(r8), pointer :: gresp_storage_to_xfer(:)
real(r8), pointer :: leafc_storage_to_xfer(:)
real(r8), pointer :: leafc_to_litter(:)
real(r8), pointer :: livecrootc_storage_to_xfer(:)
real(r8), pointer :: livecrootc_to_deadcrootc(:)
real(r8), pointer :: livestemc_storage_to_xfer(:)
real(r8), pointer :: livestemc_to_deadstemc(:)
real(r8), pointer :: livestem_mr(:)
real(r8), pointer :: froot_mr(:)
real(r8), pointer :: leaf_mr(:)
real(r8), pointer :: livecroot_mr(:)
real(r8), pointer :: livestem_curmr(:)
real(r8), pointer :: froot_curmr(:)
real(r8), pointer :: leaf_curmr(:)
real(r8), pointer :: livecroot_curmr(:)
real(r8), pointer :: livestem_xsmr(:)
real(r8), pointer :: froot_xsmr(:)
real(r8), pointer :: leaf_xsmr(:)
real(r8), pointer :: livecroot_xsmr(:)
real(r8), pointer :: cpool_deadcroot_gr(:)
real(r8), pointer :: cpool_deadcroot_storage_gr(:)
real(r8), pointer :: cpool_deadstem_gr(:)
real(r8), pointer :: cpool_deadstem_storage_gr(:)
real(r8), pointer :: cpool_froot_gr(:)
real(r8), pointer :: cpool_froot_storage_gr(:)
real(r8), pointer :: cpool_leaf_gr(:)
real(r8), pointer :: cpool_leaf_storage_gr(:)
real(r8), pointer :: cpool_livecroot_gr(:)
real(r8), pointer :: cpool_livecroot_storage_gr(:)
real(r8), pointer :: cpool_livestem_gr(:)
real(r8), pointer :: cpool_livestem_storage_gr(:)
real(r8), pointer :: transfer_deadcroot_gr(:)
real(r8), pointer :: transfer_deadstem_gr(:)
real(r8), pointer :: transfer_froot_gr(:)
real(r8), pointer :: transfer_leaf_gr(:)
real(r8), pointer :: transfer_livecroot_gr(:)
real(r8), pointer :: transfer_livestem_gr(:)
local pointers to implicit in/out arrays
real(r8), pointer :: cwdc(:) ! (gC/m2) coarse woody debris C
real(r8), pointer :: litr1c(:) ! (gC/m2) litter labile C
real(r8), pointer :: litr2c(:) ! (gC/m2) litter cellulose C
real(r8), pointer :: litr3c(:) ! (gC/m2) litter lignin C
real(r8), pointer :: soil1c(:) ! (gC/m2) soil organic matter C (fast pool)
real(r8), pointer :: soil2c(:) ! (gC/m2) soil organic matter C (medium pool)
real(r8), pointer :: soil3c(:) ! (gC/m2) soil organic matter C (slow pool)
real(r8), pointer :: soil4c(:) ! (gC/m2) soil organic matter C (slowest pool)
real(r8), pointer :: cpool(:) ! (gC/m2) temporary photosynthate C pool
real(r8), pointer :: xsmrpool(:) ! (gC/m2) execss maint resp C pool
real(r8), pointer :: deadcrootc(:) ! (gC/m2) dead coarse root C
real(r8), pointer :: deadcrootc_storage(:) ! (gC/m2) dead coarse root C storage
real(r8), pointer :: deadcrootc_xfer(:) ! (gC/m2) dead coarse root C transfer
real(r8), pointer :: deadstemc(:) ! (gC/m2) dead stem C
real(r8), pointer :: deadstemc_storage(:) ! (gC/m2) dead stem C storage
real(r8), pointer :: deadstemc_xfer(:) ! (gC/m2) dead stem C transfer
real(r8), pointer :: frootc(:) ! (gC/m2) fine root C
real(r8), pointer :: frootc_storage(:) ! (gC/m2) fine root C storage
real(r8), pointer :: frootc_xfer(:) ! (gC/m2) fine root C transfer
real(r8), pointer :: gresp_storage(:) ! (gC/m2) growth respiration storage
real(r8), pointer :: gresp_xfer(:) ! (gC/m2) growth respiration transfer
real(r8), pointer :: leafc(:) ! (gC/m2) leaf C
real(r8), pointer :: leafc_storage(:) ! (gC/m2) leaf C storage
real(r8), pointer :: leafc_xfer(:) ! (gC/m2) leaf C transfer
real(r8), pointer :: livecrootc(:) ! (gC/m2) live coarse root C
real(r8), pointer :: livecrootc_storage(:) ! (gC/m2) live coarse root C storage
real(r8), pointer :: livecrootc_xfer(:) ! (gC/m2) live coarse root C transfer
real(r8), pointer :: livestemc(:) ! (gC/m2) live stem C
real(r8), pointer :: livestemc_storage(:) ! (gC/m2) live stem C storage
real(r8), pointer :: livestemc_xfer(:) ! (gC/m2) live stem C transfer
local pointers for dynamic landcover fluxes and states
real(r8), pointer :: dwt_seedc_to_leaf(:)
real(r8), pointer :: dwt_seedc_to_deadstem(:)
real(r8), pointer :: dwt_frootc_to_litr1c(:)
real(r8), pointer :: dwt_frootc_to_litr2c(:)
real(r8), pointer :: dwt_frootc_to_litr3c(:)
real(r8), pointer :: dwt_livecrootc_to_cwdc(:)
real(r8), pointer :: dwt_deadcrootc_to_cwdc(:)
real(r8), pointer :: seedc(:)
!OTHER LOCAL VARIABLES:
integer :: c,p ! indices
integer :: fp,fc ! lake filter indices
real(r8):: dt ! radiation time step (seconds)