ARTS built-in documentation server

Workspace Method DisortCalc

Description

Interface to the DISORT scattering solver (by Stamnes et al.).

DISCLAIMER: There is a couple of known issues with the current
implementation (see below). Use this WSM with care and only if
these limitations/requirements are fulfilled. Results might be
erroneous otherwise.

DISORT provides the radiation field (cloudbox_field) from a scalar
1D scattering solution assuming a plane-parallel atmosphere (flat
Earth). Only totally randomly oriented particles are allowed.
Refraction is not taken into account. Only Lambertian surface
reflection is handled.

*nstreams* is the number of polar angles taken into account
internally in the scattering solution, za_grid is the
polar angle grid on which cloudbox_field is provided.
*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 linearly with *nstreams*. The default value
(8) is sufficient for most microwave scattering calculations. It is
likely insufficient for IR calculations involving ice clouds,
though.

Further, za_grid determines the resolution of the output
radiation field. The size of za_grid has no practical
impact on computation time in the case of Disort and higher
resolution generally improves the interpolation results, hence
larger za_grid are recommended. To ensure sufficient
interpolation accuracy, we require a (hardcoded) minimum size of 38.

Different sphericity levels are emulated here by embedding DISORT
in different ways and using different output. The available options
(from low to high sphericity level) are:
- Cloudbox extends over whole atmosphere (e.g. by setting cloudbox
  from cloudboxSetFullAtm).
- Cloudbox extends over a limited part of the atmosphere only (e.g.
  by setting cloudbox from cloudboxSetAutomatically or
  cloudboxSetManually). Internally, DISORT is run over the whole
  atmosphere, but only the radiation field within the cloudbox is
  passed on and used further in ARTS (e.g. by yCalc).

Some auxiliary quantities can be obtained. Auxiliary
quantities are selected by disort_aux_vars and returned by disort_aux.
Valid choices for auxiliary data are:
 "Layer optical thickness": Matrix [f_grid, size of p_grid - 1] layer optical                              thickness.
 "Single scattering albedo": Matrix [f_grid, size of p_grid - 1] layer single"
                               scattering albedo.
 "Direct beam": Matrix [f_grid, p_grid]. Attenuated direct at level.
                               Zero, if no sun is present 

Authors: Claudia Emde, Jana Mendrok, Manfred Brath

Synopsis

DisortCalc( cloudbox_field, disort_aux, atmfields_checked, atmgeom_checked, scat_data_checked, cloudbox_checked, cloudbox_on, cloudbox_limits, propmat_clearsky_agenda, gas_scattering_agenda, atmosphere_dim, pnd_field, t_field, z_field, vmr_field, p_grid, lat_true, lon_true, refellipsoid, scat_data, suns, f_grid, za_grid, aa_grid, stokes_dim, z_surface, surface_skin_t, surface_scalar_reflectivity, gas_scattering_do, suns_do, disort_aux_vars, nstreams, Npfct, only_tro, quiet, emission, intensity_correction )

Variables

OUTcloudbox_field(Tensor7)The spectral radiance field inside the cloudbx.
OUTdisort_aux(ArrayOfMatrix)Auxilary data to the output of the DisortCalc-Methods.
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.
INgas_scattering_agenda(Agenda)Agenda calculating gas scattering extinction and phase matrix.
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.
INlat_true(Vector)Latitudinal geolocation for 1D and 2D data.
INlon_true(Vector)Longitudinal geolocation for 1D and 2D data.
INrefellipsoid(Vector)Reference ellipsoid.
INscat_data(ArrayOfArrayOfSingleScatteringData)Array of single scattering data.
INsuns(ArrayOfSun)Array of Sun.
INf_grid(Vector)The frequency grid for monochromatic pencil beam calculations.
INza_grid(Vector)Zenith angle grid.
INaa_grid(Vector)Azimuthal angle grid.
INstokes_dim(Index)The dimensionality of the Stokes vector (1-4).
INz_surface(Matrix)The surface altitude.
INsurface_skin_t(Numeric)Surface skin temperature.
INsurface_scalar_reflectivity(Vector)Surface reflectivity, assuming it can be described as a scalar value.
INgas_scattering_do(Index)Flag to activate gas scattering.
INsuns_do(Index)Flag to activate the sun(s).
INdisort_aux_vars(ArrayOfString)Selection of quantities for disort_aux .
GINnstreams(Index, Default: 8)Number of polar angle directions (streams) in DISORT solution (must be an even number).
GINNpfct(Index, Default: 181)Number of angular grid points to calculate bulk phase function on (and derive Legendre polynomials from). If <0, the finest za_grid from scat_data will be used.
GINonly_tro(Index, Default: 0)Set to 1 if the scattering data is just of TRO type. Has effect only if Npfct > 3 or Npfct<0, but then leads to much faster calculations.
GINquiet(Index, Default: 0)Silence C Disort warnings.
GINemission(Index, Default: 1)Enables blackbody emission. Set to zero, if no Emission e. g. like in visible regime for earth is needed
GINintensity_correction(Index, Default: 1)Enables intensity correction. Importantant for low number of streams. Set to zero, if problems encounter or using a high number of streams (>30)