OpenMPI  0.1.1
mpif-common.h
1 ! -*- fortran -*-
2 !
3 ! Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
4 ! University Research and Technology
5 ! Corporation. All rights reserved.
6 ! Copyright (c) 2004-2010 The University of Tennessee and The University
7 ! of Tennessee Research Foundation. All rights
8 ! reserved.
9 ! Copyright (c) 2004-2007 High Performance Computing Center Stuttgart,
10 ! University of Stuttgart. All rights reserved.
11 ! Copyright (c) 2004-2005 The Regents of the University of California.
12 ! All rights reserved.
13 ! Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
14 ! Copyright (c) 2009-2012 Oak Ridge National Labs. All rights reserved.
15 ! Copyright (c) 2012 Sandia National Laboratories. All rights reserved.
16 ! $COPYRIGHT$
17 !
18 ! Additional copyrights may follow
19 !
20 ! $HEADER$
21 !
22 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
23 ! WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
24 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
25 !
26 ! Do ***not*** copy this file to the directory where your Fortran
27 ! fortran application is compiled unless it is absolutely necessary! Most
28 ! modern Fortran compilers now support the -I command line flag, which
29 ! tells the compiler where to find .h files (specifically, this one). For
30 ! example:
31 !
32 ! shell$ mpif77 foo.f -o foo -I$OMPI_HOME/include
33 !
34 ! will probably do the trick (assuming that you have set OMPI_HOME
35 ! properly).
36 !
37 ! That being said, OMPI's "mpif77" wrapper compiler should
38 ! automatically include the -I option for you. The following command
39 ! should be equivalent to the command listed above:
40 !
41 ! shell$ mpif77 foo.f -o foo
42 !
43 ! You should not copy this file to your local directory because it is
44 ! possible that this file will be changed between versions of Open MPI.
45 ! Indeed, this mpif.h is incompatible with the mpif.f of other
46 ! implementations of MPI. Using this mpif.h with other implementations
47 ! of MPI, or with other versions of Open MPI will result in undefined
48 ! behavior (to include incorrect results, segmentation faults,
49 ! unexplainable "hanging" in your application, etc.). Always use the
50 ! -I command line option instead (or let mpif77 do it for you).
51 !
52 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
53 ! WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
54 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
55 
56 !
57 ! This file contains the bulk of the Open MPI Fortran interface. It
58 ! is included as a back-end file to both mpif.h (i.e., the
59 ! standardized MPI Fortran header file) and mpi.f90 (the MPI-2
60 ! Fortran module source file, found in ompi/mpi/f90).
61 !
62 ! This file is marginally different than mpif.h. mpif.h includes
63 ! some "external" statements that are not suitable for use with the
64 ! MPI-2 F90 module, and therefore cannot be included in the mpi.f90
65 ! source file. Hence, this file is essentially everything that
66 ! needs to be in the standardized mpif.h *except* the "external"
67 ! statements, and is therefore suitable to be included in mpi.f90.
68 !
69 
70 ! First, however, include some output from configure.
71 !
72  include 'mpif-config.h'
73 
74 !
75 ! MPI version
76 !
77  integer MPI_VERSION, MPI_SUBVERSION
78 
79  parameter (MPI_VERSION=2)
80  parameter (MPI_SUBVERSION=1)
81 !
82 ! Miscellaneous constants
83 !
84  integer MPI_ANY_SOURCE, MPI_ANY_TAG
85  integer MPI_PROC_NULL
86  integer MPI_ROOT
87  integer MPI_UNDEFINED
88  integer MPI_CART, MPI_GRAPH, MPI_KEYVAL_INVALID
89  integer MPI_SOURCE, MPI_TAG, MPI_ERROR
90  integer MPI_TAG_UB, MPI_HOST, MPI_IO, MPI_WTIME_IS_GLOBAL
91  integer MPI_APPNUM, MPI_LASTUSEDCODE, MPI_UNIVERSE_SIZE
92  integer IMPI_CLIENT_SIZE, IMPI_CLIENT_COLOR
93  integer IMPI_HOST_SIZE, IMPI_HOST_COLOR
94  integer MPI_BSEND_OVERHEAD
95  integer MPI_ORDER_C, MPI_ORDER_FORTRAN
96  integer MPI_DISTRIBUTE_BLOCK, MPI_DISTRIBUTE_CYCLIC
97  integer MPI_DISTRIBUTE_NONE, MPI_DISTRIBUTE_DFLT_DARG
98  integer MPI_TYPECLASS_INTEGER, MPI_TYPECLASS_REAL
99  integer MPI_TYPECLASS_COMPLEX
100  integer MPI_MODE_NOCHECK, MPI_MODE_NOPRECEDE, MPI_MODE_NOPUT
101  integer MPI_MODE_NOSTORE, MPI_MODE_NOSUCCEED
102  integer MPI_LOCK_EXCLUSIVE, MPI_LOCK_SHARED
103  integer MPI_WIN_BASE, MPI_WIN_SIZE, MPI_WIN_DISP_UNIT
104 
105  parameter (MPI_ANY_SOURCE=-1)
106  parameter (MPI_ANY_TAG=-1)
107  parameter (MPI_PROC_NULL=-2)
108  parameter (MPI_ROOT=-4)
109  parameter (MPI_UNDEFINED=-32766)
110  parameter (MPI_CART=1)
111  parameter (MPI_GRAPH=2)
112  parameter (MPI_KEYVAL_INVALID=-1)
113  parameter (MPI_SOURCE=1)
114  parameter (MPI_TAG=2)
115  parameter (MPI_ERROR=3)
116  parameter (MPI_TAG_UB=0)
117  parameter (MPI_HOST=1)
118  parameter (MPI_IO=2)
119  parameter (MPI_WTIME_IS_GLOBAL=3)
120  parameter (MPI_APPNUM=4)
121  parameter (MPI_LASTUSEDCODE=5)
122  parameter (MPI_UNIVERSE_SIZE=6)
123  parameter (MPI_WIN_BASE=7)
124  parameter (MPI_WIN_SIZE=8)
125  parameter (MPI_WIN_DISP_UNIT=9)
126  parameter (IMPI_CLIENT_SIZE=10)
127  parameter (IMPI_CLIENT_COLOR=11)
128  parameter (IMPI_HOST_SIZE=12)
129  parameter (IMPI_HOST_COLOR=13)
130 
131  parameter (MPI_BSEND_OVERHEAD=128)
132  parameter (MPI_ORDER_C=0)
133  parameter (MPI_ORDER_FORTRAN=1)
134  parameter (MPI_DISTRIBUTE_BLOCK=0)
135  parameter (MPI_DISTRIBUTE_CYCLIC=1)
136  parameter (MPI_DISTRIBUTE_NONE=2)
137  parameter (MPI_DISTRIBUTE_DFLT_DARG=-1)
138  parameter (MPI_TYPECLASS_INTEGER=1)
139  parameter (MPI_TYPECLASS_REAL=2)
140  parameter (MPI_TYPECLASS_COMPLEX=3)
141  parameter (MPI_MODE_NOCHECK=1)
142  parameter (MPI_MODE_NOPRECEDE=2)
143  parameter (MPI_MODE_NOPUT=4)
144  parameter (MPI_MODE_NOSTORE=8)
145  parameter (MPI_MODE_NOSUCCEED=16)
146  parameter (MPI_LOCK_EXCLUSIVE=1)
147  parameter (MPI_LOCK_SHARED=2)
148 
149 !
150 ! MPI sentinel values
151 !
152 ! Several of these types were chosen with care to match specific
153 ! overloaded functions in the F90 bindings. They should also match
154 ! the types of their corresponding C variables. Do not arbitrarily
155 ! change their types without also updating the F90 bindings and
156 ! their corresponding types in ompi/mpi/f77/constants.h and
157 ! ompi/mpi/runtime/ompi_init.c!
158 !
159 ! MPI_BOTTOM is only used where choice buffers can be used (meaning
160 ! that we already have overloaded F90 bindings for all available
161 ! types), so any type is fine.
162  integer MPI_BOTTOM
163 ! MPI_IN_PLACE has the same rationale as MPI_BOTTOM.
164  integer MPI_IN_PLACE
165 ! Making MPI_ARGV_NULL be the same type as the parameter that is
166 ! exepected in the F90 binding for MPI_COMM_SPAWN means that we
167 ! don't need another binding for MPI_COMM_SPAWN.
168  character MPI_ARGV_NULL(1)
169 ! The array_of_argv parameter in the F90 bindings for
170 ! MPI_COMM_SPAWN_MULTIPLE takes a variable number of dimensions
171 ! (specified by the "count" parameter), so it's not possible to have
172 ! a single variable match all possible values. Hence, make it an
173 ! entirely different type (one that would never likely be used by a
174 ! correct program, e.g., double) and have a separate F90 binding for
175 ! matching just this type.
176  double precision MPI_ARGVS_NULL
177 ! MPI_ERRCODES_IGNORE has similar rationale to MPI_ARGV_NULL. The
178 ! F77 functions are all smart enough to check that the errcodes
179 ! parameter is not ERRCODES_IGNORE before assigning values into it
180 ! (hence, the fact that this is an array of only 1 element does not
181 ! matter -- we'll never overrun it because we never assign values
182 ! into it).
183  integer MPI_ERRCODES_IGNORE(1)
184 ! MPI_STATUS_IGNORE has similar rationale to MPI_ERRCODES_IGNORE.
185  integer MPI_STATUS_IGNORE(MPI_STATUS_SIZE)
186 ! MPI_STATUSES_IGNORE has similar rationale to MPI_ARGVS_NULL.
187  double precision MPI_STATUSES_IGNORE
188 
189  common/mpi_fortran_bottom/MPI_BOTTOM
190  common/mpi_fortran_in_place/MPI_IN_PLACE
191  common/mpi_fortran_argv_null/MPI_ARGV_NULL
192  common/mpi_fortran_argvs_null/MPI_ARGVS_NULL
193  common/mpi_fortran_errcodes_ignore/MPI_ERRCODES_IGNORE
194  common/mpi_fortran_status_ignore/MPI_STATUS_IGNORE
195  common/mpi_fortran_statuses_ignore/MPI_STATUSES_IGNORE
196 !
197 ! NULL "handles" (indices)
198 !
199  integer MPI_GROUP_NULL, MPI_COMM_NULL, MPI_DATATYPE_NULL
200  integer MPI_REQUEST_NULL, MPI_OP_NULL, MPI_ERRHANDLER_NULL
201  integer MPI_INFO_NULL, MPI_WIN_NULL, MPI_MESSAGE_NULL
202 
203  parameter (MPI_GROUP_NULL=0)
204  parameter (MPI_COMM_NULL=2)
205  parameter (MPI_DATATYPE_NULL=0)
206  parameter (MPI_REQUEST_NULL=0)
207  parameter (MPI_OP_NULL=0)
208  parameter (MPI_ERRHANDLER_NULL=0)
209  parameter (MPI_INFO_NULL=0)
210  parameter (MPI_WIN_NULL=0)
211  parameter (MPI_MESSAGE_NULL=0)
212 !
213 ! MPI_Init_thread constants
214 !
215  integer MPI_THREAD_SINGLE, MPI_THREAD_FUNNELED
216  integer MPI_THREAD_SERIALIZED, MPI_THREAD_MULTIPLE
217 
218  parameter (MPI_THREAD_SINGLE=0)
219  parameter (MPI_THREAD_FUNNELED=1)
220  parameter (MPI_THREAD_SERIALIZED=2)
221  parameter (MPI_THREAD_MULTIPLE=3)
222 !
223 ! error classes
224 !
225  integer MPI_SUCCESS
226  integer MPI_ERR_BUFFER
227  integer MPI_ERR_COUNT
228  integer MPI_ERR_TYPE
229  integer MPI_ERR_TAG
230  integer MPI_ERR_COMM
231  integer MPI_ERR_RANK
232  integer MPI_ERR_REQUEST
233  integer MPI_ERR_ROOT
234  integer MPI_ERR_GROUP
235  integer MPI_ERR_OP
236  integer MPI_ERR_TOPOLOGY
237  integer MPI_ERR_DIMS
238  integer MPI_ERR_ARG
239  integer MPI_ERR_UNKNOWN
240  integer MPI_ERR_TRUNCATE
241  integer MPI_ERR_OTHER
242  integer MPI_ERR_INTERN
243  integer MPI_ERR_IN_STATUS
244  integer MPI_ERR_PENDING
245  integer MPI_ERR_ACCESS
246  integer MPI_ERR_AMODE
247  integer MPI_ERR_ASSERT
248  integer MPI_ERR_BAD_FILE
249  integer MPI_ERR_BASE
250  integer MPI_ERR_CONVERSION
251  integer MPI_ERR_DISP
252  integer MPI_ERR_DUP_DATAREP
253  integer MPI_ERR_FILE_EXISTS
254  integer MPI_ERR_FILE_IN_USE
255  integer MPI_ERR_FILE
256  integer MPI_ERR_INFO_KEY
257  integer MPI_ERR_INFO_NOKEY
258  integer MPI_ERR_INFO_VALUE
259  integer MPI_ERR_INFO
260  integer MPI_ERR_IO
261  integer MPI_ERR_KEYVAL
262  integer MPI_ERR_LOCKTYPE
263  integer MPI_ERR_NAME
264  integer MPI_ERR_NO_MEM
265  integer MPI_ERR_NOT_SAME
266  integer MPI_ERR_NO_SPACE
267  integer MPI_ERR_NO_SUCH_FILE
268  integer MPI_ERR_PORT
269  integer MPI_ERR_QUOTA
270  integer MPI_ERR_READ_ONLY
271  integer MPI_ERR_RMA_CONFLICT
272  integer MPI_ERR_RMA_SYNC
273  integer MPI_ERR_SERVICE
274  integer MPI_ERR_SIZE
275  integer MPI_ERR_SPAWN
276  integer MPI_ERR_UNSUPPORTED_DATAREP
277  integer MPI_ERR_UNSUPPORTED_OPERATION
278  integer MPI_ERR_WIN
279  integer MPI_ERR_PROC_FAILED
280  integer MPI_ERR_REVOKED
281 
282  integer MPI_ERR_SYSRESOURCE
283  integer MPI_ERR_LASTCODE
284 
285  parameter( MPI_SUCCESS = 0)
286  parameter( MPI_ERR_BUFFER = 1)
287  parameter( MPI_ERR_COUNT = 2)
288  parameter( MPI_ERR_TYPE = 3)
289  parameter( MPI_ERR_TAG = 4)
290  parameter( MPI_ERR_COMM = 5)
291  parameter( MPI_ERR_RANK = 6)
292  parameter( MPI_ERR_REQUEST = 7)
293  parameter( MPI_ERR_ROOT = 8)
294  parameter( MPI_ERR_GROUP = 9)
295  parameter( MPI_ERR_OP = 10)
296  parameter( MPI_ERR_TOPOLOGY = 11)
297  parameter( MPI_ERR_DIMS = 12)
298  parameter( MPI_ERR_ARG = 13)
299  parameter( MPI_ERR_UNKNOWN = 14)
300  parameter( MPI_ERR_TRUNCATE = 15)
301  parameter( MPI_ERR_OTHER = 16)
302  parameter( MPI_ERR_INTERN = 17)
303  parameter( MPI_ERR_IN_STATUS = 18)
304  parameter( MPI_ERR_PENDING = 19)
305  parameter( MPI_ERR_ACCESS = 20)
306  parameter( MPI_ERR_AMODE = 21)
307  parameter( MPI_ERR_ASSERT = 22)
308  parameter( MPI_ERR_BAD_FILE = 23)
309  parameter( MPI_ERR_BASE = 24)
310  parameter( MPI_ERR_CONVERSION = 25)
311  parameter( MPI_ERR_DISP = 26)
312  parameter( MPI_ERR_DUP_DATAREP = 27)
313  parameter( MPI_ERR_FILE_EXISTS = 28)
314  parameter( MPI_ERR_FILE_IN_USE = 29)
315  parameter( MPI_ERR_FILE = 30)
316  parameter( MPI_ERR_INFO_KEY = 31)
317  parameter( MPI_ERR_INFO_NOKEY = 32)
318  parameter( MPI_ERR_INFO_VALUE = 33)
319  parameter( MPI_ERR_INFO = 34)
320  parameter( MPI_ERR_IO = 35)
321  parameter( MPI_ERR_KEYVAL = 36)
322  parameter( MPI_ERR_LOCKTYPE = 37)
323  parameter( MPI_ERR_NAME = 38)
324  parameter( MPI_ERR_NO_MEM = 39)
325  parameter( MPI_ERR_NOT_SAME = 40)
326  parameter( MPI_ERR_NO_SPACE = 41)
327  parameter( MPI_ERR_NO_SUCH_FILE = 42)
328  parameter( MPI_ERR_PORT = 43)
329  parameter( MPI_ERR_QUOTA = 44)
330  parameter( MPI_ERR_READ_ONLY = 45)
331  parameter( MPI_ERR_RMA_CONFLICT = 46)
332  parameter( MPI_ERR_RMA_SYNC = 47)
333  parameter( MPI_ERR_SERVICE = 48)
334  parameter( MPI_ERR_SIZE = 49)
335  parameter( MPI_ERR_SPAWN = 50)
336  parameter( MPI_ERR_UNSUPPORTED_DATAREP = 51)
337  parameter( MPI_ERR_UNSUPPORTED_OPERATION= 52)
338  parameter( MPI_ERR_WIN = 53)
339  parameter( MPI_ERR_PROC_FAILED = 54)
340  parameter( MPI_ERR_REVOKED = 55)
341 
342  parameter( MPI_ERR_SYSRESOURCE = -2)
343  parameter( MPI_ERR_LASTCODE = 56)
344 
345 !
346 ! comparison results
347 !
348  integer MPI_IDENT, MPI_CONGRUENT, MPI_SIMILAR, MPI_UNEQUAL
349 
350  parameter (MPI_IDENT=0)
351  parameter (MPI_CONGRUENT=1)
352  parameter (MPI_SIMILAR=2)
353  parameter (MPI_UNEQUAL=3)
354 !
355 ! datatype combiners
356 !
357  integer MPI_COMBINER_NAMED
358  integer MPI_COMBINER_DUP
359  integer MPI_COMBINER_CONTIGUOUS
360  integer MPI_COMBINER_VECTOR
361  integer MPI_COMBINER_HVECTOR_INTEGER
362  integer MPI_COMBINER_HVECTOR
363  integer MPI_COMBINER_INDEXED
364  integer MPI_COMBINER_HINDEXED_INTEGER
365  integer MPI_COMBINER_HINDEXED
366  integer MPI_COMBINER_INDEXED_BLOCK
367  integer MPI_COMBINER_STRUCT_INTEGER
368  integer MPI_COMBINER_STRUCT
369  integer MPI_COMBINER_SUBARRAY
370  integer MPI_COMBINER_DARRAY
371  integer MPI_COMBINER_F90_REAL
372  integer MPI_COMBINER_F90_COMPLEX
373  integer MPI_COMBINER_F90_INTEGER
374  integer MPI_COMBINER_RESIZED
375 
376  parameter (MPI_COMBINER_NAMED=0)
377  parameter (MPI_COMBINER_DUP=1)
378  parameter (MPI_COMBINER_CONTIGUOUS=2)
379  parameter (MPI_COMBINER_VECTOR=3)
380  parameter (MPI_COMBINER_HVECTOR_INTEGER=4)
381  parameter (MPI_COMBINER_HVECTOR=5)
382  parameter (MPI_COMBINER_INDEXED=6)
383  parameter (MPI_COMBINER_HINDEXED_INTEGER=7)
384  parameter (MPI_COMBINER_HINDEXED=8)
385  parameter (MPI_COMBINER_INDEXED_BLOCK=9)
386  parameter (MPI_COMBINER_STRUCT_INTEGER=10)
387  parameter (MPI_COMBINER_STRUCT=11)
388  parameter (MPI_COMBINER_SUBARRAY=12)
389  parameter (MPI_COMBINER_DARRAY=13)
390  parameter (MPI_COMBINER_F90_REAL=14)
391  parameter (MPI_COMBINER_F90_COMPLEX=15)
392  parameter (MPI_COMBINER_F90_INTEGER=16)
393  parameter (MPI_COMBINER_RESIZED=17)
394 
395 !
396 ! Communicator split type constants
397 !
398  integer MPI_COMM_TYPE_SHARED
399  parameter (MPI_COMM_TYPE_SHARED=0)
400 
401 !
402 ! lookup table indices
403 !
404  integer MPI_COMM_WORLD, MPI_COMM_SELF
405  integer MPI_GROUP_EMPTY
406  integer MPI_ERRORS_ARE_FATAL, MPI_ERRORS_RETURN
407  integer MPI_MESSAGE_NO_PROC
408 
409  parameter (MPI_COMM_WORLD=0)
410  parameter (MPI_COMM_SELF=1)
411  parameter (MPI_GROUP_EMPTY=1)
412  parameter (MPI_ERRORS_ARE_FATAL=1)
413  parameter (MPI_ERRORS_RETURN=2)
414  parameter (MPI_MESSAGE_NO_PROC=1)
415 
416  integer MPI_BYTE, MPI_PACKED, MPI_UB, MPI_LB
417  integer MPI_CHARACTER, MPI_LOGICAL
418  integer MPI_INTEGER, MPI_INTEGER1, MPI_INTEGER2, MPI_INTEGER4
419  integer MPI_INTEGER8, MPI_INTEGER16
420  integer MPI_REAL, MPI_REAL2, MPI_REAL4, MPI_REAL8, MPI_REAL16
421  integer MPI_DOUBLE_PRECISION
422  integer MPI_COMPLEX, MPI_COMPLEX8, MPI_COMPLEX16, MPI_COMPLEX32
423  integer MPI_DOUBLE_COMPLEX
424  integer MPI_2REAL, MPI_2DOUBLE_PRECISION, MPI_2INTEGER
425  integer MPI_2COMPLEX, MPI_2DOUBLE_COMPLEX
426 ! Note that MPI_LOGICALx are not defined by the MPI spec, but there are
427 ! other MPI implementations that have them, so it's good for us to have
428 ! as well.
429  integer MPI_LOGICAL1, MPI_LOGICAL2, MPI_LOGICAL4, MPI_LOGICAL8
430 ! All other MPI types including the C and C++, as well as the
431 ! ones defined in the MPI 2.2
432  integer MPI_WCHAR, MPI_CHAR
433  integer MPI_SIGNED_CHAR, MPI_UNSIGNED_CHAR
434  integer MPI_SHORT, MPI_UNSIGNED_SHORT
435  integer MPI_INT, MPI_UNSIGNED, MPI_LONG
436  integer MPI_UNSIGNED_LONG, MPI_LONG_LONG_INT
437  integer MPI_UNSIGNED_LONG_LONG
438  integer MPI_FLOAT, MPI_DOUBLE, MPI_LONG_DOUBLE
439  integer MPI_FLOAT_INT, MPI_DOUBLE_INT
440  integer MPI_LONGDBL_INT, MPI_LONG_INT
441  integer MPI_2INT, MPI_SHORT_INT
442  integer MPI_CXX_BOOL, MPI_CXX_CPLEX
443  integer MPI_CXX_DBLCPLEX, MPI_CXX_LDBLCPLEX
444  integer MPI_INT8_T, MPI_UINT8_T
445  integer MPI_INT16_T, MPI_UINT16_T
446  integer MPI_INT32_T, MPI_UINT32_T
447  integer MPI_INT64_T, MPI_UINT64_T
448  integer MPI_AINT, MPI_OFFSET
449 !
450 ! Do NOT change the order of these parameters
451 !
452  parameter (MPI_BYTE = 1)
453  parameter (MPI_PACKED = 2)
454  parameter (MPI_UB = 3)
455  parameter (MPI_LB = 4)
456  parameter (MPI_CHARACTER = 5)
457  parameter (MPI_LOGICAL = 6)
458  parameter (MPI_INTEGER = 7)
459  parameter (MPI_INTEGER1 = 8)
460  parameter (MPI_INTEGER2 = 9)
461  parameter (MPI_INTEGER4 = 10)
462  parameter (MPI_INTEGER8 = 11)
463  parameter (MPI_INTEGER16 = 12)
464  parameter (MPI_REAL = 13)
465  parameter (MPI_REAL4 = 14)
466  parameter (MPI_REAL8 = 15)
467  parameter (MPI_REAL16 = 16)
468  parameter (MPI_DOUBLE_PRECISION = 17)
469  parameter (MPI_COMPLEX = 18)
470  parameter (MPI_COMPLEX8 = 19)
471  parameter (MPI_COMPLEX16 = 20)
472  parameter (MPI_COMPLEX32 = 21)
473  parameter (MPI_DOUBLE_COMPLEX = 22)
474  parameter (MPI_2REAL = 23)
475  parameter (MPI_2DOUBLE_PRECISION = 24)
476  parameter (MPI_2INTEGER = 25)
477  parameter (MPI_2COMPLEX = 26)
478  parameter (MPI_2DOUBLE_COMPLEX = 27)
479  parameter (MPI_REAL2 = 28)
480  parameter (MPI_LOGICAL1 = 29)
481  parameter (MPI_LOGICAL2 = 30)
482  parameter (MPI_LOGICAL4 = 31)
483  parameter (MPI_LOGICAL8 = 32)
484  parameter (MPI_WCHAR = 33)
485  parameter (MPI_CHAR = 34)
486  parameter (MPI_UNSIGNED_CHAR = 35)
487  parameter (MPI_SIGNED_CHAR = 36)
488  parameter (MPI_SHORT = 37)
489  parameter (MPI_UNSIGNED_SHORT = 38)
490  parameter (MPI_INT = 39)
491  parameter (MPI_UNSIGNED = 40)
492  parameter (MPI_LONG = 41)
493  parameter (MPI_UNSIGNED_LONG = 42)
494  parameter (MPI_LONG_LONG_INT = 43)
495  parameter (MPI_UNSIGNED_LONG_LONG = 44)
496  parameter (MPI_FLOAT = 45)
497  parameter (MPI_DOUBLE = 46)
498  parameter (MPI_LONG_DOUBLE = 47)
499  parameter (MPI_FLOAT_INT = 48)
500  parameter (MPI_DOUBLE_INT = 49)
501  parameter (MPI_LONGDBL_INT = 50)
502  parameter (MPI_LONG_INT = 51)
503  parameter (MPI_2INT = 52)
504  parameter (MPI_SHORT_INT = 53)
505  parameter (MPI_CXX_BOOL = 54)
506  parameter (MPI_CXX_CPLEX = 55)
507  parameter (MPI_CXX_DBLCPLEX = 56)
508  parameter (MPI_CXX_LDBLCPLEX = 57)
509  parameter (MPI_INT8_T = 58)
510  parameter (MPI_UINT8_T = 59)
511  parameter (MPI_INT16_T = 60)
512  parameter (MPI_UINT16_T = 61)
513  parameter (MPI_INT32_T = 62)
514  parameter (MPI_UINT32_T = 63)
515  parameter (MPI_INT64_T = 64)
516  parameter (MPI_UINT64_T = 65)
517  parameter (MPI_AINT = 66)
518  parameter (MPI_OFFSET = 67)
519 
520  integer MPI_MAX, MPI_MIN, MPI_SUM, MPI_PROD, MPI_LAND
521  integer MPI_BAND, MPI_LOR, MPI_BOR, MPI_LXOR, MPI_BXOR
522  integer MPI_MAXLOC, MPI_MINLOC, MPI_REPLACE
523 
524  parameter (MPI_MAX=1)
525  parameter (MPI_MIN=2)
526  parameter (MPI_SUM=3)
527  parameter (MPI_PROD=4)
528  parameter (MPI_LAND=5)
529  parameter (MPI_BAND=6)
530  parameter (MPI_LOR=7)
531  parameter (MPI_BOR=8)
532  parameter (MPI_LXOR=9)
533  parameter (MPI_BXOR=10)
534  parameter (MPI_MAXLOC=11)
535  parameter (MPI_MINLOC=12)
536  parameter (MPI_REPLACE=13)
Definition: mpicxx.cc:33