Page tree
Skip to end of metadata
Go to start of metadata

Instruction for cloning, building and running the JEDI components (OOPS, UFO, FV3, SOCA bundles) on Theia (from Rahul Mahajan)

$> module purge
$> module use -a /contrib/da/modulefiles
$> module load jedi

# This will load the Intel compiler suite (currently only v17 is supported)

For GCC compiler suite (v7.3.0, v8.2.0 are built); 

$> module load jedi/jedi-gcc-7.3.0
$> module load jedi/jedi-gcc-8.2.0


# See what modules are loaded

$> module list


Assume comp_name can be oops, ufo-bundle, fv3-bundle or soca-bundle

Clone the JEDI component. 

$> git clone

change directory into the cloned component:

$> cd comp_name

 Create a build directory and cd into it:

$> mkdir build
$> cd build

Build the components of the bundle, create executables and test them:

$> ecbuild --build=release -DMPIEXEC=$MPIEXEC .. [for Intel only, see note below]
$> ecbuld .. [ for GCC]
$> make -j12
$> ctest


The MPIEXEC variable is only passed to ecbuild when building with Intel compiler, since the sysadmins have a special mpirun to use instead of the compiler built mpiexec.


  1. Several JEDI repositories use Git LFS (large file store) to manage large files and needs to be initialized.  It installs several Git hooks for managing these files.  The initialization is a one-time setup and can be done as follows:

    $> git lfs install

  2. Github will ask for authentication each time a protected repository is cloned. All JEDI repositories are currently protected.  The user can "cache" the login credentials to prevent github from asking for login credentials for a acceptable period of time (3600 secs) as follows:

    $> git config –global credential.helper “cache –timeout=3600”

  3. All JEDI components use ECKIT and FCKIT.  These are sometimes treated as system libraries (e.g. NetCDF), and are installed in containers such as Singularity or Docker, but not on Theia. You will need to uncomment the eckit and fckit lines from the bundles e.g. ufo-bundle, fv3-bundle, soca-bundle, etc.