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
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.
18 ! Additional copyrights may follow
22 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
23 ! WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
24 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
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
32 ! shell$ mpif77 foo.f -o foo -I$OMPI_HOME/include
34 ! will probably
do the trick (assuming that you have set OMPI_HOME
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:
41 ! shell$ mpif77 foo.f -o foo
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).
52 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
53 ! WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
54 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
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).
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.
70 ! First, however, include some output from configure.
72 include 'mpif-config.h
'
77 integer MPI_VERSION, MPI_SUBVERSION
79 parameter (MPI_VERSION=2)
80 parameter (MPI_SUBVERSION=1)
82 ! Miscellaneous constants
84 integer MPI_ANY_SOURCE, MPI_ANY_TAG
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
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)
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)
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)
150 ! MPI sentinel values
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!
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.
163 ! MPI_IN_PLACE has the same rationale as MPI_BOTTOM.
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
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
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
197 ! NULL
"handles" (indices)
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
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)
213 ! MPI_Init_thread constants
215 integer MPI_THREAD_SINGLE, MPI_THREAD_FUNNELED
216 integer MPI_THREAD_SERIALIZED, MPI_THREAD_MULTIPLE
218 parameter (MPI_THREAD_SINGLE=0)
219 parameter (MPI_THREAD_FUNNELED=1)
220 parameter (MPI_THREAD_SERIALIZED=2)
221 parameter (MPI_THREAD_MULTIPLE=3)
226 integer MPI_ERR_BUFFER
227 integer MPI_ERR_COUNT
232 integer MPI_ERR_REQUEST
234 integer MPI_ERR_GROUP
236 integer MPI_ERR_TOPOLOGY
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
250 integer MPI_ERR_CONVERSION
252 integer MPI_ERR_DUP_DATAREP
253 integer MPI_ERR_FILE_EXISTS
254 integer MPI_ERR_FILE_IN_USE
256 integer MPI_ERR_INFO_KEY
257 integer MPI_ERR_INFO_NOKEY
258 integer MPI_ERR_INFO_VALUE
261 integer MPI_ERR_KEYVAL
262 integer MPI_ERR_LOCKTYPE
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
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
275 integer MPI_ERR_SPAWN
276 integer MPI_ERR_UNSUPPORTED_DATAREP
277 integer MPI_ERR_UNSUPPORTED_OPERATION
279 integer MPI_ERR_PROC_FAILED
280 integer MPI_ERR_REVOKED
282 integer MPI_ERR_SYSRESOURCE
283 integer MPI_ERR_LASTCODE
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)
342 parameter( MPI_ERR_SYSRESOURCE = -2)
343 parameter( MPI_ERR_LASTCODE = 56)
348 integer MPI_IDENT, MPI_CONGRUENT, MPI_SIMILAR, MPI_UNEQUAL
350 parameter (MPI_IDENT=0)
351 parameter (MPI_CONGRUENT=1)
352 parameter (MPI_SIMILAR=2)
353 parameter (MPI_UNEQUAL=3)
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
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)
396 ! Communicator split type constants
398 integer MPI_COMM_TYPE_SHARED
399 parameter (MPI_COMM_TYPE_SHARED=0)
402 ! lookup table indices
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
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)
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
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
450 ! Do NOT change the order of these parameters
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)
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
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)