next up previous contents
Next: SnowAge Up: Fortran: Module Interface SurfaceAlbedoMod Previous: SoilAlbedo   Contents

TwoStream


INTERFACE:

   subroutine TwoStream  (p, coszen, vai, rho, tau, albgrd, albgri, &
        fabd, albd, ftdd, ftid, &
        fabi, albi, ftdi, ftii, gdir)
DESCRIPTION:

   Two-stream fluxes for canopy radiative transfer
   Use two-stream approximation of Dickinson (1983) Adv Geophysics
   25:305-353 and Sellers (1985) Int J Remote Sensing 6:1335-1372
   to calculate fluxes absorbed by vegetation, reflected by vegetation,
   and transmitted through vegetation for unit incoming direct or diffuse 
   flux given an underlying surface with known albedo.
USES:
     use shr_kind_mod, only: r8 => shr_kind_r8
     use clmtype
     use clm_varpar, only : numrad
     use clm_varcon, only : omegas, tfrz, betads, betais
ARGUMENTS:
     implicit none
     type (pft_type), target, intent(inout) :: p	 !pft derived type
     real(r8), intent(in)  :: coszen          !cosine solar zenith angle for next time step
     real(r8), intent(in)  :: vai             !elai+esai
     real(r8), intent(in)  :: rho(numrad)     !leaf/stem refl weighted by fraction LAI and SAI
     real(r8), intent(in)  :: tau(numrad)     !leaf/stem tran weighted by fraction LAI and SAI
     real(r8), intent(in)  :: albgrd(numrad)  !ground albedo (direct)
     real(r8), intent(in)  :: albgri(numrad)  !ground albedo (diffuse)
     real(r8), intent(out) :: albd(numrad)    !surface albedo (direct)
     real(r8), intent(out) :: albi(numrad)    !surface albedo (diffuse)
     real(r8), intent(out) :: fabd(numrad)    !flux absorbed by veg per unit direct flux
     real(r8), intent(out) :: fabi(numrad)    !flux absorbed by veg per unit diffuse flux
     real(r8), intent(out) :: ftdd(numrad)    !down direct flux below veg per unit dir flx
     real(r8), intent(out) :: ftdi(numrad)    !down direct flux below veg per unit dif flux 
     real(r8), intent(out) :: ftid(numrad)    !down diffuse flux below veg per unit dir flx
     real(r8), intent(out) :: ftii(numrad)    !down diffuse flux below veg per unit dif flx
     real(r8), intent(out) :: gdir            !aver projected leaf/stem area in solar direction
CALLED FROM:
   subroutine SurfaceAlbedo in this module
REVISION HISTORY:
   Author: Gordon Bonan
   Modified for speedup: Mariana Vertenstein, 8/26/02
LOCAL VARIABLES:
   local pointers to implicit in scalars
     real(r8), pointer :: xl     !leaf/stem orientation index
     real(r8), pointer :: t_veg  !vegetation temperature (Kelvin)
     real(r8), pointer :: fwet   !fraction of canopy that is wet (0 to 1)



Mariana Vertenstein 2003-01-14