1 /* -*- Mode: C; c-basic-offset:4 ; -*- */
2 /*
3  *  (C) 2001 by Argonne National Laboratory.
4  *      See COPYRIGHT in top-level directory.
5  *
6  * This file is automatically generated by buildiface
7  * DO NOT EDIT
8  */
9 #include "mpi_fortimpl.h"
10 
11 
12 /* Begin MPI profiling block */
13 #if defined(USE_WEAK_SYMBOLS) && !defined(USE_ONLY_MPI_NAMES)
14 #if defined(HAVE_MULTIPLE_PRAGMA_WEAK)
15 extern FORT_DLL_SPEC void FORT_CALL MPIX_IREDUCE( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
16 extern FORT_DLL_SPEC void FORT_CALL mpix_ireduce__( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
17 extern FORT_DLL_SPEC void FORT_CALL mpix_ireduce( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
18 extern FORT_DLL_SPEC void FORT_CALL mpix_ireduce_( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
19 
20 #if defined(F77_NAME_UPPER)
21 #pragma weak MPIX_IREDUCE = PMPIX_IREDUCE
22 #pragma weak mpix_ireduce__ = PMPIX_IREDUCE
23 #pragma weak mpix_ireduce_ = PMPIX_IREDUCE
24 #pragma weak mpix_ireduce = PMPIX_IREDUCE
25 #elif defined(F77_NAME_LOWER_2USCORE)
26 #pragma weak MPIX_IREDUCE = pmpix_ireduce__
27 #pragma weak mpix_ireduce__ = pmpix_ireduce__
28 #pragma weak mpix_ireduce_ = pmpix_ireduce__
29 #pragma weak mpix_ireduce = pmpix_ireduce__
30 #elif defined(F77_NAME_LOWER_USCORE)
31 #pragma weak MPIX_IREDUCE = pmpix_ireduce_
32 #pragma weak mpix_ireduce__ = pmpix_ireduce_
33 #pragma weak mpix_ireduce_ = pmpix_ireduce_
34 #pragma weak mpix_ireduce = pmpix_ireduce_
35 #else
36 #pragma weak MPIX_IREDUCE = pmpix_ireduce
37 #pragma weak mpix_ireduce__ = pmpix_ireduce
38 #pragma weak mpix_ireduce_ = pmpix_ireduce
39 #pragma weak mpix_ireduce = pmpix_ireduce
40 #endif
41 
42 
43 
44 #elif defined(HAVE_PRAGMA_WEAK)
45 
46 #if defined(F77_NAME_UPPER)
47 extern FORT_DLL_SPEC void FORT_CALL MPIX_IREDUCE( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
48 
49 #pragma weak MPIX_IREDUCE = PMPIX_IREDUCE
50 #elif defined(F77_NAME_LOWER_2USCORE)
51 extern FORT_DLL_SPEC void FORT_CALL mpix_ireduce__( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
52 
53 #pragma weak mpix_ireduce__ = pmpix_ireduce__
54 #elif !defined(F77_NAME_LOWER_USCORE)
55 extern FORT_DLL_SPEC void FORT_CALL mpix_ireduce( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
56 
57 #pragma weak mpix_ireduce = pmpix_ireduce
58 #else
59 extern FORT_DLL_SPEC void FORT_CALL mpix_ireduce_( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
60 
61 #pragma weak mpix_ireduce_ = pmpix_ireduce_
62 #endif
63 
64 #elif defined(HAVE_PRAGMA_HP_SEC_DEF)
65 #if defined(F77_NAME_UPPER)
66 #pragma _HP_SECONDARY_DEF PMPIX_IREDUCE  MPIX_IREDUCE
67 #elif defined(F77_NAME_LOWER_2USCORE)
68 #pragma _HP_SECONDARY_DEF pmpix_ireduce__  mpix_ireduce__
69 #elif !defined(F77_NAME_LOWER_USCORE)
70 #pragma _HP_SECONDARY_DEF pmpix_ireduce  mpix_ireduce
71 #else
72 #pragma _HP_SECONDARY_DEF pmpix_ireduce_  mpix_ireduce_
73 #endif
74 
75 #elif defined(HAVE_PRAGMA_CRI_DUP)
76 #if defined(F77_NAME_UPPER)
77 #pragma _CRI duplicate MPIX_IREDUCE as PMPIX_IREDUCE
78 #elif defined(F77_NAME_LOWER_2USCORE)
79 #pragma _CRI duplicate mpix_ireduce__ as pmpix_ireduce__
80 #elif !defined(F77_NAME_LOWER_USCORE)
81 #pragma _CRI duplicate mpix_ireduce as pmpix_ireduce
82 #else
83 #pragma _CRI duplicate mpix_ireduce_ as pmpix_ireduce_
84 #endif
85 #endif /* HAVE_PRAGMA_WEAK */
86 #endif /* USE_WEAK_SYMBOLS */
87 /* End MPI profiling block */
88 
89 
90 /* These definitions are used only for generating the Fortran wrappers */
91 #if defined(USE_WEAK_SYMBOLS) && defined(HAVE_MULTIPLE_PRAGMA_WEAK) && \
92     defined(USE_ONLY_MPI_NAMES)
93 extern FORT_DLL_SPEC void FORT_CALL MPIX_IREDUCE( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
94 extern FORT_DLL_SPEC void FORT_CALL mpix_ireduce__( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
95 extern FORT_DLL_SPEC void FORT_CALL mpix_ireduce( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
96 extern FORT_DLL_SPEC void FORT_CALL mpix_ireduce_( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
97 
98 #if defined(F77_NAME_UPPER)
99 #pragma weak mpix_ireduce__ = MPIX_IREDUCE
100 #pragma weak mpix_ireduce_ = MPIX_IREDUCE
101 #pragma weak mpix_ireduce = MPIX_IREDUCE
102 #elif defined(F77_NAME_LOWER_2USCORE)
103 #pragma weak MPIX_IREDUCE = mpix_ireduce__
104 #pragma weak mpix_ireduce_ = mpix_ireduce__
105 #pragma weak mpix_ireduce = mpix_ireduce__
106 #elif defined(F77_NAME_LOWER_USCORE)
107 #pragma weak MPIX_IREDUCE = mpix_ireduce_
108 #pragma weak mpix_ireduce__ = mpix_ireduce_
109 #pragma weak mpix_ireduce = mpix_ireduce_
110 #else
111 #pragma weak MPIX_IREDUCE = mpix_ireduce
112 #pragma weak mpix_ireduce__ = mpix_ireduce
113 #pragma weak mpix_ireduce_ = mpix_ireduce
114 #endif
115 
116 #endif
117 
118 /* Map the name to the correct form */
119 #ifndef MPICH_MPI_FROM_PMPI
120 #if defined(USE_WEAK_SYMBOLS) && defined(HAVE_MULTIPLE_PRAGMA_WEAK)
121 /* Define the weak versions of the PMPI routine*/
122 #ifndef F77_NAME_UPPER
123 extern FORT_DLL_SPEC void FORT_CALL PMPIX_IREDUCE( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
124 #endif
125 #ifndef F77_NAME_LOWER_2USCORE
126 extern FORT_DLL_SPEC void FORT_CALL pmpix_ireduce__( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
127 #endif
128 #ifndef F77_NAME_LOWER_USCORE
129 extern FORT_DLL_SPEC void FORT_CALL pmpix_ireduce_( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
130 #endif
131 #ifndef F77_NAME_LOWER
132 extern FORT_DLL_SPEC void FORT_CALL pmpix_ireduce( void*, void*, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint *, MPI_Fint * );
133 
134 #endif
135 
136 #if defined(F77_NAME_UPPER)
137 #pragma weak pmpix_ireduce__ = PMPIX_IREDUCE
138 #pragma weak pmpix_ireduce_ = PMPIX_IREDUCE
139 #pragma weak pmpix_ireduce = PMPIX_IREDUCE
140 #elif defined(F77_NAME_LOWER_2USCORE)
141 #pragma weak PMPIX_IREDUCE = pmpix_ireduce__
142 #pragma weak pmpix_ireduce_ = pmpix_ireduce__
143 #pragma weak pmpix_ireduce = pmpix_ireduce__
144 #elif defined(F77_NAME_LOWER_USCORE)
145 #pragma weak PMPIX_IREDUCE = pmpix_ireduce_
146 #pragma weak pmpix_ireduce__ = pmpix_ireduce_
147 #pragma weak pmpix_ireduce = pmpix_ireduce_
148 #else
149 #pragma weak PMPIX_IREDUCE = pmpix_ireduce
150 #pragma weak pmpix_ireduce__ = pmpix_ireduce
151 #pragma weak pmpix_ireduce_ = pmpix_ireduce
152 #endif /* Test on name mapping */
153 #endif /* Use multiple pragma weak */
154 
155 #ifdef F77_NAME_UPPER
156 #define mpix_ireduce_ PMPIX_IREDUCE
157 #elif defined(F77_NAME_LOWER_2USCORE)
158 #define mpix_ireduce_ pmpix_ireduce__
159 #elif !defined(F77_NAME_LOWER_USCORE)
160 #define mpix_ireduce_ pmpix_ireduce
161 #else
162 #define mpix_ireduce_ pmpix_ireduce_
163 #endif /* Test on name mapping */
164 
165 /* This defines the routine that we call, which must be the PMPI version
166    since we're renaming the Fortran entry as the pmpi version.  The MPI name
167    must be undefined first to prevent any conflicts with previous renamings. */
168 #undef MPIX_Ireduce
169 #define MPIX_Ireduce PMPIX_Ireduce
170 
171 #else
172 
173 #ifdef F77_NAME_UPPER
174 #define mpix_ireduce_ MPIX_IREDUCE
175 #elif defined(F77_NAME_LOWER_2USCORE)
176 #define mpix_ireduce_ mpix_ireduce__
177 #elif !defined(F77_NAME_LOWER_USCORE)
178 #define mpix_ireduce_ mpix_ireduce
179 /* Else leave name alone */
180 #endif
181 
182 
183 #endif /* MPICH_MPI_FROM_PMPI */
184 
185 /* Prototypes for the Fortran interfaces */
186 #include "fproto.h"
mpix_ireduce_(void * v1,void * v2,MPI_Fint * v3,MPI_Fint * v4,MPI_Fint * v5,MPI_Fint * v6,MPI_Fint * v7,MPI_Fint * v8,MPI_Fint * ierr)187 FORT_DLL_SPEC void FORT_CALL mpix_ireduce_ ( void*v1, void*v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *v5, MPI_Fint *v6, MPI_Fint *v7, MPI_Fint *v8, MPI_Fint *ierr ){
188 
189 #ifndef HAVE_MPI_F_INIT_WORKS_WITH_C
190     if (MPIR_F_NeedInit){ mpirinitf_(); MPIR_F_NeedInit = 0; }
191 #endif
192     if (v1 == MPIR_F_MPI_IN_PLACE) v1 = MPI_IN_PLACE;
193     *ierr = MPIX_Ireduce( v1, v2, *v3, (MPI_Datatype)(*v4), *v5, *v6, (MPI_Comm)(*v7), (MPI_Request *)(v8) );
194 }
195