next up previous contents
Next: CNGapPftToColumn Up: Fortran: Module Interface CNGapMortalityMod Previous: Fortran: Module Interface CNGapMortalityMod   Contents

CNGapMortality


INTERFACE:

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

Gap-phase mortality routine for coupled carbon-nitrogen code (CN)


USES:

    use clmtype
    use clm_time_manager, only: get_days_per_year
    use clm_varcon      , only: secspday
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 :: ivt(:)         ! pft vegetation type
    real(r8), pointer :: woody(:)       ! binary flag for woody lifeform
                                        ! (1=woody, 0=not woody)
    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 :: 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
 #if (defined CNDV)
    real(r8), pointer :: greffic(:)
    real(r8), pointer :: heatstress(:)
 #endif
   local pointers to implicit in/out arrays
   local pointers to implicit out arrays
    real(r8), pointer :: m_leafc_to_litter(:)
    real(r8), pointer :: m_frootc_to_litter(:)
    real(r8), pointer :: m_livestemc_to_litter(:)
    real(r8), pointer :: m_deadstemc_to_litter(:)
    real(r8), pointer :: m_livecrootc_to_litter(:)
    real(r8), pointer :: m_deadcrootc_to_litter(:)
    real(r8), pointer :: m_leafc_storage_to_litter(:)
    real(r8), pointer :: m_frootc_storage_to_litter(:)
    real(r8), pointer :: m_livestemc_storage_to_litter(:)
    real(r8), pointer :: m_deadstemc_storage_to_litter(:)
    real(r8), pointer :: m_livecrootc_storage_to_litter(:)
    real(r8), pointer :: m_deadcrootc_storage_to_litter(:)
    real(r8), pointer :: m_gresp_storage_to_litter(:)
    real(r8), pointer :: m_leafc_xfer_to_litter(:)
    real(r8), pointer :: m_frootc_xfer_to_litter(:)
    real(r8), pointer :: m_livestemc_xfer_to_litter(:)
    real(r8), pointer :: m_deadstemc_xfer_to_litter(:)
    real(r8), pointer :: m_livecrootc_xfer_to_litter(:)
    real(r8), pointer :: m_deadcrootc_xfer_to_litter(:)
    real(r8), pointer :: m_gresp_xfer_to_litter(:)
    real(r8), pointer :: m_leafn_to_litter(:)
    real(r8), pointer :: m_frootn_to_litter(:)
    real(r8), pointer :: m_livestemn_to_litter(:)
    real(r8), pointer :: m_deadstemn_to_litter(:)
    real(r8), pointer :: m_livecrootn_to_litter(:)
    real(r8), pointer :: m_deadcrootn_to_litter(:)
    real(r8), pointer :: m_retransn_to_litter(:)
    real(r8), pointer :: m_leafn_storage_to_litter(:)
    real(r8), pointer :: m_frootn_storage_to_litter(:)
    real(r8), pointer :: m_livestemn_storage_to_litter(:)
    real(r8), pointer :: m_deadstemn_storage_to_litter(:)
    real(r8), pointer :: m_livecrootn_storage_to_litter(:)
    real(r8), pointer :: m_deadcrootn_storage_to_litter(:)
    real(r8), pointer :: m_leafn_xfer_to_litter(:)
    real(r8), pointer :: m_frootn_xfer_to_litter(:)
    real(r8), pointer :: m_livestemn_xfer_to_litter(:)
    real(r8), pointer :: m_deadstemn_xfer_to_litter(:)
    real(r8), pointer :: m_livecrootn_xfer_to_litter(:)
    real(r8), pointer :: m_deadcrootn_xfer_to_litter(:)
   !OTHER LOCAL VARIABLES:
    integer :: p                         ! pft index
    integer :: fp                        ! pft filter index
    real(r8):: am                        ! rate for fractional mortality (1/yr)
    real(r8):: m                         ! rate for fractional mortality (1/s)
    real(r8):: mort_max                  ! asymptotic max mortality rate (/yr)
    real(r8), parameter :: k_mort = 0.3  !coeff of growth efficiency in mortality equation



Erik Kluzek 2011-06-15