next up previous contents
Next: Fortran: Module Interface CNVegStructUpdateMod Up: Fortran: Module Interface CNSummaryMod Previous: CSummary   Contents

NSummary


INTERFACE:

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

On the radiation time step, perform pft and column-level nitrogen summary calculations


USES:

    use clmtype
    use pft2colMod, only: p2c
ARGUMENTS:
    implicit none
    integer, intent(in) :: num_soilc       ! number of soil columns in 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:
   6/28/04: Created by Peter Thornton
LOCAL VARIABLES:
   local pointers to implicit in scalars
    integer , pointer :: ivt(:)            ! pft vegetation type
    real(r8), pointer :: col_fire_nloss(:) ! (gN/m2/s) total column-level fire N loss
    real(r8), pointer :: col_wood_harvestn(:)
    real(r8), pointer :: denit(:)
    real(r8), pointer :: m_cwdn_to_fire(:)              
    real(r8), pointer :: m_litr1n_to_fire(:)             
    real(r8), pointer :: m_litr2n_to_fire(:)             
    real(r8), pointer :: m_litr3n_to_fire(:)             
    real(r8), pointer :: col_pft_fire_nloss(:) ! (gN/m2/s) total pft-level fire C loss 
    real(r8), pointer :: sminn_to_denit_excess(:)
    real(r8), pointer :: sminn_to_denit_l1s1(:)
    real(r8), pointer :: sminn_to_denit_l2s2(:)
    real(r8), pointer :: sminn_to_denit_l3s3(:)
    real(r8), pointer :: sminn_to_denit_s1s2(:)
    real(r8), pointer :: sminn_to_denit_s2s3(:)
    real(r8), pointer :: sminn_to_denit_s3s4(:)
    real(r8), pointer :: sminn_to_denit_s4(:)  
    real(r8), pointer :: cwdn(:)               ! (gN/m2) coarse woody debris N
    real(r8), pointer :: litr1n(:)             ! (gN/m2) litter labile N
    real(r8), pointer :: litr2n(:)             ! (gN/m2) litter cellulose N
    real(r8), pointer :: litr3n(:)             ! (gN/m2) litter lignin N
    real(r8), pointer :: col_totpftn(:)        ! (gN/m2) total pft-level nitrogen
    real(r8), pointer :: col_totvegn(:)            ! (gN/m2) total vegetation nitrogen
    real(r8), pointer :: sminn(:)              ! (gN/m2) soil mineral N
    real(r8), pointer :: soil1n(:)             ! (gN/m2) soil organic matter N (fast pool)
    real(r8), pointer :: soil2n(:)             ! (gN/m2) soil organic matter N (medium pool)
    real(r8), pointer :: soil3n(:)             ! (gN/m2) soil orgainc matter N (slow pool)
    real(r8), pointer :: soil4n(:)             ! (gN/m2) soil orgainc matter N (slowest pool)
    real(r8), pointer :: col_ntrunc(:)         ! (gN/m2) column-level sink for N truncation
    real(r8), pointer :: totcoln(:)            ! (gN/m2) total column nitrogen, incl veg
    real(r8), pointer :: totecosysn(:)         ! (gN/m2) total ecosystem nitrogen, incl veg 
    real(r8), pointer :: totlitn(:)            ! (gN/m2) total litter nitrogen
    real(r8), pointer :: totsomn(:)            ! (gN/m2) total soil organic matter nitrogen
    real(r8), pointer :: m_deadcrootn_storage_to_fire(:) 
    real(r8), pointer :: m_deadcrootn_to_fire(:)         
    real(r8), pointer :: m_deadcrootn_xfer_to_fire(:)
    real(r8), pointer :: m_deadstemn_storage_to_fire(:)  
    real(r8), pointer :: m_deadstemn_to_fire(:)          
    real(r8), pointer :: m_deadstemn_xfer_to_fire(:) 
    real(r8), pointer :: m_frootn_storage_to_fire(:)     
    real(r8), pointer :: m_frootn_to_fire(:)             
    real(r8), pointer :: m_frootn_xfer_to_fire(:)    
    real(r8), pointer :: m_leafn_storage_to_fire(:)      
    real(r8), pointer :: m_leafn_to_fire(:)              
    real(r8), pointer :: m_leafn_xfer_to_fire(:)     
    real(r8), pointer :: m_livecrootn_storage_to_fire(:) 
    real(r8), pointer :: m_livecrootn_to_fire(:)         
    real(r8), pointer :: m_livecrootn_xfer_to_fire(:)
    real(r8), pointer :: m_livestemn_storage_to_fire(:)  
    real(r8), pointer :: m_livestemn_to_fire(:)          
    real(r8), pointer :: m_livestemn_xfer_to_fire(:) 
    real(r8), pointer :: m_retransn_to_fire(:)           
    real(r8), pointer :: hrv_deadstemn_to_prod10n(:)        
    real(r8), pointer :: hrv_deadstemn_to_prod100n(:)       
    real(r8), pointer :: ndeploy(:)
    real(r8), pointer :: pft_fire_nloss(:) ! (gN/m2/s) total pft-level fire C loss 
    real(r8), pointer :: retransn_to_npool(:)          
    real(r8), pointer :: sminn_to_npool(:)             
    real(r8), pointer :: deadcrootn(:)         ! (gN/m2) dead coarse root N
    real(r8), pointer :: deadcrootn_storage(:) ! (gN/m2) dead coarse root N storage
    real(r8), pointer :: deadcrootn_xfer(:)    ! (gN/m2) dead coarse root N transfer
    real(r8), pointer :: deadstemn(:)          ! (gN/m2) dead stem N
    real(r8), pointer :: deadstemn_storage(:)  ! (gN/m2) dead stem N storage
    real(r8), pointer :: deadstemn_xfer(:)     ! (gN/m2) dead stem N transfer
    real(r8), pointer :: dispvegn(:)           ! (gN/m2) displayed veg nitrogen, excluding storage
    real(r8), pointer :: frootn(:)             ! (gN/m2) fine root N
    real(r8), pointer :: frootn_storage(:)     ! (gN/m2) fine root N storage
    real(r8), pointer :: frootn_xfer(:)        ! (gN/m2) fine root N transfer
    real(r8), pointer :: leafn(:)              ! (gN/m2) leaf N 
    real(r8), pointer :: leafn_storage(:)      ! (gN/m2) leaf N storage
    real(r8), pointer :: leafn_xfer(:)         ! (gN/m2) leaf N transfer
    real(r8), pointer :: livecrootn(:)         ! (gN/m2) live coarse root N
    real(r8), pointer :: livecrootn_storage(:) ! (gN/m2) live coarse root N storage
    real(r8), pointer :: livecrootn_xfer(:)    ! (gN/m2) live coarse root N transfer
    real(r8), pointer :: grainn(:)             ! (gN/m2) grain N
    real(r8), pointer :: grainn_storage(:)     ! (gN/m2) grain N storage
    real(r8), pointer :: grainn_xfer(:)        ! (gN/m2) grain N transfer
    real(r8), pointer :: livestemn(:)          ! (gN/m2) live stem N
    real(r8), pointer :: livestemn_storage(:)  ! (gN/m2) live stem N storage
    real(r8), pointer :: livestemn_xfer(:)     ! (gN/m2) live stem N transfer
    real(r8), pointer :: retransn(:)           ! (gN/m2) plant pool of retranslocated N
    real(r8), pointer :: npool(:)              ! (gN/m2) temporary plant N pool
    real(r8), pointer :: pft_ntrunc(:)         ! (gN/m2) pft-level sink for N truncation
    real(r8), pointer :: storvegn(:)           ! (gN/m2) stored vegetation nitrogen
    real(r8), pointer :: totpftn(:)            ! (gN/m2) total pft-level nitrogen
    real(r8), pointer :: totvegn(:)            ! (gN/m2) total vegetation nitrogen
    ! for landcover change
    real(r8), pointer :: wood_harvestn(:)                    ! total N losses to wood product pools (gN/m2/s)
    real(r8), pointer :: dwt_nloss(:)          ! (gN/m2/s) total nitrogen loss from product pools and conversion
    real(r8), pointer :: dwt_conv_nflux(:)     ! (gN/m2/s) conversion N flux (immediate loss to atm)
    real(r8), pointer :: seedn(:)              ! (gN/m2) column-level pool for seeding new PFTs
    real(r8), pointer :: prod10n_loss(:)       ! (gN/m2/s) loss from 10-yr wood product pool
    real(r8), pointer :: prod100n_loss(:)      ! (gN/m2/s) loss from 100-yr wood product pool
    real(r8), pointer :: product_nloss(:)      ! (gN/m2/s) total wood product nitrogen loss
    real(r8), pointer :: prod10n(:)            ! (gN/m2) wood product N pool, 10-year lifespan
    real(r8), pointer :: prod100n(:)           ! (gN/m2) wood product N pool, 100-year lifespan
    real(r8), pointer :: totprodn(:)           ! (gN/m2) total wood product N
   local pointers to implicit in/out scalars
   local pointers to implicit out scalars
   !OTHER LOCAL VARIABLES:
    integer :: c,p         ! indices
    integer :: fp,fc       ! lake filter indices



Erik Kluzek 2011-06-15