- 17/06/2013:
EnKF-Matlab toolbox v. 0.31 is out. Minor changes. Check CHANGELOG for details.
Pavel Sakov
- 27/02/2012:
EnKF-Matlab toolbox v. 0.30 is out. Cosmetic changes.
Pavel Sakov
- 24/04/2011:
EnKF-Matlab toolbox v. 0.29 is out. Check CHANGELOG for details.
Pavel Sakov
- 26/08/2010:
EnKF-Matlab toolbox v. 0.28 is out. Substantial changes, including a new model L40b with a bias correction example. Check CHANGELOG for details.
Pavel Sakov
- 03/08/2010:
EnKF-Matlab toolbox v. 0.27 is out. Fixed RMSE calculation :).
Pavel Sakov
- 14/04/2010:
Replaced QG_samples-11.mat and QG_samples-12.mat in the QG_samples directory of EnKF-Matlab - thanks to Oliver Pajonk for spotting zero dumps in the tail of the previous version of QG_samples-12.mat.
Pavel Sakov
- 13/04/2010:
EnKF-Matlab toolbox v. 0.26 is out.
Check
CHANGELOG for details.
Pavel Sakov
- 06/04/2010:
Matlab code for the localisation paper is available:
code directory
.
Pavel Sakov
- 12/11/2009:
EnKF-Matlab toolbox v. 0.25 is out.
Added binaries for L3, L40 and QG models compiled for Windows 32/64 platforms by Oliver Pajonk.
Check
CHANGELOG for details.
Pavel Sakov
- 10/11/2009:
EnKF-Matlab toolbox v. 0.24 is out. Check
CHANGELOG for details.
Pavel Sakov
- 21/09/2009:
EnKF-Matlab toolbox v. 0.23 is out. Bug fix in setpath.m, introduced in v. 0.22.
Check
CHANGELOG for details.
Pavel Sakov
- 17/09/2009:
EnKF-Matlab toolbox v. 0.22 is out.
Eliminated dependence on the Statistics Toolbox; introduced reference to EnKF-Matlab's root directory.
Check
CHANGELOG for details.
Pavel Sakov
- 09/09/2009:
EnKF-Matlab toolbox v. 0.21 is out.
There are a number of substantial changes since v. 0.20.
Check
Code/EnKF-Matlab/CHANGELOG for details.
Pavel Sakov
- 04/08/2009:
EnKF-Matlab toolbox v. 0.20 is out.
Check
Code/EnKF-Matlab/CHANGELOG for details.
Pavel Sakov
- 22/07/2009:
EnKF-Matlab toolbox v. 0.19 is out.
Check
Code/EnKF-Matlab/CHANGELOG for details.
Pavel Sakov
- 17/03/2009:
EnKF-Matlab toolbox v. 0.18 is out.
Check
Code/EnKF-Matlab/CHANGELOG for details.
Pavel Sakov
- 27/02/2009:
EnKF-Matlab toolbox v. 0.17 is out. Bug fix (affected QG model runs with p > 100). Check
Code/EnKF-Matlab/CHANGELOG for details.
Pavel Sakov
- 27/02/2009:
EnKF-Matlab toolbox v. 0.16 is out.
Check
Code/EnKF-Matlab/CHANGELOG for details.
Also, replaced QG samples - see the end note in Code/EnKF-Matlab/QG_samples/readme.
Pavel Sakov
- 12/02/2009:
EnKF-Matlab toolbox v. 0.15 is out.
Check
Code/EnKF-Matlab/CHANGELOG for details.
Pavel Sakov
- 10/02/2009:
EnKF-Matlab toolbox v. 0.14 is out.
Check
Code/EnKF-Matlab/CHANGELOG for details.
Pavel Sakov
- 04/02/2009:
EnKF-Matlab toolbox v. 0.13 is out.
Check
Code/EnKF-Matlab/CHANGELOG for details.
Pavel Sakov
- 21/11/2008:
EnKF-Matlab toolbox v. 0.12 is out.
Check
Code/EnKF-Matlab/CHANGELOG for details.
Pavel Sakov
- 25/08/2008:
EnKF-Matlab toolbox v. 0.11 is out.
Minor changes.
As always, check
Code/EnKF-Matlab/CHANGELOG for more details.
Pavel Sakov
- 15/08/2008:
EnKF-Matlab toolbox v. 0.10 is out.
There is a choice of a number of localising functions now.
As always, check
Code/EnKF-Matlab/CHANGELOG for more details.
Pavel Sakov
- 13/08/2008:
EnKF-Matlab toolbox v. 0.09 is out. Minor upgrades and bug fixes.
Check
Code/EnKF-Matlab/CHANGELOG for more details.
Also, the dumps for the quasigeostrophic (QG) model are now available for
download, to simplify the setup of the model within the toolbox.
Pavel Sakov
- 16/06/2008:
One bugfix (localization) and a few upgrades of the EnKF-Matlab toolbox.
Check the "CHANGELOG" file for more details, by Pavel Sakov.
- 02/06/2008:
EnKF-Matlab routines including the quasi geostrophic toy model and all flavours of the EnKF/ESRF are now provided under the "Code" section by Pavel Sakov. For remarks contact Pavel.Sakov"at"nersc.no
Path: Code/EnKF-Matlab/enkf-matlab-0.05.tar.gz
- 09/06/2007:
Minor upgrades of sampling schemes in the Sampling catalog, and the m_randrot.F90 routine.
- 05/06/2007: Added the routines for MPI implementation
in Code/NERSC_Implementation/MPI_Version
see the
documentation here.
The MPI version computes first the X5 matrix, stores it to disk and then updates arrays of low dimension
(2D fields or single state variable) in parallel. This cuts down the memory usage from 80 Gb down to 1 Gb
in the case of TOPAZ3, but increases the communication (IO) with the disk.
A post-processing routine assembles the files dumped by each processor.
Other diagnostics routines have also been extracted from the main EnKF code,
all are placed in the TOOLS/ subdirectory.
Laurent Bertino
- 05/06/2007: Added the routines for assimilation of sea-ice drift
in Code/NERSC_Implementation/Ice_Drift/
see the
documentation here.
Laurent Bertino
- 02/02/2007: analysis.F90 upgraded to use mean preserving transformations
in the square root schemes as discussed by Sakov 2006. This seems to provide a
significant improvement of the analysis scheme and properties of the analyzed ensemble, as
documented and explained by Geir Evensen
and in the
manuscript by Sakov.
Geir Evensen
- 28/11/2006: Fixed potential minor bug in analysis.F90
The statement
lreps=.false.
is added at start of routine.
This ensures that lreps is always false when the routine is entered and
it cannot use a possible .true. value which may be implicitely saved in
the previous call when the declaration
logical :: lreps=.false.
is used. This declaration implicitely implies the save attribute and is
equivalent to
logical, save :: lreps=.false.
This may lead to a crash if the number of measurements is low in one
call such that lreps becomes true, while in the next call a larger number
of measurements are used and lreps should be false, but rather uses the saved
value. Thus the representer final update is computed rather than the
standard matrix multiplication.
Geir Evensen
- 27/03/2006: Recoded EnKF analysis scheme.
A new analysis routine is now available which integrates all the previous
routines into one subroutine. It now allow the user to choose between
a standard pseudo inversion of C based on the eigen value factorization, or
the two subspace inversions from Evensen (2004) using either a prescribed
error covariance matrix R or the perturbation matrix E. New, is that these
inversions can be used with both the original EnKF with perturbation of
measurements as well as the square root schemes.
The routines are analysis.F90 and mod_anafunc.F90.
The Examples/Advect example is updated to use the new scheme (as well as the
old ones for testing). Comments and reports about possible bugs are welcomed.
Geir Evensen
- 20/03/2006: Eispack routine replaced by Lapack in analysis.
The old rsm eigenvalue routine has been replaced by the Lapack routine dsyevx.
At the same time the square root schemes without rotation are removed, since
these really should not be used.
Geir Evensen
- 20/03/2006: randrot.F90 is updated to use QR factorization.
This is the recommended procedure for generating an orthogonal random matrix.
Geir Evensen
- 13/12/2005: EnOI analysis2 routine added
After increasing demand (Isabel, Ole Martin and Jesper)
the EnOI equivalent for the analysis2 routine has been added
together with the analysis schemes. It is named analysis2_EnOI.F90.
Laurent Bertino
- 31/10/2005: Support for assimilation of sea-ice variables
In the NERSC_implementation directory, the routines have been updated
for the assimilation of sea-ice parameters in HYCOM.
The code provided is now what is used in the TOPAZ real-time system.
Laurent Bertino
- 03/10/2005: analysis2.F90 was missing one deallocate(U)
Jesper Larsen (jl@dmi.dk) found that the memory use was increasing and pointed out
that bug. Note that some compilers fix it automatically.
The deallocate was re-inserted.
Laurent Bertino
- 01/08/2005: The float() function has been changed to real().
Hee Choon Lee (hclee@metri.re.kr) found some problems with the float() function which is used to convert from
integer to real. This seems to be particular for some Linux systems. The code is now using
the real() function instead.
Geir Evensen
- 01/02/2005: The code generating random rotation matrices has been upgraded.
Ph. Craneguy compared the different analysis schemes on the MARS3D model
and found out that analysis5c produced smaller posterior ensemble variance (around 50% less
than analysis2 or analysis5!!).
It was found that the random rotation matrice in analysis5c was "not random enough" and
a small change of m_randrot.F90 fixed that: m_randrot.F90 now uses standard Gaussian random
numbers rather than uniform numbers in [0,1]. The fact that random
numbers were sampled in a unit cube rather than in the nrens-dimensional
space certainly had to do something with it.
Laurent Bertino
- 04/11/2004: The code for generation of pseudo random fields has been upgraded.
It now contains code for simulation of both 1-D and 2D fields. The 1D code
supports SGI and LINUX (FFTW3) libraries.
Note that some routines has changed names to differentiate between 1D and 2D routines.
Clearly a generic interface could be made, but this has not been done yet.
Geir Evensen
- 03/11/2004: The code for generation of pseudo random fields has been upgraded.
It now supports the generation of nonisotropic fields where the user specifies the
two different correlation lengths and a principal direction. This becomes important
in some geosciences applications.
It provides a new support for LINUX systems by now using fft routines from
FFTW from http://www.fftw.org/. This library can be compiled on most systems and
may later also be used on IBM and SGI.
The use of zeroin is replaced with a faster and safer newton iteration.
The 1D code will eventually be upraded to support linux as well.
Geir Evensen
- 26/09/2004: A problem may occur in the square root analysis when a single
measurement is used or if C is diagonal. See the
noteby Geir Evensen.
The analysis[456].F90 are replaced by
analysis[456]c.F90 which introduces a random rotation in the update equation.
The new routines also uses the implementation from the Appendix B in Evensen 2004,
and saves the X5 matrix to file for later use in an EnKS analysis update.
Geir Evensen.
- 22/09/2004: mkensemble.F90 upgraded for improved sampling (cf.
Evensen 2004), the generation of 3D random fields now requires 500Mb memory
and 36 CPU hours for TOPAZ (grid size 400x600x22).
Parallelization has been implemented but brings
no speedup on the IBM since the SVD call is "CRITICAL".
Laurent Bertino.
- 22/09/2004: m_compute_spline.F90 deeps(:) is intent(in) instead of
intent(out). The IBM compiler tolerated the bug, but not the LINUX
compiler.
Laurent Bertino after suggestion by Jesper Larsen.
- 07/09/2004: Minor bug corrected in memory allocation in IBM version of
m_pseudo2D.F90.
Laurent Bertino
- 07/09/2004: use m_cmplx2real added in LINUX version of m_pseudo2D.F90.
Laurent Bertino after suggestion by Jesper Larsen.
More details: email