LAPACK 3.3.1
Linear Algebra PACKage

serrvx.f

Go to the documentation of this file.
00001       SUBROUTINE SERRVX( PATH, NUNIT )
00002 *
00003 *  -- LAPACK test routine (version 3.1.1) --
00004 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
00005 *     January 2007
00006 *
00007 *     .. Scalar Arguments ..
00008       CHARACTER*3        PATH
00009       INTEGER            NUNIT
00010 *     ..
00011 *
00012 *  Purpose
00013 *  =======
00014 *
00015 *  SERRVX tests the error exits for the REAL driver routines
00016 *  for solving linear systems of equations.
00017 *
00018 *  Arguments
00019 *  =========
00020 *
00021 *  PATH    (input) CHARACTER*3
00022 *          The LAPACK path name for the routines to be tested.
00023 *
00024 *  NUNIT   (input) INTEGER
00025 *          The unit number for output.
00026 *
00027 *  =====================================================================
00028 *
00029 *     .. Parameters ..
00030       INTEGER            NMAX
00031       PARAMETER          ( NMAX = 4 )
00032 *     ..
00033 *     .. Local Scalars ..
00034       CHARACTER          EQ
00035       CHARACTER*2        C2
00036       INTEGER            I, INFO, J
00037       REAL               RCOND
00038 *     ..
00039 *     .. Local Arrays ..
00040       INTEGER            IP( NMAX ), IW( NMAX )
00041       REAL               A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
00042      $                   C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
00043      $                   W( 2*NMAX ), X( NMAX )
00044 *     ..
00045 *     .. External Functions ..
00046       LOGICAL            LSAMEN
00047       EXTERNAL           LSAMEN
00048 *     ..
00049 *     .. External Subroutines ..
00050       EXTERNAL           CHKXER, SGBSV, SGBSVX, SGESV, SGESVX, SGTSV,
00051      $                   SGTSVX, SPBSV, SPBSVX, SPOSV, SPOSVX, SPPSV,
00052      $                   SPPSVX, SPTSV, SPTSVX, SSPSV, SSPSVX, SSYSV,
00053      $                   SSYSVX
00054 *     ..
00055 *     .. Scalars in Common ..
00056       LOGICAL            LERR, OK
00057       CHARACTER*32       SRNAMT
00058       INTEGER            INFOT, NOUT
00059 *     ..
00060 *     .. Common blocks ..
00061       COMMON             / INFOC / INFOT, NOUT, OK, LERR
00062       COMMON             / SRNAMC / SRNAMT
00063 *     ..
00064 *     .. Intrinsic Functions ..
00065       INTRINSIC          REAL
00066 *     ..
00067 *     .. Executable Statements ..
00068 *
00069       NOUT = NUNIT
00070       WRITE( NOUT, FMT = * )
00071       C2 = PATH( 2: 3 )
00072 *
00073 *     Set the variables to innocuous values.
00074 *
00075       DO 20 J = 1, NMAX
00076          DO 10 I = 1, NMAX
00077             A( I, J ) = 1. / REAL( I+J )
00078             AF( I, J ) = 1. / REAL( I+J )
00079    10    CONTINUE
00080          B( J ) = 0.
00081          R1( J ) = 0.
00082          R2( J ) = 0.
00083          W( J ) = 0.
00084          X( J ) = 0.
00085          C( J ) = 0.
00086          R( J ) = 0.
00087          IP( J ) = J
00088    20 CONTINUE
00089       EQ = ' '
00090       OK = .TRUE.
00091 *
00092       IF( LSAMEN( 2, C2, 'GE' ) ) THEN
00093 *
00094 *        SGESV
00095 *
00096          SRNAMT = 'SGESV '
00097          INFOT = 1
00098          CALL SGESV( -1, 0, A, 1, IP, B, 1, INFO )
00099          CALL CHKXER( 'SGESV ', INFOT, NOUT, LERR, OK )
00100          INFOT = 2
00101          CALL SGESV( 0, -1, A, 1, IP, B, 1, INFO )
00102          CALL CHKXER( 'SGESV ', INFOT, NOUT, LERR, OK )
00103          INFOT = 4
00104          CALL SGESV( 2, 1, A, 1, IP, B, 2, INFO )
00105          CALL CHKXER( 'SGESV ', INFOT, NOUT, LERR, OK )
00106          INFOT = 7
00107          CALL SGESV( 2, 1, A, 2, IP, B, 1, INFO )
00108          CALL CHKXER( 'SGESV ', INFOT, NOUT, LERR, OK )
00109 *
00110 *        SGESVX
00111 *
00112          SRNAMT = 'SGESVX'
00113          INFOT = 1
00114          CALL SGESVX( '/', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
00115      $                X, 1, RCOND, R1, R2, W, IW, INFO )
00116          CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
00117          INFOT = 2
00118          CALL SGESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
00119      $                X, 1, RCOND, R1, R2, W, IW, INFO )
00120          CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
00121          INFOT = 3
00122          CALL SGESVX( 'N', 'N', -1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
00123      $                X, 1, RCOND, R1, R2, W, IW, INFO )
00124          CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
00125          INFOT = 4
00126          CALL SGESVX( 'N', 'N', 0, -1, A, 1, AF, 1, IP, EQ, R, C, B, 1,
00127      $                X, 1, RCOND, R1, R2, W, IW, INFO )
00128          CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
00129          INFOT = 6
00130          CALL SGESVX( 'N', 'N', 2, 1, A, 1, AF, 2, IP, EQ, R, C, B, 2,
00131      $                X, 2, RCOND, R1, R2, W, IW, INFO )
00132          CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
00133          INFOT = 8
00134          CALL SGESVX( 'N', 'N', 2, 1, A, 2, AF, 1, IP, EQ, R, C, B, 2,
00135      $                X, 2, RCOND, R1, R2, W, IW, INFO )
00136          CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
00137          INFOT = 10
00138          EQ = '/'
00139          CALL SGESVX( 'F', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
00140      $                X, 1, RCOND, R1, R2, W, IW, INFO )
00141          CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
00142          INFOT = 11
00143          EQ = 'R'
00144          CALL SGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
00145      $                X, 1, RCOND, R1, R2, W, IW, INFO )
00146          CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
00147          INFOT = 12
00148          EQ = 'C'
00149          CALL SGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
00150      $                X, 1, RCOND, R1, R2, W, IW, INFO )
00151          CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
00152          INFOT = 14
00153          CALL SGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 1,
00154      $                X, 2, RCOND, R1, R2, W, IW, INFO )
00155          CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
00156          INFOT = 16
00157          CALL SGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 2,
00158      $                X, 1, RCOND, R1, R2, W, IW, INFO )
00159          CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
00160 *
00161       ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN
00162 *
00163 *        SGBSV
00164 *
00165          SRNAMT = 'SGBSV '
00166          INFOT = 1
00167          CALL SGBSV( -1, 0, 0, 0, A, 1, IP, B, 1, INFO )
00168          CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK )
00169          INFOT = 2
00170          CALL SGBSV( 1, -1, 0, 0, A, 1, IP, B, 1, INFO )
00171          CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK )
00172          INFOT = 3
00173          CALL SGBSV( 1, 0, -1, 0, A, 1, IP, B, 1, INFO )
00174          CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK )
00175          INFOT = 4
00176          CALL SGBSV( 0, 0, 0, -1, A, 1, IP, B, 1, INFO )
00177          CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK )
00178          INFOT = 6
00179          CALL SGBSV( 1, 1, 1, 0, A, 3, IP, B, 1, INFO )
00180          CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK )
00181          INFOT = 9
00182          CALL SGBSV( 2, 0, 0, 0, A, 1, IP, B, 1, INFO )
00183          CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK )
00184 *
00185 *        SGBSVX
00186 *
00187          SRNAMT = 'SGBSVX'
00188          INFOT = 1
00189          CALL SGBSVX( '/', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00190      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
00191          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
00192          INFOT = 2
00193          CALL SGBSVX( 'N', '/', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00194      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
00195          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
00196          INFOT = 3
00197          CALL SGBSVX( 'N', 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00198      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
00199          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
00200          INFOT = 4
00201          CALL SGBSVX( 'N', 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00202      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
00203          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
00204          INFOT = 5
00205          CALL SGBSVX( 'N', 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, EQ, R, C,
00206      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
00207          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
00208          INFOT = 6
00209          CALL SGBSVX( 'N', 'N', 0, 0, 0, -1, A, 1, AF, 1, IP, EQ, R, C,
00210      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
00211          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
00212          INFOT = 8
00213          CALL SGBSVX( 'N', 'N', 1, 1, 1, 0, A, 2, AF, 4, IP, EQ, R, C,
00214      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
00215          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
00216          INFOT = 10
00217          CALL SGBSVX( 'N', 'N', 1, 1, 1, 0, A, 3, AF, 3, IP, EQ, R, C,
00218      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
00219          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
00220          INFOT = 12
00221          EQ = '/'
00222          CALL SGBSVX( 'F', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00223      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
00224          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
00225          INFOT = 13
00226          EQ = 'R'
00227          CALL SGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00228      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
00229          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
00230          INFOT = 14
00231          EQ = 'C'
00232          CALL SGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00233      $                B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
00234          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
00235          INFOT = 16
00236          CALL SGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00237      $                B, 1, X, 2, RCOND, R1, R2, W, IW, INFO )
00238          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
00239          INFOT = 18
00240          CALL SGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00241      $                B, 2, X, 1, RCOND, R1, R2, W, IW, INFO )
00242          CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
00243 *
00244       ELSE IF( LSAMEN( 2, C2, 'GT' ) ) THEN
00245 *
00246 *        SGTSV
00247 *
00248          SRNAMT = 'SGTSV '
00249          INFOT = 1
00250          CALL SGTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
00251      $               INFO )
00252          CALL CHKXER( 'SGTSV ', INFOT, NOUT, LERR, OK )
00253          INFOT = 2
00254          CALL SGTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
00255      $               INFO )
00256          CALL CHKXER( 'SGTSV ', INFOT, NOUT, LERR, OK )
00257          INFOT = 7
00258          CALL SGTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, INFO )
00259          CALL CHKXER( 'SGTSV ', INFOT, NOUT, LERR, OK )
00260 *
00261 *        SGTSVX
00262 *
00263          SRNAMT = 'SGTSVX'
00264          INFOT = 1
00265          CALL SGTSVX( '/', 'N', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
00266      $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
00267      $                IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
00268          CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK )
00269          INFOT = 2
00270          CALL SGTSVX( 'N', '/', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
00271      $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
00272      $                IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
00273          CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK )
00274          INFOT = 3
00275          CALL SGTSVX( 'N', 'N', -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
00276      $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
00277      $                IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
00278          CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK )
00279          INFOT = 4
00280          CALL SGTSVX( 'N', 'N', 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
00281      $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
00282      $                IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
00283          CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK )
00284          INFOT = 14
00285          CALL SGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
00286      $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
00287      $                IP, B, 1, X, 2, RCOND, R1, R2, W, IW, INFO )
00288          CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK )
00289          INFOT = 16
00290          CALL SGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
00291      $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
00292      $                IP, B, 2, X, 1, RCOND, R1, R2, W, IW, INFO )
00293          CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK )
00294 *
00295       ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN
00296 *
00297 *        SPOSV
00298 *
00299          SRNAMT = 'SPOSV '
00300          INFOT = 1
00301          CALL SPOSV( '/', 0, 0, A, 1, B, 1, INFO )
00302          CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK )
00303          INFOT = 2
00304          CALL SPOSV( 'U', -1, 0, A, 1, B, 1, INFO )
00305          CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK )
00306          INFOT = 3
00307          CALL SPOSV( 'U', 0, -1, A, 1, B, 1, INFO )
00308          CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK )
00309          INFOT = 5
00310          CALL SPOSV( 'U', 2, 0, A, 1, B, 2, INFO )
00311          CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK )
00312          INFOT = 7
00313          CALL SPOSV( 'U', 2, 0, A, 2, B, 1, INFO )
00314          CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK )
00315 *
00316 *        SPOSVX
00317 *
00318          SRNAMT = 'SPOSVX'
00319          INFOT = 1
00320          CALL SPOSVX( '/', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00321      $                RCOND, R1, R2, W, IW, INFO )
00322          CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
00323          INFOT = 2
00324          CALL SPOSVX( 'N', '/', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00325      $                RCOND, R1, R2, W, IW, INFO )
00326          CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
00327          INFOT = 3
00328          CALL SPOSVX( 'N', 'U', -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00329      $                RCOND, R1, R2, W, IW, INFO )
00330          CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
00331          INFOT = 4
00332          CALL SPOSVX( 'N', 'U', 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00333      $                RCOND, R1, R2, W, IW, INFO )
00334          CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
00335          INFOT = 6
00336          CALL SPOSVX( 'N', 'U', 2, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
00337      $                RCOND, R1, R2, W, IW, INFO )
00338          CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
00339          INFOT = 8
00340          CALL SPOSVX( 'N', 'U', 2, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
00341      $                RCOND, R1, R2, W, IW, INFO )
00342          CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
00343          INFOT = 9
00344          EQ = '/'
00345          CALL SPOSVX( 'F', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00346      $                RCOND, R1, R2, W, IW, INFO )
00347          CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
00348          INFOT = 10
00349          EQ = 'Y'
00350          CALL SPOSVX( 'F', 'U', 1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00351      $                RCOND, R1, R2, W, IW, INFO )
00352          CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
00353          INFOT = 12
00354          CALL SPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 1, X, 2,
00355      $                RCOND, R1, R2, W, IW, INFO )
00356          CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
00357          INFOT = 14
00358          CALL SPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 2, X, 1,
00359      $                RCOND, R1, R2, W, IW, INFO )
00360          CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
00361 *
00362       ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
00363 *
00364 *        SPPSV
00365 *
00366          SRNAMT = 'SPPSV '
00367          INFOT = 1
00368          CALL SPPSV( '/', 0, 0, A, B, 1, INFO )
00369          CALL CHKXER( 'SPPSV ', INFOT, NOUT, LERR, OK )
00370          INFOT = 2
00371          CALL SPPSV( 'U', -1, 0, A, B, 1, INFO )
00372          CALL CHKXER( 'SPPSV ', INFOT, NOUT, LERR, OK )
00373          INFOT = 3
00374          CALL SPPSV( 'U', 0, -1, A, B, 1, INFO )
00375          CALL CHKXER( 'SPPSV ', INFOT, NOUT, LERR, OK )
00376          INFOT = 6
00377          CALL SPPSV( 'U', 2, 0, A, B, 1, INFO )
00378          CALL CHKXER( 'SPPSV ', INFOT, NOUT, LERR, OK )
00379 *
00380 *        SPPSVX
00381 *
00382          SRNAMT = 'SPPSVX'
00383          INFOT = 1
00384          CALL SPPSVX( '/', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
00385      $                R1, R2, W, IW, INFO )
00386          CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
00387          INFOT = 2
00388          CALL SPPSVX( 'N', '/', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
00389      $                R1, R2, W, IW, INFO )
00390          CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
00391          INFOT = 3
00392          CALL SPPSVX( 'N', 'U', -1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
00393      $                R1, R2, W, IW, INFO )
00394          CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
00395          INFOT = 4
00396          CALL SPPSVX( 'N', 'U', 0, -1, A, AF, EQ, C, B, 1, X, 1, RCOND,
00397      $                R1, R2, W, IW, INFO )
00398          CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
00399          INFOT = 7
00400          EQ = '/'
00401          CALL SPPSVX( 'F', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
00402      $                R1, R2, W, IW, INFO )
00403          CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
00404          INFOT = 8
00405          EQ = 'Y'
00406          CALL SPPSVX( 'F', 'U', 1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
00407      $                R1, R2, W, IW, INFO )
00408          CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
00409          INFOT = 10
00410          CALL SPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 1, X, 2, RCOND,
00411      $                R1, R2, W, IW, INFO )
00412          CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
00413          INFOT = 12
00414          CALL SPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 2, X, 1, RCOND,
00415      $                R1, R2, W, IW, INFO )
00416          CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
00417 *
00418       ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
00419 *
00420 *        SPBSV
00421 *
00422          SRNAMT = 'SPBSV '
00423          INFOT = 1
00424          CALL SPBSV( '/', 0, 0, 0, A, 1, B, 1, INFO )
00425          CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK )
00426          INFOT = 2
00427          CALL SPBSV( 'U', -1, 0, 0, A, 1, B, 1, INFO )
00428          CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK )
00429          INFOT = 3
00430          CALL SPBSV( 'U', 1, -1, 0, A, 1, B, 1, INFO )
00431          CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK )
00432          INFOT = 4
00433          CALL SPBSV( 'U', 0, 0, -1, A, 1, B, 1, INFO )
00434          CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK )
00435          INFOT = 6
00436          CALL SPBSV( 'U', 1, 1, 0, A, 1, B, 2, INFO )
00437          CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK )
00438          INFOT = 8
00439          CALL SPBSV( 'U', 2, 0, 0, A, 1, B, 1, INFO )
00440          CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK )
00441 *
00442 *        SPBSVX
00443 *
00444          SRNAMT = 'SPBSVX'
00445          INFOT = 1
00446          CALL SPBSVX( '/', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00447      $                RCOND, R1, R2, W, IW, INFO )
00448          CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
00449          INFOT = 2
00450          CALL SPBSVX( 'N', '/', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00451      $                RCOND, R1, R2, W, IW, INFO )
00452          CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
00453          INFOT = 3
00454          CALL SPBSVX( 'N', 'U', -1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X,
00455      $                1, RCOND, R1, R2, W, IW, INFO )
00456          CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
00457          INFOT = 4
00458          CALL SPBSVX( 'N', 'U', 1, -1, 0, A, 1, AF, 1, EQ, C, B, 1, X,
00459      $                1, RCOND, R1, R2, W, IW, INFO )
00460          CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
00461          INFOT = 5
00462          CALL SPBSVX( 'N', 'U', 0, 0, -1, A, 1, AF, 1, EQ, C, B, 1, X,
00463      $                1, RCOND, R1, R2, W, IW, INFO )
00464          CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
00465          INFOT = 7
00466          CALL SPBSVX( 'N', 'U', 1, 1, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
00467      $                RCOND, R1, R2, W, IW, INFO )
00468          CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
00469          INFOT = 9
00470          CALL SPBSVX( 'N', 'U', 1, 1, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
00471      $                RCOND, R1, R2, W, IW, INFO )
00472          CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
00473          INFOT = 10
00474          EQ = '/'
00475          CALL SPBSVX( 'F', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00476      $                RCOND, R1, R2, W, IW, INFO )
00477          CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
00478          INFOT = 11
00479          EQ = 'Y'
00480          CALL SPBSVX( 'F', 'U', 1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00481      $                RCOND, R1, R2, W, IW, INFO )
00482          CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
00483          INFOT = 13
00484          CALL SPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 2,
00485      $                RCOND, R1, R2, W, IW, INFO )
00486          CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
00487          INFOT = 15
00488          CALL SPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 2, X, 1,
00489      $                RCOND, R1, R2, W, IW, INFO )
00490          CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
00491 *
00492       ELSE IF( LSAMEN( 2, C2, 'PT' ) ) THEN
00493 *
00494 *        SPTSV
00495 *
00496          SRNAMT = 'SPTSV '
00497          INFOT = 1
00498          CALL SPTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), B, 1, INFO )
00499          CALL CHKXER( 'SPTSV ', INFOT, NOUT, LERR, OK )
00500          INFOT = 2
00501          CALL SPTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), B, 1, INFO )
00502          CALL CHKXER( 'SPTSV ', INFOT, NOUT, LERR, OK )
00503          INFOT = 6
00504          CALL SPTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), B, 1, INFO )
00505          CALL CHKXER( 'SPTSV ', INFOT, NOUT, LERR, OK )
00506 *
00507 *        SPTSVX
00508 *
00509          SRNAMT = 'SPTSVX'
00510          INFOT = 1
00511          CALL SPTSVX( '/', 0, 0, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ),
00512      $                AF( 1, 2 ), B, 1, X, 1, RCOND, R1, R2, W, INFO )
00513          CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK )
00514          INFOT = 2
00515          CALL SPTSVX( 'N', -1, 0, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ),
00516      $                AF( 1, 2 ), B, 1, X, 1, RCOND, R1, R2, W, INFO )
00517          CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK )
00518          INFOT = 3
00519          CALL SPTSVX( 'N', 0, -1, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ),
00520      $                AF( 1, 2 ), B, 1, X, 1, RCOND, R1, R2, W, INFO )
00521          CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK )
00522          INFOT = 9
00523          CALL SPTSVX( 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ),
00524      $                AF( 1, 2 ), B, 1, X, 2, RCOND, R1, R2, W, INFO )
00525          CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK )
00526          INFOT = 11
00527          CALL SPTSVX( 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ),
00528      $                AF( 1, 2 ), B, 2, X, 1, RCOND, R1, R2, W, INFO )
00529          CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK )
00530 *
00531       ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN
00532 *
00533 *        SSYSV
00534 *
00535          SRNAMT = 'SSYSV '
00536          INFOT = 1
00537          CALL SSYSV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
00538          CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK )
00539          INFOT = 2
00540          CALL SSYSV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
00541          CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK )
00542          INFOT = 3
00543          CALL SSYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
00544          CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK )
00545          INFOT = 8
00546          CALL SSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
00547          CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK )
00548 *
00549 *        SSYSVX
00550 *
00551          SRNAMT = 'SSYSVX'
00552          INFOT = 1
00553          CALL SSYSVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
00554      $                RCOND, R1, R2, W, 1, IW, INFO )
00555          CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
00556          INFOT = 2
00557          CALL SSYSVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
00558      $                RCOND, R1, R2, W, 1, IW, INFO )
00559          CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
00560          INFOT = 3
00561          CALL SSYSVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
00562      $                RCOND, R1, R2, W, 1, IW, INFO )
00563          CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
00564          INFOT = 4
00565          CALL SSYSVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
00566      $                RCOND, R1, R2, W, 1, IW, INFO )
00567          CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
00568          INFOT = 6
00569          CALL SSYSVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
00570      $                RCOND, R1, R2, W, 4, IW, INFO )
00571          CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
00572          INFOT = 8
00573          CALL SSYSVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
00574      $                RCOND, R1, R2, W, 4, IW, INFO )
00575          CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
00576          INFOT = 11
00577          CALL SSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
00578      $                RCOND, R1, R2, W, 4, IW, INFO )
00579          CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
00580          INFOT = 13
00581          CALL SSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
00582      $                RCOND, R1, R2, W, 4, IW, INFO )
00583          CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
00584          INFOT = 18
00585          CALL SSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
00586      $                RCOND, R1, R2, W, 3, IW, INFO )
00587          CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
00588 *
00589       ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
00590 *
00591 *        SSPSV
00592 *
00593          SRNAMT = 'SSPSV '
00594          INFOT = 1
00595          CALL SSPSV( '/', 0, 0, A, IP, B, 1, INFO )
00596          CALL CHKXER( 'SSPSV ', INFOT, NOUT, LERR, OK )
00597          INFOT = 2
00598          CALL SSPSV( 'U', -1, 0, A, IP, B, 1, INFO )
00599          CALL CHKXER( 'SSPSV ', INFOT, NOUT, LERR, OK )
00600          INFOT = 3
00601          CALL SSPSV( 'U', 0, -1, A, IP, B, 1, INFO )
00602          CALL CHKXER( 'SSPSV ', INFOT, NOUT, LERR, OK )
00603          INFOT = 7
00604          CALL SSPSV( 'U', 2, 0, A, IP, B, 1, INFO )
00605          CALL CHKXER( 'SSPSV ', INFOT, NOUT, LERR, OK )
00606 *
00607 *        SSPSVX
00608 *
00609          SRNAMT = 'SSPSVX'
00610          INFOT = 1
00611          CALL SSPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
00612      $                R2, W, IW, INFO )
00613          CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK )
00614          INFOT = 2
00615          CALL SSPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
00616      $                R2, W, IW, INFO )
00617          CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK )
00618          INFOT = 3
00619          CALL SSPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
00620      $                R2, W, IW, INFO )
00621          CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK )
00622          INFOT = 4
00623          CALL SSPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
00624      $                R2, W, IW, INFO )
00625          CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK )
00626          INFOT = 9
00627          CALL SSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
00628      $                R2, W, IW, INFO )
00629          CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK )
00630          INFOT = 11
00631          CALL SSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
00632      $                R2, W, IW, INFO )
00633          CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK )
00634       END IF
00635 *
00636 *     Print a summary line.
00637 *
00638       IF( OK ) THEN
00639          WRITE( NOUT, FMT = 9999 )PATH
00640       ELSE
00641          WRITE( NOUT, FMT = 9998 )PATH
00642       END IF
00643 *
00644  9999 FORMAT( 1X, A3, ' drivers passed the tests of the error exits' )
00645  9998 FORMAT( ' *** ', A3, ' drivers failed the tests of the error ',
00646      $      'exits ***' )
00647 *
00648       RETURN
00649 *
00650 *     End of SERRVX
00651 *
00652       END
 All Files Functions