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

SurfaceAlbedo


INTERFACE:

   subroutine SurfaceAlbedo (c, caldayp1, eccen, obliqr, lambm0, mvelpp)
DESCRIPTION:

   Surface albedo and two-stream fluxes
   Surface albedos. Also fluxes (per unit incoming direct and diffuse
   radiation) reflected, transmitted, and absorbed by vegetation. 
   Also sunlit fraction of the canopy. 
   The calling sequence is:
   -> SurfaceAlbedo:     albedos for next time step
      -> SnowAlbedo:   snow albedos: direct beam
      -> SnowAlbedo:   snow albedos: diffuse
      -> SoilAlbedo:   soil/lake/glacier/wetland albedos
      -> TwoStream:    absorbed, reflected, transmitted solar fluxes (vis dir)
      -> TwoStream:    absorbed, reflected, transmitted solar fluxes (vis dif)
      -> TwoStream:    absorbed, reflected, transmitted solar fluxes (nir dir)
      -> TwoStream:    absorbed, reflected, transmitted solar fluxes (nir dif)
USES:
     use shr_kind_mod, only: r8 => shr_kind_r8
     use clmtype
     use shr_orb_mod
ARGUMENTS:
     implicit none
     type (column_type),target,intent(inout):: c		!column derived type
     real(r8), intent(in) :: caldayp1 ! calendar day at Greenwich (1.00, ..., 365.99)
     real(r8), intent(in) :: eccen    ! Earth's orbital eccentricity
     real(r8), intent(in) :: obliqr   ! Earth's obliquity in radians
     real(r8), intent(in) :: lambm0   ! Mean longitude of perihelion at the vernal equinox
                                      ! (radians)
     real(r8), intent(in) :: mvelpp   ! Earth's moving vernal equinox long. of perihelion
CALLED FROM:
   subroutine lpjreset1 in module DGVMMod (only applicable when cpp token DGVM is defined)
   subroutine driver   
   subroutine iniTimeVar
REVISION HISTORY:
   Author: Gordon Bonan
   2/1/02, Peter Thornton: Migrate to new data structures
LOCAL VARIABLES:
   local pointers to implicit in scalars
     real(r8), pointer :: lat    !latitude (radians)
     real(r8), pointer :: lon    !longitude (radians)
     real(r8), pointer :: elai   !one-sided leaf area index with burying by snow
     real(r8), pointer :: esai   !one-sided stem area index with burying by snow
     real(r8), pointer :: h2osno !snow water (mm H2O)
     real(r8), pointer :: snowage   !non dimensional snow age [-]
   local pointers toimplicit out scalars
     real(r8), pointer :: fsun   !sunlit fraction of canopy
   local pointers toimplicit in arrays
     real(r8), dimension(:), pointer :: rhol    !leaf reflectance: 1=vis, 2=nir
     real(r8), dimension(:), pointer :: rhos    !stem reflectance: 1=vis, 2=nir
     real(r8), dimension(:), pointer :: taul    !leaf transmittance: 1=vis, 2=nir
     real(r8), dimension(:), pointer :: taus    !stem transmittance: 1=vis, 2=nir 
   local pointers toimplicit out arrays
     real(r8), dimension(:), pointer :: albgrd  !ground albedo (direct)
     real(r8), dimension(:), pointer :: albgri  !ground albedo (diffuse)
     real(r8), dimension(:), pointer :: albd    !surface albedo (direct)
     real(r8), dimension(:), pointer :: albi    !surface albedo (diffuse)
     real(r8), dimension(:), pointer :: fabd    !flux absorbed by veg per unit direct flux
     real(r8), dimension(:), pointer :: fabi    !flux absorbed by veg per unit diffuse flux
     real(r8), dimension(:), pointer :: ftdd    !down direct flux below veg per unit dir flx
     real(r8), dimension(:), pointer :: ftid    !down diffuse flux below veg per unit dir flx
     real(r8), dimension(:), pointer :: ftii    !down diffuse flux below veg per unit dif flx



Mariana Vertenstein 2003-01-14