next up previous contents index
Next: Module abortutils (File: abortutils.F90) Up: Module VOCEmissionMod (File: VOCEmissionMod.F90) Previous: Module VOCEmissionMod (File: VOCEmissionMod.F90)   Contents   Index


VOCEmission


INTERFACE:

   subroutine VOCEmission (lbp, ubp, num_nolakep, filter_nolakep)
DESCRIPTION:

   Volatile organic compound emission
   This code simulates volatile organic compound emissions
   following the algorithm presented in Guenther, A., 1999: Modeling
   Biogenic Volatile Organic Compound Emissions to the Atmosphere. In
   Reactive Hydrocarbons in the Atmosphere, Ch. 3
   This model relies on the assumption that 90% of isoprene and monoterpene
   emissions originate from canopy foliage:
      E = epsilon * gamma * density * delta
   The factor delta (longterm activity factor) applies to isoprene emission
   from deciduous plants only. We neglect this factor at the present time.
   This factor is discussed in Guenther (1997).
   Subroutine written to operate at the patch level.
   IN FINAL IMPLEMENTATION, REMEMBER:
   1. may wish to call this routine only as freq. as rad. calculations
   2. may wish to place epsilon values directly in pft-physiology file
   Output: vocflx(nvoc) !VOC flux [ug C m-2 h-1]
USES:
     use shr_kind_mod , only : r8 => shr_kind_r8
     use clmtype
     use shr_const_mod, only : SHR_CONST_RGAS
ARGUMENTS:
     implicit none
     integer, intent(in) :: lbp, ubp                    ! pft bounds
     integer, intent(in) :: num_nolakep                 ! number of column non
     integer, intent(in) :: filter_nolakep(num_nolakep) ! pft filter for non-l
CALLED FROM:
REVISION HISTORY:
   Author: Sam Levis
   2/1/02, Peter Thornton: migration to new data structure
LOCAL VARIABLES:
   local pointers to implicit in arguments
     integer , pointer :: pgridcell(:)     ! gridcell index of corresponding p
     integer , pointer :: ivt(:)           ! pft vegetation type for current
     real(r8), pointer :: t_veg(:)         ! pft vegetation temperature (Kelvi
     real(r8), pointer :: fsun(:)          ! sunlit fraction of canopy
     real(r8), pointer :: elai(:)          ! one-sided leaf area index with bu
     real(r8), pointer :: forc_solad(:,:)  ! direct beam radiation (visible on
     real(r8), pointer :: forc_solai(:,:)  ! diffuse radiation     (visible on
     real(r8), pointer :: sla(:)           ! ecophys constant - specific leaf 
   local pointers to original implicit out arrays
     real(r8), pointer :: vocflx(:,:)      ! VOC flux [ug C m-2 h-1]
     real(r8), pointer :: vocflx_tot(:)    ! VOC flux [ug C m-2 h-1]
     real(r8), pointer :: vocflx_1(:)      ! VOC flux(1) [ug C m-2 h-1]
     real(r8), pointer :: vocflx_2(:)      ! VOC flux(2) [ug C m-2 h-1]
     real(r8), pointer :: vocflx_3(:)      ! VOC flux(3) [ug C m-2 h-1]
     real(r8), pointer :: vocflx_4(:)      ! VOC flux(4) [ug C m-2 h-1]
     real(r8), pointer :: vocflx_5(:)      ! VOC flux(5) [ug C m-2 h-1]



Mariana Vertenstein 2004-06-21