7148
7149
7150
7151
7152
7153
7154
7155 LOGICAL COUNTING
7156 INTEGER OUTNUM, MAXERR, NERR
7157
7158
7159 INTEGER ERRIBUF(6, MAXERR), TFAILED(*)
7160 INTEGER ERRDBUF(2, MAXERR)
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208 INTEGER ERR_PRE, ERR_POST, ERR_GAP, ERR_TRI, ERR_MAT
7209 parameter( err_pre = 1, err_post = 2, err_gap = 3, err_tri = 4 )
7210 parameter( err_mat = 5 )
7211
7212
7213 INTEGER IBTMYPROC, IBTNPROCS
7215
7216
7217 CHARACTER*1 MAT
7218 LOGICAL MATISINT
7219 INTEGER OLDTEST, NPROCS, PROW, PCOL, I, ERRTYPE
7220
7221
7222
7223 IF( (
ibtmyproc().NE.0) .OR. (nerr.LE.0) )
RETURN
7224 oldtest = -1
7226 prow = erribuf(3,1) / nprocs
7227 pcol = mod( erribuf(3,1), nprocs )
7228 IF( nerr .GT. maxerr ) WRITE(outnum,13000)
7229
7230 DO 20 i = 1,
min( nerr, maxerr )
7231 IF( erribuf(1,i) .NE. oldtest ) THEN
7232 IF( oldtest .NE. -1 )
7233 $ WRITE(outnum,12000) prow, pcol, oldtest
7234 WRITE(outnum,*) ' '
7235 WRITE(outnum,1000) prow, pcol, erribuf(1,i)
7236 IF( counting ) tfailed( erribuf(1,i) ) = 1
7237 oldtest = erribuf(1, i)
7238 END IF
7239
7240
7241
7242 errtype = erribuf(6, i)
7243 IF( errtype .LT. -10 ) THEN
7244 errtype = -errtype - 10
7245 mat = 'C'
7246 matisint = .true.
7247 ELSE IF( errtype .LT. 0 ) THEN
7248 errtype = -errtype
7249 mat = 'R'
7250 matisint = .true.
7251 ELSE
7252 matisint = .false.
7253 END IF
7254
7255
7256
7257 IF( matisint ) THEN
7258 IF( erribuf(2, i) .EQ. -1 ) THEN
7259 WRITE(outnum,11000) erribuf(4,i), erribuf(5,i), mat,
7260 $ int( errdbuf(2,i) ), int( errdbuf(1,i) )
7261 ELSE IF( errtype .EQ. err_pre ) THEN
7262 WRITE(outnum,7000) erribuf(5,i), mat,
7263 $ int( errdbuf(2,i) ), int( errdbuf(1,i) )
7264 ELSE IF( errtype .EQ. err_post ) THEN
7265 WRITE(outnum,8000) erribuf(4,i), mat,
7266 $ int( errdbuf(2,i) ), int( errdbuf(1,i) )
7267 ELSE IF( errtype .EQ. err_gap ) THEN
7268 WRITE(outnum,9000) mat, erribuf(4,i), erribuf(5,i),
7269 $ int( errdbuf(2,i) ), int( errdbuf(1,i) )
7270 ELSE
7271 WRITE(outnum,10000) mat, erribuf(4,i), erribuf(5,i),
7272 $ int( errdbuf(2,i) ),
7273 $ int( errdbuf(1,i) )
7274 END IF
7275
7276
7277
7278 ELSE
7279 IF( errtype .EQ. err_pre ) THEN
7280 WRITE(outnum,2000) erribuf(5,i), errdbuf(2,i),
7281 $ errdbuf(1,i)
7282 ELSE IF( errtype .EQ. err_post ) THEN
7283 WRITE(outnum,3000) erribuf(4,i), errdbuf(2,i),
7284 $ errdbuf(1,i)
7285 ELSE IF( errtype .EQ. err_gap ) THEN
7286 WRITE(outnum,4000) erribuf(4,i), erribuf(5,i),
7287 $ errdbuf(2,i), errdbuf(1,i)
7288 ELSE IF( errtype .EQ. err_tri ) THEN
7289 WRITE(outnum,5000) erribuf(4,i), erribuf(5,i),
7290 $ errdbuf(2,i), errdbuf(1,i)
7291 ELSE
7292 WRITE(outnum,6000) erribuf(4,i), erribuf(5,i),
7293 $ errdbuf(2,i), errdbuf(1,i)
7294 END IF
7295 END IF
7296 20 CONTINUE
7297 WRITE(outnum,12000) prow, pcol, oldtest
7298
7299 1000 FORMAT('PROCESS {',i4,',',i4,'} REPORTS ERRORS IN TEST#',i6,':')
7300 2000 FORMAT(' Buffer overwrite ',i4,
7301 $ ' elements before the start of A:',/,
7302 $ ' Expected=',i12,
7303 $ '; Received=',i12)
7304 3000 FORMAT(' Buffer overwrite ',i4,' elements after the end of A:',
7305 $ /,' Expected=',i12,
7306 $ '; Received=',i12)
7307 4000 FORMAT(' LDA-M gap overwrite at postion (',i4,',',i4,'):',/,
7308 $ ' Expected=',i12,
7309 $ '; Received=',i12)
7310 5000 FORMAT(' Complementory triangle overwrite at A(',i4,',',i4,
7311 $ '):',/,' Expected=',i12,
7312 $ '; Received=',i12)
7313 6000 FORMAT(' Invalid element at A(',i4,',',i4,'):',/,
7314 $ ' Expected=',i12,
7315 $ '; Received=',i12)
7316 7000 FORMAT(' Buffer overwrite ',i4,' elements before the start of ',
7317 $ a1,'A:',/,' Expected=',i12,'; Received=',i12)
7318 8000 FORMAT(' Buffer overwrite ',i4,' elements after the end of ',
7319 $ a1,'A:',/,' Expected=',i12,'; Received=',i12)
7320
7321 9000 FORMAT(' LD',a1,'A-M gap overwrite at postion (',i4,',',i4,'):'
7322 $ ,/,' Expected=',i12,'; Received=',i12)
7323
732410000 FORMAT(' Invalid element at ',a1,'A(',i4,',',i4,'):',/,
7325 $ ' Expected=',i12,'; Received=',i12)
732611000 FORMAT(' Overwrite at position (',i4,',',i4,') of non-existent '
7327 $ ,a1,'A array.',/,' Expected=',i12,'; Received=',i12)
732812000 FORMAT('PROCESS {',i4,',',i4,'} DONE ERROR REPORT FOR TEST#',
7329 $ i6,'.')
733013000 FORMAT('WARNING: There were more errors than could be recorded.',
7331 $ /,'Increase MEMELTS to get complete listing.')
7332 RETURN
7333
7334
7335
integer function ibtnprocs()
integer function ibtmyproc()