2 ! Copyright (c) 2010-2021. The SimGrid Team.
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.
8 ! SMPI's Fortran 77 include file
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)
17 integer MPI_MAX_PROCESSOR_NAME, MPI_MAX_ERROR_STRING
18 integer MPI_MAX_DATAREP_STRING, 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_STRING=128)
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)
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)
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)
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_TAG, MPI_ERR_TRUNCATE
55 integer MPI_ERR_GROUP, MPI_ERR_OP, MPI_ERR_OTHER
56 integer MPI_ERR_IN_STATUS, MPI_ERR_PENDING, MPI_ERR_BUFFER
57 integer MPI_ERR_NAME, MPI_ERR_DIMS, MPI_ERR_TOPOLOGY
58 integer MPI_ERR_NO_MEM, MPI_ERR_WIN, MPI_ERR_INFO_VALUE
59 integer MPI_ERR_INFO_KEY, MPI_ERR_INFO_NOKEY, MPI_ERR_ROOT
60 integer MPI_ERR_KEYVAL, MPI_ERR_BASE, MPI_ERR_SPAWN
61 integer MPI_ERR_UNKNOWN
63 integer MPI_ERR_LASTCODE
64 integer MPI_IDENT, MPI_SIMILAR, MPI_UNEQUAL, MPI_CONGRUENT
65 parameter(MPI_SUCCESS=0)
66 parameter(MPI_ERR_COMM=1)
67 parameter(MPI_ERR_ARG=2)
68 parameter(MPI_ERR_TYPE=3)
69 parameter(MPI_ERR_REQUEST=4)
70 parameter(MPI_ERR_INTERN=5)
71 parameter(MPI_ERR_COUNT=6)
72 parameter(MPI_ERR_RANK=7)
73 parameter(MPI_ERR_TAG=8)
74 parameter(MPI_ERR_TRUNCATE=9)
75 parameter(MPI_ERR_GROUP=10)
76 parameter(MPI_ERR_OP=11)
77 parameter(MPI_ERR_OTHER=12)
78 parameter(MPI_ERR_IN_STATUS=13)
79 parameter(MPI_ERR_PENDING=14)
80 parameter(MPI_ERR_BUFFER=15)
81 parameter(MPI_ERR_NAME=16)
82 parameter(MPI_ERR_DIMS=17)
83 parameter(MPI_ERR_TOPOLOGY=18)
84 parameter(MPI_ERR_NO_MEM=19)
85 parameter(MPI_ERR_WIN=20)
86 parameter(MPI_ERR_INFO_VALUE=21)
87 parameter(MPI_ERR_INFO_KEY=22)
88 parameter(MPI_ERR_INFO_NOKEY=23)
89 parameter(MPI_ERR_ROOT=24)
90 parameter(MPI_ERR_KEYVAL=25)
91 parameter(MPI_ERR_BASE=26)
92 parameter(MPI_ERR_SPAWN=27)
93 parameter(MPI_ERR_UNKNOWN=28)
94 parameter(MPI_ERR_LASTCODE=74)
95 parameter(MPI_IDENT=0)
96 parameter(MPI_SIMILAR=1)
97 parameter(MPI_UNEQUAL=2)
98 parameter(MPI_CONGRUENT=3)
100 integer MPI_NULL_COPY_FN, MPI_NULL_DELETE_FN
101 parameter(MPI_NULL_COPY_FN =0)
102 parameter(MPI_NULL_DELETE_FN =0)
103 integer MPI_COMM_NULL_COPY_FN, MPI_COMM_NULL_DELETE_FN
104 parameter(MPI_COMM_NULL_COPY_FN =0)
105 parameter(MPI_COMM_NULL_DELETE_FN =0)
106 integer MPI_COMM_DUP_FN
107 parameter(MPI_COMM_DUP_FN =1)
108 integer MPI_WIN_NULL_DELETE_FN
109 parameter(MPI_WIN_NULL_DELETE_FN =0)
110 integer MPI_TYPE_NULL_COPY_FN, MPI_TYPE_NULL_DELETE_FN
111 parameter(MPI_TYPE_NULL_COPY_FN =0)
112 parameter(MPI_TYPE_NULL_DELETE_FN =0)
113 integer MPI_TYPE_DUP_FN
114 parameter(MPI_TYPE_DUP_FN =1)
116 integer MPI_ROOT, MPI_COMM_TYPE_SHARED
117 parameter(MPI_ROOT=0)
118 parameter(MPI_COMM_TYPE_SHARED=1)
121 integer MPI_IO, MPI_HOST, MPI_WTIME_IS_GLOBAL, MPI_APPNUM
122 integer MPI_TAG_UB, MPI_TAG_LB, MPI_BSEND_OVERHEAD
123 integer MPI_UNIVERSE_SIZE, MPI_LASTUSEDCODE
125 parameter(MPI_HOST=-2)
126 parameter(MPI_WTIME_IS_GLOBAL=-3)
127 parameter(MPI_APPNUM=-4)
128 parameter(MPI_TAG_UB=-5)
129 parameter(MPI_TAG_LB=-6)
130 parameter(MPI_UNIVERSE_SIZE=-7)
131 parameter(MPI_LASTUSEDCODE=-8)
133 parameter(MPI_BSEND_OVERHEAD=0)
134 ! This should be equal to the number of int fields in MPI_Status
135 integer MPI_STATUS_SIZE
136 parameter(MPI_STATUS_SIZE=5)
138 integer MPI_INTEGER_KIND
139 parameter(MPI_INTEGER_KIND=4)
141 external MPI_IN_PLACE, MPI_BOTTOM
142 external MPI_STATUS_IGNORE, MPI_STATUSES_IGNORE
144 integer MPI_BYTE, MPI_CHARACTER, MPI_LOGICAL
145 integer MPI_INTEGER, MPI_INTEGER1, MPI_INTEGER2, MPI_INTEGER4
146 integer MPI_INTEGER8, MPI_REAL, MPI_REAL4, MPI_REAL8
147 integer MPI_DOUBLE_PRECISION, MPI_COMPLEX, MPI_DOUBLE_COMPLEX
148 integer MPI_2INTEGER, MPI_LOGICAL1, MPI_LOGICAL2, MPI_LOGICAL4
149 integer MPI_LOGICAL8, MPI_2REAL, MPI_2DOUBLE_PRECISION
150 integer MPI_AINT, MPI_OFFSET, MPI_COUNT, MPI_REAL16
151 integer MPI_PACKED, MPI_COMPLEX8, MPI_COMPLEX16, MPI_COMPLEX32
152 integer MPI_DOUBLE, MPI_INT, MPI_FLOAT
154 integer MPI_MAX, MPI_MIN, MPI_MAXLOC, MPI_MINLOC
155 integer MPI_SUM, MPI_PROD, MPI_LAND, MPI_LOR, MPI_LXOR, MPI_BAND
156 integer MPI_BOR, MPI_BXOR
158 ! _NULL handles should be negative
160 integer MPI_REQUEST_NULL,MPI_DATATYPE_NULL,MPI_OP_NULL
161 integer MPI_COMM_NULL, MPI_COMM_WORLD, MPI_COMM_SELF
162 integer MPI_GROUP_NULL, MPI_GROUP_EMPTY, MPI_WIN_NULL
163 integer MPI_INFO_NULL, MPI_ERRHANDLER_NULL
165 parameter(MPI_REQUEST_NULL=-1)
166 parameter(MPI_DATATYPE_NULL=-1)
167 parameter(MPI_OP_NULL=-1)
168 parameter(MPI_INFO_NULL=-1)
169 parameter(MPI_COMM_NULL=-1)
170 parameter(MPI_COMM_SELF=-2)
171 parameter(MPI_GROUP_NULL=-1)
172 parameter(MPI_GROUP_EMPTY=-2)
173 parameter(MPI_WIN_NULL=-1)
174 parameter(MPI_ERRHANDLER_NULL=-1)
176 integer MPI_WIN_BASE, MPI_WIN_SIZE, MPI_WIN_DISP_UNIT
178 parameter(MPI_WIN_BASE=-1)
179 parameter(MPI_WIN_SIZE=-2)
180 parameter(MPI_WIN_DISP_UNIT=-3)
182 integer MPI_GRAPH, MPI_CART
183 integer MPI_DIST_GRAPH, MPI_INVALID_TOPO
184 parameter(MPI_GRAPH=0)
185 parameter(MPI_CART=1)
186 parameter(MPI_DIST_GRAPH=2)
187 parameter(MPI_INVALID_TOPO=3)
189 ! These IDs have to be unique, consecutive
190 ! and ordered as in smpi_f77.cpp.
191 parameter(MPI_COMM_WORLD=0)
193 parameter(MPI_BYTE=1)
194 parameter(MPI_CHARACTER=2)
195 parameter(MPI_LOGICAL=3)
197 parameter(MPI_INTEGER=4)
198 parameter(MPI_INTEGER1=5)
199 parameter(MPI_INTEGER2=6)
200 parameter(MPI_INTEGER4=7)
201 parameter(MPI_INTEGER8=8)
202 parameter(MPI_REAL=9)
203 parameter(MPI_FLOAT=9)
204 parameter(MPI_REAL4=10)
205 parameter(MPI_REAL8=11)
206 parameter(MPI_DOUBLE_PRECISION=12)
207 parameter(MPI_DOUBLE=12)
208 parameter(MPI_COMPLEX=13)
209 parameter(MPI_DOUBLE_COMPLEX=14)
210 parameter(MPI_2INTEGER=15)
211 parameter(MPI_LOGICAL1=16)
212 parameter(MPI_LOGICAL2=17)
213 parameter(MPI_LOGICAL4=18)
214 parameter(MPI_LOGICAL8=19)
215 parameter(MPI_2REAL=20)
216 parameter(MPI_2DOUBLE_PRECISION=21)
217 parameter(MPI_AINT=22)
218 parameter(MPI_OFFSET=23)
219 parameter(MPI_COUNT=24)
220 parameter(MPI_REAL16=25)
221 parameter(MPI_PACKED=26)
222 parameter(MPI_COMPLEX8=27)
223 parameter(MPI_COMPLEX16=28)
224 parameter(MPI_COMPLEX32=29)
225 parameter(MPI_MAX=30)
226 parameter(MPI_MIN=31)
227 parameter(MPI_MAXLOC=32)
228 parameter(MPI_MINLOC=33)
229 parameter(MPI_SUM=34)
230 parameter(MPI_PROD=35)
231 parameter(MPI_LAND=36)
232 parameter(MPI_LOR=37)
233 parameter(MPI_LXOR=38)
234 parameter(MPI_BAND=39)
235 parameter(MPI_BOR=40)
236 parameter(MPI_BXOR=41)
238 integer MPI_ERRORS_RETURN, MPI_ERRORS_ARE_FATAL
239 parameter(MPI_ERRORS_RETURN=42)
240 parameter(MPI_ERRORS_ARE_FATAL=43)
242 integer MPI_LB, MPI_UB
246 INTEGER MPI_ADDRESS_KIND, MPI_OFFSET_KIND
247 PARAMETER (MPI_ADDRESS_KIND=@CMAKE_SIZEOF_VOID_P@)
248 PARAMETER (MPI_OFFSET_KIND=@CMAKE_SIZEOF_VOID_P@)
250 integer MPI_COMBINER_NAMED, MPI_COMBINER_DUP
251 integer MPI_COMBINER_CONTIGUOUS, MPI_COMBINER_VECTOR
252 integer MPI_COMBINER_HVECTOR_INTEGER, MPI_COMBINER_HVECTOR
253 integer MPI_COMBINER_INDEXED, MPI_COMBINER_HINDEXED_INTEGER
254 integer MPI_COMBINER_HINDEXED, MPI_COMBINER_INDEXED_BLOCK
255 integer MPI_COMBINER_STRUCT_INTEGER, MPI_COMBINER_STRUCT
256 integer MPI_COMBINER_SUBARRAY, MPI_COMBINER_DARRAY
257 integer MPI_COMBINER_F90_REAL, MPI_COMBINER_F90_COMPLEX
258 integer MPI_COMBINER_F90_INTEGER, MPI_COMBINER_RESIZED
259 integer MPI_COMBINER_HINDEXED_BLOCK
261 parameter( MPI_COMBINER_NAMED=0)
262 parameter( MPI_COMBINER_DUP=1)
263 parameter( MPI_COMBINER_CONTIGUOUS=2)
264 parameter( MPI_COMBINER_VECTOR=3)
265 parameter( MPI_COMBINER_HVECTOR_INTEGER=4)
266 parameter( MPI_COMBINER_HVECTOR=5)
267 parameter( MPI_COMBINER_INDEXED=6)
268 parameter( MPI_COMBINER_HINDEXED_INTEGER=7)
269 parameter( MPI_COMBINER_HINDEXED=8)
270 parameter( MPI_COMBINER_INDEXED_BLOCK=9)
271 parameter( MPI_COMBINER_STRUCT_INTEGER=10)
272 parameter( MPI_COMBINER_STRUCT=11)
273 parameter( MPI_COMBINER_SUBARRAY=12)
274 parameter( MPI_COMBINER_DARRAY=13)
275 parameter( MPI_COMBINER_F90_REAL=14)
276 parameter( MPI_COMBINER_F90_COMPLEX=15)
277 parameter( MPI_COMBINER_F90_INTEGER=16)
278 parameter( MPI_COMBINER_RESIZED=17)
279 parameter( MPI_COMBINER_HINDEXED_BLOCK=18)
281 integer MPI_MODE_RDONLY, MPI_MODE_RDWR, MPI_MODE_WRONLY
282 integer MPI_MODE_CREATE, MPI_MODE_EXCL, MPI_MODE_DELETE_ON_CLOSE
283 integer MPI_MODE_UNIQUE_OPEN, MPI_MODE_APPEND, MPI_MODE_SEQUENTIAL
284 integer MPI_FILE_NULL
285 integer MPI_DISPLACEMENT_CURRENT, MPI_SEEK_SET, MPI_SEEK_CUR
286 parameter(MPI_FILE_NULL=0)
287 parameter(MPI_DISPLACEMENT_CURRENT=-54278278)
288 parameter(MPI_SEEK_SET=600)
289 parameter(MPI_SEEK_CUR=602)
291 parameter( MPI_MODE_RDONLY=2)
292 parameter( MPI_MODE_RDWR=8)
293 parameter( MPI_MODE_WRONLY=4)
294 parameter( MPI_MODE_CREATE=1)
295 parameter( MPI_MODE_EXCL=64)
296 parameter( MPI_MODE_DELETE_ON_CLOSE=16)
297 parameter( MPI_MODE_UNIQUE_OPEN=32)
298 parameter( MPI_MODE_APPEND=128)
299 parameter( MPI_MODE_SEQUENTIAL=256)
301 integer MPI_ORDER_C, MPI_ORDER_FORTRAN
302 parameter(MPI_ORDER_C=1)
303 parameter(MPI_ORDER_FORTRAN=0)
305 external MPI_INIT, MPI_FINALIZE, MPI_ABORT
306 external MPI_COMM_RANK, MPI_COMM_SIZE, MPI_COMM_DUP
307 external MPI_SEND_INIT, MPI_ISEND, MPI_SEND, MPI_COMM_SPLIT
308 external MPI_RECV_INIT, MPI_IRECV, MPI_RECV
309 external MPI_START, MPI_STARTALL
310 external MPI_WAIT, MPI_WAITANY, MPI_WAITALL
311 external MPI_BCAST, MPI_BARRIER, MPI_REDUCE, MPI_ALLREDUCE
312 external MPI_SCATTER, MPI_GATHER, MPI_ALLGATHER, MPI_SCAN
313 external MPI_ALLTOALL, MPI_GATHERV, MPI_SENDRECV
314 external MPI_WIN_DUP_FN, MPI_WIN_NULL_COPY_FN
319 double precision MPI_WTIME
320 double precision MPI_WTICK
322 external smpi_execute_flops
323 external smpi_execute_flops_benched
324 external smpi_execute
325 external smpi_execute_benched