2 ! Copyright (c) 2010, 2012-2013. 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_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_IN_PLACE, MPI_BOTTOM, MPI_TAG_UB, MPI_TAG_LB
22 integer MPI_SOURCE, MPI_TAG, MPI_ERROR
23 integer MPI_VERSION, MPI_SUBVERSION
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_IN_PLACE=-222)
36 parameter(MPI_BOTTOM=-111)
37 parameter(MPI_SOURCE=1)
39 parameter(MPI_ERROR=3)
40 parameter(MPI_TAG_UB=0)
41 parameter(MPI_TAG_LB=0)
42 parameter(MPI_VERSION=1)
43 parameter(MPI_SUBVERSION=1)
45 integer MPI_SUCCESS, MPI_ERR_COMM, MPI_ERR_ARG, MPI_ERR_TYPE
46 integer MPI_ERR_REQUEST, MPI_ERR_INTERN, MPI_ERR_COUNT
47 integer MPI_ERR_RANK, MPI_ERR_OTHER, MPI_ERR_UNKNOWN
48 integer MPI_ERR_TAG, MPI_ERR_TRUNCATE, MPI_ERR_GROUP, MPI_ERR_OP
49 integer MPI_LASTUSEDCODE, MPI_ERR_LASTCODE
50 integer MPI_IDENT, MPI_SIMILAR, MPI_UNEQUAL, MPI_CONGRUENT
51 integer MPI_WTIME_IS_GLOBAL
52 parameter(MPI_SUCCESS=0)
53 parameter(MPI_ERR_COMM=1)
54 parameter(MPI_ERR_ARG=2)
55 parameter(MPI_ERR_TYPE=3)
56 parameter(MPI_ERR_REQUEST=4)
57 parameter(MPI_ERR_INTERN=5)
58 parameter(MPI_ERR_COUNT=6)
59 parameter(MPI_ERR_RANK=7)
60 parameter(MPI_ERR_TAG=8)
61 parameter(MPI_ERR_TRUNCATE=9)
62 parameter(MPI_ERR_GROUP=10)
63 parameter(MPI_ERR_OP=11)
64 parameter(MPI_ERR_OTHER=12)
65 parameter(MPI_ERR_UNKNOWN=13)
66 parameter(MPI_LASTUSEDCODE=0)
67 parameter(MPI_ERR_LASTCODE=0)
68 parameter(MPI_IDENT=0)
69 parameter(MPI_SIMILAR=1)
70 parameter(MPI_UNEQUAL=2)
71 parameter(MPI_CONGRUENT=3)
72 parameter(MPI_WTIME_IS_GLOBAL=1)
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 integer MPI_APPNUM, MPI_HOST, MPI_IO
84 parameter(MPI_APPNUM=0)
87 integer MPI_ROOT, MPI_INFO_NULL,MPI_COMM_TYPE_SHARED
89 parameter(MPI_INFO_NULL=-1)
90 parameter(MPI_COMM_TYPE_SHARED=1)
92 ! These should be ordered as in smpi_f77.c
93 integer MPI_COMM_NULL, MPI_COMM_WORLD, MPI_COMM_SELF
94 integer MPI_UNIVERSE_SIZE
95 parameter(MPI_COMM_NULL=-1)
96 parameter(MPI_COMM_SELF=-2)
97 parameter(MPI_COMM_WORLD=0)
98 parameter(MPI_UNIVERSE_SIZE=0)
101 integer MPI_GROUP_NULL, MPI_GROUP_EMPTY
102 parameter(MPI_GROUP_NULL=-1)
103 parameter(MPI_GROUP_EMPTY=-2)
105 integer MPI_ERRORS_RETURN, MPI_ERRORS_ARE_FATAL
106 integer MPI_ERRHANDLER_NULL
107 parameter(MPI_ERRORS_RETURN=0)
108 parameter(MPI_ERRORS_ARE_FATAL=1)
109 parameter(MPI_ERRHANDLER_NULL=2)
111 ! This should be equal to the number of int fields in MPI_Status
112 integer MPI_STATUS_SIZE, MPI_STATUSES_IGNORE
113 parameter(MPI_STATUS_SIZE=4)
114 parameter(MPI_STATUSES_IGNORE=-1)
116 integer MPI_STATUS_IGNORE
117 parameter(MPI_STATUS_IGNORE=-1)
119 integer MPI_REQUEST_NULL
120 parameter(MPI_REQUEST_NULL=-1)
122 integer MPI_INTEGER_KIND
123 parameter(MPI_INTEGER_KIND=4)
125 ! These should be ordered as in smpi_f77.c
126 integer MPI_DATATYPE_NULL, MPI_BYTE, MPI_CHARACTER, MPI_LOGICAL
127 integer MPI_INTEGER, MPI_INTEGER1, MPI_INTEGER2, MPI_INTEGER4
128 integer MPI_INTEGER8, MPI_REAL, MPI_REAL4, MPI_REAL8
129 integer MPI_DOUBLE_PRECISION, MPI_COMPLEX, MPI_DOUBLE_COMPLEX
130 integer MPI_2INTEGER, MPI_LOGICAL1, MPI_LOGICAL2, MPI_LOGICAL4
131 integer MPI_LOGICAL8, MPI_2REAL, MPI_2DOUBLE_PRECISION
132 integer MPI_AINT, MPI_OFFSET, MPI_COUNT
133 integer MPI_REAL16, MPI_COMPLEX8,MPI_COMPLEX16,MPI_COMPLEX32
134 parameter(MPI_DATATYPE_NULL=-1)
135 parameter(MPI_BYTE=0)
136 parameter(MPI_CHARACTER=1)
137 parameter(MPI_LOGICAL=2)
138 parameter(MPI_INTEGER=3)
139 parameter(MPI_INTEGER1=4)
140 parameter(MPI_INTEGER2=5)
141 parameter(MPI_INTEGER4=6)
142 parameter(MPI_INTEGER8=7)
143 parameter(MPI_REAL=8)
144 parameter(MPI_REAL4=9)
145 parameter(MPI_REAL8=10)
146 parameter(MPI_DOUBLE_PRECISION=11)
147 parameter(MPI_COMPLEX=12)
148 parameter(MPI_DOUBLE_COMPLEX=13)
149 parameter(MPI_2INTEGER=14)
150 parameter(MPI_LOGICAL1=15)
151 parameter(MPI_LOGICAL2=16)
152 parameter(MPI_LOGICAL4=17)
153 parameter(MPI_LOGICAL8=18)
154 parameter(MPI_2REAL=19)
155 parameter(MPI_2DOUBLE_PRECISION=19)
156 parameter(MPI_AINT=20)
157 parameter(MPI_OFFSET=21)
158 parameter(MPI_COUNT=22)
159 parameter(MPI_REAL16=23)
160 parameter(MPI_COMPLEX8=24)
161 parameter(MPI_COMPLEX16=25)
162 parameter(MPI_COMPLEX32=26)
166 ! These should be ordered as in smpi_f77.c
167 integer MPI_OP_NULL,MPI_MAX, MPI_MIN, MPI_MAXLOC, MPI_MINLOC
168 integer MPI_SUM, MPI_PROD, MPI_LAND, MPI_LOR, MPI_LXOR, MPI_BAND
169 integer MPI_BOR, MPI_BXOR
170 parameter(MPI_OP_NULL=-1)
173 parameter(MPI_MAXLOC=2)
174 parameter(MPI_MINLOC=3)
176 parameter(MPI_PROD=5)
177 parameter(MPI_LAND=6)
179 parameter(MPI_LXOR=8)
180 parameter(MPI_BAND=9)
181 parameter(MPI_BOR=10)
182 parameter(MPI_BXOR=11)
184 INTEGER MPI_ADDRESS_KIND, MPI_OFFSET_KIND
185 PARAMETER (MPI_ADDRESS_KIND=@MPI_ADDRESS_SIZE@)
186 PARAMETER (MPI_OFFSET_KIND=@MPI_ADDRESS_SIZE@)
188 INTEGER MPI_MODE_NOPRECEDE
189 PARAMETER (MPI_MODE_NOPRECEDE=8192)
191 integer MPI_COMBINER_NAMED, MPI_COMBINER_DUP
192 integer MPI_COMBINER_CONTIGUOUS, MPI_COMBINER_VECTOR
193 integer MPI_COMBINER_HVECTOR_INTEGER, MPI_COMBINER_HVECTOR
194 integer MPI_COMBINER_INDEXED, MPI_COMBINER_HINDEXED_INTEGER
195 integer MPI_COMBINER_HINDEXED, MPI_COMBINER_INDEXED_BLOCK
196 integer MPI_COMBINER_STRUCT_INTEGER, MPI_COMBINER_STRUCT
197 integer MPI_COMBINER_SUBARRAY, MPI_COMBINER_DARRAY
198 integer MPI_COMBINER_F90_REAL, MPI_COMBINER_F90_COMPLEX
199 integer MPI_COMBINER_F90_INTEGER, MPI_COMBINER_RESIZED
200 integer MPI_COMBINER_HINDEXED_BLOCK
202 parameter( MPI_COMBINER_NAMED=0)
203 parameter( MPI_COMBINER_DUP=1)
204 parameter( MPI_COMBINER_CONTIGUOUS=2)
205 parameter( MPI_COMBINER_VECTOR=3)
206 parameter( MPI_COMBINER_HVECTOR_INTEGER=4)
207 parameter( MPI_COMBINER_HVECTOR=5)
208 parameter( MPI_COMBINER_INDEXED=6)
209 parameter( MPI_COMBINER_HINDEXED_INTEGER=7)
210 parameter( MPI_COMBINER_HINDEXED=8)
211 parameter( MPI_COMBINER_INDEXED_BLOCK=9)
212 parameter( MPI_COMBINER_STRUCT_INTEGER=10)
213 parameter( MPI_COMBINER_STRUCT=11)
214 parameter( MPI_COMBINER_SUBARRAY=12)
215 parameter( MPI_COMBINER_DARRAY=13)
216 parameter( MPI_COMBINER_F90_REAL=14)
217 parameter( MPI_COMBINER_F90_COMPLEX=15)
218 parameter( MPI_COMBINER_F90_INTEGER=16)
219 parameter( MPI_COMBINER_RESIZED=17)
220 parameter( MPI_COMBINER_HINDEXED_BLOCK=18)
222 integer MPI_ORDER_C, MPI_ORDER_FORTRAN
223 parameter(MPI_ORDER_C=1)
224 parameter(MPI_ORDER_FORTRAN=0)
226 external MPI_INIT, MPI_FINALIZE, MPI_ABORT
227 external MPI_COMM_RANK, MPI_COMM_SIZE, MPI_COMM_DUP, MPI_COMM_SPLIT
228 external MPI_SEND_INIT, MPI_ISEND, MPI_SEND
229 external MPI_RECV_INIT, MPI_IRECV, MPI_RECV
230 external MPI_START, MPI_STARTALL
231 external MPI_WAIT, MPI_WAITANY, MPI_WAITALL
232 external MPI_BCAST, MPI_BARRIER, MPI_REDUCE, MPI_ALLREDUCE
233 external MPI_SCATTER, MPI_GATHER, MPI_ALLGATHER, MPI_SCAN
234 external MPI_ALLTOALL, MPI_GATHERV, MPI_SENDRECV
239 double precision MPI_WTIME
240 double precision MPI_WTICK
242 external smpi_execute_flops
243 external smpi_execute
244 external smpi_get_host_power_peak_at
245 external smpi_get_host_current_power_peak
246 external smpi_get_host_nb_pstates
247 external smpi_set_host_power_peak_at
248 external smpi_get_host_consumed_energy
250 double precision smpi_get_host_power_peak_at
251 double precision smpi_get_host_current_power_peak
252 integer smpi_get_host_nb_pstates
253 double precision smpi_get_host_consumed_energy