source: trunk/packages/optimizer/src/pgapack/gekco/pgapack/test/mpif.h @ 5673

Last change on this file since 5673 was 5673, checked in by ldelgass, 9 years ago

Fix line endings, set eol-style to native on all C/C++ sources.

  • Property svn:eol-style set to native
File size: 9.8 KB
Line 
1!
2
3!  (C) 1993 by Argonne National Laboratory and Mississipi State University.
4!      All rights reserved.  See COPYRIGHT in top-level directory.
5!
6!
7! user include file for MPI programs, with no dependencies
8!
9! It really is not possible to make a perfect include file that can
10! be used by both F77 and F90 compilers, but this is close.  We have removed
11! continuation lines (allows free form input in F90); systems whose
12! Fortran compilers support ! instead of just C or * for comments can
13! globally replace a C in the first column with !; the resulting file
14! should work for both Fortran 77 and Fortran 90.
15!
16! If your Fortran compiler supports ! for comments, you can run this
17! through sed with
18!     sed -e 's/^C/\!/g'
19!
20! We have also removed the use of contractions (involving the single quote)
21! character because some users use .F instead of .f files (to invoke the
22! cpp preprocessor) and further, their preprocessor is determined to find
23! matching single quote pairs (and probably double quotes; given the
24! different rules in C and Fortran, this sounds like a disaster).  Rather than
25! take the position that the poor users should get a better system, we
26! have removed the text that caused problems.  Of course, the users SHOULD
27! get a better system...
28!
29! return codes
30      INTEGER MPI_SUCCESS,MPI_ERR_BUFFER,MPI_ERR_COUNT,MPI_ERR_TYPE
31      INTEGER MPI_ERR_TAG,MPI_ERR_COMM,MPI_ERR_RANK,MPI_ERR_ROOT
32      INTEGER MPI_ERR_GROUP
33      INTEGER MPI_ERR_OP,MPI_ERR_TOPOLOGY,MPI_ERR_DIMS,MPI_ERR_ARG
34      INTEGER MPI_ERR_UNKNOWN,MPI_ERR_TRUNCATE,MPI_ERR_OTHER
35      INTEGER MPI_ERR_INTERN,MPI_ERR_IN_STATUS,MPI_ERR_PENDING
36      INTEGER MPI_ERR_REQUEST, MPI_ERR_LASTCODE
37      PARAMETER (MPI_SUCCESS=0,MPI_ERR_BUFFER=1,MPI_ERR_COUNT=2)
38      PARAMETER (MPI_ERR_TYPE=3,MPI_ERR_TAG=4,MPI_ERR_COMM=5)
39      PARAMETER (MPI_ERR_RANK=6,MPI_ERR_ROOT=7,MPI_ERR_GROUP=8)
40      PARAMETER (MPI_ERR_OP=9,MPI_ERR_TOPOLOGY=10,MPI_ERR_DIMS=11)
41      PARAMETER (MPI_ERR_ARG=12,MPI_ERR_UNKNOWN=13)
42      PARAMETER (MPI_ERR_TRUNCATE=14,MPI_ERR_OTHER=15)
43      PARAMETER (MPI_ERR_INTERN=16,MPI_ERR_IN_STATUS=17)
44      PARAMETER (MPI_ERR_PENDING=18,MPI_ERR_REQUEST=19)
45      PARAMETER (MPI_ERR_LASTCODE=1073741823)
46!
47      INTEGER MPI_UNDEFINED
48      parameter (MPI_UNDEFINED = (-32766))
49!
50      INTEGER MPI_GRAPH, MPI_CART
51      PARAMETER (MPI_GRAPH = 1, MPI_CART = 2)
52      INTEGER  MPI_PROC_NULL
53      PARAMETER ( MPI_PROC_NULL = (-1) )
54!
55      INTEGER MPI_BSEND_OVERHEAD
56      PARAMETER ( MPI_BSEND_OVERHEAD = 512 )
57
58      INTEGER MPI_SOURCE, MPI_TAG, MPI_ERROR
59      PARAMETER(MPI_SOURCE=2, MPI_TAG=3, MPI_ERROR=4)
60      INTEGER MPI_STATUS_SIZE
61      PARAMETER (MPI_STATUS_SIZE=4)
62      INTEGER MPI_MAX_PROCESSOR_NAME, MPI_MAX_ERROR_STRING
63      PARAMETER (MPI_MAX_PROCESSOR_NAME=256)
64      PARAMETER (MPI_MAX_ERROR_STRING=512)
65      INTEGER MPI_MAX_NAME_STRING
66      PARAMETER (MPI_MAX_NAME_STRING=63)
67!
68      INTEGER MPI_COMM_NULL
69      PARAMETER (MPI_COMM_NULL=0)
70!
71      INTEGER MPI_DATATYPE_NULL
72      PARAMETER (MPI_DATATYPE_NULL = 0)
73     
74      INTEGER MPI_ERRHANDLER_NULL
75      PARAMETER (MPI_ERRHANDLER_NULL = 0)
76     
77      INTEGER MPI_GROUP_NULL
78      PARAMETER (MPI_GROUP_NULL = 0)
79     
80      INTEGER MPI_KEYVAL_INVALID
81      PARAMETER (MPI_KEYVAL_INVALID = 0)
82     
83      INTEGER MPI_REQUEST_NULL
84      PARAMETER (MPI_REQUEST_NULL = 0)
85!
86      INTEGER MPI_IDENT, MPI_CONGRUENT, MPI_SIMILAR, MPI_UNEQUAL
87      PARAMETER (MPI_IDENT=0, MPI_CONGRUENT=1, MPI_SIMILAR=2)
88      PARAMETER (MPI_UNEQUAL=3)
89!
90!     MPI_BOTTOM needs to be a known address; here we put it at the
91!     beginning of the common block.  The point-to-point and collective
92!     routines know about MPI_BOTTOM, but MPI_TYPE_STRUCT as yet does not.
93!
94!     MPI_STATUS_IGNORE and MPI_STATUSES_IGNORE are similar objects
95!     Until the underlying MPI library implements the C version of these
96!     (a null pointer), these are declared as arrays of MPI_STATUS_SIZE
97!
98!     The types MPI_INTEGER1,2,4 and MPI_REAL4,8 are OPTIONAL.
99!     Their values are zero if they are not available.  Note that
100!     using these reduces the portability of code (though may enhance
101!     portability between Crays and other systems)
102!
103      INTEGER MPI_TAG_UB, MPI_HOST, MPI_IO
104      INTEGER MPI_BOTTOM
105      INTEGER MPI_STATUS_IGNORE(MPI_STATUS_SIZE)
106      INTEGER MPI_STATUSES_IGNORE(MPI_STATUS_SIZE)
107      INTEGER MPI_INTEGER, MPI_REAL, MPI_DOUBLE_PRECISION
108      INTEGER MPI_COMPLEX, MPI_DOUBLE_COMPLEX,MPI_LOGICAL
109      INTEGER MPI_CHARACTER, MPI_BYTE, MPI_2INTEGER, MPI_2REAL
110      INTEGER MPI_2DOUBLE_PRECISION, MPI_2COMPLEX, MPI_2DOUBLE_COMPLEX
111      INTEGER MPI_UB, MPI_LB
112      INTEGER MPI_PACKED, MPI_WTIME_IS_GLOBAL
113      INTEGER MPI_COMM_WORLD, MPI_COMM_SELF, MPI_GROUP_EMPTY
114      INTEGER MPI_SUM, MPI_MAX, MPI_MIN, MPI_PROD, MPI_LAND, MPI_BAND
115      INTEGER MPI_LOR, MPI_BOR, MPI_LXOR, MPI_BXOR, MPI_MINLOC
116      INTEGER MPI_MAXLOC
117      INTEGER MPI_OP_NULL
118      INTEGER MPI_ERRORS_ARE_FATAL, MPI_ERRORS_RETURN
119!
120      PARAMETER (MPI_ERRORS_ARE_FATAL=119)
121      PARAMETER (MPI_ERRORS_RETURN=120)
122!
123      PARAMETER (MPI_COMPLEX=23,MPI_DOUBLE_COMPLEX=24,MPI_LOGICAL=25)
124      PARAMETER (MPI_REAL=26,MPI_DOUBLE_PRECISION=27,MPI_INTEGER=28)
125      PARAMETER (MPI_2INTEGER=29,MPI_2COMPLEX=30,MPI_2DOUBLE_COMPLEX=31)
126      PARAMETER (MPI_2REAL=32,MPI_2DOUBLE_PRECISION=33,MPI_CHARACTER=1)
127      PARAMETER (MPI_BYTE=3,MPI_UB=16,MPI_LB=15,MPI_PACKED=14)
128
129      INTEGER MPI_ORDER_C, MPI_ORDER_FORTRAN
130      PARAMETER (MPI_ORDER_C=56, MPI_ORDER_FORTRAN=57)
131      INTEGER MPI_DISTRIBUTE_BLOCK, MPI_DISTRIBUTE_CYCLIC
132      INTEGER MPI_DISTRIBUTE_NONE, MPI_DISTRIBUTE_DFLT_DARG
133      PARAMETER (MPI_DISTRIBUTE_BLOCK=121, MPI_DISTRIBUTE_CYCLIC=122)
134      PARAMETER (MPI_DISTRIBUTE_NONE=123)
135      PARAMETER (MPI_DISTRIBUTE_DFLT_DARG=-49767)
136      INTEGER MPI_MAX_INFO_KEY, MPI_MAX_INFO_VAL
137      PARAMETER (MPI_MAX_INFO_KEY=255, MPI_MAX_INFO_VAL=1024)
138      INTEGER MPI_INFO_NULL
139      PARAMETER (MPI_INFO_NULL=0)
140
141!
142! Optional Fortran Types.  Configure attempts to determine these. 
143!
144      INTEGER MPI_INTEGER1, MPI_INTEGER2, MPI_INTEGER4, MPI_INTEGER8
145      INTEGER MPI_INTEGER16
146      INTEGER MPI_REAL4, MPI_REAL8, MPI_REAL16
147      INTEGER MPI_COMPLEX8, MPI_COMPLEX16, MPI_COMPLEX32
148      PARAMETER (MPI_INTEGER1=1,MPI_INTEGER2=4)
149      PARAMETER (MPI_INTEGER4=6)
150      PARAMETER (MPI_INTEGER8=13)
151      PARAMETER (MPI_INTEGER16=0)
152      PARAMETER (MPI_REAL4=10)
153      PARAMETER (MPI_REAL8=11)
154      PARAMETER (MPI_REAL16=0)
155      PARAMETER (MPI_COMPLEX8=23)
156      PARAMETER (MPI_COMPLEX16=24)
157      PARAMETER (MPI_COMPLEX32=0)
158!
159!    This is now handled with either the "pointer" extension or this same
160!    code, appended at the end.
161!      COMMON /MPIPRIV/ MPI_BOTTOM,MPI_STATUS_IGNORE,MPI_STATUSES_IGNORE
162!C
163!C     Without this save, some Fortran implementations may make the common
164!C     dynamic!
165!C   
166!C     For a Fortran90 module, we might replace /MPIPRIV/ with a simple
167!C     SAVE MPI_BOTTOM
168!C
169!      SAVE /MPIPRIV/
170!
171      PARAMETER (MPI_MAX=100,MPI_MIN=101,MPI_SUM=102,MPI_PROD=103)
172      PARAMETER (MPI_LAND=104,MPI_BAND=105,MPI_LOR=106,MPI_BOR=107)
173      PARAMETER (MPI_LXOR=108,MPI_BXOR=109,MPI_MINLOC=110)
174      PARAMETER (MPI_MAXLOC=111, MPI_OP_NULL=0)
175!
176      PARAMETER (MPI_GROUP_EMPTY=90,MPI_COMM_WORLD=91,MPI_COMM_SELF=92)
177      PARAMETER (MPI_TAG_UB=80,MPI_HOST=82,MPI_IO=84)
178      PARAMETER (MPI_WTIME_IS_GLOBAL=86)
179!
180      INTEGER MPI_ANY_SOURCE
181      PARAMETER (MPI_ANY_SOURCE = (-2))
182      INTEGER MPI_ANY_TAG
183      PARAMETER (MPI_ANY_TAG = (-1))
184!
185      INTEGER MPI_VERSION, MPI_SUBVERSION
186      PARAMETER (MPI_VERSION    = 1, MPI_SUBVERSION = 2)
187!
188!     There are additional MPI-2 constants
189      INTEGER MPI_ADDRESS_KIND, MPI_OFFSET_KIND
190      PARAMETER (MPI_ADDRESS_KIND=4)
191      PARAMETER (MPI_OFFSET_KIND=4)
192!
193!     All other MPI routines are subroutines
194!     This may cause some Fortran compilers to complain about defined and
195!     not used.  Such compilers should be improved.
196!
197!     Some Fortran compilers will not link programs that contain
198!     external statements to routines that are not provided, even if
199!     the routine is never called.  Remove PMPI_WTIME and PMPI_WTICK
200!     if you have trouble with them.
201!
202      DOUBLE PRECISION MPI_WTIME, MPI_WTICK,PMPI_WTIME,PMPI_WTICK
203      EXTERNAL MPI_WTIME, MPI_WTICK,PMPI_WTIME,PMPI_WTICK
204!
205!     The attribute copy/delete subroutines are symbols that can be passed
206!     to MPI routines
207!
208      EXTERNAL MPI_NULL_COPY_FN, MPI_NULL_DELETE_FN, MPI_DUP_FN
209      COMMON /MPIPRIV/ MPI_BOTTOM,MPI_STATUS_IGNORE,MPI_STATUSES_IGNORE
210!
211!     Without this save, some Fortran implementations may make the common
212!     dynamic!
213!   
214!     For a Fortran90 module, we might replace /MPIPRIV/ with a simple
215!     SAVE MPI_BOTTOM
216!
217      SAVE /MPIPRIV/
218!
219!     $Id: mpiof.h.in,v 1.3 1999/08/06 18:33:09 thakur Exp $   
220!
221!     Copyright (C) 1997 University of Chicago.
222!     See COPYRIGHT notice in top-level directory.
223!
224!
225!    user include file for Fortran MPI-IO programs
226!
227      INTEGER MPI_MODE_RDONLY, MPI_MODE_RDWR, MPI_MODE_WRONLY
228      INTEGER MPI_MODE_DELETE_ON_CLOSE, MPI_MODE_UNIQUE_OPEN
229      INTEGER MPI_MODE_CREATE, MPI_MODE_EXCL
230      INTEGER MPI_MODE_APPEND, MPI_MODE_SEQUENTIAL
231      PARAMETER (MPI_MODE_RDONLY=2, MPI_MODE_RDWR=8, MPI_MODE_WRONLY=4)
232      PARAMETER (MPI_MODE_CREATE=1, MPI_MODE_DELETE_ON_CLOSE=16)
233      PARAMETER (MPI_MODE_UNIQUE_OPEN=32, MPI_MODE_EXCL=64)
234      PARAMETER (MPI_MODE_APPEND=128, MPI_MODE_SEQUENTIAL=256)
235!
236      INTEGER MPI_FILE_NULL
237      PARAMETER (MPI_FILE_NULL=0)
238!
239      INTEGER MPI_MAX_DATAREP_STRING
240      PARAMETER (MPI_MAX_DATAREP_STRING=128)
241!
242      INTEGER MPI_SEEK_SET, MPI_SEEK_CUR, MPI_SEEK_END
243      PARAMETER (MPI_SEEK_SET=600, MPI_SEEK_CUR=602, MPI_SEEK_END=604)
244!
245      INTEGER MPIO_REQUEST_NULL
246      PARAMETER (MPIO_REQUEST_NULL=0)
247!
248      integer*8 MPI_DISPLACEMENT_CURRENT
249      PARAMETER (MPI_DISPLACEMENT_CURRENT=-54278278)
250!
251!
252
253
254
255
256
257
258
259!
260!
261!
262!
263!
Note: See TracBrowser for help on using the repository browser.