next up previous contents
Next: CNHarvestPftToColumn Up: Fortran: Module Interface pftdynMod Previous: pftwt_interp (Source File: pftdynMod.F90)   Contents

CNHarvest


INTERFACE:

 subroutine CNHarvest (num_soilc, filter_soilc, num_soilp, filter_soilp)
DESCRIPTION:

Harvest mortality routine for coupled carbon-nitrogen code (CN)


USES:

    use clmtype
    use pftvarcon       , only : noveg, nbrdlf_evr_shrub, pprodharv10
    use clm_varcon      , only : secspday
    use clm_time_manager, only : get_days_per_year
ARGUMENTS:
    implicit none
    integer, intent(in) :: num_soilc       ! number of soil columns in filter
    integer, intent(in) :: filter_soilc(:) ! column filter for soil points
    integer, intent(in) :: num_soilp       ! number of soil pfts in filter
    integer, intent(in) :: filter_soilp(:) ! pft filter for soil points
CALLED FROM:
   subroutine CNEcosystemDyn
REVISION HISTORY:
   3/29/04: Created by Peter Thornton
LOCAL VARIABLES:
   local pointers to implicit in arrays
    integer , pointer :: pgridcell(:)   ! pft-level index into gridcell-level quantities
    integer , pointer :: ivt(:)         ! pft vegetation type
 
    real(r8), pointer :: leafc(:)              ! (gC/m2) leaf C
    real(r8), pointer :: frootc(:)             ! (gC/m2) fine root C
    real(r8), pointer :: livestemc(:)          ! (gC/m2) live stem C
    real(r8), pointer :: deadstemc(:)          ! (gC/m2) dead stem C
    real(r8), pointer :: livecrootc(:)         ! (gC/m2) live coarse root C
    real(r8), pointer :: deadcrootc(:)         ! (gC/m2) dead coarse root C
    real(r8), pointer :: xsmrpool(:)           ! (gC/m2) abstract C pool to meet excess MR demand
    real(r8), pointer :: leafc_storage(:)      ! (gC/m2) leaf C storage
    real(r8), pointer :: frootc_storage(:)     ! (gC/m2) fine root C storage
    real(r8), pointer :: livestemc_storage(:)  ! (gC/m2) live stem C storage
    real(r8), pointer :: deadstemc_storage(:)  ! (gC/m2) dead stem C storage
    real(r8), pointer :: livecrootc_storage(:) ! (gC/m2) live coarse root C storage
    real(r8), pointer :: deadcrootc_storage(:) ! (gC/m2) dead coarse root C storage
    real(r8), pointer :: gresp_storage(:)      ! (gC/m2) growth respiration storage
    real(r8), pointer :: leafc_xfer(:)         ! (gC/m2) leaf C transfer
    real(r8), pointer :: frootc_xfer(:)        ! (gC/m2) fine root C transfer
    real(r8), pointer :: livestemc_xfer(:)     ! (gC/m2) live stem C transfer
    real(r8), pointer :: deadstemc_xfer(:)     ! (gC/m2) dead stem C transfer
    real(r8), pointer :: livecrootc_xfer(:)    ! (gC/m2) live coarse root C transfer
    real(r8), pointer :: deadcrootc_xfer(:)    ! (gC/m2) dead coarse root C transfer
    real(r8), pointer :: gresp_xfer(:)         ! (gC/m2) growth respiration transfer
    real(r8), pointer :: leafn(:)              ! (gN/m2) leaf N
    real(r8), pointer :: frootn(:)             ! (gN/m2) fine root N
    real(r8), pointer :: livestemn(:)          ! (gN/m2) live stem N
    real(r8), pointer :: deadstemn(:)          ! (gN/m2) dead stem N
    real(r8), pointer :: livecrootn(:)         ! (gN/m2) live coarse root N
    real(r8), pointer :: deadcrootn(:)         ! (gN/m2) dead coarse root N
    real(r8), pointer :: retransn(:)           ! (gN/m2) plant pool of retranslocated N
    real(r8), pointer :: leafn_storage(:)      ! (gN/m2) leaf N storage
    real(r8), pointer :: frootn_storage(:)     ! (gN/m2) fine root N storage
    real(r8), pointer :: livestemn_storage(:)  ! (gN/m2) live stem N storage
    real(r8), pointer :: deadstemn_storage(:)  ! (gN/m2) dead stem N storage
    real(r8), pointer :: livecrootn_storage(:) ! (gN/m2) live coarse root N storage
    real(r8), pointer :: deadcrootn_storage(:) ! (gN/m2) dead coarse root N storage
    real(r8), pointer :: leafn_xfer(:)         ! (gN/m2) leaf N transfer
    real(r8), pointer :: frootn_xfer(:)        ! (gN/m2) fine root N transfer
    real(r8), pointer :: livestemn_xfer(:)     ! (gN/m2) live stem N transfer
    real(r8), pointer :: deadstemn_xfer(:)     ! (gN/m2) dead stem N transfer
    real(r8), pointer :: livecrootn_xfer(:)    ! (gN/m2) live coarse root N transfer
    real(r8), pointer :: deadcrootn_xfer(:)    ! (gN/m2) dead coarse root N transfer
   local pointers to implicit in/out arrays
   local pointers to implicit out arrays
    real(r8), pointer :: hrv_leafc_to_litter(:)
    real(r8), pointer :: hrv_frootc_to_litter(:)
    real(r8), pointer :: hrv_livestemc_to_litter(:)
    real(r8), pointer :: hrv_deadstemc_to_prod10c(:)
    real(r8), pointer :: hrv_deadstemc_to_prod100c(:)
    real(r8), pointer :: hrv_livecrootc_to_litter(:)
    real(r8), pointer :: hrv_deadcrootc_to_litter(:)
    real(r8), pointer :: hrv_xsmrpool_to_atm(:)
    real(r8), pointer :: hrv_leafc_storage_to_litter(:)
    real(r8), pointer :: hrv_frootc_storage_to_litter(:)
    real(r8), pointer :: hrv_livestemc_storage_to_litter(:)
    real(r8), pointer :: hrv_deadstemc_storage_to_litter(:)
    real(r8), pointer :: hrv_livecrootc_storage_to_litter(:)
    real(r8), pointer :: hrv_deadcrootc_storage_to_litter(:)
    real(r8), pointer :: hrv_gresp_storage_to_litter(:)
    real(r8), pointer :: hrv_leafc_xfer_to_litter(:)
    real(r8), pointer :: hrv_frootc_xfer_to_litter(:)
    real(r8), pointer :: hrv_livestemc_xfer_to_litter(:)
    real(r8), pointer :: hrv_deadstemc_xfer_to_litter(:)
    real(r8), pointer :: hrv_livecrootc_xfer_to_litter(:)
    real(r8), pointer :: hrv_deadcrootc_xfer_to_litter(:)
    real(r8), pointer :: hrv_gresp_xfer_to_litter(:)
    real(r8), pointer :: hrv_leafn_to_litter(:)
    real(r8), pointer :: hrv_frootn_to_litter(:)
    real(r8), pointer :: hrv_livestemn_to_litter(:)
    real(r8), pointer :: hrv_deadstemn_to_prod10n(:)
    real(r8), pointer :: hrv_deadstemn_to_prod100n(:)
    real(r8), pointer :: hrv_livecrootn_to_litter(:)
    real(r8), pointer :: hrv_deadcrootn_to_litter(:)
    real(r8), pointer :: hrv_retransn_to_litter(:)
    real(r8), pointer :: hrv_leafn_storage_to_litter(:)
    real(r8), pointer :: hrv_frootn_storage_to_litter(:)
    real(r8), pointer :: hrv_livestemn_storage_to_litter(:)
    real(r8), pointer :: hrv_deadstemn_storage_to_litter(:)
    real(r8), pointer :: hrv_livecrootn_storage_to_litter(:)
    real(r8), pointer :: hrv_deadcrootn_storage_to_litter(:)
    real(r8), pointer :: hrv_leafn_xfer_to_litter(:)
    real(r8), pointer :: hrv_frootn_xfer_to_litter(:)
    real(r8), pointer :: hrv_livestemn_xfer_to_litter(:)
    real(r8), pointer :: hrv_deadstemn_xfer_to_litter(:)
    real(r8), pointer :: hrv_livecrootn_xfer_to_litter(:)
    real(r8), pointer :: hrv_deadcrootn_xfer_to_litter(:)
   !OTHER LOCAL VARIABLES:
    integer :: p                         ! pft index
    integer :: g                         ! gridcell index
    integer :: fp                        ! pft filter index
    real(r8):: am                        ! rate for fractional harvest mortality (1/yr)
    real(r8):: m                         ! rate for fractional harvest mortality (1/s)
    real(r8):: days_per_year             ! days per year



Erik Kluzek 2011-06-15