181
182
183 INTEGER MEMLEN, CMEMLEN, NPREC, OUTNUM, VERB, IAM, NNODES
184 LOGICAL TESTSDRV, TESTBSBR, TESTCOMB, TESTAUX
185
186
187 CHARACTER*1 CMEM(CMEMLEN), PREC(NPREC)
188 INTEGER MEM(MEMLEN)
189
190
191 INTEGER IBTNPROCS, IBTMYPROC, IBTMSGID, IBTSIZEOF, SAFEINDEX
193
194
201
202
203 INTEGER NSCOPE, NOP, NTOP, NSHAPE, NMAT, NSRC, NDEST, NGRID
204 INTEGER TREP, TCOH, OPPTR, SCOPEPTR, TOPPTR, UPLOPTR, DIAGPTR
205 INTEGER MPTR, NPTR, LDSPTR, LDDPTR, LDIPTR
206 INTEGER RSRCPTR, CSRCPTR, RDESTPTR, CDESTPTR, PPTR, QPTR
207 INTEGER ISEEDPTR, RAPTR, CAPTR, CTXTPTR, WORKPTR, WORKLEN
208 INTEGER MEMUSED, CMEMUSED, I, J, K
209 INTEGER ISIZE, SSIZE, DSIZE, CSIZE, ZSIZE
210
211
212 INTEGER ITMP(4)
213
214
215
223
224 IF( iam.EQ.0 ) THEN
225 CALL blacs_get( 0, 2, i )
226 WRITE(outnum,3000)
227 WRITE(outnum,3000)
228 WRITE(outnum,2000) i
229 WRITE(outnum,3000)
230 WRITE(outnum,3000)
231 END IF
232
233 IF( testaux ) THEN
234
235
236
237
238
239 CALL blacs_pinfo( itmp(1), itmp(3) )
240 CALL blacs_setup( itmp(2), itmp(4) )
241 IF( iam .EQ. 0 ) THEN
242 DO 35 i = 0, nnodes-1
243 IF( i .NE. 0 )
245 IF( itmp(1) .NE. itmp(2) )
246 $ WRITE( outnum, 1000 ) itmp(1), itmp(2)
247 IF( (itmp(3).NE.itmp(4)) .OR. (itmp(3).NE.nnodes) )
248 $ WRITE( outnum, 1000 ) itmp(3), itmp(4), nnodes
249 35 CONTINUE
250 ELSE
252 ENDIF
253 ENDIF
254
255
256
257 IF( testsdrv ) THEN
258
259
260
261 CALL btinfo(
'SDRV', memused, mem, memlen, cmemused, cmem,
262 $ cmemlen, outnum, nop, nscope, trep, tcoh, ntop,
263 $ nshape, nmat, nsrc, ngrid, opptr, scopeptr,
264 $ topptr, uploptr, diagptr, mptr, nptr, ldsptr,
265 $ lddptr, ldiptr, rsrcptr, csrcptr, rdestptr,
266 $ cdestptr, pptr, qptr )
267
268
269
270
271 ctxtptr = memused + 1
272 iseedptr = ctxtptr + ngrid
273 memused = iseedptr - 1
274 IF( verb .LT. 2 )
275 $ memused = memused + nshape * nmat * nsrc * ngrid
276
277 CALL makegrids( mem(ctxtptr), outnum, ngrid, mem(pptr),
278 $ mem(qptr) )
279
280
281
282 DO 10 i = 1, nprec
283 IF( prec(i) .EQ. 'I' ) THEN
284
285 workptr =
safeindex(memused + 1, isize, isize)
286 worklen = ( dsize * (memlen - workptr + 1) ) / isize
287 CALL isdrvtest(outnum, verb, nshape, cmem(uploptr),
288 $ cmem(diagptr), nmat, mem(mptr),
289 $ mem(nptr), mem(ldsptr), mem(lddptr),
290 $ nsrc, mem(rsrcptr), mem(csrcptr),
291 $ mem(rdestptr), mem(cdestptr),
292 $ ngrid, mem(ctxtptr), mem(pptr), mem(qptr),
293 $ mem(iseedptr), mem(workptr), worklen)
294
295 ELSE IF( prec(i) .EQ. 'S' ) THEN
296
297 workptr =
safeindex(memused + 1, isize, ssize)
298 worklen = ( dsize * (memlen - workptr + 1) ) / ssize
299 CALL ssdrvtest(outnum, verb, nshape, cmem(uploptr),
300 $ cmem(diagptr), nmat, mem(mptr),
301 $ mem(nptr), mem(ldsptr), mem(lddptr),
302 $ nsrc, mem(rsrcptr), mem(csrcptr),
303 $ mem(rdestptr), mem(cdestptr),
304 $ ngrid, mem(ctxtptr), mem(pptr), mem(qptr),
305 $ mem(iseedptr), mem(workptr), worklen)
306
307 ELSE IF( prec(i) .EQ. 'D' ) THEN
308
309 workptr =
safeindex(memused + 1, isize, dsize)
310 worklen = ( dsize * (memlen - workptr + 1) ) / dsize
311 CALL dsdrvtest(outnum, verb, nshape, cmem(uploptr),
312 $ cmem(diagptr), nmat, mem(mptr),
313 $ mem(nptr), mem(ldsptr), mem(lddptr),
314 $ nsrc, mem(rsrcptr), mem(csrcptr),
315 $ mem(rdestptr), mem(cdestptr),
316 $ ngrid, mem(ctxtptr), mem(pptr), mem(qptr),
317 $ mem(iseedptr), mem(workptr), worklen)
318
319 ELSE IF( prec(i) .EQ. 'C' ) THEN
320
321 workptr =
safeindex(memused + 1, isize, csize)
322 worklen = ( dsize * (memlen - workptr + 1) ) / csize
323 CALL csdrvtest(outnum, verb, nshape, cmem(uploptr),
324 $ cmem(diagptr), nmat, mem(mptr),
325 $ mem(nptr), mem(ldsptr), mem(lddptr),
326 $ nsrc, mem(rsrcptr), mem(csrcptr),
327 $ mem(rdestptr), mem(cdestptr),
328 $ ngrid, mem(ctxtptr), mem(pptr), mem(qptr),
329 $ mem(iseedptr), mem(workptr), worklen)
330
331 ELSE IF( prec(i) .EQ. 'Z' ) THEN
332
333 workptr =
safeindex(memused + 1, isize, zsize)
334 worklen = ( dsize * (memlen - workptr + 1) ) / zsize
335 CALL zsdrvtest(outnum, verb, nshape, cmem(uploptr),
336 $ cmem(diagptr), nmat, mem(mptr),
337 $ mem(nptr), mem(ldsptr), mem(lddptr),
338 $ nsrc, mem(rsrcptr), mem(csrcptr),
339 $ mem(rdestptr), mem(cdestptr),
340 $ ngrid, mem(ctxtptr), mem(pptr), mem(qptr),
341 $ mem(iseedptr), mem(workptr), worklen)
342 END IF
343 10 CONTINUE
345 END IF
346
347 IF( testbsbr ) THEN
348
349
350
351 CALL btinfo(
'BSBR', memused, mem, memlen, cmemused, cmem,
352 $ cmemlen, outnum, nop, nscope, trep, tcoh, ntop,
353 $ nshape, nmat, nsrc, ngrid, opptr, scopeptr,
354 $ topptr, uploptr, diagptr, mptr, nptr, ldsptr,
355 $ lddptr, ldiptr, rsrcptr, csrcptr, rdestptr,
356 $ cdestptr, pptr, qptr )
357
358
359
360
361 ctxtptr = memused + 1
362 iseedptr = ctxtptr + ngrid
363 memused = iseedptr - 1
364 IF( verb .LT. 2 )
365 $ memused = memused + nscope*ntop*nshape*nmat*nsrc*ngrid
366
367 CALL makegrids( mem(ctxtptr), outnum, ngrid, mem(pptr),
368 $ mem(qptr) )
369
370
371
372 DO 20 i = 1, nprec
373 IF( prec(i) .EQ. 'I' ) THEN
374
375 workptr =
safeindex(memused + 1, isize, isize)
376 worklen = ( dsize * (memlen - workptr + 1) ) / isize
377 CALL ibsbrtest(outnum, verb, nscope, cmem(scopeptr),
378 $ ntop, cmem(topptr), nshape, cmem(uploptr),
379 $ cmem(diagptr), nmat, mem(mptr),
380 $ mem(nptr), mem(ldsptr), mem(lddptr),
381 $ nsrc, mem(rsrcptr), mem(csrcptr),
382 $ ngrid, mem(ctxtptr), mem(pptr), mem(qptr),
383 $ mem(iseedptr), mem(workptr), worklen)
384
385 ELSE IF( prec(i) .EQ. 'S' ) THEN
386
387 workptr =
safeindex(memused + 1, isize, ssize)
388 worklen = ( dsize * (memlen - workptr + 1) ) / ssize
389 CALL sbsbrtest(outnum, verb, nscope, cmem(scopeptr),
390 $ ntop, cmem(topptr), nshape, cmem(uploptr),
391 $ cmem(diagptr), nmat, mem(mptr),
392 $ mem(nptr), mem(ldsptr), mem(lddptr),
393 $ nsrc, mem(rsrcptr), mem(csrcptr),
394 $ ngrid, mem(ctxtptr), mem(pptr), mem(qptr),
395 $ mem(iseedptr), mem(workptr), worklen)
396
397 ELSE IF( prec(i) .EQ. 'D' ) THEN
398
399 workptr =
safeindex(memused + 1, isize, dsize)
400 worklen = ( dsize * (memlen - workptr + 1) ) / dsize
401 CALL dbsbrtest(outnum, verb, nscope, cmem(scopeptr),
402 $ ntop, cmem(topptr), nshape, cmem(uploptr),
403 $ cmem(diagptr), nmat, mem(mptr),
404 $ mem(nptr), mem(ldsptr), mem(lddptr),
405 $ nsrc, mem(rsrcptr), mem(csrcptr),
406 $ ngrid, mem(ctxtptr), mem(pptr), mem(qptr),
407 $ mem(iseedptr), mem(workptr), worklen)
408
409 ELSE IF( prec(i) .EQ. 'C' ) THEN
410
411 workptr =
safeindex(memused + 1, isize, csize)
412 worklen = ( dsize * (memlen - workptr + 1) ) / csize
413 CALL cbsbrtest(outnum, verb, nscope, cmem(scopeptr),
414 $ ntop, cmem(topptr), nshape, cmem(uploptr),
415 $ cmem(diagptr), nmat, mem(mptr),
416 $ mem(nptr), mem(ldsptr), mem(lddptr),
417 $ nsrc, mem(rsrcptr), mem(csrcptr),
418 $ ngrid, mem(ctxtptr), mem(pptr), mem(qptr),
419 $ mem(iseedptr), mem(workptr), worklen)
420
421 ELSE IF( prec(i) .EQ. 'Z' ) THEN
422
423 workptr =
safeindex(memused + 1, isize, zsize)
424 worklen = ( dsize * (memlen - workptr + 1) ) / zsize
425 CALL zbsbrtest(outnum, verb, nscope, cmem(scopeptr),
426 $ ntop, cmem(topptr), nshape, cmem(uploptr),
427 $ cmem(diagptr), nmat, mem(mptr),
428 $ mem(nptr), mem(ldsptr), mem(lddptr),
429 $ nsrc, mem(rsrcptr), mem(csrcptr),
430 $ ngrid, mem(ctxtptr), mem(pptr), mem(qptr),
431 $ mem(iseedptr), mem(workptr), worklen)
432
433 END IF
434
435 20 CONTINUE
437 END IF
438 IF( testcomb ) THEN
439
440
441
442 CALL btinfo(
'COMB', memused, mem, memlen, cmemused, cmem,
443 $ cmemlen, outnum, nop, nscope, trep, tcoh, ntop,
444 $ nshape, nmat, ndest, ngrid, opptr, scopeptr,
445 $ topptr, uploptr, diagptr, mptr, nptr, ldsptr,
446 $ lddptr, ldiptr, rsrcptr, csrcptr, rdestptr,
447 $ cdestptr, pptr, qptr )
448 ctxtptr = memused + 1
449 memused = ctxtptr + ngrid - 1
450
451
452
453 k = 0
454 DO 40 j = 0, nop-1
455 IF( cmem(opptr+j).EQ.'>' .OR. cmem(opptr+j).EQ.'<' ) THEN
456 DO 30 i = 0, nmat
457
458
459
460 k = max0( k, 4*mem(mptr+i) )
461 IF ( mem(ldiptr+i) .NE. -1 )
462 $ k = max0( k, mem(nptr+i)*mem(ldiptr+i) +
463 $ 4*mem(mptr+i) )
464 30 CONTINUE
465 END IF
466 40 CONTINUE
467 raptr = memused + 1
468 captr = raptr + k
469
470
471
472
473 iseedptr = captr + k
474 i = 0
475 IF( verb.LT.2 ) i = nscope * ntop * nmat * ndest * ngrid
476 memused = iseedptr +
max( 4*nnodes, i )
477
478 CALL makegrids( mem(ctxtptr), outnum, ngrid, mem(pptr),
479 $ mem(qptr) )
480
481
482
483 DO 60 i = 1, nprec
484 DO 50 j = 0, nop-1
485 IF( prec(i) .EQ. 'I' ) THEN
486 workptr =
safeindex(memused, isize, isize)
487 worklen = ( dsize * (memlen - workptr + 1) ) / isize
488 IF( cmem(opptr+j) .EQ. '+' ) THEN
489 CALL isumtest(outnum, verb, trep, tcoh, nscope,
490 $ cmem(scopeptr), ntop, cmem(topptr),
491 $ nmat, mem(mptr), mem(nptr),
492 $ mem(ldsptr), mem(lddptr), ndest,
493 $ mem(rdestptr), mem(cdestptr), ngrid,
494 $ mem(ctxtptr), mem(pptr), mem(qptr),
495 $ mem(iseedptr), mem(workptr),
496 $ worklen)
497 ELSE IF( cmem(opptr+j) .EQ. '>' ) THEN
498 CALL iamxtest(outnum, verb, trep, tcoh, nscope,
499 $ cmem(scopeptr), ntop, cmem(topptr),
500 $ nmat, mem(mptr), mem(nptr),
501 $ mem(ldsptr), mem(lddptr),
502 $ mem(ldiptr), ndest, mem(rdestptr),
503 $ mem(cdestptr), ngrid, mem(ctxtptr),
504 $ mem(pptr), mem(qptr), mem(iseedptr),
505 $ mem(raptr), mem(captr), k,
506 $ mem(workptr), worklen)
507 ELSE IF( cmem(opptr+j) .EQ. '<' ) THEN
508 CALL iamntest(outnum, verb, trep, tcoh, nscope,
509 $ cmem(scopeptr), ntop, cmem(topptr),
510 $ nmat, mem(mptr), mem(nptr),
511 $ mem(ldsptr), mem(lddptr),
512 $ mem(ldiptr), ndest, mem(rdestptr),
513 $ mem(cdestptr), ngrid, mem(ctxtptr),
514 $ mem(pptr), mem(qptr), mem(iseedptr),
515 $ mem(raptr), mem(captr), k,
516 $ mem(workptr), worklen)
517 END IF
518 ELSE IF( prec(i) .EQ. 'S' ) THEN
519 workptr =
safeindex(memused, isize, ssize)
520 worklen = ( dsize * (memlen - workptr + 1) ) / ssize
521 IF( cmem(opptr+j) .EQ. '+' ) THEN
522 CALL ssumtest(outnum, verb, trep, tcoh, nscope,
523 $ cmem(scopeptr), ntop, cmem(topptr),
524 $ nmat, mem(mptr), mem(nptr),
525 $ mem(ldsptr), mem(lddptr), ndest,
526 $ mem(rdestptr), mem(cdestptr), ngrid,
527 $ mem(ctxtptr), mem(pptr), mem(qptr),
528 $ mem(iseedptr), mem(workptr),
529 $ worklen)
530 ELSE IF( cmem(opptr+j) .EQ. '>' ) THEN
531 CALL samxtest(outnum, verb, trep, tcoh, nscope,
532 $ cmem(scopeptr), ntop, cmem(topptr),
533 $ nmat, mem(mptr), mem(nptr),
534 $ mem(ldsptr), mem(lddptr),
535 $ mem(ldiptr), ndest, mem(rdestptr),
536 $ mem(cdestptr), ngrid, mem(ctxtptr),
537 $ mem(pptr), mem(qptr), mem(iseedptr),
538 $ mem(raptr), mem(captr), k,
539 $ mem(workptr), worklen)
540 ELSE IF( cmem(opptr+j) .EQ. '<' ) THEN
541 CALL samntest(outnum, verb, trep, tcoh, nscope,
542 $ cmem(scopeptr), ntop, cmem(topptr),
543 $ nmat, mem(mptr), mem(nptr),
544 $ mem(ldsptr), mem(lddptr),
545 $ mem(ldiptr), ndest, mem(rdestptr),
546 $ mem(cdestptr), ngrid, mem(ctxtptr),
547 $ mem(pptr), mem(qptr), mem(iseedptr),
548 $ mem(raptr), mem(captr), k,
549 $ mem(workptr), worklen)
550 END IF
551 ELSE IF( prec(i) .EQ. 'C' ) THEN
552 workptr =
safeindex(memused, isize, csize)
553 worklen = ( dsize * (memlen - workptr + 1) ) / csize
554 IF( cmem(opptr+j) .EQ. '+' ) THEN
555 CALL csumtest(outnum, verb, trep, tcoh, nscope,
556 $ cmem(scopeptr), ntop, cmem(topptr),
557 $ nmat, mem(mptr), mem(nptr),
558 $ mem(ldsptr), mem(lddptr), ndest,
559 $ mem(rdestptr), mem(cdestptr), ngrid,
560 $ mem(ctxtptr), mem(pptr), mem(qptr),
561 $ mem(iseedptr), mem(workptr),
562 $ worklen)
563 ELSE IF( cmem(opptr+j) .EQ. '>' ) THEN
564 CALL camxtest(outnum, verb, trep, tcoh, nscope,
565 $ cmem(scopeptr), ntop, cmem(topptr),
566 $ nmat, mem(mptr), mem(nptr),
567 $ mem(ldsptr), mem(lddptr),
568 $ mem(ldiptr), ndest, mem(rdestptr),
569 $ mem(cdestptr), ngrid, mem(ctxtptr),
570 $ mem(pptr), mem(qptr), mem(iseedptr),
571 $ mem(raptr), mem(captr), k,
572 $ mem(workptr), worklen)
573 ELSE IF( cmem(opptr+j) .EQ. '<' ) THEN
574 CALL camntest(outnum, verb, trep, tcoh, nscope,
575 $ cmem(scopeptr), ntop, cmem(topptr),
576 $ nmat, mem(mptr), mem(nptr),
577 $ mem(ldsptr), mem(lddptr),
578 $ mem(ldiptr), ndest, mem(rdestptr),
579 $ mem(cdestptr), ngrid, mem(ctxtptr),
580 $ mem(pptr), mem(qptr), mem(iseedptr),
581 $ mem(raptr), mem(captr), k,
582 $ mem(workptr), worklen)
583 END IF
584 ELSE IF( prec(i) .EQ. 'Z' ) THEN
585 workptr =
safeindex(memused, isize, zsize)
586 worklen = ( dsize * (memlen - workptr + 1) ) / zsize
587 IF( cmem(opptr+j) .EQ. '+' ) THEN
588 CALL zsumtest(outnum, verb, trep, tcoh, nscope,
589 $ cmem(scopeptr), ntop, cmem(topptr),
590 $ nmat, mem(mptr), mem(nptr),
591 $ mem(ldsptr), mem(lddptr), ndest,
592 $ mem(rdestptr), mem(cdestptr), ngrid,
593 $ mem(ctxtptr), mem(pptr), mem(qptr),
594 $ mem(iseedptr), mem(workptr),
595 $ worklen)
596 ELSE IF( cmem(opptr+j) .EQ. '>' ) THEN
597 CALL zamxtest(outnum, verb, trep, tcoh, nscope,
598 $ cmem(scopeptr), ntop, cmem(topptr),
599 $ nmat, mem(mptr), mem(nptr),
600 $ mem(ldsptr), mem(lddptr),
601 $ mem(ldiptr), ndest, mem(rdestptr),
602 $ mem(cdestptr), ngrid, mem(ctxtptr),
603 $ mem(pptr), mem(qptr), mem(iseedptr),
604 $ mem(raptr), mem(captr), k,
605 $ mem(workptr), worklen)
606 ELSE IF( cmem(opptr+j) .EQ. '<' ) THEN
607 CALL zamntest(outnum, verb, trep, tcoh, nscope,
608 $ cmem(scopeptr), ntop, cmem(topptr),
609 $ nmat, mem(mptr), mem(nptr),
610 $ mem(ldsptr), mem(lddptr),
611 $ mem(ldiptr), ndest, mem(rdestptr),
612 $ mem(cdestptr), ngrid, mem(ctxtptr),
613 $ mem(pptr), mem(qptr), mem(iseedptr),
614 $ mem(raptr), mem(captr), k,
615 $ mem(workptr), worklen)
616 END IF
617 END IF
618 50 CONTINUE
619 60 CONTINUE
621 END IF
622
623 IF( testaux ) THEN
624 CALL auxtest( outnum, mem, memlen )
625 END IF
626
627 1000 FORMAT('AUXILIARY ERROR - IAM MISMATCH: BLACS_PINFO RETURNED',i4,
628 $ /,' BLACS_SETUP RETURNED',i4,'.')
629 1500 FORMAT('AUXILIARY ERROR - NPROC MISMATCH: BLACS_PINFO RETURNED',
630 $ i4,/,' BLACS_SETUP RETURNED',i4,', TESTER THINKS',i4,'.')
631 2000 FORMAT('BEGINNING BLACS TESTING, BLACS DEBUG LEVEL =',i2)
632 3000 FORMAT('==============================================')
633 RETURN
634
635
636
subroutine isdrvtest(outnum, verb, nshape, uplo0, diag0, nmat, m0, n0, ldas0, ldad0, nsrc, rsrc0, csrc0, rdest0, cdest0, ngrid, context0, p0, q0, tfail, mem, memlen)
subroutine ssdrvtest(outnum, verb, nshape, uplo0, diag0, nmat, m0, n0, ldas0, ldad0, nsrc, rsrc0, csrc0, rdest0, cdest0, ngrid, context0, p0, q0, tfail, mem, memlen)
subroutine csumtest(outnum, verb, topsrepeat, topscohrnt, nscope, scope0, ntop, top0, nmat, m0, n0, ldas0, ldad0, ndest, rdest0, cdest0, ngrid, context0, p0, q0, iseed, mem, memlen)
subroutine zsumtest(outnum, verb, topsrepeat, topscohrnt, nscope, scope0, ntop, top0, nmat, m0, n0, ldas0, ldad0, ndest, rdest0, cdest0, ngrid, context0, p0, q0, iseed, mem, memlen)
subroutine samxtest(outnum, verb, topsrepeat, topscohrnt, nscope, scope0, ntop, top0, nmat, m0, n0, ldas0, ldad0, ldi0, ndest, rdest0, cdest0, ngrid, context0, p0, q0, iseed, rmem, cmem, rclen, mem, memlen)
subroutine dsumtest(outnum, verb, topsrepeat, topscohrnt, nscope, scope0, ntop, top0, nmat, m0, n0, ldas0, ldad0, ndest, rdest0, cdest0, ngrid, context0, p0, q0, iseed, mem, memlen)
subroutine camntest(outnum, verb, topsrepeat, topscohrnt, nscope, scope0, ntop, top0, nmat, m0, n0, ldas0, ldad0, ldi0, ndest, rdest0, cdest0, ngrid, context0, p0, q0, iseed, rmem, cmem, rclen, mem, memlen)
subroutine isumtest(outnum, verb, topsrepeat, topscohrnt, nscope, scope0, ntop, top0, nmat, m0, n0, ldas0, ldad0, ndest, rdest0, cdest0, ngrid, context0, p0, q0, iseed, mem, memlen)
subroutine iamxtest(outnum, verb, topsrepeat, topscohrnt, nscope, scope0, ntop, top0, nmat, m0, n0, ldas0, ldad0, ldi0, ndest, rdest0, cdest0, ngrid, context0, p0, q0, iseed, rmem, cmem, rclen, mem, memlen)
subroutine damntest(outnum, verb, topsrepeat, topscohrnt, nscope, scope0, ntop, top0, nmat, m0, n0, ldas0, ldad0, ldi0, ndest, rdest0, cdest0, ngrid, context0, p0, q0, iseed, rmem, cmem, rclen, mem, memlen)
subroutine damxtest(outnum, verb, topsrepeat, topscohrnt, nscope, scope0, ntop, top0, nmat, m0, n0, ldas0, ldad0, ldi0, ndest, rdest0, cdest0, ngrid, context0, p0, q0, iseed, rmem, cmem, rclen, mem, memlen)
subroutine zamxtest(outnum, verb, topsrepeat, topscohrnt, nscope, scope0, ntop, top0, nmat, m0, n0, ldas0, ldad0, ldi0, ndest, rdest0, cdest0, ngrid, context0, p0, q0, iseed, rmem, cmem, rclen, mem, memlen)
subroutine samntest(outnum, verb, topsrepeat, topscohrnt, nscope, scope0, ntop, top0, nmat, m0, n0, ldas0, ldad0, ldi0, ndest, rdest0, cdest0, ngrid, context0, p0, q0, iseed, rmem, cmem, rclen, mem, memlen)
subroutine makegrids(contexts, outnum, ngrids, p, q)
subroutine freegrids(ngrids, contexts)
integer function safeindex(indx, size1, size2)
subroutine btinfo(test, memused, mem, memlen, cmemused, cmem, cmemlen, outnum, nop, nscope, trep, tcoh, ntop, nshape, nmat, nsrc, ngrid, opptr, scopeptr, topptr, uploptr, diagptr, mptr, nptr, ldsptr, lddptr, ldiptr, rsrcptr, csrcptr, rdestptr, cdestptr, pptr, qptr)
subroutine dbsbrtest(outnum, verb, nscope, scope0, ntop, top0, nshape, uplo0, diag0, nmat, m0, n0, ldas0, ldad0, nsrc, rsrc0, csrc0, ngrid, context0, p0, q0, tfail, mem, memlen)
subroutine ibsbrtest(outnum, verb, nscope, scope0, ntop, top0, nshape, uplo0, diag0, nmat, m0, n0, ldas0, ldad0, nsrc, rsrc0, csrc0, ngrid, context0, p0, q0, tfail, mem, memlen)
subroutine zamntest(outnum, verb, topsrepeat, topscohrnt, nscope, scope0, ntop, top0, nmat, m0, n0, ldas0, ldad0, ldi0, ndest, rdest0, cdest0, ngrid, context0, p0, q0, iseed, rmem, cmem, rclen, mem, memlen)
subroutine sbsbrtest(outnum, verb, nscope, scope0, ntop, top0, nshape, uplo0, diag0, nmat, m0, n0, ldas0, ldad0, nsrc, rsrc0, csrc0, ngrid, context0, p0, q0, tfail, mem, memlen)
subroutine camxtest(outnum, verb, topsrepeat, topscohrnt, nscope, scope0, ntop, top0, nmat, m0, n0, ldas0, ldad0, ldi0, ndest, rdest0, cdest0, ngrid, context0, p0, q0, iseed, rmem, cmem, rclen, mem, memlen)
subroutine csdrvtest(outnum, verb, nshape, uplo0, diag0, nmat, m0, n0, ldas0, ldad0, nsrc, rsrc0, csrc0, rdest0, cdest0, ngrid, context0, p0, q0, tfail, mem, memlen)
subroutine auxtest(outnum, mem, memlen)
subroutine zbsbrtest(outnum, verb, nscope, scope0, ntop, top0, nshape, uplo0, diag0, nmat, m0, n0, ldas0, ldad0, nsrc, rsrc0, csrc0, ngrid, context0, p0, q0, tfail, mem, memlen)
subroutine dsdrvtest(outnum, verb, nshape, uplo0, diag0, nmat, m0, n0, ldas0, ldad0, nsrc, rsrc0, csrc0, rdest0, cdest0, ngrid, context0, p0, q0, tfail, mem, memlen)
subroutine iamntest(outnum, verb, topsrepeat, topscohrnt, nscope, scope0, ntop, top0, nmat, m0, n0, ldas0, ldad0, ldi0, ndest, rdest0, cdest0, ngrid, context0, p0, q0, iseed, rmem, cmem, rclen, mem, memlen)
subroutine cbsbrtest(outnum, verb, nscope, scope0, ntop, top0, nshape, uplo0, diag0, nmat, m0, n0, ldas0, ldad0, nsrc, rsrc0, csrc0, ngrid, context0, p0, q0, tfail, mem, memlen)
subroutine zsdrvtest(outnum, verb, nshape, uplo0, diag0, nmat, m0, n0, ldas0, ldad0, nsrc, rsrc0, csrc0, rdest0, cdest0, ngrid, context0, p0, q0, tfail, mem, memlen)
integer function ibtmsgid()
subroutine ssumtest(outnum, verb, topsrepeat, topscohrnt, nscope, scope0, ntop, top0, nmat, m0, n0, ldas0, ldad0, ndest, rdest0, cdest0, ngrid, context0, p0, q0, iseed, mem, memlen)
subroutine btrecv(dtype, n, buff, src, msgid)
integer function ibtnprocs()
integer function ibtmyproc()
subroutine btsend(dtype, n, buff, dest, msgid)
integer function ibtsizeof(type)