205{
206 Int p2, q2, myprow, mypcol;
207#ifndef NDEBUG
218#endif
220
221 if (myprow >= p2 || mypcol >= q2)
222 myprow = mypcol = -1;
223 if ((myprow >= 0 || mypcol >= 0) && (p2 != p && q2 != q)) {
224 fprintf(stderr, "??MR2D:incoherent p,q parameters\n");
225 exit(1);
226 }
227 assert(myprow < p && mypcol < q);
229 fprintf(stderr, "??MR2D:Bad first processor coordinates\n");
230 exit(1);
231 }
232 if (i < 0 || j < 0 || i + m > a->
m || j + n > a->
n) {
233 fprintf(stderr, "??MR2D:Bad submatrix:i=%d,j=%d,\
234m=%d,n=%d,M=%d,N=%d\n",
235 i, j, m, n, a->
m, a->
n);
236 exit(1);
237 }
238 if ((myprow >= 0 || mypcol >= 0) &&
240 fprintf(stderr, "??MR2D:bad lda arg:row=%d,m=%d,p=%d,\
241nbrow=%d,lda=%d,sprow=%d\n",
243 exit(1);
244 }
245}
void checkequal(Int ctxt, Int a)
#define SHIFT(row, sprow, nbrow)