ARTS built-in documentation server

Workspace Method RT4Calc

Description

Interface to the PolRadTran RT4 scattering solver (by F. Evans).

RT4 provides the radiation field (cloudbox_field) from a vector
1D scattering solution assuming a plane-parallel atmosphere (flat
Earth). It calculates up to two Stokes parameters (stokes_dim<=2),
i.e., all azimuthally randomly oriented particles are allowed (this
also includes macroscopically isotropic particles). Refraction is
not taken into account.

The scattering solution is internally obtained over the full
(plane-parallel) atmosphere, i.e. not confined to the cloudbox.
However, the radiation field output is limited to the cloudbox.
This allows to consider clearsky RT through a non-spherical
atmosphere outside the cloudbox improving the RT solution for
non-plane-parallel media compared to the plain RT4 output.

*nstreams* is the number of polar angles taken into account
internally in the scattering solution. That is, *nstreams*
determines the angular resolution, hence the accuracy, of the
scattering solution. The more anisotropic the bulk scattering
matrix, the more streams are required. The computational burden
increases approximately with the third power of *nstreams*.
The default value (*nstreams*=16) was found to be sufficient for
most microwave scattering calculations. It is likely insufficient
for IR calculations involving ice clouds, though.

Here, za_grid is NOT an input parameter, but output, and its
size equals *nstreams* or *nstreams*+2 (Gauss-Legendre and Double
Gauss quadratures in case *add_straight_angles*=1) (the reason is
that the computational burden is high for additional angles,
regardless whether they are quadrature angles or not; hence the
quadrature angles supplemented with 0 and 180deg are considered to
provide the best radiation field for a given effort).

The *auto_inc_nstreams* feature can be used to increase the number
of streams used internally in the scattering solution when found
necessary.
NOTE: this number-of-streams increase is only internally - the
angular dimension of the output cloudbox_field is fixed to the
*nstreams* given as input to this WSM.

Quadrature methods available are: 'L'obatto, 'G'auss-Legendre and
'D'ouble Gauss quadrature.

This WSM applies surface_rtprop_agenda to derive reflection
matrix and surface emission vector that are directly feed into
RT4's core solver (instead of their RT4-internal calculation as
used by RT4CalcWithRT4Surface).

Known issues of ARTS implementation:
- TOA incoming radiation is so far assumed as blackbody cosmic
  background (temperature taken from the ARTS-internal constant).

The keyword *pfct_method* allows to choose the method to extract the
scattering matrix. 'interpolate' considers temperature dependence,
others neglect it by chosing one specific temperature grid point
from the single scattering data: 'low' choses the lowest T-point,
'high' the highest T-point, and 'median' the median T-point. As
different scattering elements can have different temperature grids,
the actual temperature value used can differ between the scattering
elements.
Note that this keyword solely affects the scattering matrix;
extinction matrix and absorption vector are always interpolated to
the actual temperature.

Authors: Jana Mendrok

Synopsis

RT4Calc( cloudbox_field, za_grid, aa_grid, atmfields_checked, atmgeom_checked, scat_data_checked, cloudbox_checked, cloudbox_on, cloudbox_limits, propmat_clearsky_agenda, surface_rtprop_agenda, atmosphere_dim, pnd_field, t_field, z_field, vmr_field, p_grid, scat_data, f_grid, stokes_dim, z_surface, nstreams, pfct_method, quad_type, add_straight_angles, pfct_aa_grid_size, auto_inc_nstreams, robust, za_interp_order, cos_za_interp, max_delta_tau )

Variables

OUTcloudbox_field(Tensor7)The spectral radiance field inside the cloudbx.
OUTza_grid(Vector)Zenith angle grid.
OUTaa_grid(Vector)Azimuthal angle grid.
INatmfields_checked(Index)OK-flag for atmospheric grids and (physical) fields.
INatmgeom_checked(Index)OK-flag for the geometry of the model atmosphere.
INscat_data_checked(Index)OK-flag for scat_data.
INcloudbox_checked(Index)OK-flag for variables associated with the cloudbox.
INcloudbox_on(Index)Flag to activate the cloud box.
INcloudbox_limits(ArrayOfIndex)The limits of the cloud box.
INpropmat_clearsky_agenda(Agenda)Agenda calculating the absorption coefficient matrices.
INsurface_rtprop_agenda(Agenda)Agenda providing radiative properties of the surface.
INatmosphere_dim(Index)The atmospheric dimensionality (1-3).
INpnd_field(Tensor4)Particle number density field.
INt_field(Tensor3)The field of atmospheric temperatures.
INz_field(Tensor3)The field of geometrical altitudes.
INvmr_field(Tensor4)VMR field.
INp_grid(Vector)The pressure grid.
INscat_data(ArrayOfArrayOfSingleScatteringData)Array of single scattering data.
INf_grid(Vector)The frequency grid for monochromatic pencil beam calculations.
INstokes_dim(Index)The dimensionality of the Stokes vector (1-4).
INz_surface(Matrix)The surface altitude.
GINnstreams(Index, Default: 16)Number of polar angle directions (streams) in RT4 solution (must be an even number).
GINpfct_method(String, Default: "median")Flag which method to apply to derive phase function (for available options see above).
GINquad_type(String, Default: "D")Flag which quadrature to apply in RT4 solution (for available options see above).
GINadd_straight_angles(Index, Default: 1)Flag whether to include nadir and zenith as explicit directions (only effective for quad_type G and D).
GINpfct_aa_grid_size(Index, Default: 19)Number of azimuthal angle grid points to consider in Fourier series decomposition of scattering matrix (only applied for randomly oriented scattering elements)
GINauto_inc_nstreams(Index, Default: 0)Flag whether to internally increase nstreams (individually per frequency) if norm of (bulk) scattering matrix is not preserved properly. If 0, no adaptation is done. Else *auto_inc_nstreams* gives the maximum number of streams to increase to. Note that the output cloudbox_field remains with angular dimension of *nstreams*, only the internal solution is adapted (and then interpolated to the lower-resolution output angular grid).
GINrobust(Index, Default: 0)For *auto_inc_nstreams*>0, flag whether to not fail even if scattering matrix norm is not preserved when maximum stream number is reached. Internal RT4 calculations is then performed with nstreams=*auto_inc_nstreams*.
GINza_interp_order(Index, Default: 1)For *auto_inc_nstreams*>0, polar angle interpolation order for interpolation from internal increased stream to originally requested nstreams-ifield.
GINcos_za_interp(Index, Default: 0)For *auto_inc_nstreams*>0, flag whether to do polar angle interpolation in cosine (='mu') space.
GINmax_delta_tau(Numeric, Default: 1e-6)Maximum optical depth of infinitesimal layer (where single scattering approximation is assumed to apply).