Tools from NERSC to run the Ensemble Kalman Filter, adapted to NEMO.

Alison Delhasse bb105876fd start commit adelhasse 9 months ago
EnKF-MPI-TOPAZ 00d868c390 compiles on LUCIA 9 months ago
conversion_uf 00d868c390 compiles on LUCIA 9 months ago
interpolate_observations 053954a000 Version of MareNostrum4 just copied 5 years ago
sanity_check d60e8bdfee Scripts working freeboard and thickness 3 years ago
README.md bb105876fd start commit adelhasse 9 months ago
enkf_modules_to_load.txt 00d868c390 compiles on LUCIA 9 months ago

README.md

November 2016 Updated November 2017 Updated March 2019 at UCL Updated March 2024 A. Delhasse

François Massonnet francois.massonnet@uclouvain.be/bsc.es

Everything available to set up the Ensemble Kalman filter (EnKF) for NEMO and EC-Earth

!!! ALL COMPILATIONS AND CREATION OF BINARY FILES SHOULD BE DONE ON THE HPC !!!

  1. Go to the HPC

  2. Clone the git repository (some HPCs don't allow communication with the web, in this case clone locally and rsync the git project to HPC)

    git clone https://gogs.elic.ucl.ac.be/fmasson/EnKF.git
    
  3. Compile the EnKF code

The folder EnKF-MPI-TOPAZ is a modified copy of the source code found at NERSC (http://enkf.nersc.no/Code/NERSC_implementation/V2/)

It has been modified as to work with NEMO and LIM, by F. Massonnet and C. König Beatty. The code itself should not be modified, unless there are good reasons to do so.

cd EnKF-MPI-TOPAZ
make clean
configure_ecearth
make 

An executable EnKF should be produced. Try to run it to see if you get the following information message:

bsc32526@login2:/gpfs/projects/bsc32/bsc32526/enkf/EnKF-assimilation/EnKF-MPI-TOPAZ> ./EnKF Inne i start_mpi: qmpi_proc_num = 0 master = T MPI started with 1 processors Usage: EnKF

      EnKF -h

Options:

 -h -- describe parameter fie format

B/ Compilation of the program to convert NetCDF files to binaries

cd ../conversion_uf/ make clean source ../enkf_modules_to_load.txt make

Two executables named prep_obs_ORCA1 and prep_obs_ORCA25 should be created. Try them:

./prep_obs_ORCA1

       0

(prep_obs) takes a real obs, extracts the desired variable and outputs it in a format that the EnKF can read & treat ('observations.uf').

A file named mask.nc containing the variables tmaskutil, nav_lon and nav_lat is expected to be in the current directory (ORCA-file)

Three command line arguments are expected:

  1. Path to the nc file of which the data is to be extracted.
  2. Variable name that can be found in there, 'h_i_htc1' or 'at_i'. or dxdy_ice
  3. A tag with the date, e.g. 19790520

Hope to see you again soon.

(prep_obs): Stopped.

C/ Compilation of the program to post-process the restarts after assimilation ("sanity_check")

The folder sanity_check is a set of routines that make sure that the restarts provided by the EnKF can be read by NEMO. These are home-made (François Massonnet, see also description in http://www.sciencedirect.com/science/article/pii/S1463500315000050

cd ../sanity_check/ make clean source ../enkf_modules_to_load.txt make

An executable named sanity_checked is created, try it:

./sanity_check

sanity_check_LIM3 needs arguments: -analysis_file_ice -forecast_file_ice -analysis_file_oce -forecast_file_oce Checks NEMO-LIM3 ice and ocean analyses restarst (netcdf) file for sanity and fixesthem if necessary.

Sanity means for now: Strongly follow limupdate.F90 Files mask.nc and mesh_hgr.nc need to be in the current directory

Hope to see you again soon.

Chris König Beatty Francois Massonnet -- francois.massonnet@uclouvain.be Last update: 2013 Last update: 2016 (to work with NEMO3.6) (sanity_check): Stopped.

D/ Convert NetCDF observations (already interpolated on the ORCA grids) to UF format:

cd ../conversion_uf/

open convert.bash, check it, and run it (always on HPC)