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 iniTimeVarREVISION HISTORY:
Author: Gordon Bonan 2/1/02, Peter Thornton: Migrate to new data structuresLOCAL 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