2295
2296
2297
2298
2299
2300
2301
2302 INTEGER INOUT, NPROCS
2303
2304
2305 LOGICAL LTEST( * )
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375 INTEGER NSUBS
2376 parameter( nsubs = 11 )
2377
2378
2379 LOGICAL ABRTSAV
2380 INTEGER I, ICTXT, MYCOL, MYROW, NPCOL, NPROW
2381
2382
2383 INTEGER SCODE( NSUBS )
2384
2385
2386 EXTERNAL blacs_get, blacs_gridexit, blacs_gridinfo,
2387 $ blacs_gridinit,
pzdimee, pzgeadd, pzgemm,
2389 $ pzsymm, pzsyr2k, pzsyrk, pztradd, pztrmm,
2390 $ pztrsm
2391
2392
2393 LOGICAL ABRTFLG
2394 INTEGER NOUT
2395 CHARACTER*7 SNAMES( NSUBS )
2396 COMMON /snamec/snames
2397 COMMON /pberrorc/nout, abrtflg
2398
2399
2400 DATA scode/31, 32, 32, 33, 34, 35, 36, 38, 38, 39,
2401 $ 40/
2402
2403
2404
2405
2406
2407
2408 CALL blacs_get( -1, 0, ictxt )
2409 CALL blacs_gridinit( ictxt, 'Row-major', 1, nprocs )
2410 CALL blacs_gridinfo( ictxt, nprow, npcol, myrow, mycol )
2411
2412
2413
2414
2415
2416 abrtsav = abrtflg
2417 abrtflg = .false.
2418 nout = inout
2419
2420
2421
2422 i = 1
2423 IF( ltest( i ) ) THEN
2424 CALL pzoptee( ictxt, nout, pzgemm, scode( i ), snames( i ) )
2425 CALL pzdimee( ictxt, nout, pzgemm, scode( i ), snames( i ) )
2426 CALL pzmatee( ictxt, nout, pzgemm, scode( i ), snames( i ) )
2427 END IF
2428
2429
2430
2431 i = i + 1
2432 IF( ltest( i ) ) THEN
2433 CALL pzoptee( ictxt, nout, pzsymm, scode( i ), snames( i ) )
2434 CALL pzdimee( ictxt, nout, pzsymm, scode( i ), snames( i ) )
2435 CALL pzmatee( ictxt, nout, pzsymm, scode( i ), snames( i ) )
2436 END IF
2437
2438
2439
2440 i = i + 1
2441 IF( ltest( i ) ) THEN
2442 CALL pzoptee( ictxt, nout, pzhemm, scode( i ), snames( i ) )
2443 CALL pzdimee( ictxt, nout, pzhemm, scode( i ), snames( i ) )
2444 CALL pzmatee( ictxt, nout, pzhemm, scode( i ), snames( i ) )
2445 END IF
2446
2447
2448
2449 i = i + 1
2450 IF( ltest( i ) ) THEN
2451 CALL pzoptee( ictxt, nout, pzsyrk, scode( i ), snames( i ) )
2452 CALL pzdimee( ictxt, nout, pzsyrk, scode( i ), snames( i ) )
2453 CALL pzmatee( ictxt, nout, pzsyrk, scode( i ), snames( i ) )
2454 END IF
2455
2456
2457
2458 i = i + 1
2459 IF( ltest( i ) ) THEN
2460 CALL pzoptee( ictxt, nout, pzherk, scode( i ), snames( i ) )
2461 CALL pzdimee( ictxt, nout, pzherk, scode( i ), snames( i ) )
2462 CALL pzmatee( ictxt, nout, pzherk, scode( i ), snames( i ) )
2463 END IF
2464
2465
2466
2467 i = i + 1
2468 IF( ltest( i ) ) THEN
2469 CALL pzoptee( ictxt, nout, pzsyr2k, scode( i ), snames( i ) )
2470 CALL pzdimee( ictxt, nout, pzsyr2k, scode( i ), snames( i ) )
2471 CALL pzmatee( ictxt, nout, pzsyr2k, scode( i ), snames( i ) )
2472 END IF
2473
2474
2475
2476 i = i + 1
2477 IF( ltest( i ) ) THEN
2478 CALL pzoptee( ictxt, nout, pzher2k, scode( i ), snames( i ) )
2479 CALL pzdimee( ictxt, nout, pzher2k, scode( i ), snames( i ) )
2480 CALL pzmatee( ictxt, nout, pzher2k, scode( i ), snames( i ) )
2481 END IF
2482
2483
2484
2485 i = i + 1
2486 IF( ltest( i ) ) THEN
2487 CALL pzoptee( ictxt, nout, pztrmm, scode( i ), snames( i ) )
2488 CALL pzdimee( ictxt, nout, pztrmm, scode( i ), snames( i ) )
2489 CALL pzmatee( ictxt, nout, pztrmm, scode( i ), snames( i ) )
2490 END IF
2491
2492
2493
2494 i = i + 1
2495 IF( ltest( i ) ) THEN
2496 CALL pzoptee( ictxt, nout, pztrsm, scode( i ), snames( i ) )
2497 CALL pzdimee( ictxt, nout, pztrsm, scode( i ), snames( i ) )
2498 CALL pzmatee( ictxt, nout, pztrsm, scode( i ), snames( i ) )
2499 END IF
2500
2501
2502
2503 i = i + 1
2504 IF( ltest( i ) ) THEN
2505 CALL pzoptee( ictxt, nout, pzgeadd, scode( i ), snames( i ) )
2506 CALL pzdimee( ictxt, nout, pzgeadd, scode( i ), snames( i ) )
2507 CALL pzmatee( ictxt, nout, pzgeadd, scode( i ), snames( i ) )
2508 END IF
2509
2510
2511
2512 i = i + 1
2513 IF( ltest( i ) ) THEN
2514 CALL pzoptee( ictxt, nout, pztradd, scode( i ), snames( i ) )
2515 CALL pzdimee( ictxt, nout, pztradd, scode( i ), snames( i ) )
2516 CALL pzmatee( ictxt, nout, pztradd, scode( i ), snames( i ) )
2517 END IF
2518
2519 IF( myrow.EQ.0 .AND. mycol.EQ.0 )
2520 $ WRITE( nout, fmt = 9999 )
2521
2522 CALL blacs_gridexit( ictxt )
2523
2524
2525
2526 abrtflg = abrtsav
2527
2528 9999 FORMAT( 2x, 'Error-exit tests completed.' )
2529
2530 RETURN
2531
2532
2533
subroutine pzmatee(ictxt, nout, subptr, scode, sname)
subroutine pzoptee(ictxt, nout, subptr, scode, sname)
subroutine pzdimee(ictxt, nout, subptr, scode, sname)