11201
11202
11203
11204
11205
11206
11207
11208 CHARACTER*1 UPLO, DIAG
11209 INTEGER M, N, LDA, RSRC, CSRC, MYROW, MYCOL, TESTNUM
11210 INTEGER MAXERR, NERR
11211
11212
11213 INTEGER ERRIBUF(6, MAXERR)
11214 DOUBLE COMPLEX A(LDA,N), ERRDBUF(2, MAXERR)
11215
11216
11217
11218
11219
11220
11221
11222
11223
11224
11225
11226
11227
11228
11229
11230
11231
11232
11233
11234
11235
11236
11237
11238
11239
11240
11241
11242
11243
11244
11245
11246
11247
11248
11249
11250
11251
11252
11253
11254
11255
11256
11257
11258
11259
11260
11261
11262
11263
11264
11265
11266
11267
11268
11269
11270
11271
11272
11273
11274
11275
11276
11277
11278
11279
11280
11281
11282
11283
11284
11285
11286
11287
11288
11289
11290
11291
11292
11293 INTEGER I, J, NPROCS, SRC, DEST
11294 LOGICAL USEIT
11295 DOUBLE COMPLEX COMPVAL
11296
11297
11298 INTEGER ISEED(4)
11299
11300
11301 INTEGER IBTNPROCS
11302 DOUBLE COMPLEX ZBTRAN
11304
11305
11306
11308 src = rsrc * nprocs + csrc
11309 dest = myrow * nprocs + mycol
11310
11311
11312
11313 iseed(1) = mod( 1002 + testnum*5 + src*3, 4096 )
11314 iseed(2) = mod( 2027 + testnum*7 + src, 4096 )
11315 iseed(3) = mod( 1234 + testnum + src*3, 4096 )
11316 iseed(4) = mod( 4311 + testnum*10 + src*2, 4096 )
11317
11318
11319
11320
11321
11322 DO 100 j = 1, n
11323 DO 105 i = 1, m
11324 compval =
zbtran( iseed )
11325
11326
11327
11328
11329
11330 useit = .true.
11331 IF( uplo .EQ. 'U' ) THEN
11332 IF( m .LE. n ) THEN
11333 IF( diag .EQ. 'U' ) THEN
11334 IF( i .GE. j ) THEN
11335 useit = .false.
11336 END IF
11337 ELSE
11338 IF( i .GT. j ) THEN
11339 useit = .false.
11340 END IF
11341 END IF
11342 ELSE
11343 IF( diag .EQ. 'U' ) THEN
11344 IF( i .GE. m-n+j ) THEN
11345 useit = .false.
11346 END IF
11347 ELSE
11348 IF( i .GT. m-n+j ) THEN
11349 useit = .false.
11350 END IF
11351 END IF
11352 END IF
11353 ELSE IF( uplo .EQ. 'L' ) THEN
11354 IF( m .LE. n ) THEN
11355 IF( diag .EQ. 'U' ) THEN
11356 IF( j. ge. i+(n-m) ) THEN
11357 useit = .false.
11358 END IF
11359 ELSE
11360 IF( j .GT. i+(n-m) ) THEN
11361 useit = .false.
11362 END IF
11363 END IF
11364 ELSE
11365 IF( diag .EQ. 'U' ) THEN
11366 IF( j .GE. i ) THEN
11367 useit = .false.
11368 END IF
11369 ELSE
11370 IF( j .GT. i ) THEN
11371 useit = .false.
11372 END IF
11373 END IF
11374 END IF
11375 END IF
11376
11377
11378
11379
11380
11381 IF( useit ) THEN
11382 IF( a(i,j) .NE. compval ) THEN
11383 nerr = nerr + 1
11384 IF( nerr .LE. maxerr ) THEN
11385 erribuf(1, nerr) = testnum
11386 erribuf(2, nerr) = src
11387 erribuf(3, nerr) = dest
11388 erribuf(4, nerr) = i
11389 erribuf(5, nerr) = j
11390 erribuf(6, nerr) = 5
11391 errdbuf(1, nerr) = a(i, j)
11392 errdbuf(2, nerr) = compval
11393 END IF
11394 END IF
11395 END IF
11396 105 CONTINUE
11397 100 CONTINUE
11398 RETURN
11399
11400
11401
double complex function zbtran(iseed)
integer function ibtnprocs()