
   This file contains a complete list of the variables that are defined
in bmake/${PETSC_ARCH}/petscconf.h

PETSC_HAVE_????_STYLE_FPTRAP handled in configure.in

PETSC_MISSING_FORTRANSTAR Fortran cannot handle integer*4, real*4, Nag F90 compiler

PETSC_MISSING_DREAL Fortran missing dreal(); IRIX F90 compiler and Nag F90 compiler

PETSC_MISSING_GETPWUID the function

PETSC_MISSING_SOCKETS (only ASCIIred)


PETSC_HAVE_UCBPS  /usr/ucb/ps exists

PETSC_MISSING_SIGSYS
PETSC_MISSING_SIGBUS
PETSC_MISSING_SIGQUIT


PETSC_SIGNAL_CAST needed only for C++
  (void (*)(int)) on IRIX and IRIX64
  (void (*)(...)) on IRIX5

---------------------------------------------------------

PETSC_HAVE_BROKEN_RECURSIVE_MACRO
CPP processes recursive use of macros incorrectly

PETSC_HAVE_BROKEN_REQUEST_FREE
MPI_Request_free() either generates an error or messes up later MPI
calls. Known to be a problem with IBM MPI and at least earlier MPICH

PETSC_HAVE_DOUBLES_ALIGNED
double variables ARE always double aligned on this system

PETSC_HAVE_DOUBLE_ALIGN_MALLOC
malloc always returns memory that is double aligned

PETSC_HAVE_FAST_MPI_WTIME
the MPI_WTIME is accurate and fast on this machine, so we use this for
all PETSc timings rather than a system timer

PETSC_HAVE_MEMALIGN
the system routine memalign() exists and is used to ensure that all
Scalars are allocated with the correct alignment

PETSC_MISSING_LAPACK_GESVD
the Lapack routine GESVD is missing from the vendor provided math
libraries. This is true on the Cray T3D/T3E and with Intel MKL for PCs

PETSC_MISSING_LAPACK_GEEV
the Lapack routine GEEV is missing from the vendor provided math
libraries. This is true for Intel Math Kernel Library (MKL) for PCs

PETSC_HAVE_SLOW_NRM2
BLAS nrm2() routine is so slow it is better to replace with code.
True if using the Netlib version of the BLAS.

PETSC_HAVE_VPRINTF_CHAR
final argument to vprintf() is a char *, rather than the usual void *
true under freebsd #if (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)

PETSC_SIZEOF_VOID_P
used in handling passing pointers to PETSc objects between C and
Fortran. When this is 8 (bytes) then we use integer*8 as
PetscFortranAddr and PetscOffset.

PETSC_SIZEOF_INT
used when reading/writing binary files. We always save using 32 bits
for portability, so when this is on, the integers are first compressed
to 32 bits before being written

PETSC_HAVE_RESTRICT
indicates that the compiler supports the keyword _Restrict (currently
only support be Solaris compilers). ADIC cannot handle the restrict
keyword hence this is currently turned off.


PETSC_HAVE_CRAY90_POINTER
indicates the Cray vector machine pointer arithmetic. This is needed cause
one cannot do error checking like 
  if ((unsigned long)h & (unsigned long)3) {                        \
    SETERRQ(PETSC_ERR_ARG_CORRUPT,"Invalid Pointer to Object");   \
  }                                                                 \


PETSC_HAVE_FREE_RETURN_INT
indicated that the function free() has the prototype
extern int free(void *);
The default prototype is:
extern void free(void *);

PETSC_HAVE_SSE
valid values are "iclsse.h" and "gccsse.h" (with "")
indicates that the C compiler/assembler are satisfactory for issuing
Intel Pentium 3 Streaming SIMD Extension instructions.
Set value to "gccsse.h" for use with gcc version egcs-2.91.66 or newer.
The gnu assembler must be version 2.9.5 or newer (2.9.1 fails).
Set value to "iclsse.h" for use with Intel compilers or Microsoft Visual
Studio 6.0, with the Processor Pack.
Microsoft Visual Studio 6.0 Processor Pack available at:
http://msdn.microsoft.com/vstudio/downloads/ppack/download.asp
