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.
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
call radiation_driver_init (lonb, latb, pref, axes, Time, & aerosol_names)
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] |
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)
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] |
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] |
call define_rad_times (Time, Time_next, Rad_time_out, & need_aerosols, need_clouds, need_gases, & need_basic)
Time | current model time [time_type] |
Time_next | The time used for diagnostic output [time_type] |
Rad_time_out | time at which the climatologically-determined,
time-varying input fields to radiation should
apply [time_type] |
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] |
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)
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] |
Atmos_input | atmos_input type structure, contains the
following components defined in this subroutine [atmos_input_type] |
call define_surface (is, ie, js, je, albedo, land, Surface)
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] |
Surface | surface_type structure to be valued [surface_type] |
call surface_dealloc (Surface)
Surface | surface_type structure to be deallocated [surface_type] |
call atmos_input_dealloc (Atmos_input)
Atmos_input | atmos_input_type structure, contains variables
defining the atmospheric pressure, temperature
and moisture distribution. [atmos_input_type] |
call radiation_driver_end
call read_restart_file
call read_restart_nc
call initialize_diagnostic_integrals
call diag_field_init ( Time, axes )
Time | Current time [time_type] |
axes | diagnostic variable axes for netcdf files [integer] |
call obtain_astronomy_variables (is, ie, js, je, lat, lon, & Astro, Astro2)
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] |
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] |
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)
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] |
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] |
call update_rad_fields (is, ie, js, je, Time_diag, Astro2, & Sw_output, Astro, Rad_output, flux_ratio)
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] |
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] |
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] |
call flux_trop_calc (is, ie, js, je, lat, & Atmos_input, & Lw_output, Sw_output )
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] |
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] |
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)
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] |
call deallocate_arrays (Cldrad_props, Astro, Astro2, Lw_output, & Fsrad_output, Sw_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] |
call calculate_auxiliary_variables (Atmos_input)
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] |
Diagnostic fields for module name identifier:
For some of the diagnostics fields that represent fractional amounts, such as reflectivity and absorptivity, the units are incorrectly given as percent.