1 /*
2  * Copyright (C) by Argonne National Laboratory
3  *     See COPYRIGHT in top-level directory
4  *
5  * This file is automatically generated by buildiface
6  * DO NOT EDIT
7  */
8 #include "mpi_fortimpl.h"
9 
10 
11 /* Begin MPI profiling block */
12 #if defined(USE_WEAK_SYMBOLS) && !defined(USE_ONLY_MPI_NAMES)
13 #if defined(HAVE_MULTIPLE_PRAGMA_WEAK)
14 extern FORT_DLL_SPEC void FORT_CALL MPI_FETCH_AND_OP( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
15 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op__( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
16 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
17 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op_( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
18 
19 #if defined(F77_NAME_UPPER)
20 #pragma weak MPI_FETCH_AND_OP = PMPI_FETCH_AND_OP
21 #pragma weak mpi_fetch_and_op__ = PMPI_FETCH_AND_OP
22 #pragma weak mpi_fetch_and_op_ = PMPI_FETCH_AND_OP
23 #pragma weak mpi_fetch_and_op = PMPI_FETCH_AND_OP
24 #elif defined(F77_NAME_LOWER_2USCORE)
25 #pragma weak MPI_FETCH_AND_OP = pmpi_fetch_and_op__
26 #pragma weak mpi_fetch_and_op__ = pmpi_fetch_and_op__
27 #pragma weak mpi_fetch_and_op_ = pmpi_fetch_and_op__
28 #pragma weak mpi_fetch_and_op = pmpi_fetch_and_op__
29 #elif defined(F77_NAME_LOWER_USCORE)
30 #pragma weak MPI_FETCH_AND_OP = pmpi_fetch_and_op_
31 #pragma weak mpi_fetch_and_op__ = pmpi_fetch_and_op_
32 #pragma weak mpi_fetch_and_op_ = pmpi_fetch_and_op_
33 #pragma weak mpi_fetch_and_op = pmpi_fetch_and_op_
34 #else
35 #pragma weak MPI_FETCH_AND_OP = pmpi_fetch_and_op
36 #pragma weak mpi_fetch_and_op__ = pmpi_fetch_and_op
37 #pragma weak mpi_fetch_and_op_ = pmpi_fetch_and_op
38 #pragma weak mpi_fetch_and_op = pmpi_fetch_and_op
39 #endif
40 
41 
42 
43 #elif defined(HAVE_PRAGMA_WEAK)
44 
45 #if defined(F77_NAME_UPPER)
46 extern FORT_DLL_SPEC void FORT_CALL MPI_FETCH_AND_OP( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
47 
48 #pragma weak MPI_FETCH_AND_OP = PMPI_FETCH_AND_OP
49 #elif defined(F77_NAME_LOWER_2USCORE)
50 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op__( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
51 
52 #pragma weak mpi_fetch_and_op__ = pmpi_fetch_and_op__
53 #elif !defined(F77_NAME_LOWER_USCORE)
54 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
55 
56 #pragma weak mpi_fetch_and_op = pmpi_fetch_and_op
57 #else
58 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op_( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
59 
60 #pragma weak mpi_fetch_and_op_ = pmpi_fetch_and_op_
61 #endif
62 
63 #elif defined(HAVE_PRAGMA_HP_SEC_DEF)
64 #if defined(F77_NAME_UPPER)
65 #pragma _HP_SECONDARY_DEF PMPI_FETCH_AND_OP  MPI_FETCH_AND_OP
66 #elif defined(F77_NAME_LOWER_2USCORE)
67 #pragma _HP_SECONDARY_DEF pmpi_fetch_and_op__  mpi_fetch_and_op__
68 #elif !defined(F77_NAME_LOWER_USCORE)
69 #pragma _HP_SECONDARY_DEF pmpi_fetch_and_op  mpi_fetch_and_op
70 #else
71 #pragma _HP_SECONDARY_DEF pmpi_fetch_and_op_  mpi_fetch_and_op_
72 #endif
73 
74 #elif defined(HAVE_PRAGMA_CRI_DUP)
75 #if defined(F77_NAME_UPPER)
76 #pragma _CRI duplicate MPI_FETCH_AND_OP as PMPI_FETCH_AND_OP
77 #elif defined(F77_NAME_LOWER_2USCORE)
78 #pragma _CRI duplicate mpi_fetch_and_op__ as pmpi_fetch_and_op__
79 #elif !defined(F77_NAME_LOWER_USCORE)
80 #pragma _CRI duplicate mpi_fetch_and_op as pmpi_fetch_and_op
81 #else
82 #pragma _CRI duplicate mpi_fetch_and_op_ as pmpi_fetch_and_op_
83 #endif
84 
85 #elif defined(HAVE_WEAK_ATTRIBUTE)
86 #if defined(F77_NAME_UPPER)
87 extern FORT_DLL_SPEC void FORT_CALL MPI_FETCH_AND_OP( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("PMPI_FETCH_AND_OP")));
88 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op__( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("PMPI_FETCH_AND_OP")));
89 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op_( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("PMPI_FETCH_AND_OP")));
90 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("PMPI_FETCH_AND_OP")));
91 
92 #elif defined(F77_NAME_LOWER_2USCORE)
93 extern FORT_DLL_SPEC void FORT_CALL MPI_FETCH_AND_OP( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_fetch_and_op__")));
94 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op__( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_fetch_and_op__")));
95 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op_( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_fetch_and_op__")));
96 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_fetch_and_op__")));
97 
98 #elif defined(F77_NAME_LOWER_USCORE)
99 extern FORT_DLL_SPEC void FORT_CALL MPI_FETCH_AND_OP( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_fetch_and_op_")));
100 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op__( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_fetch_and_op_")));
101 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op_( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_fetch_and_op_")));
102 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_fetch_and_op_")));
103 
104 #else
105 extern FORT_DLL_SPEC void FORT_CALL MPI_FETCH_AND_OP( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_fetch_and_op")));
106 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op__( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_fetch_and_op")));
107 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op_( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_fetch_and_op")));
108 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_fetch_and_op")));
109 
110 #endif
111 #endif /* HAVE_PRAGMA_WEAK */
112 #endif /* USE_WEAK_SYMBOLS */
113 /* End MPI profiling block */
114 
115 
116 /* These definitions are used only for generating the Fortran wrappers */
117 #if defined(USE_WEAK_SYMBOLS) && defined(USE_ONLY_MPI_NAMES)
118 #if defined(HAVE_MULTIPLE_PRAGMA_WEAK)
119 extern FORT_DLL_SPEC void FORT_CALL MPI_FETCH_AND_OP( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
120 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op__( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
121 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
122 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op_( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
123 
124 #if defined(F77_NAME_UPPER)
125 #pragma weak mpi_fetch_and_op__ = MPI_FETCH_AND_OP
126 #pragma weak mpi_fetch_and_op_ = MPI_FETCH_AND_OP
127 #pragma weak mpi_fetch_and_op = MPI_FETCH_AND_OP
128 #elif defined(F77_NAME_LOWER_2USCORE)
129 #pragma weak MPI_FETCH_AND_OP = mpi_fetch_and_op__
130 #pragma weak mpi_fetch_and_op_ = mpi_fetch_and_op__
131 #pragma weak mpi_fetch_and_op = mpi_fetch_and_op__
132 #elif defined(F77_NAME_LOWER_USCORE)
133 #pragma weak MPI_FETCH_AND_OP = mpi_fetch_and_op_
134 #pragma weak mpi_fetch_and_op__ = mpi_fetch_and_op_
135 #pragma weak mpi_fetch_and_op = mpi_fetch_and_op_
136 #else
137 #pragma weak MPI_FETCH_AND_OP = mpi_fetch_and_op
138 #pragma weak mpi_fetch_and_op__ = mpi_fetch_and_op
139 #pragma weak mpi_fetch_and_op_ = mpi_fetch_and_op
140 #endif
141 #elif defined(HAVE_WEAK_ATTRIBUTE)
142 #if defined(F77_NAME_UPPER)
143 extern FORT_DLL_SPEC void FORT_CALL MPI_FETCH_AND_OP( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
144 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op__( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("MPI_FETCH_AND_OP")));
145 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op_( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("MPI_FETCH_AND_OP")));
146 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("MPI_FETCH_AND_OP")));
147 
148 #elif defined(F77_NAME_LOWER_2USCORE)
149 extern FORT_DLL_SPEC void FORT_CALL MPI_FETCH_AND_OP( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("mpi_fetch_and_op__")));
150 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op__( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
151 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op_( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("mpi_fetch_and_op__")));
152 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("mpi_fetch_and_op__")));
153 
154 #elif defined(F77_NAME_LOWER_USCORE)
155 extern FORT_DLL_SPEC void FORT_CALL MPI_FETCH_AND_OP( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("mpi_fetch_and_op_")));
156 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op__( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("mpi_fetch_and_op_")));
157 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op_( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
158 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("mpi_fetch_and_op_")));
159 
160 #else
161 extern FORT_DLL_SPEC void FORT_CALL MPI_FETCH_AND_OP( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("mpi_fetch_and_op")));
162 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op__( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("mpi_fetch_and_op")));
163 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op_( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("mpi_fetch_and_op")));
164 extern FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
165 
166 #endif
167 #endif
168 
169 #endif
170 
171 /* Map the name to the correct form */
172 #ifndef MPICH_MPI_FROM_PMPI
173 #if defined(USE_WEAK_SYMBOLS)
174 #if defined(HAVE_MULTIPLE_PRAGMA_WEAK)
175 /* Define the weak versions of the PMPI routine*/
176 #ifndef F77_NAME_UPPER
177 extern FORT_DLL_SPEC void FORT_CALL PMPI_FETCH_AND_OP( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
178 #endif
179 #ifndef F77_NAME_LOWER_2USCORE
180 extern FORT_DLL_SPEC void FORT_CALL pmpi_fetch_and_op__( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
181 #endif
182 #ifndef F77_NAME_LOWER_USCORE
183 extern FORT_DLL_SPEC void FORT_CALL pmpi_fetch_and_op_( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
184 #endif
185 #ifndef F77_NAME_LOWER
186 extern FORT_DLL_SPEC void FORT_CALL pmpi_fetch_and_op( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
187 
188 #endif
189 
190 #if defined(F77_NAME_UPPER)
191 #pragma weak pmpi_fetch_and_op__ = PMPI_FETCH_AND_OP
192 #pragma weak pmpi_fetch_and_op_ = PMPI_FETCH_AND_OP
193 #pragma weak pmpi_fetch_and_op = PMPI_FETCH_AND_OP
194 #elif defined(F77_NAME_LOWER_2USCORE)
195 #pragma weak PMPI_FETCH_AND_OP = pmpi_fetch_and_op__
196 #pragma weak pmpi_fetch_and_op_ = pmpi_fetch_and_op__
197 #pragma weak pmpi_fetch_and_op = pmpi_fetch_and_op__
198 #elif defined(F77_NAME_LOWER_USCORE)
199 #pragma weak PMPI_FETCH_AND_OP = pmpi_fetch_and_op_
200 #pragma weak pmpi_fetch_and_op__ = pmpi_fetch_and_op_
201 #pragma weak pmpi_fetch_and_op = pmpi_fetch_and_op_
202 #else
203 #pragma weak PMPI_FETCH_AND_OP = pmpi_fetch_and_op
204 #pragma weak pmpi_fetch_and_op__ = pmpi_fetch_and_op
205 #pragma weak pmpi_fetch_and_op_ = pmpi_fetch_and_op
206 #endif /* Test on name mapping */
207 
208 #elif defined(HAVE_WEAK_ATTRIBUTE)
209 #if defined(F77_NAME_UPPER)
210 extern FORT_DLL_SPEC void FORT_CALL pmpi_fetch_and_op__( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("PMPI_FETCH_AND_OP")));
211 extern FORT_DLL_SPEC void FORT_CALL pmpi_fetch_and_op_( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("PMPI_FETCH_AND_OP")));
212 extern FORT_DLL_SPEC void FORT_CALL pmpi_fetch_and_op( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("PMPI_FETCH_AND_OP")));
213 
214 #elif defined(F77_NAME_LOWER_2USCORE)
215 extern FORT_DLL_SPEC void FORT_CALL PMPI_FETCH_AND_OP( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_fetch_and_op__")));
216 extern FORT_DLL_SPEC void FORT_CALL pmpi_fetch_and_op_( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_fetch_and_op__")));
217 extern FORT_DLL_SPEC void FORT_CALL pmpi_fetch_and_op( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_fetch_and_op__")));
218 
219 #elif defined(F77_NAME_LOWER_USCORE)
220 extern FORT_DLL_SPEC void FORT_CALL PMPI_FETCH_AND_OP( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_fetch_and_op_")));
221 extern FORT_DLL_SPEC void FORT_CALL pmpi_fetch_and_op__( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_fetch_and_op_")));
222 extern FORT_DLL_SPEC void FORT_CALL pmpi_fetch_and_op( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_fetch_and_op_")));
223 
224 #else
225 extern FORT_DLL_SPEC void FORT_CALL PMPI_FETCH_AND_OP( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_fetch_and_op")));
226 extern FORT_DLL_SPEC void FORT_CALL pmpi_fetch_and_op__( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_fetch_and_op")));
227 extern FORT_DLL_SPEC void FORT_CALL pmpi_fetch_and_op_( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Aint *, MPI_Fint *, MPI_Fint *, MPI_Fint * ) __attribute__((weak,alias("pmpi_fetch_and_op")));
228 
229 #endif /* Test on name mapping */
230 #endif /* HAVE_MULTIPLE_PRAGMA_WEAK */
231 #endif /* USE_WEAK_SYMBOLS */
232 
233 #ifdef F77_NAME_UPPER
234 #define mpi_fetch_and_op_ PMPI_FETCH_AND_OP
235 #elif defined(F77_NAME_LOWER_2USCORE)
236 #define mpi_fetch_and_op_ pmpi_fetch_and_op__
237 #elif !defined(F77_NAME_LOWER_USCORE)
238 #define mpi_fetch_and_op_ pmpi_fetch_and_op
239 #else
240 #define mpi_fetch_and_op_ pmpi_fetch_and_op_
241 #endif /* Test on name mapping */
242 
243 #ifdef F77_USE_PMPI
244 /* This defines the routine that we call, which must be the PMPI version
245    since we're renaming the Fortran entry as the pmpi version.  The MPI name
246    must be undefined first to prevent any conflicts with previous renamings. */
247 #undef MPI_Fetch_and_op
248 #define MPI_Fetch_and_op PMPI_Fetch_and_op
249 #endif
250 
251 #else
252 
253 #ifdef F77_NAME_UPPER
254 #define mpi_fetch_and_op_ MPI_FETCH_AND_OP
255 #elif defined(F77_NAME_LOWER_2USCORE)
256 #define mpi_fetch_and_op_ mpi_fetch_and_op__
257 #elif !defined(F77_NAME_LOWER_USCORE)
258 #define mpi_fetch_and_op_ mpi_fetch_and_op
259 /* Else leave name alone */
260 #endif
261 
262 
263 #endif /* MPICH_MPI_FROM_PMPI */
264 
265 /* Prototypes for the Fortran interfaces */
266 #include "fproto.h"
mpi_fetch_and_op_(void * v1,void * v2,MPI_Fint * v3,MPI_Fint * v4,MPI_Aint * v5,MPI_Fint * v6,MPI_Fint * v7,MPI_Fint * ierr)267 FORT_DLL_SPEC void FORT_CALL mpi_fetch_and_op_ ( void*v1, void*v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Aint * v5, MPI_Fint *v6, MPI_Fint *v7, MPI_Fint *ierr ){
268     if (v1 == MPIR_F_MPI_BOTTOM) v1 = MPI_BOTTOM;
269     if (v2 == MPIR_F_MPI_BOTTOM) v2 = MPI_BOTTOM;
270     *ierr = MPI_Fetch_and_op( v1, v2, (MPI_Datatype)(*v3), (int)*v4, *v5, (MPI_Op)*v6, (MPI_Win)*v7 );
271 }
272