In order to compile the code, you need to have already installed the lapack+blas libraries and the, optionally but much recommended, FFTW libraries.
If you feel lucky, you might want to try the quick start below, but be aware that most probably you will need to custom the configure command line.
The quickest (and the luckiest) way to compile the EXC code and obtain a program running is to give the command sequence
\$ ./configure \$ make \$ make test \$ sudo make install
However due to the non-standard location or multiple presence of fortran compilers, linear algebra subroutine or fft libraries, it is much better to explicitly give the location of all this stuff to the configure line. Example
$ ./configure --prefix=/dir/where/to/install CC=gcc F90=/path/to/f90compiler \ CFLAGS="-O3" F90FLAGS="-O3" LDFLAGS="-nofor-main" \ --with-blas="-L/dir/where/blas -lblas" \ --with-lapack="-L/dir/where/lapack -llapack" --with-fftw=/dir/where/fftw
If any of these steps fails, see the Common Problems section.
This will compile, test and install EXC.
The EXC default directory is /opt/etsf/share/exc/
. If you want to install it anywhere else, run configure with the prefix command.
Installation tree:
\$prefix |--bin/ |--share/exc/ |--files/
General features:
--help produces a more extensive help --prefix=DIR directory where to install EXC --enable-static=ARG if yes, prevents the use of shared object ARG=no (the same as --disable-static) shared object linked (default) ARG=yes that is suggested for portability
Libraries and Packages
--with-fftw3=DIR provides FFTW3 in DIR, (get it! www.fftw.org) DIR=/path/to/main/location/of/fftw3 --with-blas=LOCATION provides blas in DIR, (get it! www.netlib.org/blas) LOCATION="-L/path/to/blas/location/lib -lblas" --with-lapack=LOCATION provides lapack in DIR (get it! www.netlib.org/lapack/) LOCATION="-L/path/to/lapack/location/lib -llapack"
Some influential environment variables:
F90 Fortran 90 compiler command F90FLAGS Fortran 90 compiler flags LDFLAGS linker flags, e.g. -Lif you have libraries in a nonstandard directory CC C compiler command CFLAGS C compiler flags
Many other options are available. For a list, type
$ ./configure --help