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

CNFireFluxes


INTERFACE:

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

Fire effects routine for coupled carbon-nitrogen code (CN). Relies primarily on estimate of fractional area burned in this timestep, from CNFireArea().


USES:

    use clmtype
    use clm_time_manager, only: get_step_size
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:
   7/23/04: Created by Peter Thornton
LOCAL VARIABLES:
   local pointers to implicit in scalars
 #if (defined CNDV)
    real(r8), pointer :: nind(:)         ! number of individuals (#/m2)
 #endif
    integer , pointer :: ivt(:)          ! pft vegetation type
    real(r8), pointer :: woody(:)        ! binary flag for woody lifeform (1=woody, 0=not woody)
    real(r8), pointer :: resist(:)       ! resistance to fire (no units)
    integer , pointer :: pcolumn(:)      ! pft's column index
    real(r8), pointer :: farea_burned(:) ! timestep fractional area burned (proportion)
    real(r8), pointer :: m_cwdc_to_fire(:)
    real(r8), pointer :: m_deadcrootc_to_cwdc_fire(:)
    real(r8), pointer :: m_deadstemc_to_cwdc_fire(:)
    real(r8), pointer :: m_litr1c_to_fire(:)             
    real(r8), pointer :: m_litr2c_to_fire(:)             
    real(r8), pointer :: m_litr3c_to_fire(:)             
    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 :: m_cwdn_to_fire(:)              
    real(r8), pointer :: m_deadcrootn_to_cwdn_fire(:)
    real(r8), pointer :: m_deadstemn_to_cwdn_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 :: 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 :: m_deadcrootc_storage_to_fire(:) 
    real(r8), pointer :: m_deadcrootc_to_fire(:)         
    real(r8), pointer :: m_deadcrootc_to_litter_fire(:)         
    real(r8), pointer :: m_deadcrootc_xfer_to_fire(:)
    real(r8), pointer :: m_deadstemc_storage_to_fire(:)  
    real(r8), pointer :: m_deadstemc_to_fire(:)
    real(r8), pointer :: m_deadstemc_to_litter_fire(:)
    real(r8), pointer :: m_deadstemc_to_litter(:)
    real(r8), pointer :: m_livestemc_to_litter(:)
    real(r8), pointer :: m_deadcrootc_to_litter(:)
    real(r8), pointer :: m_livecrootc_to_litter(:)
    real(r8), pointer :: m_deadstemc_xfer_to_fire(:) 
    real(r8), pointer :: m_frootc_storage_to_fire(:)     
    real(r8), pointer :: m_frootc_to_fire(:)             
    real(r8), pointer :: m_frootc_xfer_to_fire(:)    
    real(r8), pointer :: m_gresp_storage_to_fire(:)      
    real(r8), pointer :: m_gresp_xfer_to_fire(:)    
    real(r8), pointer :: m_leafc_storage_to_fire(:)      
    real(r8), pointer :: m_leafc_to_fire(:)             
    real(r8), pointer :: m_leafc_xfer_to_fire(:)     
    real(r8), pointer :: m_livecrootc_storage_to_fire(:) 
    real(r8), pointer :: m_livecrootc_to_fire(:)         
    real(r8), pointer :: m_livecrootc_xfer_to_fire(:)
    real(r8), pointer :: m_livestemc_storage_to_fire(:)  
    real(r8), pointer :: m_livestemc_to_fire(:)          
    real(r8), pointer :: m_livestemc_xfer_to_fire(:) 
    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 :: leafcmax(:)           ! (gC/m2) ann max 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
    real(r8), pointer :: m_deadcrootn_storage_to_fire(:) 
    real(r8), pointer :: m_deadcrootn_to_fire(:)         
    real(r8), pointer :: m_deadcrootn_to_litter_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_to_litter_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 :: 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 :: 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 :: 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
   !OTHER LOCAL VARIABLES:
    !real(r8), parameter:: wcf = 0.2_r8 ! wood combustion fraction
    real(r8), parameter:: wcf = 0.4_r8 ! wood combustion fraction
    integer :: c,p                  ! indices
    integer :: fp,fc                ! filter indices
    real(r8):: f                    ! rate for fire effects (1/s)
    real(r8):: dt                   ! time step variable (s)



Erik Kluzek 2011-06-15