Download and compile SurfATT

Clone the source codes

git clone --recursive https://github.com/xumi1993/SurfATT-iso

--recursive is required in this command, because dependencies of yaml-cpp will be download automatically.

Install on local computers

The code can be compiled with cmake

mkdir build && cd build
cmake .. && make -j4

Use specific compilers

For users intending to utilize specific compilers or install SurfATT within the Conda environment, please prepend the prefix before cmake.

CXX=gcc-13 FC=gfortran-13 cmake .. && make -j
CXX=arm64-apple-darwin20.0.0-clang FC=arm64-apple-darwin20.0.0-gfortran cmake .. && make -j

Install on HPC

Install hdf5 for Fortran

In the case of HPCs where hdf5 for Fortran might not be pre-installed, it is possible to manually compile and install hdf5.

cd ./SurfATT/external_libs

# make a local install path
mkdir local_hdf5 

# download hdf5 source
wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.13/hdf5-1.13.3/src/hdf5-1.13.3.tar.gz

# extract the downloaded directory
tar -xvf hdf5-1.13.3.tar.gz
cd hdf5-1.13.3/

# configure
CC=mpicc CXX=mpic++ FC=gfortran ./configure --enable-unsupported --enable-shared --enable-fortran --prefix=$(pwd)/../local_hdf5

# make
make -j && make install

Compile source code

# configure
CC=gcc CXX=g++ FC=gfortran MPIFC=mpif90 HDF5_ROOT=$(pwd)/../external_libs/local_hdf5 cmake ..

# make
make -j

Then the executable surfatt_tomo and surftomo_cb_fwd are created in the bin directory.

Update SurfATT

To update SurfATT, users can simply pull the latest changes from the repository and recompile the code.

cd path/to/SurfATT-iso
git pull

Then recompile the code as described in the previous section.