INTERFACE:
subroutine SoilAlbedo (lbc, ubc, num_nourbanc, filter_nourbanc, coszen, albsnd, albsni)DESCRIPTION:
Determine ground surface albedo, accounting for snow
USES:
use clmtype
use clm_varpar, only : numrad
use clm_varcon, only : albsat, albdry, alblak, tfrz, istice, istice_mec
ARGUMENTS:
implicit none
integer , intent(in) :: lbc, ubc ! column bounds
integer , intent(in) :: num_nourbanc ! number of columns in non-urban points in column filter
integer , intent(in) :: filter_nourbanc(ubc-lbc+1) ! column filter for non-urban points
real(r8), intent(in) :: coszen(lbc:ubc) ! cos solar zenith angle next time step (column-level)
real(r8), intent(in) :: albsnd(lbc:ubc,numrad) ! snow albedo (direct)
real(r8), intent(in) :: albsni(lbc:ubc,numrad) ! snow albedo (diffuse)
CALLED FROM:
subroutine SurfaceAlbedo in this moduleREVISION HISTORY:
Author: Gordon Bonan 2/5/02, Peter Thornton: Migrated to new data structures. 8/20/03, Mariana Vertenstein: Vectorized routine 03/28/08, Mark Flanner: changes for SNICARLOCAL VARIABLES:
local pointers to original implicit in arguments
integer , pointer :: clandunit(:) ! landunit of corresponding column
integer , pointer :: ltype(:) ! landunit type
integer , pointer :: isoicol(:) ! soil color class
real(r8), pointer :: t_grnd(:) ! ground temperature (Kelvin)
real(r8), pointer :: frac_sno(:) ! fraction of ground covered by snow (0 to 1)
real(r8), pointer :: h2osoi_vol(:,:) ! volumetric soil water [m3/m3]
local pointers to original implicit out arguments
real(r8), pointer:: albgrd(:,:) ! ground albedo (direct)
real(r8), pointer:: albgri(:,:) ! ground albedo (diffuse)
! albsod and albsoi are now clm_type variables so they can be used by SNICAR.
real(r8), pointer :: albsod(:,:) ! soil albedo (direct)
real(r8), pointer :: albsoi(:,:) ! soil albedo (diffuse)
!OTHER LOCAL VARIABLES: