SCALAPACK 2.2.2
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches
Bconfig.h
Go to the documentation of this file.
1/*
2 * This file includes the standard C libraries, as well as system dependant
3 * include files. All BLACS routines include this file.
4 */
5
6#ifndef BCONFIG_H
7#define BCONFIG_H 1
8
9/*
10 * Include files
11 */
12#include <stdlib.h>
13#include <stdio.h>
14#include <math.h>
15#include <stdarg.h>
16#include <mpi.h>
17
18/*
19 * Integer types used by BLACS
20 */
21#ifndef Int
22#define Int int
23#endif
24#ifndef MpiInt
25#define MpiInt int
26#endif
27
28/*
29 * These macros define the naming strategy needed for a fortran
30 * routine to call a C routine, and whether to build so they may be
31 * called from C or fortran. For the fortran call C interface, ADD_ assumes that
32 * fortran calls expect C routines to have an underscore postfixed to the name
33 * (Suns, and the Intel expect this). NOCHANGE indicates that fortran expects
34 * the name called by fortran to be identical to that compiled by C
35 * (AIX does this). UPCASE says it expects C routines called by fortran
36 * to be in all upcase (CRAY wants this). The variable FORTRAN_CALL_C is always
37 * set to one of these values. If the BLACS will be called from C, we define
38 * INTFACE to be CALL_C, otherwise, it is set to FORTRAN_CALL_C.
39 */
40#define ADD_ 0
41#define NOCHANGE 1
42#define UPCASE 2
43#define FCISF2C 3
44#define C_CALL 4
45
46#ifdef UpCase
47#define FORTRAN_CALL_C UPCASE
48#endif
49
50#ifdef NoChange
51#define FORTRAN_CALL_C NOCHANGE
52#endif
53
54#ifdef Add_
55#define FORTRAN_CALL_C ADD_
56#endif
57
58#ifdef FortranIsF2C
59#define FORTRAN_CALL_C FCISF2C
60#endif
61
62#ifndef FORTRAN_CALL_C
63#define FORTRAN_CALL_C ADD_
64#endif
65
66#ifdef CallFromC
67#define INTFACE C_CALL
68#else
69#define INTFACE FORTRAN_CALL_C
70#endif
71
72/*
73 * Uncomment these macro definitions, and substitute the topology of your
74 * choice to vary the default topology (TOP = ' ') for broadcast and combines.
75#define DefBSTop '1'
76#define DefCombTop '1'
77 */
78
79/*
80 * Uncomment this line if your MPI_Send provides a locally-blocking send
81 */
82//#define SndIsLocBlk
83
84/*
85 * Comment out the following line if your MPI does a data copy on every
86 * non-contiguous send
87 */
88#define MpiBuffGood
89
90/*
91 * If your MPI cannot form data types of zero length, uncomment the
92 * following definition
93 */
94/* #define ZeroByteTypeBug */
95
96/*
97 * These macros set the timing and debug levels for the BLACS. The fastest
98 * code is produced by setting both values to 0. Higher levels provide
99 * more timing/debug information at the cost of performance. Present levels
100 * of debug are:
101 * 0 : No debug information
102 * 1 : Mainly parameter checking.
103 *
104 * Present levels of timing are:
105 * 0 : No timings taken
106 */
107#ifndef BlacsDebugLvl
108#define BlacsDebugLvl 0
109#endif
110#ifndef BlacsTimingLvl
111#define BlacsTimingLvl 0
112#endif
113
114#endif