Algorithm 900: A discrete time kalman filter package for large scale problems - Torres, German Ariel (2010)
Data assimilation is the process of feeding a partially unknown prediction model with available information from observations, with the objective of correcting and improving the modeled results. One of the most important mathematical tools to perform data assimilation is the Kalman filter. This is essentially a predictor-corrector algorithm that is optimal in the sense of minimizing the trace of the covariance matrix of the errors. Unfortunately, the computational cost of applying the filter to large scale problems is enormous, and the programming of the filter is highly dependent on the model and the format of the data involved. The first objective of this article is to present a set of Fortran 90 modules that implement the reduced rank square root versions of the Kalman filter, adapted for the assimilation of a very large number of variables. The second objective is to present a Kalman filter implementation whose code is independent of both the model and observations and is easy to use. A detailed description of the algorithms, structure, parallelization is given along with examples of using the package to solve practical problems. © 2010 ACM.