GEOS-ESM / ESMA-Baselibs

Base Libraries for the GEOS ESM
Apache License 2.0
1 stars 10 forks source link

ESMA Baselibs

Build Latest Release

This git repository contains a simplified version of the "baselibs" module first developed by Gerhard Theurich and later maintained by Eugene Mirvis, Denis Nadeau, and Matthew Thompson. The current version only includes a minimal set of libraries needed for building GEOS at NASA/GSFC.

Current State of Libraries

Library Version
ESMF v8.6.1
FMS 2024.03
netCDF 4.9.2
netCDF Fortran 4.6.1
netCDF C++ 4.3.1
HDF5 1.14.4.3
HDF4 4.2.16-2
GFE v1.16.0
xgboost v1.6.0
libyaml 0.2.5
antlr2 2.7.7
GSL 2.7
jpeg 9f
zlib 1.3.1
szip 2.1.1
curl 8.9.1
UDUNITS2 2.2.28
NCO 5.2.7
CDO 2.4.2
nccmp 1.9.1.0
HDF-EOS2 3.0
HDF-EOS5 2.0
SDP Toolkit 5.2.20

Installation Instructions

Requirements

Obtaining ESMA Baselibs

ESMA Baselibs can be obtained in two ways via a tarball or through git.

Tarball

Recent releases of ESMA Baselibs have a complete tarball uploaded as an asset on the Releases page. These are the files denoted by:

ESMA-Baselibs-x.y.z.COMPLETE.tar.xz

The COMPLETE indicates that they have completed all the steps needed to get Baselibs via git (see below). Note that to save space, this tarball is tarred with --exclude-vcs so the libraries that are normally git repositories, will not be in this tarball.

Git Clone

ESMA Baselibs is based on submodules so you need to clone with:

git clone --recurse-submodules -b <TAG> https://github.com/GEOS-ESM/ESMA-Baselibs.git
Download non-git Libraries

Note that there is an additional step needed for building a complete ESMA Baselibs when retrieved via Git. There are six libraries that are not on git at present:

to get these libraries, run:

make download

Note that this step will occur automatically the first time Baselibs is built, but in case you want to build on a system without internet access (say, a compute node), this command should be run first on a head node.

Build Instructions

If you are feeling lucky, building can be just as simple as

cd ESMA-Baselibs
make install ESMF_COMM=<mpistack> (prefix=<dir>)
make verify ESMF_COMM=<mpistack>

where <mpistack> is one of the ESMF MPI stack names, such as:

see esmf/INSTALL for more information.

You can optionally pass in a prefix to determine where Baselibs will be built. If you don't, the system uses config.guess => x86_64-pc-linux-gnu (on most Linux) to install to:

../x86_64-pc-linux-gnu/$FC/Linux

Customizing The Installation

If the Baselibs do not build out of the repository, then you will need to customize a few things. For example, to choose the ifort compiler under Linux, just enter this

Using Baselibs in GEOS

For GEOS, if you have BASEDIR set in your environment which points to the location where the lib/, bin/, etc. directories exist, you need do nothing else. If not, you'll need to pass in the Baselibs as:

cmake .. -DBASEDIR=<BASEDIR_LOC> ...

where BASEDIR_LOC is such that BASEDIR_LOC/lib, etc. exists.

For additional information, contact Matthew.Thompson@nasa.gov

Contributing

Please check out our contributing guidelines.

License

All files are currently licensed under the Apache-2.0 license, see LICENSE.

Previously, the code was licensed under the NASA Open Source Agreement, Version 1.3.