Dependencies:
=============

fourpack depends on 
a) petools ( http://astrogeo.org )
b) fftw    ( http://www.fftw.org )
c) optionally Intel MKL library

Important: fftw should be compiled with OpenMP support. FFTW may
support either thread interface or OpenMP. Tests showed that if 
FFTW-3.3.3 was compiled with threads, it hangs or crashes in 
an attempt to process arrays larger than 2Gb due to apparent 
conflicts with applications that rely on OpenMP, like fourpack.

Example of configuration of fftw:

  ./configure --prefix=/opt64 \
              --enable-sse2  \
              --enable-avx \
              --enable-openmp \
              --enable-shared \
              CC="gcc" \
              CFLAGS="-m64 -O3 -fomit-frame-pointer -malign-double -fstrict-aliasing -ffast-math -fno-stack-protector -march=native" \
              F77="/usr/bin/gfortran" \
              FFLAGS="-m64 -fno-underscoring -O3 -fomit-frame-pointer -malign-double -fstrict-aliasing -ffast-math -fno-stack-protector -march=native"
#
  make 
  make install
  # for double precision

  make distclean 
  ./configure --prefix=/opt64 \
              --enable-single  \
              --enable-sse \
              --enable-avx \
              --enable-openmp \
              --enable-shared \
              CC="gcc" \
              CFLAGS="-m64 -O3 -fomit-frame-pointer -malign-double -fstrict-aliasing -ffast-math -fno-stack-protector -march=native" \
              F77="gfortran" \
              FFLAGS="-m64 -fno-underscoring -O3 -fomit-frame-pointer -malign-double -fstrict-aliasing -ffast-math -fno-stack-protector -march=native"
  # for single precision
  make 
  make install

Keep in mind
a)  you may install fftw in a different directory specified by
    --prefix parameter;
b)  you may need to drop "--enable-avx" if your processor does not 
    support AVX set of instructions 
    ( Command "cat /proc/cpuinfo | grep avx | sort -u" returns nothing)
c)  you need to compile FFTW two times: the first time libraries with
    double precision are created. The second time libraries with single
    precision are created.
    


Installation:
=============

./configure [options]
make
make install


Use ./configure --help in order to get the list of options.
You need to check that fourpack is configured with correct
version of FFTW compiled with OpenMP support.

