CCPP Scientific Documentation
v4.1.0
subroutine, public module_radiation_surface::setalb ( real (kind=kind_phys), dimension(:), intent(in)  slmsk,
real (kind=kind_phys), dimension(:), intent(in)  snowf,
real (kind=kind_phys), dimension(:), intent(in)  sncovr,
real (kind=kind_phys), dimension(:), intent(in)  snoalb,
real (kind=kind_phys), dimension(:), intent(in)  zorlf,
real (kind=kind_phys), dimension(:), intent(in)  coszf,
real (kind=kind_phys), dimension(:), intent(in)  tsknf,
real (kind=kind_phys), dimension(:), intent(in)  tairf,
real (kind=kind_phys), dimension(:), intent(in)  hprif,
real (kind=kind_phys), dimension(:), intent(in)  alvsf,
real (kind=kind_phys), dimension(:), intent(in)  alnsf,
real (kind=kind_phys), dimension(:), intent(in)  alvwf,
real (kind=kind_phys), dimension(:), intent(in)  alnwf,
real (kind=kind_phys), dimension(:), intent(in)  facsf,
real (kind=kind_phys), dimension(:), intent(in)  facwf,
real (kind=kind_phys), dimension(:), intent(in)  fice,
real (kind=kind_phys), dimension(:), intent(in)  tisfc,
integer, intent(in)  IMAX,
real (kind=kind_phys), dimension(:), intent(in)  albPpert,
real (kind=kind_phys), dimension(5), intent(in)  pertalb,
real (kind=kind_phys), dimension(imax,nf_albd), intent(out)  sfcalb 
)
Parameters
slmsk(IMAX), sea(0),land(1),ice(2) mask on fcst model grid
snowf(IMAX), snow depth water equivalent in mm
sncovr(IMAX), snow cover over land
snoalb(IMAX), maximum snow albedo over land (for deep snow)
zorlf(IMAX), surface roughness in cm
coszf(IMAX), cosin of solar zenith angle
tsknf(IMAX), ground surface temperature in K
tairf(IMAX), lowest model layer air temperature in K
hprif(IMAX), topographic sdv in m
— for ialbflg=0 climtological albedo scheme —
alvsf(IMAX), 60 degree vis albedo with strong cosz dependency
alnsf(IMAX), 60 degree nir albedo with strong cosz dependency
alvwf(IMAX), 60 degree vis albedo with weak cosz dependency
alnwf(IMAX), 60 degree nir albedo with weak cosz dependency
— for ialbflg=1 MODIS based land albedo scheme —
alvsf(IMAX), visible black sky albedo at zenith 60 degree
alnsf(IMAX), near-ir black sky albedo at zenith 60 degree
alvwf(IMAX), visible white sky albedo
alnwf(IMAX), near-ir white sky albedo
facsf(IMAX), fractional coverage with strong cosz dependency
facwf(IMAX), fractional coverage with weak cosz dependency
fice(IMAX), sea-ice fraction
tisfc(IMAX), sea-ice surface temperature
IMAXarray horizontal dimension
albppert(IMAX), a probability value in the interval [0,1]
pertalb(5), magnitude of perturbation of surface albedo
sfcalb(IMAX,NF_ALBD), mean sfc albedo
( :, 1) - near ir direct beam albedo
( :, 2) - near ir diffused albedo
( :, 3) - uv+vis direct beam albedo
( :, 4) - uv+vis diffused albedo

setalb General Algorithm

  • If use climatological albedo scheme:
    • Modified snow albedo scheme - units convert to m (originally snowf in mm; zorlf in cm)
    • Calculate diffused sea surface albedo
    • Calculate diffused snow albedo.
    • Calculate direct snow albedo.
    • Calculate direct sea surface albedo.
  • If use modis based albedo for land area:
    • Calculate snow cover input directly for land model, no conversion needed.
    • Calculate diffused sea surface albedo.
    • Calculate diffused snow albedo, land area use input max snow albedo.
    • Calculate direct snow albedo.
    • Calculate direct sea surface albedo, use fanglin's zenith angle treatment.
  • Call ppebet () to perturb all 4 elements of surface albedo sfcalb(:,1:4).

References physcons::con_t0c, physcons::con_tice, physcons::con_ttp, csnow(), f_one, f_zero, and physparam::ialbflg.

Here is the call graph for this function: