Compile the EXC Code

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.

Quick start

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/

Configuration options

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. -L if 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