PUBLIC INTERFACE ~ PUBLIC DATA ~ PUBLIC ROUTINES ~ NAMELIST ~ DIAGNOSTIC FIELDS ~ ERROR MESSAGES ~ REFERENCES ~ NOTES

Module esfsw_driver_mod

Contact:  fil
Reviewers:  smf
Change History: WebCVS Log


OVERVIEW

Code that initializes and calculates shortwave radiative quantities such as flux and heating rate.

This code initializes the necessary shortwave radiative parameters in the initialization subroutine. It then uses delta-eddington approximation and doubling and adding technique to calculate solar flux and heating rate.


OTHER MODULES USED

             fms_mod
constants_mod
esfsw_parameters_mod
rad_utilities_mod

PUBLIC INTERFACE

esfsw_driver_init:
Subroutine that defines the time-independent quantities associated with the incoming shortwave radiation in the multiple-band solar radiation parameterization.
swresf:
Subroutine that uses the delta-eddington technique in conjunction with a multi-band parameterization for h2o+co2+o2+o3 absorption in the solar spectrum to derive solar fluxes and heating rates.
adding:
Subroutine that implements doubling and adding technique to combine multiple atmospheric layers to calculate solar fluxes
deledd:
Subroutine that calculates reflectivity and transmissivity in a scattering layer using delta-eddington method


PUBLIC DATA

None.


PUBLIC ROUTINES

  1. esfsw_driver_init

    call esfsw_driver_init 
    
    DESCRIPTION
    It first reads in the input namelist and then allocates gas absorption coefficient variables. It then reads in the shortwave input namelist file and assigns the gas absorption coefficients. Rayleigh scattering coefficient is also calculated based on the temperature and pressure structure of the atmosphere.


  2. swresf

    call swresf (is, ie, js, je, Atmos_input, Surface, Rad_gases, Aerosol, Astro, & Cldrad_props, Cld_spec, Sw_output)
    DESCRIPTION
    This subroutine calculates optical depth, single scattering albedo, asymmetry parameter of a layer based on gaseous absorbers, clouds, aerosols, and rayleigh scattering. It then uses delta- eddington technique to calculate radiative flux at each layer. Doubling and adding technique is used to combine the layers and calculate flux at TOA and surface and heating rate. This subroutine allocates a substantial amount of memory and deallocates the allocated memory at the end of the subroutine.


    INPUT
    is    starting subdomain i indices of data in the physics_window being integrated
       [integer]
    ie    ending subdomain i indices of data in the physics_window being integrated
       [integer]
    js    starting subdomain j indices of data in the physics_window being integrated
       [integer]
    je    ending subdomain j indices of data in the physics_window being integrated
       [integer]
    Atmos_input    Atmos_input_type variable containing the atmospheric input fields on the radiation grid
       [atmos_input_type]
    Aerosol    Aerosol input data for shortwave radiation calculation
       [aerosol_type]
    Astro    Astronomy_type variable containing the astronomical input fields on the radiation grid
       [astronomy_type]
    Rad_gases    Radiative_gases_type variable containing the radiative gas input fields on the radiation grid
       [radiative_gases_type]
    Cldrad_props    The cloud radiative property input fields on the radiation grid
       [cldrad_properties_type]
    Surface    Surface data as boundary condition to radiation
       [surface_type]
    Cld_spec    Cloud specification data as initial condition to radiation
       [cld_specification_type]

    INPUT/OUTPUT
    Sw_output    The shortwave radiation calculation result
       [sw_output_type]

  3. adding

    call adding ( ix, jx, kx, & rlayerdir, tlayerdir, rlayerdif, tlayerdif, & tlayerde, sfcalb, calc_flag, reflectance, & transmittance)
    DESCRIPTION
    This subroutine implements the standard doubling and adding technique to combine reflectance and transmittance of multiple atmospheric layers to compute solar flux and heating rate.


    INPUT
    ix    ix is the current longitudinal index in the physics cell being integrated.
       [integer]
    jx    jx is the current latitudinal index in the physics cell being integrated.
       [integer]
    kx    ix is the current vertical index in the physics cell being integrated.
       [integer]
    rlayerdir    layer reflectivity to direct incident beam
       [real]
    tlayerdir    layer transmissivity to direct incident beam
       [real]
    rlayerdif    layer reflectivity to diffuse incident beam
       [real]
    tlayerdir    layer transmissivity to diffuse incident beam
       [real]
    tlayerde    layer diffuse transmissivity to direct incident beam
       [real]
    sfcalb    surface albedo
       [real]
    calcflag    flag to indicate columns where adding is to be done
       [integer]

    OUTPUT
    reflectance    diffuse reflectance at a level
       [real]
    transmittance    diffuse transmittance at a level
       [real]

  4. deledd

    call deledd (ix, jx, kx, & taustr, omegastr, gstr, cosang, ng , daylight, & rlayerdir, tlayerdir, rlayerdif, tlayerdif, & tlayerde, cloud)
    DESCRIPTION
    This subroutine takes layer optical depth, single scattering abledo, and asymmetry parameter, using delta-eddington method, to calculate direct/diffuse reflectivity/transmissivity to direct/diffuse incident radiation. The approximation uses the strong forward scattering of aerosol particles.


    INPUT
    ix    ix is the current longitudinal index in the physics cell being integrated.
       [integer]
    jx    jx is the current latitudinal index in the physics cell being integrated.
       [integer]
    kx    ix is the current vertical index in the physics cell being integrated.
       [integer]
    taustr    the scaled optical depth, true optical depth normalized using delta-eddington approximation
       [real]
    omegastr    the scaled single-scattering albedo
       [real]
    gstr    the scaled asymmetry factor
       [real]
    cosang    cosine of the solar zenith angle
       [real]
    ng    the number of gaussian angles to compute the diurnally averaged solar radiation (=1 unless lswg = true)
       [real]
    cloud    flag for existence of a cloud (used only in 'ovc' mode)
       [real]

    OUTPUT
    rlayerdir    layer reflectivity to direct incident beam
       [real]
    tlayerdir    layer transmissivity to direct incident beam
       [real]
    rlayerdif    layer reflectivity to diffuse incident beam
       [real]
    tlayerdir    layer transmissivity to diffuse incident beam
       [real]
    tlayerde    layer diffuse transmissivity to direct incident beam
       [real]


DATA SETS

None.


ERROR MESSAGES

None.


top