Preprocessing options
=====================

Naming conventions
------------------

Names may contain capital letters, digits and underscores only. They
must start with a letter.

Directives related to features that may or may not be present depending
on the configuration must begin by the keyword *HAVE\_*, e.g.
*HAVE\_CONFIG\_H, HAVE\_NETCDF, HAVE\_NANOQUANTAXC, etc.

In this respect, ABINIT abides strictly by the GNU Coding Standards.
This means in particular that:

 * all user-defined compiler directives should be upper case;

 * ...



If statements
-------------

*If* statements should all begin with '<tt>#if</tt>'. We kindly ask you not
to use '<tt>#ifdef</tt>', but '<tt>#if defined</tt>' instead. A line
ending an *if* statement must contain the '<tt>#endif</tt>' keyword only.

Example:

<pre>
#if defined HAVE_CONFIG_H
#include "config.h"
#endif
</pre>



Options list for ABINIT 5
-------------------------

### Generic options ###

ABINITGW
CONTRACT
HAVE_CONFIG_H



### Architecture-related options ###

MACOSX
T3E
VMS



### FFT options ###

HAVE_COMPAQ_FFT
HAVE_FFTW
HAVE_FFTWTHREADS



### External library options ###

HAVE_HP_MLIB
HAVE_IBM_ESSL
HAVE_NEC_ASL
HAVE_NETCDF
HAVE_NQXC
HAVE_SGI_MATH
HAVE_XMLF90



### MPI options ###

MPI
MPI1
MPI2
MPI3
MPIO
MPI_EXT
MPI_FFT
MPI_TRACE



### Compiler options ###

ABSOFT_FORTRAN
COMPAQ_FORTRAN
FUJITSU_FORTRAN
HITACHI_FORTRAN
HP_FORTRAN
IBM_FORTRAN
INTEL_FORTRAN
MIPSPRO_FORTRAN
NAG_FORTRAN
NEC_FORTRAN
SUN_FORTRAN

HAVE_FORTRAN_EXIT

__INTEL_COMPILER



### Unmaintained options ###

OPENMP
PGIWin
T3E
TEST_AIM
TRACE



### Removed options ###

#### OLD_INIT ####

Was used in *src/04wfs/wfconv.F90* to initialize the wavefunctions, and has
been replaced for a long time by a more efficient method.

#### ultrix ####

Ultrix was an operating system based on a 4.2BSD Unix with some features
from System V. It was first released in 1984. Its purpose was to provide
a DEC-supported native Unix for VAX. The last major release of Ultrix was
version 4.5 in 1995, which supported DECstations and VAXen. There were some
subsequent Y2K patches. There has been no ABINIT user on Ultrix quite some
time.



Options replaced since ABINIT 4
-------------------------------

	The option ...		has been replaced by ...
	--------------		------------------------
	__IFC			__INTEL__COMPILER
	__VMS			VMS
	CHGSTDIO		READ_FROM_FILE
	FFTW			HAVE_FFTW
	FFTWTHREADS		HAVE_FFTWTHREADS
	MPIEXT			MPI_EXT
	NAGf95			NAG_FORTRAN
	P6			i386
	TRACE			MPI_TRACE
	bim			HAVE_IBM_ESSL
	bmi			HAVE_IBM_ESSL
	cen			HAVE_NEC_ASL, NEC_FORTRAN
	dec_alpha		COMPAQ_FORTRAN
	hp			HAVE_HP_MLIB, HP_FORTRAN
	hpux			HAVE_HP_MLIB
	ibm			XL_FORTRAN
	macosx			MACOSX
	mpi			MPI
	nec			HAVE_NEC_ASL, NEC_FORTRAN
	nolib			HAVE_COMPAQ_FFT
	sgi			HAVE_SGI_MATH, MIPSPRO_FORTRAN
	sr8k			HITACHI_FORTRAN
	vpp			FUJITSU_FORTRAN

