SCIATRAN solves the radiative transfer equation (RTE) for light
scattered and absorbed in a vertically inhomogeneous (plane-parallel)
atmosphere (incl. multiple scattering) using the "finite
difference method" as described, for example, in [29] and [2].
A description of the mathematical approach used to solve the RTE and
to calculate weighting functions in SCIATRAN can be found in [37] [4] [28] [38] [27] [14].
An additional description of the mathematics, data bases, and a user's
guide of a predecessor of SCIATRAN can be found in [10].
A detailed description of the finite difference matrix equation
actually solved by SCIATRAN, and how this equation can be derived from
the general radiative transfer equation, is given in Annex A.
SCIATRAN consists of the main program GT_IFACE which reads
all input settings from control.inp and
control2.inp, initialises all SCIATRAN input variables using
several data bases and performs the call of the main subroutine
GPP_MASTER which calls all subsequent SCIATRAN top-level
subroutines (see below).
SCIATRAN consists of four nested main do loops:
The wavelength range of SCIATRAN (240
- 2400 nm) has been devided into four sub-ranges. For each sub-range a
dedicated optimised altitude grid has been created (see
gt_net.inp). This is necessary to cope with the strong
wavelength dependence of the optical depth mainly due to ozone
absorption.
The solution of the radiative
transfer equation obtained by SCIATRAN is based on a development of
the intensity and the scattering phase functions into a Fourier
series. For each Fourier component a (wavelength dependent) matrix
equation has to be solved. The solution of this equation yields the
radiation scattered into the predefined instrument line-of-sight (LOS)
direction (actually the whole radiance field is calculated). The
solutions for the different Fourier components have to be summed up
(Fourier sum) to obtain the total intensity in the LOS direction.
Steps through the wavelength grid as
specified by the user in file control.dat.
If
ESFT (= exponential sum fitting of transmittance function)
calculations have to be done for the wavelength of interest for each
wavelength the RTE has to be set up and solved times, where is the
number of ESFT coefficients (usually =5).
A detailed description of several arrays mentioned in
this section can be found in GOMETRAN.VARS.
GT_IFACE
SCIATRAN main program: reads the user specifications given in
control.inp, control2.inp, and several additional
user interface files and extracts the appropriate information from the
SCIATRAN data base (trace gas absorption cross sections, profiles,
etc.). GT_IFACE is essentially the interface to the main
SCIATRAN subroutine GPP_MASTER. This means that the main task
of GT_IFACE is to set up all input parameters for
GPP_MASTER and to properly handle all results generated by
GPP_MASTER incl. storage of these data in results files.
GT_IFACE calls GPP_MASTER within the altitude grid
file loop; this means, in general, several times in succession (this
is also true for the AMF calculation which is also controlled by
GT_IFACE).
GPP_MASTER
GPP_MASTER receives all input parameters from
GT_IFACE and returns the major SCIATRAN output parameters,
i.e. intensity (array spec) and weighting functions (arrays
tragas_weight, aer_weight, albedo_weight,
temp_weight, press_weight, and
ray_weight). In order to calculate these quantities
GPP_MASTER performs the following SCIATRAN top-level
subroutine calls:
GT_CHECK (option)
GPP_ZEROING
GT_SETUP
GT_RENORM
plane-parallel mode : GT_PPGEOM
pseudo-spherical mode: GT_SPHERGEOM
< begin of azimuthal harmonics loop
GT_ALBEDO_SORT
GT_LEGEN
GT_RILGA
GT_RILGC
GT_RILGS
< begin of wavelength loop
interpolation of DEPOLarisation
factor on act. wavelength
GT_RILGR
GT_SCATT
GT_PHASE_LAYERS
GT_SURFACE
< begin of ESFT (or correlated-k) loop:
GT_OPDEP_TRANS
Scat.mode =2: GPP_SINGL_SCATT
else : GPP_FINITE_DIFF
> end of ESFT (or correlated-k) loop
> end of wavelength loop
GPP_CONVERGE
> end of azimuthal harmonics loop
GT_CHECK
Checks some input variables of GPP_MASTER if input parameter
``do_internal_check'' equals ``true''.
GPP_ZEROING
Zeroing of all arrays in GOMETRAN.VARS and
GOMETRANWF.VARS.
GT_SETUP
Calculation of difference arrays for layer heights (DZ,
DZR), calculation of Gaussian weights and abszissa
(AG, XM, AXM, AG1), calculation of
Legendre polynomials PLM PLMM and PLB, and
calculation of the factorial matrix CF.
GT_RENORM
Renormalisation of phase function moments for aerosols and clouds
(arrays AER_PHASMOMS and CLD_PHASMOMS).
GT_PPGEOM
Setup of delta height array DL1, flag DO_SHADOW
(false, if whole atmosphere illuminated by direct solar radiation) and
variable NSHADOW (number of shadowfree levels; max. value is
NLAYERS). In plane-parallel mode DO_SHADOW equals
false, and NSHADOW equals NLAYERS.
GT_SPHERGEOM
Setup of delta height arrays DL1 (if sun above horizon) and
DL2 (if sun below horizon), flag DO_SHADOW and
variable NSHADOW. Calculation of height dependent array of
cosine of solar zenith angle SOL_COS and tangent height layer
index array NH (height index corresponding to height level
just above tangent height) for direct solar beam.
GT_ALBEDO_SORT
Setup of flags DO_ALBEDO_TERM and DO_ALBEDO_BC.
GT_LEGEN
Calculation of products of associated Legendre polynomials
(PM1, PM2, PT1, and PT2).
GT_RILGA
Calculation of aerosol phase function Fourier coefficient arrays
APSUM, APMIN, APSO and APMO.
GT_RILGC
Calculation of cloud phase function Fourier coefficient arrays
CPSUM, CPMIN, CPSO, CPMO.
GT_RILGS
Interpolation of cloud top bi-directional reflection coefficients
BDSRF_SS and BDSRF_MS.
Interpolation of Rayleigh scattering depolarisation factor on
act. wavelength if wavelength dependent (variable
depol).
GT_RILGR
Calculation of Rayleigh phase function moments RAY_PHASMOMS
and Fourier coeff. arrays RSU, RMI, RSO and
RMO.
GT_SCATT
Calculation of extinction and scattering coefficient arrays (aerosols:
EXA (extinction), SCA (scattering); clouds:
EXC (ext.), SCC (scat.); molecules: SCR
(scat.)).
GT_PHASE_LAYERS
Interpolation of phase function moments on actual wavelength:
| Aerosols |
: |
APSO |
-> |
ASO |
| |
: |
APMO |
-> |
AMO |
| |
: |
APSUM |
-> |
ASU |
| |
: |
APMIN |
-> |
AMI |
| Clouds |
: |
CPSO |
-> |
CSO |
| |
: |
CPMO |
-> |
CMO |
| |
: |
CPSUM |
-> |
CSU |
| |
: |
CPMIN |
-> |
CMI |
Calculation of total phase function moments for each layer: arrays
P01, P02, PSU, PMI.
GT_SURFACE
Setup of surface reflection moment arrays SURF0,
SURF1.
GT_OPDEP_TRANS
Calculation of optical depth and cumulative optical depth arrays
DTAU and TAU and transmittance arrays EXM,
EX1 and EX2. Calculation of trace gas vertical
optical depth (array VOD).
GPP_SINGL_SCATT
Determines intensity and weighting functions for (single) scattering
mode 2. Calls GPP_WEIGHT_FNS_SGL for single scattering
weighting function calculation.
GPP_FINITE_DIFF
If scattering mode not equal 2: Determines solution of radiative
transfer matrix equation and calculates weighting functions by calling
GPP_WEIGHT_FNS if scattering mode not equal 3. If scattering
mode equals 3 call of GT_SGL_SCATT (single scattering; no
matrix inversion required).
GPP_CONVERGE
Adds Fourier terms and checks convergence.
|