Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
b6b94ebd1c011eec00ef72a8eda92b276b139851
[simgrid.git] / include / smpi / mpif.h.in
1 ! -*- fortran -*-
2 ! Copyright (c) 2010, 2012-2014. 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
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       parameter(MPI_MAX_PROCESSOR_NAME=100)
24       parameter(MPI_MAX_ERROR_STRING=100)
25       parameter(MPI_MAX_DATAREP_STRIN =100)
26       parameter(MPI_MAX_INFO_KEY=100)
27       parameter(MPI_MAX_INFO_VAL=100)
28       parameter(MPI_MAX_OBJECT_NAME=100)
29       parameter(MPI_MAX_PORT_NAME=100)
30       parameter(MPI_ANY_SOURCE=-555)
31       parameter(MPI_PROC_NULL=-666)
32       parameter(MPI_ANY_TAG=-444)
33       parameter(MPI_UNDEFINED=-333)
34       parameter(MPI_SOURCE=1)
35       parameter(MPI_TAG=2)
36       parameter(MPI_ERROR=3)
37       parameter(MPI_VERSION=1)
38       parameter(MPI_SUBVERSION=1)
39       integer MPI_MODE_NOSTORE, MPI_MODE_NOPUT, MPI_MODE_NOPRECEDE
40       integer MPI_MODE_NOSUCCEED, MPI_MODE_NOCHECK
41       parameter(MPI_MODE_NOSTORE=1)
42       parameter(MPI_MODE_NOPUT=2)
43       parameter(MPI_MODE_NOPRECEDE=4)
44       parameter(MPI_MODE_NOSUCCEED=8)
45       parameter(MPI_MODE_NOCHECK=16)
46
47       integer MPI_SUCCESS, MPI_ERR_COMM, MPI_ERR_ARG, MPI_ERR_TYPE
48       integer MPI_ERR_REQUEST, MPI_ERR_INTERN, MPI_ERR_COUNT
49       integer MPI_ERR_RANK, MPI_ERR_OTHER, MPI_ERR_UNKNOWN
50       integer MPI_ERR_TAG, MPI_ERR_TRUNCATE, MPI_ERR_GROUP, MPI_ERR_OP
51       integer MPI_ERR_LASTCODE
52       integer MPI_IDENT, MPI_SIMILAR, MPI_UNEQUAL, MPI_CONGRUENT
53       parameter(MPI_SUCCESS=0)
54       parameter(MPI_ERR_COMM=1)
55       parameter(MPI_ERR_ARG=2)
56       parameter(MPI_ERR_TYPE=3)
57       parameter(MPI_ERR_REQUEST=4)
58       parameter(MPI_ERR_INTERN=5)
59       parameter(MPI_ERR_COUNT=6)
60       parameter(MPI_ERR_RANK=7)
61       parameter(MPI_ERR_TAG=8)
62       parameter(MPI_ERR_TRUNCATE=9)
63       parameter(MPI_ERR_GROUP=10)
64       parameter(MPI_ERR_OP=11)
65       parameter(MPI_ERR_OTHER=12)
66       parameter(MPI_ERR_UNKNOWN=13)
67       parameter(MPI_ERR_LASTCODE=74)
68       parameter(MPI_IDENT=0)
69       parameter(MPI_SIMILAR=1)
70       parameter(MPI_UNEQUAL=2)
71       parameter(MPI_CONGRUENT=3)
72
73
74       integer MPI_NULL_COPY_FN, MPI_NULL_DELETE_FN
75       parameter(MPI_NULL_COPY_FN =0)
76       parameter(MPI_NULL_DELETE_FN =0)
77       integer MPI_COMM_NULL_COPY_FN, MPI_COMM_NULL_DELETE_FN
78       parameter(MPI_COMM_NULL_COPY_FN =0)
79       parameter(MPI_COMM_NULL_DELETE_FN =0)
80       integer MPI_COMM_NULL_DUP_FN, MPI_COMM_DUP_FN
81       parameter(MPI_COMM_NULL_DUP_FN =0)
82       parameter(MPI_COMM_DUP_FN =0)
83
84
85
86       integer MPI_ROOT, MPI_INFO_NULL,MPI_COMM_TYPE_SHARED
87       parameter(MPI_ROOT=0)
88       parameter(MPI_INFO_NULL=0)
89       parameter(MPI_COMM_TYPE_SHARED=1)
90
91 ! Attribute keys
92       integer MPI_IO, MPI_HOST, MPI_WTIME_IS_GLOBAL, MPI_APPNUM
93       integer MPI_TAG_UB, MPI_TAG_LB
94       integer MPI_UNIVERSE_SIZE, MPI_LASTUSEDCODE
95       parameter(MPI_IO=-1)
96       parameter(MPI_HOST=-2)
97       parameter(MPI_WTIME_IS_GLOBAL=-3)
98       parameter(MPI_APPNUM=-4)
99       parameter(MPI_TAG_UB=-5)
100       parameter(MPI_TAG_LB=-6)
101       parameter(MPI_UNIVERSE_SIZE=-7)
102       parameter(MPI_LASTUSEDCODE=-8)
103
104 ! These should be ordered as in smpi_f77.c
105       integer MPI_COMM_NULL, MPI_COMM_WORLD, MPI_COMM_SELF
106       parameter(MPI_COMM_NULL=-1)
107       parameter(MPI_COMM_SELF=-2)
108       parameter(MPI_COMM_WORLD=0)
109
110       integer MPI_GROUP_NULL, MPI_GROUP_EMPTY
111       parameter(MPI_GROUP_NULL=-1)
112       parameter(MPI_GROUP_EMPTY=-2)
113
114       integer MPI_ERRORS_RETURN, MPI_ERRORS_ARE_FATAL
115       integer MPI_ERRHANDLER_NULL
116       parameter(MPI_ERRORS_RETURN=0)
117       parameter(MPI_ERRORS_ARE_FATAL=1)
118       parameter(MPI_ERRHANDLER_NULL=2)
119
120 ! This should be equal to the number of int fields in MPI_Status
121       integer MPI_STATUS_SIZE
122       parameter(MPI_STATUS_SIZE=4)
123
124 ! These should be ordered as in smpi_f77.c
125       integer MPI_IN_PLACE, MPI_BOTTOM
126       integer MPI_STATUS_IGNORE, MPI_STATUSES_IGNORE
127       common /smpi/ MPI_IN_PLACE, MPI_BOTTOM
128       common /smpi/ MPI_STATUS_IGNORE, MPI_STATUSES_IGNORE
129
130       integer MPI_REQUEST_NULL
131       parameter(MPI_REQUEST_NULL=-1)
132
133       integer MPI_INTEGER_KIND
134       parameter(MPI_INTEGER_KIND=4)
135
136       integer MPI_DATATYPE_NULL, MPI_BYTE, MPI_CHARACTER, MPI_LOGICAL
137       integer MPI_INTEGER, MPI_INTEGER1, MPI_INTEGER2, MPI_INTEGER4
138       integer MPI_INTEGER8, MPI_REAL, MPI_REAL4, MPI_REAL8
139       integer MPI_DOUBLE_PRECISION, MPI_COMPLEX, MPI_DOUBLE_COMPLEX
140       integer MPI_2INTEGER, MPI_LOGICAL1, MPI_LOGICAL2, MPI_LOGICAL4
141       integer MPI_LOGICAL8, MPI_2REAL, MPI_2DOUBLE_PRECISION
142       integer MPI_AINT, MPI_OFFSET, MPI_COUNT
143       integer MPI_REAL16, MPI_COMPLEX8,MPI_COMPLEX16,MPI_COMPLEX32
144       integer MPI_PACKED
145       parameter(MPI_DATATYPE_NULL=-1)
146       parameter(MPI_BYTE=0)
147       parameter(MPI_CHARACTER=1)
148       parameter(MPI_LOGICAL=2)
149       parameter(MPI_INTEGER=3)
150       parameter(MPI_INTEGER1=4)
151       parameter(MPI_INTEGER2=5)
152       parameter(MPI_INTEGER4=6)
153       parameter(MPI_INTEGER8=7)
154       parameter(MPI_REAL=8)
155       parameter(MPI_REAL4=9)
156       parameter(MPI_REAL8=10)
157       parameter(MPI_DOUBLE_PRECISION=11)
158       parameter(MPI_COMPLEX=12)
159       parameter(MPI_DOUBLE_COMPLEX=13)
160       parameter(MPI_2INTEGER=14)
161       parameter(MPI_LOGICAL1=15)
162       parameter(MPI_LOGICAL2=16)
163       parameter(MPI_LOGICAL4=17)
164       parameter(MPI_LOGICAL8=18)
165       parameter(MPI_2REAL=19)
166       parameter(MPI_2DOUBLE_PRECISION=19)
167       parameter(MPI_AINT=20)
168       parameter(MPI_OFFSET=21)
169       parameter(MPI_COUNT=22)
170       parameter(MPI_REAL16=23)
171       parameter(MPI_COMPLEX8=24)
172       parameter(MPI_COMPLEX16=25)
173       parameter(MPI_COMPLEX32=26)
174       parameter(MPI_PACKED=27)
175
176
177
178 ! These should be ordered as in smpi_f77.c
179       integer MPI_OP_NULL,MPI_MAX, MPI_MIN, MPI_MAXLOC, MPI_MINLOC
180       integer MPI_SUM, MPI_PROD, MPI_LAND, MPI_LOR, MPI_LXOR, MPI_BAND
181       integer MPI_BOR, MPI_BXOR
182       parameter(MPI_OP_NULL=-1)
183       parameter(MPI_MAX=0)
184       parameter(MPI_MIN=1)
185       parameter(MPI_MAXLOC=2)
186       parameter(MPI_MINLOC=3)
187       parameter(MPI_SUM=4)
188       parameter(MPI_PROD=5)
189       parameter(MPI_LAND=6)
190       parameter(MPI_LOR=7)
191       parameter(MPI_LXOR=8)
192       parameter(MPI_BAND=9)
193       parameter(MPI_BOR=10)
194       parameter(MPI_BXOR=11)
195       
196       INTEGER MPI_ADDRESS_KIND, MPI_OFFSET_KIND
197       PARAMETER (MPI_ADDRESS_KIND=@MPI_ADDRESS_SIZE@)
198       PARAMETER (MPI_OFFSET_KIND=@MPI_ADDRESS_SIZE@)
199
200       integer MPI_COMBINER_NAMED, MPI_COMBINER_DUP
201       integer MPI_COMBINER_CONTIGUOUS, MPI_COMBINER_VECTOR
202       integer MPI_COMBINER_HVECTOR_INTEGER, MPI_COMBINER_HVECTOR
203       integer MPI_COMBINER_INDEXED, MPI_COMBINER_HINDEXED_INTEGER
204       integer MPI_COMBINER_HINDEXED, MPI_COMBINER_INDEXED_BLOCK
205       integer MPI_COMBINER_STRUCT_INTEGER, MPI_COMBINER_STRUCT
206       integer MPI_COMBINER_SUBARRAY, MPI_COMBINER_DARRAY
207       integer MPI_COMBINER_F90_REAL, MPI_COMBINER_F90_COMPLEX
208       integer MPI_COMBINER_F90_INTEGER, MPI_COMBINER_RESIZED
209       integer MPI_COMBINER_HINDEXED_BLOCK
210
211       parameter( MPI_COMBINER_NAMED=0)
212       parameter( MPI_COMBINER_DUP=1)
213       parameter( MPI_COMBINER_CONTIGUOUS=2)
214       parameter( MPI_COMBINER_VECTOR=3)
215       parameter( MPI_COMBINER_HVECTOR_INTEGER=4)
216       parameter( MPI_COMBINER_HVECTOR=5)
217       parameter( MPI_COMBINER_INDEXED=6)
218       parameter( MPI_COMBINER_HINDEXED_INTEGER=7)
219       parameter( MPI_COMBINER_HINDEXED=8)
220       parameter( MPI_COMBINER_INDEXED_BLOCK=9)
221       parameter( MPI_COMBINER_STRUCT_INTEGER=10)
222       parameter( MPI_COMBINER_STRUCT=11)
223       parameter( MPI_COMBINER_SUBARRAY=12)
224       parameter( MPI_COMBINER_DARRAY=13)
225       parameter( MPI_COMBINER_F90_REAL=14)
226       parameter( MPI_COMBINER_F90_COMPLEX=15)
227       parameter( MPI_COMBINER_F90_INTEGER=16)
228       parameter( MPI_COMBINER_RESIZED=17)
229       parameter( MPI_COMBINER_HINDEXED_BLOCK=18)
230
231       integer MPI_ORDER_C, MPI_ORDER_FORTRAN
232       parameter(MPI_ORDER_C=1)
233       parameter(MPI_ORDER_FORTRAN=0)
234
235       external MPI_INIT, MPI_FINALIZE, MPI_ABORT
236       external MPI_COMM_RANK, MPI_COMM_SIZE, MPI_COMM_DUP
237       external MPI_SEND_INIT, MPI_ISEND, MPI_SEND, MPI_COMM_SPLIT
238       external MPI_RECV_INIT, MPI_IRECV, MPI_RECV
239       external MPI_START, MPI_STARTALL
240       external MPI_WAIT, MPI_WAITANY, MPI_WAITALL
241       external MPI_BCAST, MPI_BARRIER, MPI_REDUCE, MPI_ALLREDUCE
242       external MPI_SCATTER, MPI_GATHER, MPI_ALLGATHER, MPI_SCAN
243       external MPI_ALLTOALL, MPI_GATHERV, MPI_SENDRECV
244
245       external MPI_WTIME
246       external MPI_WTICK
247
248       double precision MPI_WTIME
249       double precision MPI_WTICK
250
251       external smpi_execute_flops
252       external smpi_execute
253       external smpi_get_host_power_peak_at
254       external smpi_get_host_current_power_peak
255       external smpi_get_host_nb_pstates
256       external smpi_set_host_pstate
257       external smpi_get_host_consumed_energy
258
259       double precision smpi_get_host_power_peak_at
260       double precision smpi_get_host_current_power_peak
261       integer smpi_get_host_nb_pstates
262       double precision smpi_get_host_consumed_energy