RFM Numerical Optimisations



19JUL18
The following assumes that the FORTRAN compiler options have already been
set to produce 'fast' code, eg removing array bound checks, enabling any
compiler optimisations.
The principle calculation unit is a 'path',
defined as the segment of a tangent ray bounded by an atmospheric
profile layer for a single gas. For example, if an atmosphere is defined
at 0, 10, 20 .... 60 km, and a single limbviewing
CO2 radiance spectrum from tangent height
35 km is required, there will be 3 paths corresponding to the altitudes 3540,
4050 and 5060 km. If H2O is added, this will double the number of paths to 6.
Adding horizontal structure (GRA Flag) will
also double the number of paths since the upward and downward parts of the
ray path are no longer identical.
If a FOV convolution is required the number of paths is again increased by
a factor corresponding to the number of tangent rays required to specify the
FOV.
If processing speed rather than accuracy is a requirement, several
optimisations are available which either reduce the number of calculated paths,
or speed up the spectral calculation for each path.
Starting with the simplest, the following options are suggested:
 .atm File
 The number of paths is also determined
by the height and resolution of the atmospheric profile, i.e. the
altitude grid specified in the first file named in the
*ATM section of the Driver Table.
It is generally
adequate to set an upper limit of 120km for the earth's atmosphere
(unless performing specialist highaltitude calculations)
and to increase the profile spacing in the
upper levels. Rather than reformat the standard atmosphere files,
the suggested method is to prepare a single height profile in
the .atm file
format which contains the required subset of
the US Std atmosphere altitudes
(file hgt_std.atm)
and insert this as the first file in the
*ATM section. Even this is probably
too fine a resolution at high altitudes for nadirviewing.
 *TAN Section
 Compute as many tangent heights as possible at the same time. This is
because many path sections in the upper
atmosphere have similar CurtisGodson p,T values so the absorption
coefficients only need to be calculated for one path segment and will
be automatically scaled by the absorber amount for similar segments
(the CLC Flag switches off this scaling).
For planeparallel atmospheres
(NAD and ZEN
flags) this makes no difference as the RFM already
uses the fact that all slant
paths have mathematically identical CG parameters.
 .fov File
 The details of the FOV tabulation
critically affect the number of calculated paths. For single tangent
heights, the number of paths will be proportional to the number of points
required
to specify the FOV. For multiple, regularlyspaced tangent heights,
efficiency can be gained by using a FOV tabulation on the same spacing
as the tangent heights which allows individual tangent paths to be reused
and adding the FVZ Flag.
For example, the MIPAS trapeziumshape response (0,1,1,1,0) at
relative altitude coordinates (2,1.4,0,+1.4,+2) can be replaced by an
'equivalent' shape (0,y,1,y,0) where y=0.2798 for (3,1.5,0,+1.5,+3),
or y=0.2302 for (2,1,0,+1,+2). For the 1.5km FOV spacing,
a series of n limb views at 3 km increments will
require 2n+3 tangent paths instead of 5n.
 REJ Flag
 Sets lower limits on the pathadjusted strength of lines which are
included in the spectral calculation.
Different criteria will be appropriate for different spectral regions and
tangent heights so it is advisable to compare results with and without
this option for specific cases.
 SHP Flag
 By default the RFM uses the Voigt lineshape throughout (=convolution of
Lorentz and Doppler lineshapes). However if it is known that either
Doppler or Lorentz are appropriate, the calculation is quicker if
these lineshapes are used explicitly. (Warning: although the Lorentz
line shape may describe the lineshape at low tangent altitudes it is
often necessary to allow for the Doppler 'core' of lines when performing
calculations using the limbviewing geometry)
 FIN Flag
 If an ILS convolution is required (set by the
ILS or AVG
Flags) the
default is to perform the calculation at 2000 pts/cm^{1}
(i.e. 0.0005 cm^{1} grid)
which is adequate
to resolve Doppler lines at high altitudes (required for limbviewing
calculations), but for nadirviewing calculations
1000 pts/cm^{1} is usually adequate.
The user can specify a coarser resolution
to speed up the calculation. A warning message is printed in the
rfm.log file
if the userspecified resolution seems too coarse.
 GRD Flag
 The user can supply irregular grids (.grd
files) to specify the spectral points at
which the lineshapes, absorption coefficients, radiative transfer etc
are calculated instead of using every point on the regular fine grid.
The path radiances, absorptions and transmissions are then interpolated
to the regular grid before output (also prior to any ILS convolution).
Alternatively, the GRD
flag can be used in conjunction with
.tab files to calculate radiances only
at the grid points contained in the files.
 LUT Flag
 The user can supply LookUp Tables
(.tab files)
to supply pretabulated absorption coefficients for specific absorbers and
spectral ranges, instead of using a linebyline calculation.