The SO engine solves the scalar radiative transfer equation using the successive orders technique. The theoretical basis for the technique can be found in [Bourassa2008]. The SO engine, which was developed for ozone retrievals from odin-osiris measurements, is optimized for computational speed at the expense of memory. The model solves the radiative transfer over a geographic region surrounding a location known as the Reference Point, which is typically the location where the solution is actually required (eg location of limb scan etc.) The model approximates the Earth as a sphere with the radius matching the North-South curvature of the true Earth at the Reference Point.

The model works in two stages. The first stage is a geometry stage where all of the rays used by the model are traced through the atmosphere and split into manageable segments throughout the atmosphere. Many geometrical factors and calculations generated during the ray-tracing are internally cached and tabulated for later use by the second stage. The second stage peforms all the wavelength specific calculations. The primary advantage of the SO engine is that the ray tracing is performed once and is shared between subsequent wavelength calculations. This saving can be significant within atmospheric retrievals where the optical properties of the atmosphere are modified multiple times as part of the fitting process. On the other hand this strength is also a weakness as (i) the ray tracing is not adaptive and cannot split rays when the optical depth is too large and (ii) the internal memory footprint can get large if many diffuse profiles are required across the region of interest. The model works well for scenarios that avoids these two problem conditions, for example uv-visible calculations with the Sun well above the horizon and small horizontal gradients in atmospheric properties.