// I would like to put it all in a struct, but then I'd have to write a constructor for it, due to members defined as references, creating a worse nightmare than the one I'd like to simplify...
/*! \brief Main calculation loop.
*
* The solution of the scattering problem for different wavelengths is an
* embarrasingly parallel task. This function, therefore, collects all the
* operations that can be independently executed by different processes,
* after the configuration stage and the first calculation loop have been
* executed.
*
* \param jxi488: `int` Wavelength loop index.
* \param sconf: `ScattererConfiguration *` Pointer to a ScattererConfiguration object.
* \param gconf: `GeometryConfiguration *` Pointer to a GeometryConfiguration object.
* \param sa: `ScatteringAngles *` Pointer to a ScatteringAngles object.
* \param cid: `ClusterIterationData *` Pointer to a ClusterIterationData object.
* \param output: `VirtualAsciiFile *` Pointer to a VirtualAsciiFile object.
* \param output_path: `const string &` Path to the output directory.
* \param vtppoanp: `VirtualBinaryFile *` Pointer to a VirtualBinaryFile object.