The Local Ensemble Transform Kalman Filter
The Local Ensemble Transform Kalman Filter (LETKF)
is a state-of-the-art approach
to data assimilation. It is the result of a collaboration between ASU
researcher Eric Kostelich and the
Weather Chaos
team at the University of Maryland.
This page provides links to download a version of the code that works with
the April 2004 version of the Global Forecast System, which is the global
weather forecast model of the National
Centers for Environmental Prediction.
About the code
There are two versions of the code. The "reference" version
uses shell scripts to distribute
the work among the processors. We have found it to be useful
for development and testing, as an MPI-aware debugger is not required.
The "production" version uses MPI.
Attribution requests
If you use this code or derivatives thereof for research purposes,
I would appreciate being acknowledged in resulting research papers and
would like to receive a PDF or paper copy. (At the least, please let
me know the citation. This information is helpful to me and to our
funding agencies.)
Compiling and running the code
The codes are written in Fortran 95 with TR 15581 (allocatable array components)
extensions. The latter is a part of the current Fortran 2003 standard,
and the code as a whole should be fully compliant with the Fortran 2003
standard with minor exceptions as noted in the source code.
The code is known to compile and run with the following Fortran compilers:
The following Fortran compilers are known not to work because
they encounter internal errors:
- Gfortran (all versions)
- Portland Group (PGI) (all versions)
I have not tested the Pathscale or Absoft compilers.
Reports of compilation problems and incorrect or inconsistent results
are appreciated.
LETKF source code (MPI version, updated July 1, 2008)
See comments below regarding attribution.
LETKF source code (MPI version, updated June 15, 2008)
See comments below regarding attribution.
LETKF source code (Older reference version)
The source code is provided as gzipped tar files. There are two
sets:
- the "support" routines, which must be compiled first, and
- the routines for the LETKF proper.
Edit make.inc
first to uncomment the lines that are approprite for your compiler and
comment out all other lines. Then build the software with make -r.