Enabling flexible interpolation using YAC and PROJ

PISM’s projection-aware interpolation code uses PROJ[1] to compute longitude, latitude coordinates of cell centers and cell corners and YAC for the interpolation itself.

YAC depends on YAXT. Please make sure you have Autoconf, Automake, and libyaml installed, then use the following commands to install both YAXT and YAC:

Listing 1 Building YAXT and YAC
export CC=${CC:-mpicc}
export FC=${FC:-mpifort}
export CFLAGS="-O3 -g -march=native"

prefix=${prefix:-$HOME/local/yac}

yaxt_version=0.11.3
git clone -b release-${yaxt_version} \
    https://gitlab.dkrz.de/dkrz-sw/yaxt.git

cd yaxt

autoreconf -i

./configure --prefix=${prefix} \
            --with-pic

make all && make install

cd -

yac_version=3.5.2
git clone -b release-${yac_version} \
    https://gitlab.dkrz.de/dkrz-sw/yac.git

cd yac

test -f ./configure || ./autogen.sh

./configure --prefix=${prefix} \
            --with-yaxt-root=${prefix} \
            --disable-netcdf \
            --disable-examples \
            --disable-tools \
            --disable-deprecated \
            --with-pic

make all && make install

To build PISM with these libraries, set the CMake variable Pism_USE_YAC_INTERPOLATION and include YAC’s installation prefix in CMAKE_PREFIX_PATH:

cmake -DPism_USE_YAC_INTERPOLATION=YES \
      -DCMAKE_PREFIX_PATH="$HOME/local/yac;..." \
      ...

See section Interpolation of input data to learn how to use flexible interpolation in PISM.

Footnotes


Previous Up Next