INTERFACE:
subroutine SurfaceRadiation (c)DESCRIPTION:
Solar fluxes absorbed by vegetation and ground surface Note possible problem when land is on different grid than atmosphere. Land may have sun above the horizon (coszen > 0) but atmosphere may have sun below the horizon (forc_solad = 0 and forc_solai = 0). This is okay because all fluxes (absorbed, reflected, transmitted) are multiplied by the incoming flux and all will equal zero. Atmosphere may have sun above horizon (forc_solad > 0 and forc_solai > 0) but land may have sun below horizon. This is okay because fabd, fabi, ftdd, ftid, and ftii all equal zero so that sabv=sabg=fsa=0. Also, albd and albi equal one so that fsr=forc_solad+forc_solai. In other words, all the radiation is reflected. NDVI should equal zero in this case. However, the way the code is currently implemented this is only true if (forc_solad+forc_solai)|vis = (forc_solad+forc_solai)|nir. Output variables are parsun,parsha,sabv,sabg,fsa,fsr,ndviUSES:
use clmtypeARGUMENTS:
implicit none
type (column_type),target,intent(inout):: c !column derived type
CALLED FROM:
subroutine Biogeophysics1 in module Biogeophysics1Mod subroutine BiogeophysicsLake in module BiogeophysicsLakeModREVISION HISTORY:
Author: Gordon Bonan 2/18/02, Peter Thornton: Migrated to new data structures. Added a pft loop.LOCAL VARIABLES:
local pointers to original implicit in scalars
real(r8),pointer:: fsun !sunlit fraction of canopy
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
local pointers to original implicit out scalars
real(r8),pointer:: laisun !sunlit leaf area
real(r8),pointer:: laisha !shaded leaf area
real(r8),pointer:: sabg !solar radiation absorbed by ground (W/m**2)
real(r8),pointer:: sabv !solar radiation absorbed by vegetation (W/m**2)
real(r8),pointer:: fsa !solar radiation absorbed (total) (W/m**2)
real(r8),pointer:: parsun !average absorbed PAR for sunlit leaves (W/m**2)
real(r8),pointer:: parsha !average absorbed PAR for shaded leaves (W/m**2)
real(r8),pointer:: fsr !solar radiation reflected (W/m**2)
real(r8),pointer:: ndvi !Normalized Difference Vegetation Index
local pointers to original implicit in arrays
real(r8),dimension(:),pointer:: forc_solad !direct beam radiation (W/m**2)
real(r8),dimension(:),pointer:: forc_solai !diffuse radiation (W/m**2)
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
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)