Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update copyright lines.
[simgrid.git] / include / smpi / mpif.h.in
1 ! -*- fortran -*-
2 ! Copyright (c) 2010-2021. The SimGrid Team.
3 ! All rights reserved.
4
5 ! This program is free software; you can redistribute it and/or modify it
6 ! under the terms of the license (GNU LGPL) which comes with this package.
7
8 ! SMPI's Fortran 77 include file
9 @MODULE_MPIF_IN@
10       integer MPI_THREAD_SINGLE, MPI_THREAD_FUNNELED
11       integer MPI_THREAD_SERIALIZED, MPI_THREAD_MULTIPLE
12       parameter(MPI_THREAD_SINGLE=0)
13       parameter(MPI_THREAD_FUNNELED=1)
14       parameter(MPI_THREAD_SERIALIZED=2)
15       parameter(MPI_THREAD_MULTIPLE=3)
16
17       integer MPI_MAX_PROCESSOR_NAME, MPI_MAX_ERROR_STRING
18       integer MPI_MAX_DATAREP_STRIN, MPI_MAX_INFO_KEY
19       integer MPI_MAX_INFO_VAL, MPI_MAX_OBJECT_NAME, MPI_MAX_PORT_NAME
20       integer MPI_ANY_SOURCE, MPI_PROC_NULL, MPI_ANY_TAG, MPI_UNDEFINED
21       integer MPI_SOURCE, MPI_TAG, MPI_ERROR
22       integer MPI_VERSION, MPI_SUBVERSION
23       integer MPI_LOCK_EXCLUSIVE, MPI_LOCK_SHARED
24       parameter(MPI_MAX_PROCESSOR_NAME=100)
25       parameter(MPI_MAX_ERROR_STRING=100)
26       parameter(MPI_MAX_DATAREP_STRIN =100)
27       parameter(MPI_MAX_INFO_KEY=100)
28       parameter(MPI_MAX_INFO_VAL=100)
29       parameter(MPI_MAX_OBJECT_NAME=100)
30       parameter(MPI_MAX_PORT_NAME=100)
31       parameter(MPI_ANY_SOURCE=-555)
32       parameter(MPI_PROC_NULL=-666)
33       parameter(MPI_ANY_TAG=-444)
34       parameter(MPI_UNDEFINED=-333)
35       parameter(MPI_SOURCE=1)
36       parameter(MPI_TAG=2)
37       parameter(MPI_ERROR=3)
38       parameter(MPI_VERSION=3)
39       parameter(MPI_SUBVERSION=1)
40       parameter(MPI_LOCK_EXCLUSIVE=1)
41       parameter(MPI_LOCK_SHARED=2)
42
43
44       integer MPI_MODE_NOSTORE, MPI_MODE_NOPUT, MPI_MODE_NOPRECEDE
45       integer MPI_MODE_NOSUCCEED, MPI_MODE_NOCHECK
46       parameter(MPI_MODE_NOSTORE=1)
47       parameter(MPI_MODE_NOPUT=2)
48       parameter(MPI_MODE_NOPRECEDE=4)
49       parameter(MPI_MODE_NOSUCCEED=8)
50       parameter(MPI_MODE_NOCHECK=16)
51
52       integer MPI_SUCCESS, MPI_ERR_COMM, MPI_ERR_ARG, MPI_ERR_TYPE
53       integer MPI_ERR_REQUEST, MPI_ERR_INTERN, MPI_ERR_COUNT
54       integer MPI_ERR_RANK, MPI_ERR_OTHER, MPI_ERR_UNKNOWN
55       integer MPI_ERR_TAG, MPI_ERR_TRUNCATE, MPI_ERR_GROUP, MPI_ERR_OP
56       integer MPI_ERR_LASTCODE
57       integer MPI_IDENT, MPI_SIMILAR, MPI_UNEQUAL, MPI_CONGRUENT
58       parameter(MPI_SUCCESS=0)
59       parameter(MPI_ERR_COMM=1)
60       parameter(MPI_ERR_ARG=2)
61       parameter(MPI_ERR_TYPE=3)
62       parameter(MPI_ERR_REQUEST=4)
63       parameter(MPI_ERR_INTERN=5)
64       parameter(MPI_ERR_COUNT=6)
65       parameter(MPI_ERR_RANK=7)
66       parameter(MPI_ERR_TAG=8)
67       parameter(MPI_ERR_TRUNCATE=9)
68       parameter(MPI_ERR_GROUP=10)
69       parameter(MPI_ERR_OP=11)
70       parameter(MPI_ERR_OTHER=12)
71       parameter(MPI_ERR_UNKNOWN=13)
72       parameter(MPI_ERR_LASTCODE=74)
73       parameter(MPI_IDENT=0)
74       parameter(MPI_SIMILAR=1)
75       parameter(MPI_UNEQUAL=2)
76       parameter(MPI_CONGRUENT=3)
77
78       integer MPI_NULL_COPY_FN, MPI_NULL_DELETE_FN
79       parameter(MPI_NULL_COPY_FN =0)
80       parameter(MPI_NULL_DELETE_FN =0)
81       integer MPI_COMM_NULL_COPY_FN, MPI_COMM_NULL_DELETE_FN
82       parameter(MPI_COMM_NULL_COPY_FN =0)
83       parameter(MPI_COMM_NULL_DELETE_FN =0)
84       integer MPI_COMM_DUP_FN
85       parameter(MPI_COMM_DUP_FN =1)
86       integer MPI_WIN_NULL_DELETE_FN
87       parameter(MPI_WIN_NULL_DELETE_FN =0)
88       integer MPI_TYPE_NULL_COPY_FN, MPI_TYPE_NULL_DELETE_FN
89       parameter(MPI_TYPE_NULL_COPY_FN =0)
90       parameter(MPI_TYPE_NULL_DELETE_FN =0)
91       integer MPI_TYPE_DUP_FN
92       parameter(MPI_TYPE_DUP_FN =1)
93
94       integer MPI_ROOT, MPI_COMM_TYPE_SHARED
95       parameter(MPI_ROOT=0)
96       parameter(MPI_COMM_TYPE_SHARED=1)
97
98 ! Attribute keys
99       integer MPI_IO, MPI_HOST, MPI_WTIME_IS_GLOBAL, MPI_APPNUM
100       integer MPI_TAG_UB, MPI_TAG_LB
101       integer MPI_UNIVERSE_SIZE, MPI_LASTUSEDCODE
102       parameter(MPI_IO=-1)
103       parameter(MPI_HOST=-2)
104       parameter(MPI_WTIME_IS_GLOBAL=-3)
105       parameter(MPI_APPNUM=-4)
106       parameter(MPI_TAG_UB=-5)
107       parameter(MPI_TAG_LB=-6)
108       parameter(MPI_UNIVERSE_SIZE=-7)
109       parameter(MPI_LASTUSEDCODE=-8)
110
111 ! This should be equal to the number of int fields in MPI_Status
112       integer MPI_STATUS_SIZE
113       parameter(MPI_STATUS_SIZE=5)
114
115       integer MPI_INTEGER_KIND
116       parameter(MPI_INTEGER_KIND=4)
117
118       external MPI_IN_PLACE, MPI_BOTTOM
119       external MPI_STATUS_IGNORE, MPI_STATUSES_IGNORE
120
121       integer MPI_BYTE, MPI_CHARACTER, MPI_LOGICAL
122       integer MPI_INTEGER, MPI_INTEGER1, MPI_INTEGER2, MPI_INTEGER4
123       integer MPI_INTEGER8, MPI_REAL, MPI_REAL4, MPI_REAL8
124       integer MPI_DOUBLE_PRECISION, MPI_COMPLEX, MPI_DOUBLE_COMPLEX
125       integer MPI_2INTEGER, MPI_LOGICAL1, MPI_LOGICAL2, MPI_LOGICAL4
126       integer MPI_LOGICAL8, MPI_2REAL, MPI_2DOUBLE_PRECISION
127       integer MPI_AINT, MPI_OFFSET, MPI_COUNT, MPI_REAL16
128       integer MPI_PACKED, MPI_COMPLEX8, MPI_COMPLEX16, MPI_COMPLEX32
129       integer MPI_DOUBLE, MPI_INT, MPI_FLOAT
130
131       integer MPI_MAX, MPI_MIN, MPI_MAXLOC, MPI_MINLOC
132       integer MPI_SUM, MPI_PROD, MPI_LAND, MPI_LOR, MPI_LXOR, MPI_BAND
133       integer MPI_BOR, MPI_BXOR
134
135 ! _NULL handles should be negative
136
137       integer MPI_REQUEST_NULL,MPI_DATATYPE_NULL,MPI_OP_NULL
138       integer MPI_COMM_NULL, MPI_COMM_WORLD, MPI_COMM_SELF
139       integer MPI_GROUP_NULL, MPI_GROUP_EMPTY, MPI_WIN_NULL
140       integer MPI_INFO_NULL, MPI_ERRHANDLER_NULL
141
142       parameter(MPI_REQUEST_NULL=-1)
143       parameter(MPI_DATATYPE_NULL=-1)
144       parameter(MPI_OP_NULL=-1)
145       parameter(MPI_INFO_NULL=-1)
146       parameter(MPI_COMM_NULL=-1)
147       parameter(MPI_COMM_SELF=-2)
148       parameter(MPI_GROUP_NULL=-1)
149       parameter(MPI_GROUP_EMPTY=-2)
150       parameter(MPI_WIN_NULL=-1)
151       parameter(MPI_ERRHANDLER_NULL=-1)
152
153       integer MPI_WIN_BASE, MPI_WIN_SIZE, MPI_WIN_DISP_UNIT
154
155       parameter(MPI_WIN_BASE=-1)
156       parameter(MPI_WIN_SIZE=-2)
157       parameter(MPI_WIN_DISP_UNIT=-3)
158
159 ! These IDs have to be unique, consecutive
160 ! and ordered as in smpi_f77.cpp.
161       parameter(MPI_COMM_WORLD=0)
162
163       parameter(MPI_BYTE=1)
164       parameter(MPI_CHARACTER=2)
165       parameter(MPI_LOGICAL=3)
166       parameter(MPI_INT=4)
167       parameter(MPI_INTEGER=4)
168       parameter(MPI_INTEGER1=5)
169       parameter(MPI_INTEGER2=6)
170       parameter(MPI_INTEGER4=7)
171       parameter(MPI_INTEGER8=8)
172       parameter(MPI_REAL=9)
173       parameter(MPI_FLOAT=9)
174       parameter(MPI_REAL4=10)
175       parameter(MPI_REAL8=11)
176       parameter(MPI_DOUBLE_PRECISION=12)
177       parameter(MPI_DOUBLE=12)
178       parameter(MPI_COMPLEX=13)
179       parameter(MPI_DOUBLE_COMPLEX=14)
180       parameter(MPI_2INTEGER=15)
181       parameter(MPI_LOGICAL1=16)
182       parameter(MPI_LOGICAL2=17)
183       parameter(MPI_LOGICAL4=18)
184       parameter(MPI_LOGICAL8=19)
185       parameter(MPI_2REAL=20)
186       parameter(MPI_2DOUBLE_PRECISION=21)
187       parameter(MPI_AINT=22)
188       parameter(MPI_OFFSET=23)
189       parameter(MPI_COUNT=24)
190       parameter(MPI_REAL16=25)
191       parameter(MPI_PACKED=26)
192       parameter(MPI_COMPLEX8=27)
193       parameter(MPI_COMPLEX16=28)
194       parameter(MPI_COMPLEX32=29)
195       parameter(MPI_MAX=30)
196       parameter(MPI_MIN=31)
197       parameter(MPI_MAXLOC=32)
198       parameter(MPI_MINLOC=33)
199       parameter(MPI_SUM=34)
200       parameter(MPI_PROD=35)
201       parameter(MPI_LAND=36)
202       parameter(MPI_LOR=37)
203       parameter(MPI_LXOR=38)
204       parameter(MPI_BAND=39)
205       parameter(MPI_BOR=40)
206       parameter(MPI_BXOR=41)
207
208       integer MPI_ERRORS_RETURN, MPI_ERRORS_ARE_FATAL
209       parameter(MPI_ERRORS_RETURN=42)
210       parameter(MPI_ERRORS_ARE_FATAL=43)
211
212       integer MPI_LB, MPI_UB
213       parameter(MPI_LB=44)
214       parameter(MPI_UB=45)
215       
216       INTEGER MPI_ADDRESS_KIND, MPI_OFFSET_KIND
217       PARAMETER (MPI_ADDRESS_KIND=@CMAKE_SIZEOF_VOID_P@)
218       PARAMETER (MPI_OFFSET_KIND=@CMAKE_SIZEOF_VOID_P@)
219
220       integer MPI_COMBINER_NAMED, MPI_COMBINER_DUP
221       integer MPI_COMBINER_CONTIGUOUS, MPI_COMBINER_VECTOR
222       integer MPI_COMBINER_HVECTOR_INTEGER, MPI_COMBINER_HVECTOR
223       integer MPI_COMBINER_INDEXED, MPI_COMBINER_HINDEXED_INTEGER
224       integer MPI_COMBINER_HINDEXED, MPI_COMBINER_INDEXED_BLOCK
225       integer MPI_COMBINER_STRUCT_INTEGER, MPI_COMBINER_STRUCT
226       integer MPI_COMBINER_SUBARRAY, MPI_COMBINER_DARRAY
227       integer MPI_COMBINER_F90_REAL, MPI_COMBINER_F90_COMPLEX
228       integer MPI_COMBINER_F90_INTEGER, MPI_COMBINER_RESIZED
229       integer MPI_COMBINER_HINDEXED_BLOCK
230
231       parameter( MPI_COMBINER_NAMED=0)
232       parameter( MPI_COMBINER_DUP=1)
233       parameter( MPI_COMBINER_CONTIGUOUS=2)
234       parameter( MPI_COMBINER_VECTOR=3)
235       parameter( MPI_COMBINER_HVECTOR_INTEGER=4)
236       parameter( MPI_COMBINER_HVECTOR=5)
237       parameter( MPI_COMBINER_INDEXED=6)
238       parameter( MPI_COMBINER_HINDEXED_INTEGER=7)
239       parameter( MPI_COMBINER_HINDEXED=8)
240       parameter( MPI_COMBINER_INDEXED_BLOCK=9)
241       parameter( MPI_COMBINER_STRUCT_INTEGER=10)
242       parameter( MPI_COMBINER_STRUCT=11)
243       parameter( MPI_COMBINER_SUBARRAY=12)
244       parameter( MPI_COMBINER_DARRAY=13)
245       parameter( MPI_COMBINER_F90_REAL=14)
246       parameter( MPI_COMBINER_F90_COMPLEX=15)
247       parameter( MPI_COMBINER_F90_INTEGER=16)
248       parameter( MPI_COMBINER_RESIZED=17)
249       parameter( MPI_COMBINER_HINDEXED_BLOCK=18)
250
251       integer MPI_MODE_RDONLY, MPI_MODE_RDWR, MPI_MODE_WRONLY
252       integer MPI_MODE_CREATE, MPI_MODE_EXCL, MPI_MODE_DELETE_ON_CLOSE
253       integer MPI_MODE_UNIQUE_OPEN, MPI_MODE_APPEND, MPI_MODE_SEQUENTIAL
254       integer MPI_FILE_NULL
255       integer MPI_DISPLACEMENT_CURRENT, MPI_SEEK_SET, MPI_SEEK_CUR
256       integer MPI_MAX_DATAREP_STRING
257       parameter(MPI_FILE_NULL=0)
258       parameter(MPI_DISPLACEMENT_CURRENT=-54278278)
259       parameter(MPI_SEEK_SET=600)
260       parameter(MPI_SEEK_CUR=602)
261       parameter(MPI_MAX_DATAREP_STRING=128)
262
263       parameter( MPI_MODE_RDONLY=2)
264       parameter( MPI_MODE_RDWR=8)
265       parameter( MPI_MODE_WRONLY=4)
266       parameter( MPI_MODE_CREATE=1)
267       parameter( MPI_MODE_EXCL=64)
268       parameter( MPI_MODE_DELETE_ON_CLOSE=16)
269       parameter( MPI_MODE_UNIQUE_OPEN=32)
270       parameter( MPI_MODE_APPEND=128)
271       parameter( MPI_MODE_SEQUENTIAL=256)
272
273       integer MPI_ORDER_C, MPI_ORDER_FORTRAN
274       parameter(MPI_ORDER_C=1)
275       parameter(MPI_ORDER_FORTRAN=0)
276
277       external MPI_INIT, MPI_FINALIZE, MPI_ABORT
278       external MPI_COMM_RANK, MPI_COMM_SIZE, MPI_COMM_DUP
279       external MPI_SEND_INIT, MPI_ISEND, MPI_SEND, MPI_COMM_SPLIT
280       external MPI_RECV_INIT, MPI_IRECV, MPI_RECV
281       external MPI_START, MPI_STARTALL
282       external MPI_WAIT, MPI_WAITANY, MPI_WAITALL
283       external MPI_BCAST, MPI_BARRIER, MPI_REDUCE, MPI_ALLREDUCE
284       external MPI_SCATTER, MPI_GATHER, MPI_ALLGATHER, MPI_SCAN
285       external MPI_ALLTOALL, MPI_GATHERV, MPI_SENDRECV
286       external MPI_WIN_DUP_FN, MPI_WIN_NULL_COPY_FN
287
288       external MPI_WTIME
289       external MPI_WTICK
290
291       double precision MPI_WTIME
292       double precision MPI_WTICK
293
294       external smpi_execute_flops
295       external smpi_execute_flops_benched
296       external smpi_execute
297       external smpi_execute_benched
298 @MODULE_MPIF_OUT@