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

◆ pcblas2tstchke()

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

Definition at line 2023 of file pcblas2tst.f.

2024*
2025* -- PBLAS test routine (version 2.0) --
2026* University of Tennessee, Knoxville, Oak Ridge National Laboratory,
2027* and University of California, Berkeley.
2028* April 1, 1998
2029*
2030* .. Scalar Arguments ..
2031 INTEGER INOUT, NPROCS
2032* ..
2033* .. Array Arguments ..
2034 LOGICAL LTEST( * )
2035* ..
2036*
2037* Purpose
2038* =======
2039*
2040* PCBLAS2TSTCHKE tests the error exits of the Level 2 PBLAS.
2041*
2042* Arguments
2043* =========
2044*
2045* LTEST (global input) LOGICAL array
2046* On entry, LTEST is an array of dimension at least 8 (NSUBS).
2047* If LTEST( 1 ) is .TRUE., PCGEMV will be tested;
2048* If LTEST( 2 ) is .TRUE., PCHEMV will be tested;
2049* If LTEST( 3 ) is .TRUE., PCTRMV will be tested;
2050* If LTEST( 4 ) is .TRUE., PCTRSV will be tested;
2051* If LTEST( 5 ) is .TRUE., PCGERU will be tested;
2052* If LTEST( 6 ) is .TRUE., PCGERC will be tested;
2053* If LTEST( 7 ) is .TRUE., PCHER will be tested;
2054* If LTEST( 8 ) is .TRUE., PCHER2 will be tested;
2055*
2056* INOUT (global input) INTEGER
2057* On entry, INOUT specifies the unit number for output file.
2058* When INOUT is 6, output to screen, when INOUT = 0, output to
2059* stderr. INOUT is only defined in process 0.
2060*
2061* NPROCS (global input) INTEGER
2062* On entry, NPROCS specifies the total number of processes cal-
2063* ling this routine.
2064*
2065* Calling sequence encodings
2066* ==========================
2067*
2068* code Formal argument list Examples
2069*
2070* 11 (n, v1,v2) _SWAP, _COPY
2071* 12 (n,s1, v1 ) _SCAL, _SCAL
2072* 13 (n,s1, v1,v2) _AXPY, _DOT_
2073* 14 (n,s1,i1,v1 ) _AMAX
2074* 15 (n,u1, v1 ) _ASUM, _NRM2
2075*
2076* 21 ( trans, m,n,s1,m1,v1,s2,v2) _GEMV
2077* 22 (uplo, n,s1,m1,v1,s2,v2) _SYMV, _HEMV
2078* 23 (uplo,trans,diag, n, m1,v1 ) _TRMV, _TRSV
2079* 24 ( m,n,s1,v1,v2,m1) _GER_
2080* 25 (uplo, n,s1,v1, m1) _SYR
2081* 26 (uplo, n,u1,v1, m1) _HER
2082* 27 (uplo, n,s1,v1,v2,m1) _SYR2, _HER2
2083*
2084* 31 ( transa,transb, m,n,k,s1,m1,m2,s2,m3) _GEMM
2085* 32 (side,uplo, m,n, s1,m1,m2,s2,m3) _SYMM, _HEMM
2086* 33 ( uplo,trans, n,k,s1,m1, s2,m3) _SYRK
2087* 34 ( uplo,trans, n,k,u1,m1, u2,m3) _HERK
2088* 35 ( uplo,trans, n,k,s1,m1,m2,s2,m3) _SYR2K
2089* 36 ( uplo,trans, n,k,s1,m1,m2,u2,m3) _HER2K
2090* 37 ( m,n, s1,m1, s2,m3) _TRAN_
2091* 38 (side,uplo,transa, diag,m,n, s1,m1,m2 ) _TRMM, _TRSM
2092* 39 ( trans, m,n, s1,m1, s2,m3) _GEADD
2093* 40 ( uplo,trans, m,n, s1,m1, s2,m3) _TRADD
2094*
2095* -- Written on April 1, 1998 by
2096* Antoine Petitet, University of Tennessee, Knoxville 37996, USA.
2097*
2098* =====================================================================
2099*
2100* .. Parameters ..
2101 INTEGER NSUBS
2102 parameter( nsubs = 8 )
2103* ..
2104* .. Local Scalars ..
2105 LOGICAL ABRTSAV
2106 INTEGER I, ICTXT, MYCOL, MYROW, NPCOL, NPROW
2107* ..
2108* .. Local Arrays ..
2109 INTEGER SCODE( NSUBS )
2110* ..
2111* .. External Subroutines ..
2112 EXTERNAL blacs_get, blacs_gridexit, blacs_gridinfo,
2113 $ blacs_gridinit, pcdimee, pcgemv, pcgerc,
2114 $ pcgeru, pchemv, pcher, pcher2, pcmatee,
2115 $ pcoptee, pctrmv, pctrsv, pcvecee
2116* ..
2117* .. Common Blocks ..
2118 LOGICAL ABRTFLG
2119 INTEGER NOUT
2120 CHARACTER*7 SNAMES( NSUBS )
2121 COMMON /snamec/snames
2122 COMMON /pberrorc/nout, abrtflg
2123* ..
2124* .. Data Statements ..
2125 DATA scode/21, 22, 23, 23, 24, 24, 26, 27/
2126* ..
2127* .. Executable Statements ..
2128*
2129* Temporarily define blacs grid to include all processes so
2130* information can be broadcast to all processes.
2131*
2132 CALL blacs_get( -1, 0, ictxt )
2133 CALL blacs_gridinit( ictxt, 'Row-major', 1, nprocs )
2134 CALL blacs_gridinfo( ictxt, nprow, npcol, myrow, mycol )
2135*
2136* Set ABRTFLG to FALSE so that the PBLAS error handler won't abort
2137* on errors during these tests and set the output device unit for
2138* it.
2139*
2140 abrtsav = abrtflg
2141 abrtflg = .false.
2142 nout = inout
2143*
2144* Test PCGEMV
2145*
2146 i = 1
2147 IF( ltest( i ) ) THEN
2148 CALL pcoptee( ictxt, nout, pcgemv, scode( i ), snames( i ) )
2149 CALL pcdimee( ictxt, nout, pcgemv, scode( i ), snames( i ) )
2150 CALL pcmatee( ictxt, nout, pcgemv, scode( i ), snames( i ) )
2151 CALL pcvecee( ictxt, nout, pcgemv, scode( i ), snames( i ) )
2152 END IF
2153*
2154* Test PCHEMV
2155*
2156 i = i + 1
2157 IF( ltest( i ) ) THEN
2158 CALL pcoptee( ictxt, nout, pchemv, scode( i ), snames( i ) )
2159 CALL pcdimee( ictxt, nout, pchemv, scode( i ), snames( i ) )
2160 CALL pcmatee( ictxt, nout, pchemv, scode( i ), snames( i ) )
2161 CALL pcvecee( ictxt, nout, pchemv, scode( i ), snames( i ) )
2162 END IF
2163*
2164* Test PCTRMV
2165*
2166 i = i + 1
2167 IF( ltest( i ) ) THEN
2168 CALL pcoptee( ictxt, nout, pctrmv, scode( i ), snames( i ) )
2169 CALL pcdimee( ictxt, nout, pctrmv, scode( i ), snames( i ) )
2170 CALL pcmatee( ictxt, nout, pctrmv, scode( i ), snames( i ) )
2171 CALL pcvecee( ictxt, nout, pctrmv, scode( i ), snames( i ) )
2172 END IF
2173*
2174* Test PCTRSV
2175*
2176 i = i + 1
2177 IF( ltest( i ) ) THEN
2178 CALL pcoptee( ictxt, nout, pctrsv, scode( i ), snames( i ) )
2179 CALL pcdimee( ictxt, nout, pctrsv, scode( i ), snames( i ) )
2180 CALL pcmatee( ictxt, nout, pctrsv, scode( i ), snames( i ) )
2181 CALL pcvecee( ictxt, nout, pctrsv, scode( i ), snames( i ) )
2182 END IF
2183*
2184* Test PCGERU
2185*
2186 i = i + 1
2187 IF( ltest( i ) ) THEN
2188 CALL pcdimee( ictxt, nout, pcgeru, scode( i ), snames( i ) )
2189 CALL pcvecee( ictxt, nout, pcgeru, scode( i ), snames( i ) )
2190 CALL pcmatee( ictxt, nout, pcgeru, scode( i ), snames( i ) )
2191 END IF
2192*
2193* Test PCGERC
2194*
2195 i = i + 1
2196 IF( ltest( i ) ) THEN
2197 CALL pcdimee( ictxt, nout, pcgerc, scode( i ), snames( i ) )
2198 CALL pcvecee( ictxt, nout, pcgerc, scode( i ), snames( i ) )
2199 CALL pcmatee( ictxt, nout, pcgerc, scode( i ), snames( i ) )
2200 END IF
2201*
2202* Test PCHER
2203*
2204 i = i + 1
2205 IF( ltest( i ) ) THEN
2206 CALL pcoptee( ictxt, nout, pcher, scode( i ), snames( i ) )
2207 CALL pcdimee( ictxt, nout, pcher, scode( i ), snames( i ) )
2208 CALL pcvecee( ictxt, nout, pcher, scode( i ), snames( i ) )
2209 CALL pcmatee( ictxt, nout, pcher, scode( i ), snames( i ) )
2210 END IF
2211*
2212* Test PCHER2
2213*
2214 i = i + 1
2215 IF( ltest( i ) ) THEN
2216 CALL pcoptee( ictxt, nout, pcher2, scode( i ), snames( i ) )
2217 CALL pcdimee( ictxt, nout, pcher2, scode( i ), snames( i ) )
2218 CALL pcvecee( ictxt, nout, pcher2, scode( i ), snames( i ) )
2219 CALL pcmatee( ictxt, nout, pcher2, scode( i ), snames( i ) )
2220 END IF
2221*
2222 IF( myrow.EQ.0 .AND. mycol.EQ.0 )
2223 $ WRITE( nout, fmt = 9999 )
2224*
2225 CALL blacs_gridexit( ictxt )
2226*
2227* Reset ABRTFLG to the value it had before calling this routine
2228*
2229 abrtflg = abrtsav
2230*
2231 9999 FORMAT( 2x, 'Error-exit tests completed.' )
2232*
2233 RETURN
2234*
2235* End of PCBLAS2TSTCHKE
2236*
subroutine pcvecee(ictxt, nout, subptr, scode, sname)
Definition pcblastst.f:936
subroutine pcmatee(ictxt, nout, subptr, scode, sname)
Definition pcblastst.f:1190
subroutine pcoptee(ictxt, nout, subptr, scode, sname)
Definition pcblastst.f:2
subroutine pcdimee(ictxt, nout, subptr, scode, sname)
Definition pcblastst.f:455
Here is the call graph for this function:
Here is the caller graph for this function: