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

◆ pzblas2tstchke()

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

Definition at line 2022 of file pzblas2tst.f.

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