The IFS uses a spectral transform method to solve numerically the equations governing the spatial and temporal evolution of the atmosphere.  The idea is to fit a discrete representation of a field on a grid by a continuous function.  This is achieved by expressing the function as a truncated series of spherical harmonics:

\[ \begin{eqnarray*} A(\lambda,\mu,\eta,t) & = & \sum_{l=0}^{\mbox{T}} \sum_{m = -l}^{l} \psi_{lm}(\eta,t) Y_{lm}(\lambda,\mu) & = & \sum_{l=0}^{\mbox{T}} \sum_{m=-l}^{l} \psi_{lm}(\eta,t) P_{l}^{m}(\mu) e^{im\lambda}  \end{eqnarray*} \]

where μ = sinθ with λ  the longitude and θ the latitude of the grid point, T is the spectral truncation number and Y lm are the spherical harmonic functions which are products of the associated Legendre polynomials, \( P_{l}^{m}(\mu) \)

and the Fourier functions, \( e^{im\lambda}. \) The spectral coefficients ψlm are computed from the discrete values known at each point of a Gaussian grid on the sphere by

  • a Fast Fourier Transform in the zonal direction followed by
  • a slow/fast Legendre transform in the meridional direction.

At each time step in the IFS:

  • derivatives, semi-implicit correction and horizontal diffusion are computed in spectral space;
  • explicit dynamics, semi-Lagrangian advection and physical parametrizations are computed in grid point space.

The representation in grid point space is on the Gaussian grid.  The grid point resolution is determined by the spectral truncation number, T.


  1. Could you please state what 'η' is here? If you could also state 'l' and 'm' explicitly, it would add clarity for the less familiar

    1. Hi Adam EL-SAID,

      There is a slightly different explanation provided in How to access the data values of a spherical harmonic field in GRIB - ecCodes GRIB FAQ which is perhaps clearer.  Please can you take a look and let me have your opinion (as a reply to this comment) ?



      1. Hi Paul,

        Ah this is much clearer (smile), thank you. I was trying to work through an example to build a 'toy version' of this thing in python so I can just get an idea who the state vector looks in the IFS. Is there any training material for that kind of thing that I can play with ?

        1. Hi Adam EL-SAID,

          I'll try to improve the description on this page to bring it into line with that in the How to.

          I'm not aware of any training material that might help you with this.  You could take a look at our Training course material and, in particular, the e-learning online resources and Our training resources to see if there's anything there that might be of help.