← Back to Documentation Home
CCPP SciDoc v8.0.0  v8.0.0
Common Community Physics Package Developed at DTC
 
Loading...
Searching...
No Matches
Radiation Surface Module

This module sets up surface albedo for SW radiation and surface emissivity for LW radiation. More...

Modules

module  module_radiation_surface
 This module sets up surface albedo for SW radiation and surface emissivity for LW radiation.

 

Functions/Subroutines

subroutine, public module_radiation_surface::sfc_init (mpicomm, mpirank, mpiroot, ialbflg, iemsflg, semis_file, con_pi, errmsg, errflg)
 This subroutine is the initialization program for surface radiation related quantities (albedo, emissivity, etc.)
 
subroutine, public module_radiation_surface::setalb (slmsk, lsm, lsm_noahmp, lsm_ruc, use_cice_alb, snodi, sncovr, sncovr_ice, snoalb, zorlf, coszf, tsknf, tairf, hprif, frac_grid, lakefrac, alvsf, alnsf, alvwf, alnwf, facsf, facwf, fice, tisfc, lsmalbdvis, lsmalbdnir, lsmalbivis, lsmalbinir, icealbdvis, icealbdnir, icealbivis, icealbinir, imax, albppert, pertalb, fracl, fraco, fraci, icy, ialbflg, con_ttp, sfcalb)
 This subroutine computes four components of surface albedos (i.e., vis-nir, direct-diffused) according to control flag ialbflg.
1) climatological surface albedo scheme ([27])
2) MODIS retrieval based scheme from Boston univ.
 
subroutine, public module_radiation_surface::setemis (lsm, lsm_noahmp, lsm_ruc, frac_grid, cplice, use_lake_model, lakefrac, xlon, xlat, slmsk, snodl, snodi, sncovr, sncovr_ice, zorlf, tsknf, tairf, hprif, semis_lnd, semis_ice, semis_wat, imax, fracl, fraco, fraci, icy, semisbase, sfcemis)
 This subroutine computes surface emissivity for LW radiation.
 

Variables

integer, parameter, public module_radiation_surface::imxems = 360
 
integer, parameter, public module_radiation_surface::jmxems = 180
 
real(kind=kind_phys), parameter, public module_radiation_surface::f_zero = 0.0
 
real(kind=kind_phys), parameter, public module_radiation_surface::f_one = 1.0
 
real(kind=kind_phys), parameter, public module_radiation_surface::epsln = 1.0e-6
 

Detailed Description

This module sets up surface albedo for SW radiation and surface emissivity for LW radiation.

In the module, the externally callable subroutines are :

SW surface albedo (namelist control parameter - IALB=1)
IALB=1: MODIS retrievals based monthly mean climatology
IALB=2: use surface albedo from land model

LW surface emissivity (namelist control parameter - IEMS=1)
IEMS=1: surface type based climatology in \(1^o\) horizontal resolution
IEMS=2: use surface emissivity from land model

Version
NCEP-Radiation_surface v5.1 Nov 2012

Function/Subroutine Documentation

◆ setalb()

subroutine, public module_radiation_surface::setalb ( real (kind=kind_phys), dimension(:), intent(in)  slmsk,
integer, intent(in)  lsm,
integer, intent(in)  lsm_noahmp,
integer, intent(in)  lsm_ruc,
logical, intent(in)  use_cice_alb,
real (kind=kind_phys), dimension(:), intent(in)  snodi,
real (kind=kind_phys), dimension(:), intent(in)  sncovr,
real (kind=kind_phys), dimension(:), intent(in)  sncovr_ice,
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,
logical, intent(in)  frac_grid,
real (kind=kind_phys), dimension(:), intent(in)  lakefrac,
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,
real (kind=kind_phys), dimension(:), intent(inout)  lsmalbdvis,
real (kind=kind_phys), dimension(:), intent(inout)  lsmalbdnir,
real (kind=kind_phys), dimension(:), intent(inout)  lsmalbivis,
real (kind=kind_phys), dimension(:), intent(inout)  lsmalbinir,
real (kind=kind_phys), dimension(:), intent(in), optional  icealbdvis,
real (kind=kind_phys), dimension(:), intent(in), optional  icealbdnir,
real (kind=kind_phys), dimension(:), intent(in), optional  icealbivis,
real (kind=kind_phys), dimension(:), intent(in), optional  icealbinir,
integer, intent(in)  imax,
real (kind=kind_phys), dimension(:), intent(in)  albppert,
real (kind=kind_phys), intent(in)  pertalb,
real (kind=kind_phys), dimension(:), intent(in)  fracl,
real (kind=kind_phys), dimension(:), intent(in)  fraco,
real (kind=kind_phys), dimension(:), intent(in)  fraci,
logical, dimension(:), intent(in)  icy,
integer, intent(in)  ialbflg,
real (kind=kind_phys), intent(in)  con_ttp,
real (kind=kind_phys), dimension(:,:), intent(out)  sfcalb 
)

This subroutine computes four components of surface albedos (i.e., vis-nir, direct-diffused) according to control flag ialbflg.
1) climatological surface albedo scheme ([27])
2) MODIS retrieval based scheme from Boston univ.

Parameters
slmsksea(0),land(1),ice(2) mask on fcst model grid
lsmflag for land surface model
lsm_noahmpflag for NOAH MP land surface model
lsm_rucflag for RUC land surface model
use_cice_albflag for using uce albedos from CICE when coupled
snodisnow depth water equivalent in mm over ice
sncovrsnow cover over land
snoalbmaximum snow albedo over land (for deep snow)
zorlfsurface roughness in cm
coszfcosin of solar zenith angle
tsknfground surface temperature in K
tairflowest model layer air temperature in K
hpriftopographic sdv in m
frac_gridflag for fractional landmask
lakefracfraction of horizontal grid area occupied by lake
alvsfvisible black sky albedo at zenith 60 degree
alnsfnear-ir black sky albedo at zenith 60 degree
alvwfvisible white sky albedo
alnwfnear-ir white sky albedo
facsffractional coverage with strong cosz dependency
facwffractional coverage with weak cosz dependency
ficesea-ice fraction
tisfcsea-ice surface temperature
lsmalbdvisdirect surface albedo visible band over land
lsmalbdnirdirect surface albedo NIR band over land
lsmalbivisdiffuse surface albedo visible band over land
lsmalbinirdiffuse surface albedo NIR band over land
icealbdvisdirect surface albedo visible band over ice
icealbdnirdirect surface albedo NIR band over ice
icealbivisdiffuse surface albedo visible band over ice
icealbinirdiffuse surface albedo NIR band over ice
IMAXarray horizontal dimension
albpperta probability value in the interval [0,1]
pertalb(5), magnitude of perturbation of surface albedo
fraclland fraction for emissivity and albedo calculation
fracoocean fraction for emissivity of albedo calculation
fraciice fraction for emissivity of albedo calculation
icyflag for ice surfce
sfcalbmean 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 ialbflg = 1, use MODIS based albedo for land area:
  • Use snow cover input directly for land model, no conversion needed.
  • if ialbflg = 2, use land model output for land area: Noah MP, RUC (land and ice).
  • Call ppebet () to perturb all 4 elements of surface albedo sfcalb(:,1:4).

Definition at line 347 of file radiation_surface.f.

References surface_perturbation::ppfbet().

Here is the call graph for this function:

◆ setemis()

subroutine, public module_radiation_surface::setemis ( integer, intent(in)  lsm,
integer, intent(in)  lsm_noahmp,
integer, intent(in)  lsm_ruc,
logical, intent(in)  frac_grid,
logical, intent(in)  cplice,
integer, dimension(:), intent(in)  use_lake_model,
real (kind=kind_phys), dimension(:), intent(in)  lakefrac,
real (kind=kind_phys), dimension(:), intent(in)  xlon,
real (kind=kind_phys), dimension(:), intent(in)  xlat,
real (kind=kind_phys), dimension(:), intent(in)  slmsk,
real (kind=kind_phys), dimension(:), intent(in)  snodl,
real (kind=kind_phys), dimension(:), intent(in)  snodi,
real (kind=kind_phys), dimension(:), intent(in)  sncovr,
real (kind=kind_phys), dimension(:), intent(in)  sncovr_ice,
real (kind=kind_phys), dimension(:), intent(in)  zorlf,
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(inout)  semis_lnd,
real (kind=kind_phys), dimension(:), intent(inout)  semis_ice,
real (kind=kind_phys), dimension(:), intent(inout)  semis_wat,
integer, intent(in)  imax,
real (kind=kind_phys), dimension(:), intent(in)  fracl,
real (kind=kind_phys), dimension(:), intent(in)  fraco,
real (kind=kind_phys), dimension(:), intent(in)  fraci,
logical, dimension(:), intent(in)  icy,
real (kind=kind_phys), dimension(:), intent(out)  semisbase,
real (kind=kind_phys), dimension(:), intent(out)  sfcemis 
)

This subroutine computes surface emissivity for LW radiation.

Parameters
lsmflag for land surface model
lsm_noahmpflag for NOAH MP land surface model
lsm_rucflag for RUC land surface model
frac_gridflag for fractional grid
cpliceflag for controlling cplice collection
use_flakeflag for indicating lake points using flake model
lakefracfraction of horizontal grid area occupied by lake
xlonlongitude in radiance, ok for both 0->2pi or -pi -> +pi ranges
xlatlatitude in radiance, default to pi/2 -> -pi/2 range, otherwise see in-line comment
slmsklandmask: sea/land/ice =0/1/2
snodlsnow depth water equivalent in mm land
snodisnow depth water equivalent in mm ice
sncovrsnow cover over land
sncovr_icesurface snow area fraction over ice
zorlfsurface roughness in cm
tsknfground surface temperature in K
tairflowest model layer air temperature in K
hpriftopographic standard deviation in m
semis_lndsurface LW emissivity in fraction over land
semis_icesurface LW emissivity in fraction over ice
semis_watsurface LW emissivity in fraction over water
IMAXarray horizontal dimension
fraclland fraction for emissivity and albedo calculation
fracoocean fraction for emissivity of albedo calculation
fraciice fraction for emissivity of albedo calculation
icyflag for ice surfce
semisbasebaseline surface LW emissivity in fraction
sfcemis(IMAX), surface emissivity

setemis General Algorithm

  1. Set emissivity by surface type and conditions
  • Check for snow covered area. it is assume here that "sncovr" is the fraction of land covered by snow and "sncovr_ice" is the fraction of ice coverd by snow

Definition at line 753 of file radiation_surface.f.

◆ sfc_init()

subroutine, public module_radiation_surface::sfc_init ( type(mpi_comm), intent(in)  mpicomm,
integer, intent(in)  mpirank,
integer, intent(in)  mpiroot,
integer, intent(in)  ialbflg,
integer, intent(in)  iemsflg,
character(len=26), intent(in)  semis_file,
real(kind=kind_phys), intent(in)  con_pi,
character(len=*), intent(out)  errmsg,
integer, intent(out)  errflg 
)

This subroutine is the initialization program for surface radiation related quantities (albedo, emissivity, etc.)

sfc_init General Algorithm

  • Initialization of surface albedo section
    GFS_typedefs::ialbflg
    • = 1: using MODIS based land surface albedo for SW
    • = 2: using albedo from land model
  • Initialization of surface emissivity section
    GFS_typedefs::iemsflg
    • = 1: input SFC emissivity type map from "semis_file"
    • = 2: input SFC emissivity from land model

Definition at line 143 of file radiation_surface.f.

Variable Documentation

◆ epsln

real (kind=kind_phys), parameter, public module_radiation_surface::epsln = 1.0e-6

Definition at line 127 of file radiation_surface.f.

◆ f_one

real (kind=kind_phys), parameter, public module_radiation_surface::f_one = 1.0

Definition at line 126 of file radiation_surface.f.

◆ f_zero

real (kind=kind_phys), parameter, public module_radiation_surface::f_zero = 0.0

Definition at line 125 of file radiation_surface.f.

◆ imxems

integer, parameter, public module_radiation_surface::imxems = 360

Definition at line 123 of file radiation_surface.f.

◆ jmxems

integer, parameter, public module_radiation_surface::jmxems = 180

Definition at line 124 of file radiation_surface.f.