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

◆ psblas2tstchke()

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

Definition at line 1988 of file psblas2tst.f.

1989*
1990* -- PBLAS test routine (version 2.0) --
1991* University of Tennessee, Knoxville, Oak Ridge National Laboratory,
1992* and University of California, Berkeley.
1993* April 1, 1998
1994*
1995* .. Scalar Arguments ..
1996 INTEGER INOUT, NPROCS
1997* ..
1998* .. Array Arguments ..
1999 LOGICAL LTEST( * )
2000* ..
2001*
2002* Purpose
2003* =======
2004*
2005* PSBLAS2TSTCHKE tests the error exits of the Level 2 PBLAS.
2006*
2007* Arguments
2008* =========
2009*
2010* LTEST (global input) LOGICAL array
2011* On entry, LTEST is an array of dimension at least 7 (NSUBS).
2012* If LTEST( 1 ) is .TRUE., PSGEMV will be tested;
2013* If LTEST( 2 ) is .TRUE., PSSYMV will be tested;
2014* If LTEST( 3 ) is .TRUE., PSTRMV will be tested;
2015* If LTEST( 4 ) is .TRUE., PSTRSV will be tested;
2016* If LTEST( 5 ) is .TRUE., PSGER will be tested;
2017* If LTEST( 6 ) is .TRUE., PSSYR will be tested;
2018* If LTEST( 7 ) is .TRUE., PSSYR2 will be tested;
2019*
2020* INOUT (global input) INTEGER
2021* On entry, INOUT specifies the unit number for output file.
2022* When INOUT is 6, output to screen, when INOUT = 0, output to
2023* stderr. INOUT is only defined in process 0.
2024*
2025* NPROCS (global input) INTEGER
2026* On entry, NPROCS specifies the total number of processes cal-
2027* ling this routine.
2028*
2029* Calling sequence encodings
2030* ==========================
2031*
2032* code Formal argument list Examples
2033*
2034* 11 (n, v1,v2) _SWAP, _COPY
2035* 12 (n,s1, v1 ) _SCAL, _SCAL
2036* 13 (n,s1, v1,v2) _AXPY, _DOT_
2037* 14 (n,s1,i1,v1 ) _AMAX
2038* 15 (n,u1, v1 ) _ASUM, _NRM2
2039*
2040* 21 ( trans, m,n,s1,m1,v1,s2,v2) _GEMV
2041* 22 (uplo, n,s1,m1,v1,s2,v2) _SYMV, _HEMV
2042* 23 (uplo,trans,diag, n, m1,v1 ) _TRMV, _TRSV
2043* 24 ( m,n,s1,v1,v2,m1) _GER_
2044* 25 (uplo, n,s1,v1, m1) _SYR
2045* 26 (uplo, n,u1,v1, m1) _HER
2046* 27 (uplo, n,s1,v1,v2,m1) _SYR2, _HER2
2047*
2048* 31 ( transa,transb, m,n,k,s1,m1,m2,s2,m3) _GEMM
2049* 32 (side,uplo, m,n, s1,m1,m2,s2,m3) _SYMM, _HEMM
2050* 33 ( uplo,trans, n,k,s1,m1, s2,m3) _SYRK
2051* 34 ( uplo,trans, n,k,u1,m1, u2,m3) _HERK
2052* 35 ( uplo,trans, n,k,s1,m1,m2,s2,m3) _SYR2K
2053* 36 ( uplo,trans, n,k,s1,m1,m2,u2,m3) _HER2K
2054* 37 ( m,n, s1,m1, s2,m3) _TRAN_
2055* 38 (side,uplo,transa, diag,m,n, s1,m1,m2 ) _TRMM, _TRSM
2056* 39 ( trans, m,n, s1,m1, s2,m3) _GEADD
2057* 40 ( uplo,trans, m,n, s1,m1, s2,m3) _TRADD
2058*
2059* -- Written on April 1, 1998 by
2060* Antoine Petitet, University of Tennessee, Knoxville 37996, USA.
2061*
2062* =====================================================================
2063*
2064* .. Parameters ..
2065 INTEGER NSUBS
2066 parameter( nsubs = 7 )
2067* ..
2068* .. Local Scalars ..
2069 LOGICAL ABRTSAV
2070 INTEGER I, ICTXT, MYCOL, MYROW, NPCOL, NPROW
2071* ..
2072* .. Local Arrays ..
2073 INTEGER SCODE( NSUBS )
2074* ..
2075* .. External Subroutines ..
2076 EXTERNAL blacs_get, blacs_gridexit, blacs_gridinfo,
2077 $ blacs_gridinit, psdimee, psgemv, psger,
2078 $ psmatee, psoptee, pssymv, pssyr, pssyr2,
2079 $ pstrmv, pstrsv, psvecee
2080* ..
2081* .. Common Blocks ..
2082 LOGICAL ABRTFLG
2083 INTEGER NOUT
2084 CHARACTER*7 SNAMES( NSUBS )
2085 COMMON /snamec/snames
2086 COMMON /pberrorc/nout, abrtflg
2087* ..
2088* .. Data Statements ..
2089 DATA scode/21, 22, 23, 23, 24, 25, 27/
2090* ..
2091* .. Executable Statements ..
2092*
2093* Temporarily define blacs grid to include all processes so
2094* information can be broadcast to all processes.
2095*
2096 CALL blacs_get( -1, 0, ictxt )
2097 CALL blacs_gridinit( ictxt, 'Row-major', 1, nprocs )
2098 CALL blacs_gridinfo( ictxt, nprow, npcol, myrow, mycol )
2099*
2100* Set ABRTFLG to FALSE so that the PBLAS error handler won't abort
2101* on errors during these tests and set the output device unit for
2102* it.
2103*
2104 abrtsav = abrtflg
2105 abrtflg = .false.
2106 nout = inout
2107*
2108* Test PSGEMV
2109*
2110 i = 1
2111 IF( ltest( i ) ) THEN
2112 CALL psoptee( ictxt, nout, psgemv, scode( i ), snames( i ) )
2113 CALL psdimee( ictxt, nout, psgemv, scode( i ), snames( i ) )
2114 CALL psmatee( ictxt, nout, psgemv, scode( i ), snames( i ) )
2115 CALL psvecee( ictxt, nout, psgemv, scode( i ), snames( i ) )
2116 END IF
2117*
2118* Test PSSYMV
2119*
2120 i = i + 1
2121 IF( ltest( i ) ) THEN
2122 CALL psoptee( ictxt, nout, pssymv, scode( i ), snames( i ) )
2123 CALL psdimee( ictxt, nout, pssymv, scode( i ), snames( i ) )
2124 CALL psmatee( ictxt, nout, pssymv, scode( i ), snames( i ) )
2125 CALL psvecee( ictxt, nout, pssymv, scode( i ), snames( i ) )
2126 END IF
2127*
2128* Test PSTRMV
2129*
2130 i = i + 1
2131 IF( ltest( i ) ) THEN
2132 CALL psoptee( ictxt, nout, pstrmv, scode( i ), snames( i ) )
2133 CALL psdimee( ictxt, nout, pstrmv, scode( i ), snames( i ) )
2134 CALL psmatee( ictxt, nout, pstrmv, scode( i ), snames( i ) )
2135 CALL psvecee( ictxt, nout, pstrmv, scode( i ), snames( i ) )
2136 END IF
2137*
2138* Test PSTRSV
2139*
2140 i = i + 1
2141 IF( ltest( i ) ) THEN
2142 CALL psoptee( ictxt, nout, pstrsv, scode( i ), snames( i ) )
2143 CALL psdimee( ictxt, nout, pstrsv, scode( i ), snames( i ) )
2144 CALL psmatee( ictxt, nout, pstrsv, scode( i ), snames( i ) )
2145 CALL psvecee( ictxt, nout, pstrsv, scode( i ), snames( i ) )
2146 END IF
2147*
2148* Test PSGER
2149*
2150 i = i + 1
2151 IF( ltest( i ) ) THEN
2152 CALL psdimee( ictxt, nout, psger, scode( i ), snames( i ) )
2153 CALL psvecee( ictxt, nout, psger, scode( i ), snames( i ) )
2154 CALL psmatee( ictxt, nout, psger, scode( i ), snames( i ) )
2155 END IF
2156*
2157* Test PSSYR
2158*
2159 i = i + 1
2160 IF( ltest( i ) ) THEN
2161 CALL psoptee( ictxt, nout, pssyr, scode( i ), snames( i ) )
2162 CALL psdimee( ictxt, nout, pssyr, scode( i ), snames( i ) )
2163 CALL psvecee( ictxt, nout, pssyr, scode( i ), snames( i ) )
2164 CALL psmatee( ictxt, nout, pssyr, scode( i ), snames( i ) )
2165 END IF
2166*
2167* Test PSSYR2
2168*
2169 i = i + 1
2170 IF( ltest( i ) ) THEN
2171 CALL psoptee( ictxt, nout, pssyr2, scode( i ), snames( i ) )
2172 CALL psdimee( ictxt, nout, pssyr2, scode( i ), snames( i ) )
2173 CALL psvecee( ictxt, nout, pssyr2, scode( i ), snames( i ) )
2174 CALL psmatee( ictxt, nout, pssyr2, scode( i ), snames( i ) )
2175 END IF
2176*
2177 IF( myrow.EQ.0 .AND. mycol.EQ.0 )
2178 $ WRITE( nout, fmt = 9999 )
2179*
2180 CALL blacs_gridexit( ictxt )
2181*
2182* Reset ABRTFLG to the value it had before calling this routine
2183*
2184 abrtflg = abrtsav
2185*
2186 9999 FORMAT( 2x, 'Error-exit tests completed.' )
2187*
2188 RETURN
2189*
2190* End of PSBLAS2TSTCHKE
2191*
subroutine psdimee(ictxt, nout, subptr, scode, sname)
Definition psblastst.f:455
subroutine psvecee(ictxt, nout, subptr, scode, sname)
Definition psblastst.f:936
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: