Skip to Content
InstallationDependencies

Dependencies

SurfATT is built from source and requires a C++/Fortran toolchain, MPI, HDF5, Eigen, and CMake. Conda, Homebrew, and the Linux system package managers below are alternative ways to install these dependencies.

Required software

DependencyMinimum versionRecommended versionPurpose
CMake3.183.25 or newerConfigure the build
C++ compilerGCC 13 / Clang 14GCC 14 / Clang 17Compile the C++17 source
Fortran compilerGFortran 10GFortran 12 or newerCompile Fortran routines
MPI3.0Open MPI 4 or newerParallel execution
HDF51.101.14 or newerModel and data I/O
Eigen33.43.4 or newerLinear algebra
GitCurrent stable releaseCurrent stable releaseClone SurfATT and its submodules

SurfATT can use system installations of yaml-cpp and spdlog. If CMake cannot find them, the copies included with the source tree are used instead.

Install the dependencies

Choose one method below. Avoid mixing compilers, MPI, and HDF5 libraries from different package managers in the same build directory.

Conda is useful when you want an isolated and reproducible toolchain.

conda create -n surfatt -c conda-forge -y \ cxx-compiler fortran-compiler \ cmake make git \ openmpi hdf5 eigen \ yaml-cpp spdlog conda activate surfatt

This installs SurfATT’s dependencies only. You will compile SurfATT in the next step. On an HPC system, prefer the MPI implementation provided by the cluster.

Verify the toolchain

Check that the build tools and MPI compiler wrapper are visible:

cmake --version mpicxx --version gfortran --version

Continue with Build on a Local Machine, or use Build on an HPC System on a managed cluster.

Last updated on