SCALAPACK 2.2.2
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches

◆ psblas3tstchke()

subroutine psblas3tstchke ( logical, dimension( * )  ltest,
integer  inout,
integer  nprocs 
)

Definition at line 2191 of file psblas3tst.f.

2192*
2193* -- PBLAS test routine (version 2.0) --
2194* University of Tennessee, Knoxville, Oak Ridge National Laboratory,
2195* and University of California, Berkeley.
2196* April 1, 1998
2197*
2198* .. Scalar Arguments ..
2199 INTEGER INOUT, NPROCS
2200* ..
2201* .. Array Arguments ..
2202 LOGICAL LTEST( * )
2203* ..
2204*
2205* Purpose
2206* =======
2207*
2208* PSBLAS3TSTCHKE tests the error exits of the Level 3 PBLAS.
2209*
2210* Arguments
2211* =========
2212*
2213* LTEST (global input) LOGICAL array
2214* On entry, LTEST is an array of dimension at least 7 (NSUBS).
2215* If LTEST( 1 ) is .TRUE., PSGEMM will be tested;
2216* If LTEST( 2 ) is .TRUE., PSSYMM will be tested;
2217* If LTEST( 3 ) is .TRUE., PSSYRK will be tested;
2218* If LTEST( 4 ) is .TRUE., PSSYR2K will be tested;
2219* If LTEST( 5 ) is .TRUE., PSTRMM will be tested;
2220* If LTEST( 6 ) is .TRUE., PSTRSM will be tested;
2221* If LTEST( 7 ) is .TRUE., PSGEADD will be tested;
2222* If LTEST( 8 ) is .TRUE., PSTRADD will be tested;
2223*
2224* INOUT (global input) INTEGER
2225* On entry, INOUT specifies the unit number for output file.
2226* When INOUT is 6, output to screen, when INOUT = 0, output to
2227* stderr. INOUT is only defined in process 0.
2228*
2229* NPROCS (global input) INTEGER
2230* On entry, NPROCS specifies the total number of processes cal-
2231* ling this routine.
2232*
2233* Calling sequence encodings
2234* ==========================
2235*
2236* code Formal argument list Examples
2237*
2238* 11 (n, v1,v2) _SWAP, _COPY
2239* 12 (n,s1, v1 ) _SCAL, _SCAL
2240* 13 (n,s1, v1,v2) _AXPY, _DOT_
2241* 14 (n,s1,i1,v1 ) _AMAX
2242* 15 (n,u1, v1 ) _ASUM, _NRM2
2243*
2244* 21 ( trans, m,n,s1,m1,v1,s2,v2) _GEMV
2245* 22 (uplo, n,s1,m1,v1,s2,v2) _SYMV, _HEMV
2246* 23 (uplo,trans,diag, n, m1,v1 ) _TRMV, _TRSV
2247* 24 ( m,n,s1,v1,v2,m1) _GER_
2248* 25 (uplo, n,s1,v1, m1) _SYR
2249* 26 (uplo, n,u1,v1, m1) _HER
2250* 27 (uplo, n,s1,v1,v2,m1) _SYR2, _HER2
2251*
2252* 31 ( transa,transb, m,n,k,s1,m1,m2,s2,m3) _GEMM
2253* 32 (side,uplo, m,n, s1,m1,m2,s2,m3) _SYMM, _HEMM
2254* 33 ( uplo,trans, n,k,s1,m1, s2,m3) _SYRK
2255* 34 ( uplo,trans, n,k,u1,m1, u2,m3) _HERK
2256* 35 ( uplo,trans, n,k,s1,m1,m2,s2,m3) _SYR2K
2257* 36 ( uplo,trans, n,k,s1,m1,m2,u2,m3) _HER2K
2258* 37 ( m,n, s1,m1, s2,m3) _TRAN_
2259* 38 (side,uplo,transa, diag,m,n, s1,m1,m2 ) _TRMM, _TRSM
2260* 39 ( trans, m,n, s1,m1, s2,m3) _GEADD
2261* 40 ( uplo,trans, m,n, s1,m1, s2,m3) _TRADD
2262*
2263* -- Written on April 1, 1998 by
2264* Antoine Petitet, University of Tennessee, Knoxville 37996, USA.
2265*
2266* =====================================================================
2267*
2268* .. Parameters ..
2269 INTEGER NSUBS
2270 parameter( nsubs = 8 )
2271* ..
2272* .. Local Scalars ..
2273 LOGICAL ABRTSAV
2274 INTEGER I, ICTXT, MYCOL, MYROW, NPCOL, NPROW
2275* ..
2276* .. Local Arrays ..
2277 INTEGER SCODE( NSUBS )
2278* ..
2279* .. External Subroutines ..
2280 EXTERNAL blacs_get, blacs_gridexit, blacs_gridinfo,
2281 $ blacs_gridinit, psdimee, psgeadd, psgemm,
2282 $ psmatee, psoptee, pssymm, pssyr2k, pssyrk,
2283 $ pstradd, pstrmm, pstrsm
2284* ..
2285* .. Common Blocks ..
2286 LOGICAL ABRTFLG
2287 INTEGER NOUT
2288 CHARACTER*7 SNAMES( NSUBS )
2289 COMMON /snamec/snames
2290 COMMON /pberrorc/nout, abrtflg
2291* ..
2292* .. Data Statements ..
2293 DATA scode/31, 32, 33, 35, 38, 38, 39, 40/
2294* ..
2295* .. Executable Statements ..
2296*
2297* Temporarily define blacs grid to include all processes so
2298* information can be broadcast to all processes.
2299*
2300 CALL blacs_get( -1, 0, ictxt )
2301 CALL blacs_gridinit( ictxt, 'Row-major', 1, nprocs )
2302 CALL blacs_gridinfo( ictxt, nprow, npcol, myrow, mycol )
2303*
2304* Set ABRTFLG to FALSE so that the PBLAS error handler won't abort
2305* on errors during these tests and set the output device unit for
2306* it.
2307*
2308 abrtsav = abrtflg
2309 abrtflg = .false.
2310 nout = inout
2311*
2312* Test PSGEMM
2313*
2314 i = 1
2315 IF( ltest( i ) ) THEN
2316 CALL psoptee( ictxt, nout, psgemm, scode( i ), snames( i ) )
2317 CALL psdimee( ictxt, nout, psgemm, scode( i ), snames( i ) )
2318 CALL psmatee( ictxt, nout, psgemm, scode( i ), snames( i ) )
2319 END IF
2320*
2321* Test PSSYMM
2322*
2323 i = i + 1
2324 IF( ltest( i ) ) THEN
2325 CALL psoptee( ictxt, nout, pssymm, scode( i ), snames( i ) )
2326 CALL psdimee( ictxt, nout, pssymm, scode( i ), snames( i ) )
2327 CALL psmatee( ictxt, nout, pssymm, scode( i ), snames( i ) )
2328 END IF
2329*
2330* Test PSSYRK
2331*
2332 i = i + 1
2333 IF( ltest( i ) ) THEN
2334 CALL psoptee( ictxt, nout, pssyrk, scode( i ), snames( i ) )
2335 CALL psdimee( ictxt, nout, pssyrk, scode( i ), snames( i ) )
2336 CALL psmatee( ictxt, nout, pssyrk, scode( i ), snames( i ) )
2337 END IF
2338*
2339* Test PSSYR2K
2340*
2341 i = i + 1
2342 IF( ltest( i ) ) THEN
2343 CALL psoptee( ictxt, nout, pssyr2k, scode( i ), snames( i ) )
2344 CALL psdimee( ictxt, nout, pssyr2k, scode( i ), snames( i ) )
2345 CALL psmatee( ictxt, nout, pssyr2k, scode( i ), snames( i ) )
2346 END IF
2347*
2348* Test PSTRMM
2349*
2350 i = i + 1
2351 IF( ltest( i ) ) THEN
2352 CALL psoptee( ictxt, nout, pstrmm, scode( i ), snames( i ) )
2353 CALL psdimee( ictxt, nout, pstrmm, scode( i ), snames( i ) )
2354 CALL psmatee( ictxt, nout, pstrmm, scode( i ), snames( i ) )
2355 END IF
2356*
2357* Test PSTRSM
2358*
2359 i = i + 1
2360 IF( ltest( i ) ) THEN
2361 CALL psoptee( ictxt, nout, pstrsm, scode( i ), snames( i ) )
2362 CALL psdimee( ictxt, nout, pstrsm, scode( i ), snames( i ) )
2363 CALL psmatee( ictxt, nout, pstrsm, scode( i ), snames( i ) )
2364 END IF
2365*
2366* Test PSGEADD
2367*
2368 i = i + 1
2369 IF( ltest( i ) ) THEN
2370 CALL psoptee( ictxt, nout, psgeadd, scode( i ), snames( i ) )
2371 CALL psdimee( ictxt, nout, psgeadd, scode( i ), snames( i ) )
2372 CALL psmatee( ictxt, nout, psgeadd, scode( i ), snames( i ) )
2373 END IF
2374*
2375* Test PSTRADD
2376*
2377 i = i + 1
2378 IF( ltest( i ) ) THEN
2379 CALL psoptee( ictxt, nout, pstradd, scode( i ), snames( i ) )
2380 CALL psdimee( ictxt, nout, pstradd, scode( i ), snames( i ) )
2381 CALL psmatee( ictxt, nout, pstradd, scode( i ), snames( i ) )
2382 END IF
2383*
2384 IF( myrow.EQ.0 .AND. mycol.EQ.0 )
2385 $ WRITE( nout, fmt = 9999 )
2386*
2387 CALL blacs_gridexit( ictxt )
2388*
2389* Reset ABRTFLG to the value it had before calling this routine
2390*
2391 abrtflg = abrtsav
2392*
2393 9999 FORMAT( 2x, 'Error-exit tests completed.' )
2394*
2395 RETURN
2396*
2397* End of PSBLAS3TSTCHKE
2398*
subroutine psdimee(ictxt, nout, subptr, scode, sname)
Definition psblastst.f:455
subroutine psoptee(ictxt, nout, subptr, scode, sname)
Definition psblastst.f:2
subroutine psmatee(ictxt, nout, subptr, scode, sname)
Definition psblastst.f:1190
Here is the call graph for this function:
Here is the caller graph for this function: