quantum-espresso/include/defs.h.README

104 lines
4.4 KiB
Plaintext

----------------------------------------------------------------------------
CONFIGURATION FILES
You shouldn't need to edit the following files. The two first are
automatically generated by "configure".
* include/fft_defs.h
==================
automatically generated by configure using include/fft_defs.h.in
as template - included in Modules/fft_scalar.f90
contains the type for C pointers called by fortran:
C_POINTER is integer*8 for 64-bit machines,
integer*4 on most other machines
DO NOT add C-style comments! some fortran compilers do not like them
* include/c_defs.h
================
automatically generated by configure using include/c_defs.h.in
as template - included in C files in clib/ . Contains:
1) #define HAVE_MALLINFO
if the mallinfo structure is present (Linux, AIX)
2) Macros redefining C symbols so that Fortran finds them
F77_FUNC, F77_FUNC_
C routine 'name' in *.c files are defined as
F77_FUNC('name','NAME')
if 'name' does not contain an underscore; if it does, as
F77_FUNC_('name','NAME')
Absoft: convert to capital, no added underscores
#define F77_FUNC(name,NAME) NAME
#define F77_FUNC_(name,NAME) NAME
XLF, HP-UX: convert to lowercase, no added underscores
#define F77_FUNC(name,NAME) name
#define F77_FUNC_(name,NAME) name
G95, EKOPath, Alpha Linux: convert to lowercase, add one underscore
if the name does not contain underscores, add two if it does
#define F77_FUNC(name,NAME) name ## _
#define F77_FUNC_(name,NAME) name ## __
Most other cases: convert to lowercase, add one underscore
#define F77_FUNC(name,NAME) name ## _
#define F77_FUNC_(name,NAME) name ## _
* include/f_defs.h
================
contains definitions to be included in FORTRAN files ONLY
DO NOT add C-style comments! some fortran compilers do not like them
Defines on output:
Blas/Lapack names lowercase and with underscores appended if requested
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
* iotk/include/iotk_config.h
=========================
contains definitions for iotk . Defines on output:
__IOTK_REAL1 kind for single-precision reals
__IOTK_REAL2 kind for double-precision reals
__IOTK_WORKAROUND* various workarounds for miscellaneous compiler bugs
----------------------------------------------------------------------------
PREPROCESSING OPTIONS USED IN *.h FILES AND IN THE SOURCES
Hardware/Compiler:
__AIX Ibm rs/6000 machines
__XLF xlf compiler (ibm or macintosh with powerpc processor)
__ALTIX sgi altix 350/3000 machines running Linux
__ORIGIN sgi origin 2k or 3k machines (Mips compiler)
__ALPHA hp-compaq (formerly dec) alphas
__SX6 Nec sx-6 vector machines (Nec compiler)
__PGI Portland Group compiler (workarounds for compiler bugs)
__GFORTRAN gnu gfortran (workarounds for compiler bugs)
__INTEL Intel ifc and ifort compilers (workaround for compiler
bugs and for insufficient stack size)
__XD1 Specialized code for Cray XD1
OS:
Parallel execution:
__PARA Parallel execution, in general
__MPI Use MPI library
__SHMEM Use Shared Memory library (only Altix and Origin)
Libraries:
__FFTW FFT routines from internal FFTW library
__FFTW3 FFT routines from external FFTW v.3 library
__ACML FFT routines from ACML for AMD CPUs
__SCSL FFT routines from SGI SCSL scientific library
__SUNPERF FFT routines from SUN sunperf scientific library
__ESSL use blas/lapack/fft routines from IBM ESSL library
__LINUX_ESSL use blas/lapack/fft routines from IBM ESSL library (linux version)
__MASS use mathematical routines from IBM MASS 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 - may 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 (?)