58{
59 void BI_ArgCheck(
Int,
Int,
char *,
char,
char,
char,
Int,
Int,
Int,
Int,
76
77
78
81 char ttop, tscope;
82 Int N, length, dest, tlda, trdest, ierr, itr;
83 MPI_Datatype Dtype;
86
92
93
94
95
96#ifdef DefCombTop
97 if (ttop == ' ') ttop = DefCombTop;
98#endif
99 if (
Mpval(cdest) == -1) trdest = -1;
100 else trdest =
Mpval(rdest);
101#if (BlacsDebugLvl > 0)
104#endif
106 else tlda =
Mpval(m);
107 switch(tscope)
108 {
109 case 'r':
111 if (trdest == -1) dest = -1;
112 else dest =
Mpval(cdest);
113 break;
114 case 'c':
116 dest = trdest;
117 break;
118 case 'a':
120 if (trdest == -1) dest = -1;
122 break;
123 default:
125 tscope);
126 }
127
128
129
130
131
132
133
134 if (ttop ==
' ')
if ( (
Mpval(m) < 1) || (
Mpval(n) < 1) ) ttop =
'1';
136 length = N *
sizeof(
Int);
137
138
139
141 {
143 bp->
Buff = (
char *) A;
145 }
146
147
148
149 else
150 {
155 }
156
157 MPI_Type_match_size(MPI_TYPECLASS_INTEGER,
sizeof(
Int), &Dtype);
160
161 switch(ttop)
162 {
163 case ' ':
164 if (dest != -1)
165 {
168 if (ctxt->
scp->
Iam == dest)
170 }
171 else
172 {
173 ierr=MPI_Allreduce(bp->
Buff, bp2->
Buff, bp->
N, bp->
dtype, MPI_SUM,
176 }
178 return;
179 break;
180 case 'i':
182 break;
183 case 'd':
185 break;
186 case 's':
188 break;
189 case 'm':
191 break;
192 case '1':
193 case '2':
194 case '3':
195 case '4':
196 case '5':
197 case '6':
198 case '7':
199 case '8':
200 case '9':
202 break;
203 case 'f':
205 break;
206 case 't':
208 break;
209 case 'h':
210
211
212
215 else
217 break;
218 default :
220 ttop);
221 }
222
223
224
225
227 {
228 if ( (ctxt->
scp->
Iam == dest) || (dest == -1) )
231 }
232 else
233 {
236 }
237}
void BI_ArgCheck(Int ConTxt, Int RoutType, char *routine, char scope, char uplo, char diag, Int m, Int n, Int lda, Int nprocs, Int *prows, Int *pcols)
void BI_BeComb(BLACSCONTEXT *ctxt, BLACBUFF *bp, BLACBUFF *bp2, Int N, VVFUNPTR Xvvop)
Int BI_BuffIsFree(BLACBUFF *bp, Int Wait)
BLACBUFF * BI_GetBuff(Int length)
MPI_Datatype BI_GetMpiGeType(BLACSCONTEXT *ctxt, Int m, Int n, Int lda, MPI_Datatype Dtype, Int *N)
void BI_MringComb(BLACSCONTEXT *ctxt, BLACBUFF *bp, BLACBUFF *bp2, Int N, VVFUNPTR Xvvop, Int dest, Int nrings)
BLACBUFF * BI_Pack(BLACSCONTEXT *ctxt, BVOID *A, BLACBUFF *bp, MPI_Datatype Dtype)
void BI_TreeComb(BLACSCONTEXT *ctxt, BLACBUFF *bp, BLACBUFF *bp2, Int N, VVFUNPTR Xvvop, Int dest, Int nbranches)
void BI_Unpack(BLACSCONTEXT *ctxt, BVOID *A, BLACBUFF *bp, MPI_Datatype Dtype)
void BI_UpdateBuffs(BLACBUFF *Newbp)
void BI_imvcopy(Int m, Int n, Int *A, Int lda, Int *buff)
void BI_ivmcopy(Int m, Int n, Int *A, Int lda, Int *buff)
void BI_ivvsum(Int N, char *vec1, char *vec2)
void BI_BlacsErr(Int ConTxt, Int line, char *file, char *form,...)
#define Mvkpnum(ctxt, prow, pcol)
#define MGetConTxt(Context, ctxtptr)
void(* VVFUNPTR)(Int, char *, char *)