quantum-espresso/include/defs.h.README

85 lines
4.3 KiB
Plaintext

*** Machine- , compiler- , library-dependent preprocessing options ***
Most machine-dependent preprocessing options are used in include files:
include/f_defs.h (definitions to be included in FORTRAN files ONLY)
include/c_defs.h (definitions to be included in C files ONLY)
iotk/include/iotk_config.h (definitions for iotk)
Hardware/OS:
__AIX Ibm rs/6000 machines
__LINUX Intel/Amd 32-bit cpus (pentium, athlon) running Linux
__LINUX64 Intel/Amd/Alpha 64-bit cpus (Opteron, Itanium) running Linux
__MAC Macintosh with OS-X
__HP hp-compaq PA-RISC workstations and parallel machines
__ALTIX sgi altix 350/3000 machines running Linux
__ORIGIN sgi origin 2k or 3k machines
__ALPHA hp-compaq (formerly dec) alphas
FUJ64 Fujitsu VPP5000 vector machines
__SX6 Nec sx-6 vector machines
Parallel execution:
__PARA Parallel execution, in general
__MPI Use MPI library
__SHMEM Use Shared Memory library (only Altix and Origin)
__LAM LAM version of the MPI library
Compilers:
__XLF xlf compiler for Ibm and Macintosh
__G95 g95 compiler
__PGI Portland Group compiler (workarounds for compiler bugs)
__INTEL Intel ifc and ifort compilers (workaround for compiler bugs
Libraries:
__FFTW FFT routines from the FFTW library
__USE_INTERNAL_FFTW use the local copy of FFTW, not an external lib
__FFTW_WITH_SIZE fftw specific option for cray xt3 (?)
__COMPLIB FFT routines from SGI CHALLENGEComplib scientific library
__SCSL FFT routines from SGI SCSL scientific library
__SUN FFT routines from SUN sunperf scientific library
DXML FFT routines from hp-compaq cxml (formerly dxml) library
__MASS use mathematical routines from MASS IBM library
ASL, MICRO SX-6 specific libraries
ADD_BLAS_TWO_UNDERSCORES
ADD_BLAS_ONE_UNDERSCORE
some precompiled blas/lapack packages may contain underscores
at the end and need one of these in order to be linked
Timing:
__HPM Hardware Performance Monitor (IBM SP)
__QK_USER__ for better timing of fftw in cray xt3 (?)
Other (including unused/obsolete options):
HITACHI Hitachi SR8000 vector machine (untested since a long time)
__MAC64 64-bit mode for Macintosh (untested)
__HP64 64-bit mode for hp-compaq machines (untested)
__X1 __X1_COA Cray X1 (no longer needed)
__SGI __SGI64 Sgi machines, 32- and 64 bits (no longer needed)
__ABSOFT absoft compiler (untested)
__NAG Nag compiler (implemented only in iotk)
__LAHEY Lahey F95 compiler (untested, no longer needed)
HAS_ZHEGVX For old versions of ESSL (no longer needed)
__T3E T3d/T3e (no longer supported)
CRAYY Old vector Cray machines (no longer supported)
__SX4 Old vector Nec-SX4 machines (no longer supported)
------------------------------------------------------------------------------
Output definitions from include files
include/f_defs.h :
DIRECT_IO_FACTOR record length in direct-access I/O is given by
the number of real*8 words times DIRECT_IO_FACTOR
C_POINTER the type for C pointers called by fortran:
integer*8 for 64-bit machines,
integer on most other machines
Blas/Lapack names lowercase and with underscores appended if requested
flush, iargc, system libraries that need to be redefined (i.e.
getarg, getenv add an underscore) in some specific cases
CMPLX force it to produce double-precision numbers
DREAL DIMAG DCMPLX redefined as fake names to prevent their usage
MPI_REAL8 redefined to prevent compilation problems with LAM
include/c_defs.h
C routine names converted to lowercase and with the appropriate
number of underscores added
iotk/include/iotk_config.h
__IOTK_REAL1 kind for single-precision reals
__IOTK_REAL2 kind for double-precision reals
__IOTK_WORKAROUND* various workarounds for miscellaneous compiler bugs
(used only in iotk)