Radiation Scheme in CCPP
The Shortwave Radiative Transfer Routine

SUBROUTINE spcvrtc in module_radsw_main computes the shortwave radiative fluxes using two-stream method (zdunkowski et al., 1980).

Usage:
call spcvrtc &
! — inputs:
& ( ssolar,cosz1,sntz1,albbm,albdf,sfluxzen,cldfrc, &
& cf1,cf0,taug,taur,tauae,ssaae,asyae,taucw,ssacw,asycw, &
& nlay, nlp1, &
! — outputs:
& fxupc,fxdnc,fxup0,fxdn0, &
& ftoauc,ftoau0,ftoadc,fsfcuc,fsfcu0,fsfcdc,fsfcd0, &
& sfbmc,sfdfc,sfbm0,sfdf0,suvbfc,suvbf0 &
& )


Subprograms called: swflux

reference

Zdunkowski, W.G., Welsch, R.M., and Korb, G.J., 1980: An investigation of the structure of typical 2-stream methods for the calculation of solar fluxes and heating rates in clouds. Contrib. Atms. Phys., 53, 215-238.

Parameters
[in]ssolar- real, 1, incoming solar flux at top
[in]cosz- real, 1, cosine solar zenith angle
[in]sntz- real, 1, secant solar zenith angle
[in]albbm- real, 2, surface albedo for direct beam radiation
[in]albdf- real, 2, surface albedo for diffused radiation
[in]sfluxzen-real, ngptsw, spectral distribution of incoming solar flux
[in]cldfrc- real, nlay,layer cloud fraction
[in]cf1- real, 1, >0: cloudy sky, otherwise: clear sky
[in]cf0- real, 1, =1-cf1
[in]taug- real, nlay*ngptsw, spectral optical depth for gases
[in]taur- real, nlay*ngptsw, optical depth for rayleigh scattering
[in]tauae- real, nlay*nbdsw, aerosols optical depth
[in]ssaae- real, nlay*nbdsw, aerosols single scattering albedo
[in]asyae- real, nlay*nbdsw, aerosols asymmetry factor
[in]taucw- real, nlay*nbdsw, weighted cloud optical depth
[in]ssacw- real, nlay*nbdsw, weighted cloud single scat albedo
[in]asycw- real, nlay*nbdsw, weighted cloud asymmetry factor
[in]nlay,nlp1- integer, 1, number of layers/levels
[out]fxupc- real, nlp1*nbdsw, tot sky upward flux
[out]fxdnc- real, nlp1*nbdsw, tot sky downward flux
[out]fxup0- real, nlp1*nbdsw, clr sky upward flux
[out]fxdn0- real, nlp1*nbdsw, clr sky downward flux
[out]ftoauc- real, 1, tot sky toa upwd flux
[out]ftoau0- real, 1, clr sky toa upwd flux
[out]ftoadc- real, 1, toa downward (incoming) solar flux
[out]fsfcuc- real, 1, tot sky sfc upwd flux
[out]fsfcu0- real, 1, clr sky sfc upwd flux
[out]fsfcdc- real, 1, tot sky sfc dnwd flux
[out]fsfcd0- real, 1, clr sky sfc dnwd flux
[out]sfbmc- real, 2, tot sky sfc dnwd beam flux (nir/uv+vis)
[out]sfdfc- real, 2, tot sky sfc dnwd diff flux (nir/uv+vis)
[out]sfbm0- real, 2, clr sky sfc dnwd beam flux (nir/uv+vis)
[out]sfdf0- real, 2, clr sky sfc dnwd diff flux (nir/uv+vis)
[out]suvbfc- real, 1, tot sky sfc dnwd uv-b flux
[out]suvbf0- real, 1, clr sky sfc dnwd uv-b flux

General Algorithm

  1. Initialization of output fluxes
  2. Compute clear-sky optical parameters, layer reflectance and transmittance
    - Set up toa direct beam and surface values (beam and diff)
    - Delta scaling for clear-sky condition
    - General two-stream expressions for iswmode = 1,2,3
    - Compute homogeneous reflectance and transmittance for both conservative and non-conservative scattering
  3. Compute total sky optical parameters, layer reflectance and transmittance
    - Set up toa direct beam and surface values (beam and diff)
    - Delta scaling for total-sky condition
    - General two-stream expressions for iswmode =1,2,3
    - Compute homogeneous reflectance and transmittance, for both conservative and non-conservative scattering
    - Combine clear and cloudy contributions for total sky and calculate direct beam transmittances
    - Pre-delta-scaling clear and cloudy direct beam transmittance
  4. Calling swflux, computes the upward and downward radiation fluxes
  5. Compute and save outputs