11406
11407
11408
11409
11410
11411
11412
11413 LOGICAL COUNTING
11414 INTEGER OUTNUM, MAXERR, NERR
11415
11416
11417 INTEGER ERRIBUF(6, MAXERR), TFAILED(*)
11418 DOUBLE COMPLEX ERRDBUF(2, MAXERR)
11419
11420
11421
11422
11423
11424
11425
11426
11427
11428
11429
11430
11431
11432
11433
11434
11435
11436
11437
11438
11439
11440
11441
11442
11443
11444
11445
11446
11447
11448
11449
11450
11451
11452
11453
11454
11455
11456
11457
11458
11459
11460
11461
11462
11463
11464
11465
11466 INTEGER ERR_PRE, ERR_POST, ERR_GAP, ERR_TRI, ERR_MAT
11467 parameter( err_pre = 1, err_post = 2, err_gap = 3, err_tri = 4 )
11468 parameter( err_mat = 5 )
11469
11470
11471 INTEGER IBTMYPROC, IBTNPROCS
11473
11474
11475 CHARACTER*1 MAT
11476 LOGICAL MATISINT
11477 INTEGER OLDTEST, NPROCS, PROW, PCOL, I, ERRTYPE
11478
11479
11480
11481 IF( (
ibtmyproc().NE.0) .OR. (nerr.LE.0) )
RETURN
11482 oldtest = -1
11484 prow = erribuf(3,1) / nprocs
11485 pcol = mod( erribuf(3,1), nprocs )
11486 IF( nerr .GT. maxerr ) WRITE(outnum,13000)
11487
11488 DO 20 i = 1,
min( nerr, maxerr )
11489 IF( erribuf(1,i) .NE. oldtest ) THEN
11490 IF( oldtest .NE. -1 )
11491 $ WRITE(outnum,12000) prow, pcol, oldtest
11492 WRITE(outnum,*) ' '
11493 WRITE(outnum,1000) prow, pcol, erribuf(1,i)
11494 IF( counting ) tfailed( erribuf(1,i) ) = 1
11495 oldtest = erribuf(1, i)
11496 END IF
11497
11498
11499
11500 errtype = erribuf(6, i)
11501 IF( errtype .LT. -10 ) THEN
11502 errtype = -errtype - 10
11503 mat = 'C'
11504 matisint = .true.
11505 ELSE IF( errtype .LT. 0 ) THEN
11506 errtype = -errtype
11507 mat = 'R'
11508 matisint = .true.
11509 ELSE
11510 matisint = .false.
11511 END IF
11512
11513
11514
11515 IF( matisint ) THEN
11516 IF( erribuf(2, i) .EQ. -1 ) THEN
11517 WRITE(outnum,11000) erribuf(4,i), erribuf(5,i), mat,
11518 $ int( errdbuf(2,i) ), int( errdbuf(1,i) )
11519 ELSE IF( errtype .EQ. err_pre ) THEN
11520 WRITE(outnum,7000) erribuf(5,i), mat,
11521 $ int( errdbuf(2,i) ), int( errdbuf(1,i) )
11522 ELSE IF( errtype .EQ. err_post ) THEN
11523 WRITE(outnum,8000) erribuf(4,i), mat,
11524 $ int( errdbuf(2,i) ), int( errdbuf(1,i) )
11525 ELSE IF( errtype .EQ. err_gap ) THEN
11526 WRITE(outnum,9000) mat, erribuf(4,i), erribuf(5,i),
11527 $ int( errdbuf(2,i) ), int( errdbuf(1,i) )
11528 ELSE
11529 WRITE(outnum,10000) mat, erribuf(4,i), erribuf(5,i),
11530 $ int( errdbuf(2,i) ),
11531 $ int( errdbuf(1,i) )
11532 END IF
11533
11534
11535
11536 ELSE
11537 IF( errtype .EQ. err_pre ) THEN
11538 WRITE(outnum,2000) erribuf(5,i),
11539 $ real( errdbuf(2,i) ), dimag( errdbuf(2,i) ),
11540 $ real( errdbuf(1,i) ), dimag( errdbuf(1,i) )
11541 ELSE IF( errtype .EQ. err_post ) THEN
11542 WRITE(outnum,3000) erribuf(4,i),
11543 $ real( errdbuf(2,i) ), dimag( errdbuf(2,i) ),
11544 $ real( errdbuf(1,i) ), dimag( errdbuf(1,i) )
11545 ELSE IF( errtype .EQ. err_gap ) THEN
11546 WRITE(outnum,4000)
11547 $ erribuf(4,i), erribuf(5,i),
11548 $ real( errdbuf(2,i) ), dimag( errdbuf(2,i) ),
11549 $ real( errdbuf(1,i) ), dimag( errdbuf(1,i) )
11550 ELSE IF( errtype .EQ. err_tri ) THEN
11551 WRITE(outnum,5000) erribuf(4,i), erribuf(5,i),
11552 $ real( errdbuf(2,i) ), dimag( errdbuf(2,i) ),
11553 $ real( errdbuf(1,i) ), dimag( errdbuf(1,i) )
11554 ELSE
11555 WRITE(outnum,6000) erribuf(4,i), erribuf(5,i),
11556 $ real( errdbuf(2,i) ), dimag( errdbuf(2,i) ),
11557 $ real( errdbuf(1,i) ), dimag( errdbuf(1,i) )
11558 END IF
11559 END IF
11560 20 CONTINUE
11561 WRITE(outnum,12000) prow, pcol, oldtest
11562
11563 1000 FORMAT('PROCESS {',i4,',',i4,'} REPORTS ERRORS IN TEST#',i6,':')
11564 2000 FORMAT(' Buffer overwrite ',i4,
11565 $ ' elements before the start of A:',/,
11566 $ ' Expected=','[',g22.15,',',g22.15,']',
11567 $ '; Received=','[',g22.15,',',g22.15,']')
11568 3000 FORMAT(' Buffer overwrite ',i4,' elements after the end of A:',
11569 $ /,' Expected=','[',g22.15,',',g22.15,']',
11570 $ '; Received=','[',g22.15,',',g22.15,']')
11571 4000 FORMAT(' LDA-M gap overwrite at postion (',i4,',',i4,'):',/,
11572 $ ' Expected=','[',g22.15,',',g22.15,']',
11573 $ '; Received=','[',g22.15,',',g22.15,']')
11574 5000 FORMAT(' Complementory triangle overwrite at A(',i4,',',i4,
11575 $ '):',/,' Expected=','[',g22.15,',',g22.15,']',
11576 $ '; Received=','[',g22.15,',',g22.15,']')
11577 6000 FORMAT(' Invalid element at A(',i4,',',i4,'):',/,
11578 $ ' Expected=','[',g22.15,',',g22.15,']',
11579 $ '; Received=','[',g22.15,',',g22.15,']')
11580 7000 FORMAT(' Buffer overwrite ',i4,' elements before the start of ',
11581 $ a1,'A:',/,' Expected=',i12,'; Received=',i12)
11582 8000 FORMAT(' Buffer overwrite ',i4,' elements after the end of ',
11583 $ a1,'A:',/,' Expected=',i12,'; Received=',i12)
11584
11585 9000 FORMAT(' LD',a1,'A-M gap overwrite at postion (',i4,',',i4,'):'
11586 $ ,/,' Expected=',i12,'; Received=',i12)
11587
1158810000 FORMAT(' Invalid element at ',a1,'A(',i4,',',i4,'):',/,
11589 $ ' Expected=',i12,'; Received=',i12)
1159011000 FORMAT(' Overwrite at position (',i4,',',i4,') of non-existent '
11591 $ ,a1,'A array.',/,' Expected=',i12,'; Received=',i12)
1159212000 FORMAT('PROCESS {',i4,',',i4,'} DONE ERROR REPORT FOR TEST#',
11593 $ i6,'.')
1159413000 FORMAT('WARNING: There were more errors than could be recorded.',
11595 $ /,'Increase MEMELTS to get complete listing.')
11596 RETURN
11597
11598
11599
integer function ibtnprocs()
integer function ibtmyproc()