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

Module radiation_driver_mod

Contact:  fil
Reviewers: 
Change History: WebCVS Log


OVERVIEW

radiation_driver_mod is the interface between physics_driver_mod and a specific radiation parameterization, currently either the original_fms_rad or sea_esf_rad radiation package. it provides radiative heating rates, boundary radiative fluxes, and any other radiation package output fields to other component models of the modeling system.

The following modules are called from this driver module:

1) astronomy

2) cloud properties

3) prescribed zonal ozone

4) longwave and shortwave radiation driver


OTHER MODULES USED

               fms_mod
fms_io_mod
diag_manager_mod
time_manager_mod
sat_vapor_pres_mod
constants_mod
data_override_mod
rad_utilities_mod
esfsw_parameters_mod
diag_integral_mod
astronomy_mod
original_fms_rad_mod
sea_esf_rad_mod
rad_output_file_mod
cloudrad_package_mod
aerosolrad_package_mod
field_manager_mod
tracer_manager_mod

PUBLIC INTERFACE

use radiation_driver_mod [,only: radiation_driver_init, radiation_driver, radiation_driver_end] radiation_driver_init Must be called once before subroutine radiation_driver to initialize the module (read namelist input and restart file). Also calls the initialization routines for other modules used. radiation_driver Called every time step (not on the radiation time step) to compute the longwave and shortwave radiative tendencies. radiation_driver_end Called once at the end of a model run to terminate the module (write a restart file). Also calls the termination routines for other modules used. Notes: 1) A namelist interface controls runtime options. 3) A restart file radiation_driver.res is generated by this module.
radiation_driver_init:
radiation_driver_init is the constructor for radiation_driver_mod.
radiation_driver:
radiation_driver adds the radiative heating rate to the temperature tendency and obtains the radiative boundary fluxes and cosine of the solar zenith angle to be used in the other component models.
define_rad_times:
subroutine define_rad_times determines whether radiation is to be calculated on the current timestep, and defines logical variables which determine whether various input fields to radiation_driver need to be retrieved on the current step.
define_atmos_input_fields:
define_atmos_input_fields converts the atmospheric input fields (pfull, phalf, t, q, ts) to the form needed by the radiation modules, and when needed returns radiation-ready fields of pressure (press, psfc), temperature (temp, tsfc), water vapor mixing ratio (rh2o) and several auxiliary variables in the derived type structure Atmos_input. the optional input variables are present when running radiative feedback studies (sa_model), and are needed to allow variation of temperature and vapor fields while holding the aerosol and cloud amounts fixed.
define_surface:
define_surface stores the input values of land fraction and surface albedo in a surface_type structure Surface.
surface_dealloc:
surface_dealloc deallocates the array components of the surface_type structure Surface.
atmos_input_dealloc:
atmos_input_dealloc deallocates the array components of the atmos_input_type structure Atmos_input.
radiation_driver_end:
radiation_driver_end is the destructor for radiation_driver_mod.
read_restart_file:
read_restart_file reads a restart file containing radiation restart information. it may be either a radiation_driver.res, or an older sea_esf_rad.res file.
read_restart_nc:
read_restart_nc reads a netcdf restart file containing radiation restart information.
initialize_diagnostic_integrals:
initialize_diagnostic_integrals registers the desired integrals with diag_integral_mod.
diag_field_init:
diag_field_init registers the desired diagnostic fields with the diagnostics manager.
obtain_astronomy_variables:
obtain_astronomy_variables retrieves astronomical variables, valid at the requested time and over the requested time intervals.
radiation_calc:
radiation_calc is called on radiation timesteps and calculates the long- and short-wave radiative fluxes and heating rates, and obtains the radiation output fields needed in other portions of the model.
update_rad_fields:
update_rad_fields defines the current radiative heating rate, surface long and short wave fluxes and cosine of zenith angle to be returned to physics_driver, including renormalization effects when that option is activated.
flux_trop_calc:
flux_trop_calc defines the shortwave and longwave fluxes at the tropopause immediately after the computation of fluxes at model levels by the radiation algorithms (invoked by radiation_calc).
produce_radiation_diagnostics:
produce_radiation_diagnostics produces netcdf output and global and hemispheric integrals of radiation package variables.
deallocate_arrays:
deallocate_arrays deallocates the array space of local derived-type variables.
calculate_auxiliary_variables:
calculate_auxiliary_variables defines values of model delta z and relative humidity, and the values of pressure and temperature at the grid box vertical interfaces.


PUBLIC DATA

None.


PUBLIC ROUTINES

  1. radiation_driver_init

    call radiation_driver_init (lonb, latb, pref, axes, Time, & aerosol_names)
    DESCRIPTION
    radiation_driver_init is the constructor for radiation_driver_mod.


    INPUT
    lonb    lonb Longitude in radians for all (i.e., the global size) grid box boundaries, the size of lonb should be one more than the global number of longitude points along the x-axis. [real, dimension(:)]
       [real]
    latb    latb Latitude in radians for all (i.e., the global size) grid box boundaries, the size of latb should be one more than the global number of latitude points along the y-axis. [real, dimension(:)]
       [real]
    pref    pref Two reference profiles of pressure at full model levels plus the surface (nlev+1). The first profile assumes a surface pressure of 101325 pa, and the second profile assumes 81060 pa. [real, dimension(nlev+1,2)]
       [real]
    axes    axes The axis indices that are returned by previous calls to diag_axis_init. The values of this array correspond to the x, y, full (p)level, and half (p)level axes. These are the axes that diagnostic fields are output on. [integer, dimension(4)]
       [integer]
    Time    Time The current time. [time_type]
       [time_type]
    aerosol_names    Aerosol names
       [character]

    NOTE
    radiation time step has changed, next radiation time also changed The radiation time step from the namelist input did not match the radiation time step from the radiation restart file. The next time for radiation will be adjusted for the new namelist input) value.


  2. radiation_driver

    call radiation_driver (is, ie, js, je, Time, Time_next, & lat, lon, Surface, Atmos_input, & Aerosol, Cld_spec, Rad_gases, & Lsc_microphys, Meso_microphys, & Cell_microphys, Radiation, mask, kbot)
    DESCRIPTION
    radiation_driver adds the radiative heating rate to the temperature tendency and obtains the radiative boundary fluxes and cosine of the solar zenith angle to be used in the other component models.


    INPUT
    is, ie, js, je    starting/ending i,j indices in global storage arrays
       [integer]
    Time    current model time
       [time_type]
    Time_next    The time used for diagnostic output
       [time_type]
    lon    lon mean longitude (in radians) of all grid boxes processed by this call to radiation_driver [real, dimension(:,:)]
       [real]
    lat    lat mean latitude (in radians) of all grid boxes processed by this call to radiation_driver [real, dimension(:,:)]
       [real]
    kbot    OPTIONAL: present when running eta vertical coordinate, index of lowest model level above ground
       [integer]
    mask    OPTIONAL: present when running eta vertical coordinate, mask to remove points below ground
       [real]

    INPUT/OUTPUT
    Surface    Surface input data to radiation package
       [surface_type]
    Atmos_input    Atmospheric input data to radiation package
       [atmos_input_type]
    Aerosol    Aerosol climatological input data to radiation package
       [aerosol_type]
    r    4 dimensional tracer array, last index is the number of all tracers
       [real]
    Cld_spec    Cloud microphysical and physical parameters to radiation package, contains var- iables defining the cloud distribution, passed through to lower level routines
       [cld_specification_type]
    Rad_gases    Radiative gases properties to radiation package, , contains var- iables defining the radiatively active gases, passed through to lower level routines
       [radiative_gases_type]
    Lsc_microphys    microphysical specification for large-scale clouds
       [microphysics_type]
    Cell_microphys    microphysical specification for convective cell clouds associated with donner convection
       [microphysics_type]
    Meso_microphys    microphysical specification for meso-scale clouds assciated with donner convection
       [microphysics_type]
    Radiation    Radiation output from radiation package, contains variables which are output from radiation_driver to the calling routine, and then used elsewhere within the component models.
       [rad_output_type]

  3. define_rad_times

    call define_rad_times (Time, Time_next, Rad_time_out, & need_aerosols, need_clouds, need_gases, & need_basic)
    DESCRIPTION
    subroutine define_rad_times determines whether radiation is to be calculated on the current timestep, and defines logical variables which determine whether various input fields to radiation_driver need to be retrieved on the current step.


    INPUT
    Time    current model time
       [time_type]
    Time_next    The time used for diagnostic output
       [time_type]

    INPUT/OUTPUT
    Rad_time_out    time at which the climatologically-determined, time-varying input fields to radiation should apply
       [time_type]

    OUTPUT
    need_aerosols    aersosol input data is needed on this step ?
       [logical]
    need_clouds    cloud input data is needed on this step ?
       [logical]
    need_gases    radiative gas input data is needed on this step ?
       [logical]
    need_basic    atmospheric input fields are needed on this step ?
       [logical]

  4. define_atmos_input_fields

    call define_atmos_input_fields (is, ie, js, je, pfull, phalf, & t, q, ts, r, gavg_rrv, Atmos_input, & cloudtemp, cloudvapor, & aerosoltemp, aerosolvapor, & aerosolpress, kbot)
    DESCRIPTION
    define_atmos_input_fields converts the atmospheric input fields (pfull, phalf, t, q, ts) to the form needed by the radiation modules, and when needed returns radiation-ready fields of pressure (press, psfc), temperature (temp, tsfc), water vapor mixing ratio (rh2o) and several auxiliary variables in the derived type structure Atmos_input. the optional input variables are present when running radiative feedback studies (sa_model), and are needed to allow variation of temperature and vapor fields while holding the aerosol and cloud amounts fixed.


    INPUT
    is, ie, js, je    starting/ending subdomain i,j indices of data in the physics_window being integrated
       [integer]
    pfull    pressure at full levels
       [real]
    phalf    pressure at half levels
       [real]
    t    temperature at full levels
       [real]
    q    specific humidity of water vapor at full levels
       [real]
    ts    surface temperature
       [real]
    r    tracer array
       [real]
    gavg_rrv    global average array of tracer volume mixxing ratio
       [real]
    cloudtemp    temperature to be seen by clouds (used in sa_gcm feedback studies)
       [real]
    cloudvapor    water vapor to be seen by clouds (used in sa_gcm feedback studies)
       [real]
    aerosoltemp    required in sa_gcm mode, absent otherwise: temperature field to be used by aerosol param- eterization
       [real]
    aerosolvapor    required in sa_gcm mode, absent otherwise: water vapor field to be used by aerosol param- eterization
       [real]
    aerosolpress    required in sa_gcm mode, absent otherwise: pressure field to be used by aerosol param- eterization
       [real]
    kbot    present when running eta vertical coordinate, index of lowest model level above ground
       [integer]

    INPUT/OUTPUT
    Atmos_input    atmos_input type structure, contains the following components defined in this subroutine
       [atmos_input_type]

  5. define_surface

    call define_surface (is, ie, js, je, albedo, land, Surface)
    DESCRIPTION
    define_surface stores the input values of land fraction and surface albedo in a surface_type structure Surface.


    INPUT
    is, ie, js, je    starting/ending subdomain i,j indices of data in the physics_window being integrated
       [integer]
    albedo    surface albedo
       [real]
    land    fraction of grid box which is land
       [real]

    INPUT/OUTPUT
    Surface    surface_type structure to be valued
       [surface_type]

  6. surface_dealloc

    call surface_dealloc (Surface)
    DESCRIPTION
    surface_dealloc deallocates the array components of the surface_type structure Surface.


    INPUT/OUTPUT
    Surface    surface_type structure to be deallocated
       [surface_type]

  7. atmos_input_dealloc

    call atmos_input_dealloc (Atmos_input)
    DESCRIPTION
    atmos_input_dealloc deallocates the array components of the atmos_input_type structure Atmos_input.


    INPUT/OUTPUT
    Atmos_input    atmos_input_type structure, contains variables defining the atmospheric pressure, temperature and moisture distribution.
       [atmos_input_type]

  8. radiation_driver_end

    call radiation_driver_end 
    
    DESCRIPTION
    radiation_driver_end is the destructor for radiation_driver_mod.


  9. read_restart_file

    call read_restart_file 
    
    DESCRIPTION
    read_restart_file reads a restart file containing radiation restart information. it may be either a radiation_driver.res, or an older sea_esf_rad.res file.


  10. read_restart_nc

    call read_restart_nc 
    
    DESCRIPTION
    read_restart_nc reads a netcdf restart file containing radiation restart information.


  11. initialize_diagnostic_integrals

    call initialize_diagnostic_integrals 
    
    DESCRIPTION
    initialize_diagnostic_integrals registers the desired integrals with diag_integral_mod.


  12. diag_field_init

    call diag_field_init ( Time, axes )
    DESCRIPTION
    diag_field_init registers the desired diagnostic fields with the diagnostics manager.


    INPUT
    Time    Current time
       [time_type]
    axes    diagnostic variable axes for netcdf files
       [integer]

  13. obtain_astronomy_variables

    call obtain_astronomy_variables (is, ie, js, je, lat, lon, & Astro, Astro2)
    DESCRIPTION
    obtain_astronomy_variables retrieves astronomical variables, valid at the requested time and over the requested time intervals.


    INPUT
    is, ie, js, je    starting/ending i,j indices in global storage arrays
       [integer]
    lon    lon mean longitude (in radians) of all grid boxes processed by this call to radiation_driver [real, dimension(:,:)]
       [real]
    lat    lat mean latitude (in radians) of all grid boxes processed by this call to radiation_driver [real, dimension(:,:)]
       [real]

    INPUT/OUTPUT
    Astro    astronomy_type structure; It will be used to determine the insolation at toa seen by the shortwave radiation code
       [astronomy_type]
    Astro2    astronomy_type structure, defined when renormal- ization is active. the same components are defined as for Astro, but they are valid over the current physics timestep.
       [astronomy_type]
    Astronomy_inp    astronomy_inp_type structure, optionally used to input astronom- ical forcings, when it is desired to specify them rather than use astronomy_mod. Used in various standalone applications.
       [astronomy_inp_type]

  14. radiation_calc

    call radiation_calc (is, ie, js, je, Rad_time, Time_diag, & lat, lon, Atmos_input, Surface, Rad_gases, & Aerosol_props, Aerosol, r, Cldrad_props, & Cld_spec, Astro, Rad_output, Lw_output, & Sw_output, Fsrad_output, mask, kbot)
    DESCRIPTION
    radiation_calc is called on radiation timesteps and calculates the long- and short-wave radiative fluxes and heating rates, and obtains the radiation output fields needed in other portions of the model.


    INPUT
    is, ie, js, je    starting/ending i,j indices in global storage arrays
       [integer]
    Rad_time    Rad_time time at which the radiative fluxes are to apply [ time_type (days, seconds) ]
       [time_type]
    Time_diag    Time_diag time on next timestep, used as stamp for diag- nostic output [ time_type (days, seconds) ]
       [time_type]
    lon    lon mean longitude (in radians) of all grid boxes processed by this call to radiation_driver [real, dimension(:,:)]
       [real]
    lat    lat mean latitude (in radians) of all grid boxes processed by this call to radiation_driver [real, dimension(:,:)]
       [real]
    Surface    Surface input data to radiation package
       [surface_type]
    Atmos_input    Atmospheric input data to radiation package
       [atmos_input_type]
    Aerosol    Aerosol climatological input data to radiation package
       [aerosol_type]
    Cldrad_props    Cloud radiative properties
       [cldrad_properties_type]
    Cld_spec    Cloud microphysical and physical parameters to radiation package, contains var- iables defining the cloud distribution, passed through to lower level routines
       [cld_specification_type]
    Astro    astronomical input data for the radiation package
       [astronomy_type]
    Rad_gases    Radiative gases properties to radiation package, , contains var- iables defining the radiatively active gases, passed through to lower level routines
       [radiative_gases_type]
    kbot    OPTIONAL: present when running eta vertical coordinate, index of lowest model level above ground
       [integer]
    mask    OPTIONAL: present when running eta vertical coordinate, mask to remove points below ground
       [real]

    INPUT/OUTPUT
    Aerosol_props    Aerosol radiative properties
       [aerosol_properties_type]
    Rad_output    Radiation output from radiation package, contains variables which are output from radiation_driver to the calling routine, and then used elsewhere within the component models.
       [rad_output_type]
    Lw_output    longwave radiation output data from the sea_esf_rad radiation package, when that package is active
       [lw_output_type]
    Sw_output    shortwave radiation output data from the sea_esf_rad radiation package when that package is active
       [sw_output_type]
    Fsrad_output    radiation output data from the original_fms_rad radiation package, when that package is active
       [Fsrad_output_type]

  15. update_rad_fields

    call update_rad_fields (is, ie, js, je, Time_diag, Astro2, & Sw_output, Astro, Rad_output, flux_ratio)
    DESCRIPTION
    update_rad_fields defines the current radiative heating rate, surface long and short wave fluxes and cosine of zenith angle to be returned to physics_driver, including renormalization effects when that option is activated.


    INPUT
    is, ie, js, je    starting/ending i,j indices in global storage arrays
       [integer]
    Time_diag    Time on next timestep, used as stamp for diag- nostic output [ time_type (days, seconds) ]
       [time_type]
    Astro2    astronomical properties on model grid, valid over physics timestep, used when renormalizing sw fluxes
       [astronomy_type]
    Sw_output    shortwave radiation output data from the sea_esf_rad radiation package when that package is active
       [sw_output_type]

    INPUT/OUTPUT
    Astro    astronomical properties on model grid, usually valid over radiation timestep on entry, on exit are valid over model timestep when renormalizing
       [astronomy_type]
    Rad_output    Radiation output from radiation package, contains variables which are output from radiation_driver to the calling routine, and then used elsewhere within the component models.
       [rad_output_type]

    OUTPUT
    flux_ratio    factor to multiply the radiation step values of sw fluxes and heating rates by in order to get current physics timestep values
       [real]

  16. flux_trop_calc

    call flux_trop_calc (is, ie, js, je, lat, & Atmos_input, & Lw_output, Sw_output )
    DESCRIPTION
    flux_trop_calc defines the shortwave and longwave fluxes at the tropopause immediately after the computation of fluxes at model levels by the radiation algorithms (invoked by radiation_calc).


    INPUT
    is, ie, js, je    starting/ending i,j indices in global storage arrays
       [integer]
    lat    mean latitude (in radians) of all grid boxes processed by this call to flux_trop_calc [real, dimension(:,:)]
       [real]
    Atmos_input    Atmospheric input data to radiation package
       [atmos_input_type]

    INPUT/OUTPUT
    Lw_output    longwave radiation output data from the sea_esf_rad radiation package, when that package is active
       [lw_output_type]
    Sw_output    shortwave radiation output data from the sea_esf_rad radiation package when that package is active
       [sw_output_type]

  17. produce_radiation_diagnostics

    call produce_radiation_diagnostics & (is, ie, js, je, Time_diag, lat, ts, asfc, & flux_ratio, Astro, Rad_output, Lw_output, & Sw_output, Cld_spec, Lsc_microphys, & Fsrad_output, mask)
    DESCRIPTION
    produce_radiation_diagnostics produces netcdf output and global and hemispheric integrals of radiation package variables.


    INPUT
    is, ie, js, je    starting/ending i,j indices in global storage arrays
       [integer]
    Time_diag    Time_diag time on next timestep, used as stamp for diag- nostic output [ time_type (days, seconds) ]
       [time_type]
    lat    lat mean latitude (in radians) of all grid boxes processed by this call to radiation_driver [real, dimension(:,:)]
       [real]
    ts    Surface skin temperature
       [real]
    asfc    surface albedo
       [real]
    flux_ratio    renormalization factor for sw fluxes and heating rates
       [real]
    Astro    astronomical input data for the radiation package
       [astronomy_type]
    Rad_output    Radiation output from radiation package, contains variables which are output from radiation_driver to the calling routine, and then used elsewhere within the component models.
       [rad_output_type]
    Lw_output    longwave radiation output data from the sea_esf_rad radiation package, when that package is active
       [lw_output_type]
    Sw_output    shortwave radiation output data from the sea_esf_rad radiation package when that package is active
       [sw_output_type]
    Cld_spec    Cloud microphysical and physical parameters to radiation package, when the microphysical package is active
       [cld_specification_type]
    Lsc_microphys    microphysical specification for large-scale clouds, when the microphysical package is active
       [microphysics_type]
    mask    OPTIONAL: present when running eta vertical coordinate, mask to remove points below ground
       [real]

  18. deallocate_arrays

    call deallocate_arrays (Cldrad_props, Astro, Astro2, Lw_output, & Fsrad_output, Sw_output)
    DESCRIPTION
    deallocate_arrays deallocates the array space of local derived-type variables.


    INPUT/OUTPUT
    Cldrad_props    Cloud radiative properties
       [cldrad_properties_type]
    Astro    astronomical data for the radiation package
       [astronomy_type]
    Astro2    astronomical data for the radiation package
       [astronomy_type]
    Fsrad_output    radiation output data from the original_fms_rad radiation package, when that package is active
       [rad_output_type]
    Lw_output    longwave radiation output data from the sea_esf_rad radiation package, when that package is active
       [lw_output_type]
    Sw_output    shortwave radiation output data from the sea_esf_rad radiation package when that package is active
       [sw_output_type]

  19. calculate_auxiliary_variables

    call calculate_auxiliary_variables (Atmos_input)
    DESCRIPTION
    calculate_auxiliary_variables defines values of model delta z and relative humidity, and the values of pressure and temperature at the grid box vertical interfaces.


    INPUT/OUTPUT
    Atmos_input    atmos_input_type variable, its press and temp components are input, and its deltaz, rel_hum, pflux, tflux and aerosolrelhum components are calculated here and output.
       [atmos_input_type]


NAMELIST

&radiation_driver_nml

do_netcdf_restart
netcdf/native restart file format
[logical, dimension, units: , default: .TRUE.]
rad_time_step
The radiative time step in seconds.
[integer, dimension, units: , default: 14400]
do_clear_sky_pass
are the clear-sky radiation diagnostics to be calculated ?
[logical, dimension, units: , default: ]
zenith_spec
string defining how zenith angle is computed. acceptable values: 'daily_mean', 'annual_ mean', 'diurnally_varying'
[character, dimension, units: , default: ]
rad_package
string defining the radiation package being used. acceptable values : 'sea_esf', 'original_fms'
[character, dimension, units: , default: ]
calc_hemi_integrals
are hemispheric integrals desired ?
[logical, dimension, units: , default: ]
all_step_diagnostics
are lw and sw radiative bdy fluxes and atmospheric heating rates to be output on physics steps ?
[logical, dimension, units: , default: ]
renormalize_sw_fluxes
should sw fluxes and the zenith angle be renormalized on each timestep because of the movement of earth wrt the sun ?
[logical, dimension, units: , default: ]
rad_date
fixed date for which radiation is to be valid (applies to solar info, ozone, clouds) [yr, mo, day, hr, min, sec]
[integer, dimension, units: , default: ]
all_level_radiation
is radiation to be calculated at all model levels ?
[logical, dimension, units: , default: ]
topmost_radiation_level
if all_level_radiation is false., this is the lowest model index at which radiation is calculated
[integer, dimension, units: , default: ]
drop_upper_levels
if all_level_radiation is false and drop_upper_levels is true, radiation will be calculated at all model levels from topmost_radiation_level to the surface
[logical, dimension, units: , default: ]
all_column_radiation
is radiation to be calculated in all model columns ?
[logical, dimension, units: , default: ]
rsd
(repeat same day) - call radiation for the specified rad_date (yr,mo,day), but run through the diurnal cycle (hr, min,sec)
[logical, dimension, units: , default: ]
use_mixing_ratio
assumes q is mixing ratio rather than specific humidity
[logical, dimension, units: , default: ]
solar_constant
annual mean solar flux at top of atmosphere [ W/(m**2) ]
[real, dimension, units: , default: ]
doing_data_override
input fields to the radiation package are being overriden using data_override_mod ?
[logical, dimension, units: , default: ]
overriding_temps
temperature and ts fields are overriden ?
[logical, dimension, units: , default: ]
overriding_sphum
specific humidity field is overriden ?
[logical, dimension, units: , default: ]
overriding_clouds
cloud specification fields are overriden ?
[logical, dimension, units: , default: ]
overriding_albedo
surface albedo field is overriden ?
[logical, dimension, units: , default: ]
overriding_aerosol
aerosol fields are overriden ?
[logical, dimension, units: , default: ]
use_co2_tracer_field
use co2 value from co2 tracer field?
[logical, dimension, units: , default: ]
trop_ht_at_poles
assumed height of tropoause at poles for case of tropause linearly varying with latitude [ Pa ]
[, dimension, units: , default: ]
trop_ht_at_eq
assumed height of tropoause at equator for case of tropause linearly varying with latitude [ Pa ]
[real, dimension, units: , default: ]
trop_ht_constant
assumed height of tropoause when assumed constant [ Pa ]
[real, dimension, units: , default: ]
constant_tropo
generate tropopause fluxes when tropopause ht assumed constant?
[logical, dimension, units: , default: ]
linear_tropo
generate tropopause fluxes when tropopause assumed to vary linearly with latitude?
[logical, dimension, units: , default: ]
thermo_tropo
generate tropopause fluxes when tropopause determined thermo- dynamically ?
[logical, dimension, units: , default: ]
time_varying_solar_constant
solar_constant is to vary with time ?
[logical, dimension, units: , default: ]
always_calculate
calculate radiative fluxes and heating rates on every call to radiation_driver ?
[logical, dimension, units: , default: ]
do_h2o
include h2o effects in radiation calculation ?
[logical, dimension, units: , default: ]
do_o3
include o3 effects in radiation calculation ?
[logical, dimension, units: , default: ]
solar_dataset_entry
time in solar data set corresp- onding to model initial time (yr, mo, dy, hr, mn, sc)
[integer, dimension, units: , default: ]
always_calculate
fluxes and heating rates should be calculatd on each call to radiation_driver ? (true for standalone applications)
[logical, dimension, units: , default: ]
use_uniform_solar_input
the (lat,lon) values used to calculate zenith angle are uniform across the grid ?
[logical, dimension, units: , default: ]
lat_for_solar_input
latitude to be used when uni- form solar input is activated [ degrees ]
[real, dimension, units: , default: ]
lon_for_solar_input
longitude to be used when uni- form solar input is activated [ degrees ]
[real, dimension, units: , default: ]


DIAGNOSTIC FIELDS

Diagnostic fields may be output to a netcdf file by specifying the module name identifier and the desired field names (given below) in file diag_table. See the documentation for diag_manager.
Diagnostic fields for module name identifier: 



DATA SETS

CO2 transmission functions
Several ascii files are required that can be easily setup by a script for getting physics data sets.
Restart file
A restart data set called radiation_driver.res(.nc) saves the global fields for the current radiative tendency, net shortwave surface flux, downward longwave surface flux, and cosine of the zenith angle. If the namelist variable do_average=true, then additional time averaged global data is written. If the restart file is not present when initializing then the radiative tendency is set to zero, the SW and LW surface fluxes to 50 watts/m2, and the cosine of the zenith angle to 0.50. Since radiation is usually computed on the first time step when restarting, these values may have little or no effect. If the restart file is not present time average data is also set to zero.


ERROR MESSAGES

FATAL in radiation_driver_init
must have two reference pressure profile
The input argument pref must have a second dimension size of 2.
FATAL in radiation_driver_init
restart version ## cannot be read by this module version
You have attempted to read a radiation_driver.res file with either no restart version number or an incorrect restart version number.
FALTA in radiation_driver
radiation_driver_init must first be called
You have not called radiation_driver_init before calling radiation_driver.
FALTA in radiation_driver
Time_next <= Time
Time arguments to radiation_driver are producing a time step <= 0. Check that the time argumnets passed to the physics_driver are correct.


REFERENCES

  1. For a specific list of radiation references see the longwave and shortwave documentation.


COMPILER SPECIFICS



PRECOMPILER OPTIONS



LOADER OPTIONS

        

TEST PROGRAM



KNOWN BUGS

For some of the diagnostics fields that represent fractional amounts, such as reflectivity and absorptivity, the units are incorrectly given as percent.



NOTES

CHANGE HISTORY changes prior to 1/24/2000

* Modified the radiation alarm. The module can now be stopped/started on a time step that is not the radiation time step.

* Modified the radiation restart format. Added a version number and radiation alarm information.

* Fixed a bug that occurred when namelist variable do_average = true. An addition averaging variable was added for array "solar". This averaging information was also added to the restart file. ***NOTE: As of this code, this namelist variable has been removed.***

* Removed the initialization for the astronomy package. This is now done by the astronomy namelist.

changes prior to 10/4/1999

* MPP version created. Changes to open_file and error_mesg arguments, Fortran write statements to standard output only on PE 0, Fortran close statement changed to call close_file, and Fortran read/write statements for restart files changed to call read_data/write_data.

* Implementation of the new MPP diagnostics package. This required major changes to the diagnostic interface and the manner in which diagnostics quantities are selected.

* There were no changes made that would cause answers to changes.

changes prior to 5/26/1999

* added namelist variables for modifying the co2 mixing ratio.

* changed the units of namelist variable solar_constant from ly/min to watts/m2.



FUTURE PLANS



top