8212
8213
8214
8215
8216
8217
8218
8219 LOGICAL COUNTING
8220 INTEGER OUTNUM, MAXERR, NERR
8221
8222
8223 INTEGER ERRIBUF(6, MAXERR), TFAILED(*)
8224 REAL ERRDBUF(2, MAXERR)
8225
8226
8227
8228
8229
8230
8231
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241
8242
8243
8244
8245
8246
8247
8248
8249
8250
8251
8252
8253
8254
8255
8256
8257
8258
8259
8260
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271
8272 INTEGER ERR_PRE, ERR_POST, ERR_GAP, ERR_TRI, ERR_MAT
8273 parameter( err_pre = 1, err_post = 2, err_gap = 3, err_tri = 4 )
8274 parameter( err_mat = 5 )
8275
8276
8277 INTEGER IBTMYPROC, IBTNPROCS
8279
8280
8281 CHARACTER*1 MAT
8282 LOGICAL MATISINT
8283 INTEGER OLDTEST, NPROCS, PROW, PCOL, I, ERRTYPE
8284
8285
8286
8287 IF( (
ibtmyproc().NE.0) .OR. (nerr.LE.0) )
RETURN
8288 oldtest = -1
8290 prow = erribuf(3,1) / nprocs
8291 pcol = mod( erribuf(3,1), nprocs )
8292 IF( nerr .GT. maxerr ) WRITE(outnum,13000)
8293
8294 DO 20 i = 1,
min( nerr, maxerr )
8295 IF( erribuf(1,i) .NE. oldtest ) THEN
8296 IF( oldtest .NE. -1 )
8297 $ WRITE(outnum,12000) prow, pcol, oldtest
8298 WRITE(outnum,*) ' '
8299 WRITE(outnum,1000) prow, pcol, erribuf(1,i)
8300 IF( counting ) tfailed( erribuf(1,i) ) = 1
8301 oldtest = erribuf(1, i)
8302 END IF
8303
8304
8305
8306 errtype = erribuf(6, i)
8307 IF( errtype .LT. -10 ) THEN
8308 errtype = -errtype - 10
8309 mat = 'C'
8310 matisint = .true.
8311 ELSE IF( errtype .LT. 0 ) THEN
8312 errtype = -errtype
8313 mat = 'R'
8314 matisint = .true.
8315 ELSE
8316 matisint = .false.
8317 END IF
8318
8319
8320
8321 IF( matisint ) THEN
8322 IF( erribuf(2, i) .EQ. -1 ) THEN
8323 WRITE(outnum,11000) erribuf(4,i), erribuf(5,i), mat,
8324 $ int( errdbuf(2,i) ), int( errdbuf(1,i) )
8325 ELSE IF( errtype .EQ. err_pre ) THEN
8326 WRITE(outnum,7000) erribuf(5,i), mat,
8327 $ int( errdbuf(2,i) ), int( errdbuf(1,i) )
8328 ELSE IF( errtype .EQ. err_post ) THEN
8329 WRITE(outnum,8000) erribuf(4,i), mat,
8330 $ int( errdbuf(2,i) ), int( errdbuf(1,i) )
8331 ELSE IF( errtype .EQ. err_gap ) THEN
8332 WRITE(outnum,9000) mat, erribuf(4,i), erribuf(5,i),
8333 $ int( errdbuf(2,i) ), int( errdbuf(1,i) )
8334 ELSE
8335 WRITE(outnum,10000) mat, erribuf(4,i), erribuf(5,i),
8336 $ int( errdbuf(2,i) ),
8337 $ int( errdbuf(1,i) )
8338 END IF
8339
8340
8341
8342 ELSE
8343 IF( errtype .EQ. err_pre ) THEN
8344 WRITE(outnum,2000) erribuf(5,i), errdbuf(2,i),
8345 $ errdbuf(1,i)
8346 ELSE IF( errtype .EQ. err_post ) THEN
8347 WRITE(outnum,3000) erribuf(4,i), errdbuf(2,i),
8348 $ errdbuf(1,i)
8349 ELSE IF( errtype .EQ. err_gap ) THEN
8350 WRITE(outnum,4000) erribuf(4,i), erribuf(5,i),
8351 $ errdbuf(2,i), errdbuf(1,i)
8352 ELSE IF( errtype .EQ. err_tri ) THEN
8353 WRITE(outnum,5000) erribuf(4,i), erribuf(5,i),
8354 $ errdbuf(2,i), errdbuf(1,i)
8355 ELSE
8356 WRITE(outnum,6000) erribuf(4,i), erribuf(5,i),
8357 $ errdbuf(2,i), errdbuf(1,i)
8358 END IF
8359 END IF
8360 20 CONTINUE
8361 WRITE(outnum,12000) prow, pcol, oldtest
8362
8363 1000 FORMAT('PROCESS {',i4,',',i4,'} REPORTS ERRORS IN TEST#',i6,':')
8364 2000 FORMAT(' Buffer overwrite ',i4,
8365 $ ' elements before the start of A:',/,
8366 $ ' Expected=',g15.8,
8367 $ '; Received=',g15.8)
8368 3000 FORMAT(' Buffer overwrite ',i4,' elements after the end of A:',
8369 $ /,' Expected=',g15.8,
8370 $ '; Received=',g15.8)
8371 4000 FORMAT(' LDA-M gap overwrite at postion (',i4,',',i4,'):',/,
8372 $ ' Expected=',g15.8,
8373 $ '; Received=',g15.8)
8374 5000 FORMAT(' Complementory triangle overwrite at A(',i4,',',i4,
8375 $ '):',/,' Expected=',g15.8,
8376 $ '; Received=',g15.8)
8377 6000 FORMAT(' Invalid element at A(',i4,',',i4,'):',/,
8378 $ ' Expected=',g15.8,
8379 $ '; Received=',g15.8)
8380 7000 FORMAT(' Buffer overwrite ',i4,' elements before the start of ',
8381 $ a1,'A:',/,' Expected=',i12,'; Received=',i12)
8382 8000 FORMAT(' Buffer overwrite ',i4,' elements after the end of ',
8383 $ a1,'A:',/,' Expected=',i12,'; Received=',i12)
8384
8385 9000 FORMAT(' LD',a1,'A-M gap overwrite at postion (',i4,',',i4,'):'
8386 $ ,/,' Expected=',i12,'; Received=',i12)
8387
838810000 FORMAT(' Invalid element at ',a1,'A(',i4,',',i4,'):',/,
8389 $ ' Expected=',i12,'; Received=',i12)
839011000 FORMAT(' Overwrite at position (',i4,',',i4,') of non-existent '
8391 $ ,a1,'A array.',/,' Expected=',i12,'; Received=',i12)
839212000 FORMAT('PROCESS {',i4,',',i4,'} DONE ERROR REPORT FOR TEST#',
8393 $ i6,'.')
839413000 FORMAT('WARNING: There were more errors than could be recorded.',
8395 $ /,'Increase MEMELTS to get complete listing.')
8396 RETURN
8397
8398
8399
integer function ibtnprocs()
integer function ibtmyproc()