next up previous contents
Next: Fortran: Module Interface C13StateUpdate2Mod Up: Fortran: Module Interface C13FluxMod Previous: C13StateUpdate0   Contents

C13StateUpdate1


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 CNEcosystemDyn
REVISION HISTORY:
   8/1/03: Created by Peter Thornton
   12/5/03, Peter Thornton: Added livewood turnover fluxes
LOCAL 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)



Erik Kluzek 2011-06-15