LAPACK 3.3.0

cerrvx.f

Go to the documentation of this file.
00001       SUBROUTINE CERRVX( 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 *  CERRVX tests the error exits for the COMPLEX 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 )
00041       REAL               C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
00042      $                   RF( NMAX ), RW( NMAX )
00043       COMPLEX            A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
00044      $                   W( 2*NMAX ), X( NMAX )
00045 *     ..
00046 *     .. External Functions ..
00047       LOGICAL            LSAMEN
00048       EXTERNAL           LSAMEN
00049 *     ..
00050 *     .. External Subroutines ..
00051       EXTERNAL           CGBSV, CGBSVX, CGESV, CGESVX, CGTSV, CGTSVX,
00052      $                   CHESV, CHESVX, CHKXER, CHPSV, CHPSVX, CPBSV,
00053      $                   CPBSVX, CPOSV, CPOSVX, CPPSV, CPPSVX, CPTSV,
00054      $                   CPTSVX, CSPSV, CSPSVX, CSYSV, CSYSVX
00055 *     ..
00056 *     .. Scalars in Common ..
00057       LOGICAL            LERR, OK
00058       CHARACTER*32       SRNAMT
00059       INTEGER            INFOT, NOUT
00060 *     ..
00061 *     .. Common blocks ..
00062       COMMON             / INFOC / INFOT, NOUT, OK, LERR
00063       COMMON             / SRNAMC / SRNAMT
00064 *     ..
00065 *     .. Intrinsic Functions ..
00066       INTRINSIC          CMPLX, REAL
00067 *     ..
00068 *     .. Executable Statements ..
00069 *
00070       NOUT = NUNIT
00071       WRITE( NOUT, FMT = * )
00072       C2 = PATH( 2: 3 )
00073 *
00074 *     Set the variables to innocuous values.
00075 *
00076       DO 20 J = 1, NMAX
00077          DO 10 I = 1, NMAX
00078             A( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) )
00079             AF( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) )
00080    10    CONTINUE
00081          B( J ) = 0.
00082          R1( J ) = 0.
00083          R2( J ) = 0.
00084          W( J ) = 0.
00085          X( J ) = 0.
00086          C( J ) = 0.
00087          R( J ) = 0.
00088          IP( J ) = J
00089    20 CONTINUE
00090       EQ = ' '
00091       OK = .TRUE.
00092 *
00093       IF( LSAMEN( 2, C2, 'GE' ) ) THEN
00094 *
00095 *        CGESV
00096 *
00097          SRNAMT = 'CGESV '
00098          INFOT = 1
00099          CALL CGESV( -1, 0, A, 1, IP, B, 1, INFO )
00100          CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK )
00101          INFOT = 2
00102          CALL CGESV( 0, -1, A, 1, IP, B, 1, INFO )
00103          CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK )
00104          INFOT = 4
00105          CALL CGESV( 2, 1, A, 1, IP, B, 2, INFO )
00106          CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK )
00107          INFOT = 7
00108          CALL CGESV( 2, 1, A, 2, IP, B, 1, INFO )
00109          CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK )
00110 *
00111 *        CGESVX
00112 *
00113          SRNAMT = 'CGESVX'
00114          INFOT = 1
00115          CALL CGESVX( '/', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
00116      $                X, 1, RCOND, R1, R2, W, RW, INFO )
00117          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
00118          INFOT = 2
00119          CALL CGESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
00120      $                X, 1, RCOND, R1, R2, W, RW, INFO )
00121          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
00122          INFOT = 3
00123          CALL CGESVX( 'N', 'N', -1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
00124      $                X, 1, RCOND, R1, R2, W, RW, INFO )
00125          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
00126          INFOT = 4
00127          CALL CGESVX( 'N', 'N', 0, -1, A, 1, AF, 1, IP, EQ, R, C, B, 1,
00128      $                X, 1, RCOND, R1, R2, W, RW, INFO )
00129          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
00130          INFOT = 6
00131          CALL CGESVX( 'N', 'N', 2, 1, A, 1, AF, 2, IP, EQ, R, C, B, 2,
00132      $                X, 2, RCOND, R1, R2, W, RW, INFO )
00133          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
00134          INFOT = 8
00135          CALL CGESVX( 'N', 'N', 2, 1, A, 2, AF, 1, IP, EQ, R, C, B, 2,
00136      $                X, 2, RCOND, R1, R2, W, RW, INFO )
00137          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
00138          INFOT = 10
00139          EQ = '/'
00140          CALL CGESVX( 'F', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
00141      $                X, 1, RCOND, R1, R2, W, RW, INFO )
00142          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
00143          INFOT = 11
00144          EQ = 'R'
00145          CALL CGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
00146      $                X, 1, RCOND, R1, R2, W, RW, INFO )
00147          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
00148          INFOT = 12
00149          EQ = 'C'
00150          CALL CGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
00151      $                X, 1, RCOND, R1, R2, W, RW, INFO )
00152          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
00153          INFOT = 14
00154          CALL CGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 1,
00155      $                X, 2, RCOND, R1, R2, W, RW, INFO )
00156          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
00157          INFOT = 16
00158          CALL CGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 2,
00159      $                X, 1, RCOND, R1, R2, W, RW, INFO )
00160          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
00161 *
00162       ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN
00163 *
00164 *        CGBSV
00165 *
00166          SRNAMT = 'CGBSV '
00167          INFOT = 1
00168          CALL CGBSV( -1, 0, 0, 0, A, 1, IP, B, 1, INFO )
00169          CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
00170          INFOT = 2
00171          CALL CGBSV( 1, -1, 0, 0, A, 1, IP, B, 1, INFO )
00172          CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
00173          INFOT = 3
00174          CALL CGBSV( 1, 0, -1, 0, A, 1, IP, B, 1, INFO )
00175          CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
00176          INFOT = 4
00177          CALL CGBSV( 0, 0, 0, -1, A, 1, IP, B, 1, INFO )
00178          CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
00179          INFOT = 6
00180          CALL CGBSV( 1, 1, 1, 0, A, 3, IP, B, 1, INFO )
00181          CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
00182          INFOT = 9
00183          CALL CGBSV( 2, 0, 0, 0, A, 1, IP, B, 1, INFO )
00184          CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
00185 *
00186 *        CGBSVX
00187 *
00188          SRNAMT = 'CGBSVX'
00189          INFOT = 1
00190          CALL CGBSVX( '/', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00191      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00192          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00193          INFOT = 2
00194          CALL CGBSVX( 'N', '/', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00195      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00196          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00197          INFOT = 3
00198          CALL CGBSVX( 'N', 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00199      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00200          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00201          INFOT = 4
00202          CALL CGBSVX( 'N', 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00203      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00204          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00205          INFOT = 5
00206          CALL CGBSVX( 'N', 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, EQ, R, C,
00207      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00208          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00209          INFOT = 6
00210          CALL CGBSVX( 'N', 'N', 0, 0, 0, -1, A, 1, AF, 1, IP, EQ, R, C,
00211      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00212          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00213          INFOT = 8
00214          CALL CGBSVX( 'N', 'N', 1, 1, 1, 0, A, 2, AF, 4, IP, EQ, R, C,
00215      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00216          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00217          INFOT = 10
00218          CALL CGBSVX( 'N', 'N', 1, 1, 1, 0, A, 3, AF, 3, IP, EQ, R, C,
00219      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00220          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00221          INFOT = 12
00222          EQ = '/'
00223          CALL CGBSVX( 'F', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00224      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00225          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00226          INFOT = 13
00227          EQ = 'R'
00228          CALL CGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00229      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00230          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00231          INFOT = 14
00232          EQ = 'C'
00233          CALL CGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00234      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00235          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00236          INFOT = 16
00237          CALL CGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00238      $                B, 1, X, 2, RCOND, R1, R2, W, RW, INFO )
00239          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00240          INFOT = 18
00241          CALL CGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00242      $                B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
00243          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00244 *
00245       ELSE IF( LSAMEN( 2, C2, 'GT' ) ) THEN
00246 *
00247 *        CGTSV
00248 *
00249          SRNAMT = 'CGTSV '
00250          INFOT = 1
00251          CALL CGTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
00252      $               INFO )
00253          CALL CHKXER( 'CGTSV ', INFOT, NOUT, LERR, OK )
00254          INFOT = 2
00255          CALL CGTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
00256      $               INFO )
00257          CALL CHKXER( 'CGTSV ', INFOT, NOUT, LERR, OK )
00258          INFOT = 7
00259          CALL CGTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, INFO )
00260          CALL CHKXER( 'CGTSV ', INFOT, NOUT, LERR, OK )
00261 *
00262 *        CGTSVX
00263 *
00264          SRNAMT = 'CGTSVX'
00265          INFOT = 1
00266          CALL CGTSVX( '/', 'N', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
00267      $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
00268      $                IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00269          CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
00270          INFOT = 2
00271          CALL CGTSVX( 'N', '/', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
00272      $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
00273      $                IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00274          CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
00275          INFOT = 3
00276          CALL CGTSVX( 'N', 'N', -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
00277      $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
00278      $                IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00279          CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
00280          INFOT = 4
00281          CALL CGTSVX( 'N', 'N', 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
00282      $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
00283      $                IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00284          CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
00285          INFOT = 14
00286          CALL CGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
00287      $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
00288      $                IP, B, 1, X, 2, RCOND, R1, R2, W, RW, INFO )
00289          CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
00290          INFOT = 16
00291          CALL CGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
00292      $                AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
00293      $                IP, B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
00294          CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
00295 *
00296       ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN
00297 *
00298 *        CPOSV
00299 *
00300          SRNAMT = 'CPOSV '
00301          INFOT = 1
00302          CALL CPOSV( '/', 0, 0, A, 1, B, 1, INFO )
00303          CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
00304          INFOT = 2
00305          CALL CPOSV( 'U', -1, 0, A, 1, B, 1, INFO )
00306          CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
00307          INFOT = 3
00308          CALL CPOSV( 'U', 0, -1, A, 1, B, 1, INFO )
00309          CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
00310          INFOT = 5
00311          CALL CPOSV( 'U', 2, 0, A, 1, B, 2, INFO )
00312          CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
00313          INFOT = 7
00314          CALL CPOSV( 'U', 2, 0, A, 2, B, 1, INFO )
00315          CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
00316 *
00317 *        CPOSVX
00318 *
00319          SRNAMT = 'CPOSVX'
00320          INFOT = 1
00321          CALL CPOSVX( '/', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00322      $                RCOND, R1, R2, W, RW, INFO )
00323          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
00324          INFOT = 2
00325          CALL CPOSVX( 'N', '/', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00326      $                RCOND, R1, R2, W, RW, INFO )
00327          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
00328          INFOT = 3
00329          CALL CPOSVX( 'N', 'U', -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00330      $                RCOND, R1, R2, W, RW, INFO )
00331          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
00332          INFOT = 4
00333          CALL CPOSVX( 'N', 'U', 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00334      $                RCOND, R1, R2, W, RW, INFO )
00335          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
00336          INFOT = 6
00337          CALL CPOSVX( 'N', 'U', 2, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
00338      $                RCOND, R1, R2, W, RW, INFO )
00339          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
00340          INFOT = 8
00341          CALL CPOSVX( 'N', 'U', 2, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
00342      $                RCOND, R1, R2, W, RW, INFO )
00343          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
00344          INFOT = 9
00345          EQ = '/'
00346          CALL CPOSVX( 'F', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00347      $                RCOND, R1, R2, W, RW, INFO )
00348          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
00349          INFOT = 10
00350          EQ = 'Y'
00351          CALL CPOSVX( 'F', 'U', 1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00352      $                RCOND, R1, R2, W, RW, INFO )
00353          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
00354          INFOT = 12
00355          CALL CPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 1, X, 2,
00356      $                RCOND, R1, R2, W, RW, INFO )
00357          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
00358          INFOT = 14
00359          CALL CPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 2, X, 1,
00360      $                RCOND, R1, R2, W, RW, INFO )
00361          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
00362 *
00363       ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
00364 *
00365 *        CPPSV
00366 *
00367          SRNAMT = 'CPPSV '
00368          INFOT = 1
00369          CALL CPPSV( '/', 0, 0, A, B, 1, INFO )
00370          CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK )
00371          INFOT = 2
00372          CALL CPPSV( 'U', -1, 0, A, B, 1, INFO )
00373          CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK )
00374          INFOT = 3
00375          CALL CPPSV( 'U', 0, -1, A, B, 1, INFO )
00376          CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK )
00377          INFOT = 6
00378          CALL CPPSV( 'U', 2, 0, A, B, 1, INFO )
00379          CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK )
00380 *
00381 *        CPPSVX
00382 *
00383          SRNAMT = 'CPPSVX'
00384          INFOT = 1
00385          CALL CPPSVX( '/', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
00386      $                R1, R2, W, RW, INFO )
00387          CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
00388          INFOT = 2
00389          CALL CPPSVX( 'N', '/', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
00390      $                R1, R2, W, RW, INFO )
00391          CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
00392          INFOT = 3
00393          CALL CPPSVX( 'N', 'U', -1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
00394      $                R1, R2, W, RW, INFO )
00395          CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
00396          INFOT = 4
00397          CALL CPPSVX( 'N', 'U', 0, -1, A, AF, EQ, C, B, 1, X, 1, RCOND,
00398      $                R1, R2, W, RW, INFO )
00399          CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
00400          INFOT = 7
00401          EQ = '/'
00402          CALL CPPSVX( 'F', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
00403      $                R1, R2, W, RW, INFO )
00404          CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
00405          INFOT = 8
00406          EQ = 'Y'
00407          CALL CPPSVX( 'F', 'U', 1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
00408      $                R1, R2, W, RW, INFO )
00409          CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
00410          INFOT = 10
00411          CALL CPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 1, X, 2, RCOND,
00412      $                R1, R2, W, RW, INFO )
00413          CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
00414          INFOT = 12
00415          CALL CPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 2, X, 1, RCOND,
00416      $                R1, R2, W, RW, INFO )
00417          CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
00418 *
00419       ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
00420 *
00421 *        CPBSV
00422 *
00423          SRNAMT = 'CPBSV '
00424          INFOT = 1
00425          CALL CPBSV( '/', 0, 0, 0, A, 1, B, 1, INFO )
00426          CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
00427          INFOT = 2
00428          CALL CPBSV( 'U', -1, 0, 0, A, 1, B, 1, INFO )
00429          CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
00430          INFOT = 3
00431          CALL CPBSV( 'U', 1, -1, 0, A, 1, B, 1, INFO )
00432          CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
00433          INFOT = 4
00434          CALL CPBSV( 'U', 0, 0, -1, A, 1, B, 1, INFO )
00435          CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
00436          INFOT = 6
00437          CALL CPBSV( 'U', 1, 1, 0, A, 1, B, 2, INFO )
00438          CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
00439          INFOT = 8
00440          CALL CPBSV( 'U', 2, 0, 0, A, 1, B, 1, INFO )
00441          CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
00442 *
00443 *        CPBSVX
00444 *
00445          SRNAMT = 'CPBSVX'
00446          INFOT = 1
00447          CALL CPBSVX( '/', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00448      $                RCOND, R1, R2, W, RW, INFO )
00449          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
00450          INFOT = 2
00451          CALL CPBSVX( 'N', '/', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00452      $                RCOND, R1, R2, W, RW, INFO )
00453          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
00454          INFOT = 3
00455          CALL CPBSVX( 'N', 'U', -1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X,
00456      $                1, RCOND, R1, R2, W, RW, INFO )
00457          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
00458          INFOT = 4
00459          CALL CPBSVX( 'N', 'U', 1, -1, 0, A, 1, AF, 1, EQ, C, B, 1, X,
00460      $                1, RCOND, R1, R2, W, RW, INFO )
00461          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
00462          INFOT = 5
00463          CALL CPBSVX( 'N', 'U', 0, 0, -1, A, 1, AF, 1, EQ, C, B, 1, X,
00464      $                1, RCOND, R1, R2, W, RW, INFO )
00465          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
00466          INFOT = 7
00467          CALL CPBSVX( 'N', 'U', 1, 1, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
00468      $                RCOND, R1, R2, W, RW, INFO )
00469          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
00470          INFOT = 9
00471          CALL CPBSVX( 'N', 'U', 1, 1, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
00472      $                RCOND, R1, R2, W, RW, INFO )
00473          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
00474          INFOT = 10
00475          EQ = '/'
00476          CALL CPBSVX( 'F', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00477      $                RCOND, R1, R2, W, RW, INFO )
00478          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
00479          INFOT = 11
00480          EQ = 'Y'
00481          CALL CPBSVX( 'F', 'U', 1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00482      $                RCOND, R1, R2, W, RW, INFO )
00483          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
00484          INFOT = 13
00485          CALL CPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 2,
00486      $                RCOND, R1, R2, W, RW, INFO )
00487          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
00488          INFOT = 15
00489          CALL CPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 2, X, 1,
00490      $                RCOND, R1, R2, W, RW, INFO )
00491          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
00492 *
00493       ELSE IF( LSAMEN( 2, C2, 'PT' ) ) THEN
00494 *
00495 *        CPTSV
00496 *
00497          SRNAMT = 'CPTSV '
00498          INFOT = 1
00499          CALL CPTSV( -1, 0, R, A( 1, 1 ), B, 1, INFO )
00500          CALL CHKXER( 'CPTSV ', INFOT, NOUT, LERR, OK )
00501          INFOT = 2
00502          CALL CPTSV( 0, -1, R, A( 1, 1 ), B, 1, INFO )
00503          CALL CHKXER( 'CPTSV ', INFOT, NOUT, LERR, OK )
00504          INFOT = 6
00505          CALL CPTSV( 2, 0, R, A( 1, 1 ), B, 1, INFO )
00506          CALL CHKXER( 'CPTSV ', INFOT, NOUT, LERR, OK )
00507 *
00508 *        CPTSVX
00509 *
00510          SRNAMT = 'CPTSVX'
00511          INFOT = 1
00512          CALL CPTSVX( '/', 0, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
00513      $                1, RCOND, R1, R2, W, RW, INFO )
00514          CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
00515          INFOT = 2
00516          CALL CPTSVX( 'N', -1, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
00517      $                1, RCOND, R1, R2, W, RW, INFO )
00518          CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
00519          INFOT = 3
00520          CALL CPTSVX( 'N', 0, -1, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
00521      $                1, RCOND, R1, R2, W, RW, INFO )
00522          CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
00523          INFOT = 9
00524          CALL CPTSVX( 'N', 2, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
00525      $                2, RCOND, R1, R2, W, RW, INFO )
00526          CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
00527          INFOT = 11
00528          CALL CPTSVX( 'N', 2, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 2, X,
00529      $                1, RCOND, R1, R2, W, RW, INFO )
00530          CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
00531 *
00532       ELSE IF( LSAMEN( 2, C2, 'HE' ) ) THEN
00533 *
00534 *        CHESV
00535 *
00536          SRNAMT = 'CHESV '
00537          INFOT = 1
00538          CALL CHESV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
00539          CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
00540          INFOT = 2
00541          CALL CHESV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
00542          CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
00543          INFOT = 3
00544          CALL CHESV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
00545          CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
00546          INFOT = 5
00547          CALL CHESV( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO )
00548          CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
00549          INFOT = 8
00550          CALL CHESV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
00551          CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
00552 *
00553 *        CHESVX
00554 *
00555          SRNAMT = 'CHESVX'
00556          INFOT = 1
00557          CALL CHESVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
00558      $                RCOND, R1, R2, W, 1, RW, INFO )
00559          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
00560          INFOT = 2
00561          CALL CHESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
00562      $                RCOND, R1, R2, W, 1, RW, INFO )
00563          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
00564          INFOT = 3
00565          CALL CHESVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
00566      $                RCOND, R1, R2, W, 1, RW, INFO )
00567          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
00568          INFOT = 4
00569          CALL CHESVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
00570      $                RCOND, R1, R2, W, 1, RW, INFO )
00571          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
00572          INFOT = 6
00573          CALL CHESVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
00574      $                RCOND, R1, R2, W, 4, RW, INFO )
00575          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
00576          INFOT = 8
00577          CALL CHESVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
00578      $                RCOND, R1, R2, W, 4, RW, INFO )
00579          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
00580          INFOT = 11
00581          CALL CHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
00582      $                RCOND, R1, R2, W, 4, RW, INFO )
00583          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
00584          INFOT = 13
00585          CALL CHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
00586      $                RCOND, R1, R2, W, 4, RW, INFO )
00587          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
00588          INFOT = 18
00589          CALL CHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
00590      $                RCOND, R1, R2, W, 3, RW, INFO )
00591          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
00592 *
00593       ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN
00594 *
00595 *        CHPSV
00596 *
00597          SRNAMT = 'CHPSV '
00598          INFOT = 1
00599          CALL CHPSV( '/', 0, 0, A, IP, B, 1, INFO )
00600          CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
00601          INFOT = 2
00602          CALL CHPSV( 'U', -1, 0, A, IP, B, 1, INFO )
00603          CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
00604          INFOT = 3
00605          CALL CHPSV( 'U', 0, -1, A, IP, B, 1, INFO )
00606          CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
00607          INFOT = 7
00608          CALL CHPSV( 'U', 2, 0, A, IP, B, 1, INFO )
00609          CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
00610 *
00611 *        CHPSVX
00612 *
00613          SRNAMT = 'CHPSVX'
00614          INFOT = 1
00615          CALL CHPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
00616      $                R2, W, RW, INFO )
00617          CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
00618          INFOT = 2
00619          CALL CHPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
00620      $                R2, W, RW, INFO )
00621          CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
00622          INFOT = 3
00623          CALL CHPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
00624      $                R2, W, RW, INFO )
00625          CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
00626          INFOT = 4
00627          CALL CHPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
00628      $                R2, W, RW, INFO )
00629          CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
00630          INFOT = 9
00631          CALL CHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
00632      $                R2, W, RW, INFO )
00633          CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
00634          INFOT = 11
00635          CALL CHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
00636      $                R2, W, RW, INFO )
00637          CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
00638 *
00639       ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN
00640 *
00641 *        CSYSV
00642 *
00643          SRNAMT = 'CSYSV '
00644          INFOT = 1
00645          CALL CSYSV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
00646          CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
00647          INFOT = 2
00648          CALL CSYSV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
00649          CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
00650          INFOT = 3
00651          CALL CSYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
00652          CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
00653          INFOT = 8
00654          CALL CSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
00655          CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
00656 *
00657 *        CSYSVX
00658 *
00659          SRNAMT = 'CSYSVX'
00660          INFOT = 1
00661          CALL CSYSVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
00662      $                RCOND, R1, R2, W, 1, RW, INFO )
00663          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
00664          INFOT = 2
00665          CALL CSYSVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
00666      $                RCOND, R1, R2, W, 1, RW, INFO )
00667          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
00668          INFOT = 3
00669          CALL CSYSVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
00670      $                RCOND, R1, R2, W, 1, RW, INFO )
00671          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
00672          INFOT = 4
00673          CALL CSYSVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
00674      $                RCOND, R1, R2, W, 1, RW, INFO )
00675          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
00676          INFOT = 6
00677          CALL CSYSVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
00678      $                RCOND, R1, R2, W, 4, RW, INFO )
00679          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
00680          INFOT = 8
00681          CALL CSYSVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
00682      $                RCOND, R1, R2, W, 4, RW, INFO )
00683          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
00684          INFOT = 11
00685          CALL CSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
00686      $                RCOND, R1, R2, W, 4, RW, INFO )
00687          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
00688          INFOT = 13
00689          CALL CSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
00690      $                RCOND, R1, R2, W, 4, RW, INFO )
00691          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
00692          INFOT = 18
00693          CALL CSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
00694      $                RCOND, R1, R2, W, 3, RW, INFO )
00695          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
00696 *
00697       ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
00698 *
00699 *        CSPSV
00700 *
00701          SRNAMT = 'CSPSV '
00702          INFOT = 1
00703          CALL CSPSV( '/', 0, 0, A, IP, B, 1, INFO )
00704          CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
00705          INFOT = 2
00706          CALL CSPSV( 'U', -1, 0, A, IP, B, 1, INFO )
00707          CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
00708          INFOT = 3
00709          CALL CSPSV( 'U', 0, -1, A, IP, B, 1, INFO )
00710          CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
00711          INFOT = 7
00712          CALL CSPSV( 'U', 2, 0, A, IP, B, 1, INFO )
00713          CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
00714 *
00715 *        CSPSVX
00716 *
00717          SRNAMT = 'CSPSVX'
00718          INFOT = 1
00719          CALL CSPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
00720      $                R2, W, RW, INFO )
00721          CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
00722          INFOT = 2
00723          CALL CSPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
00724      $                R2, W, RW, INFO )
00725          CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
00726          INFOT = 3
00727          CALL CSPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
00728      $                R2, W, RW, INFO )
00729          CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
00730          INFOT = 4
00731          CALL CSPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
00732      $                R2, W, RW, INFO )
00733          CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
00734          INFOT = 9
00735          CALL CSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
00736      $                R2, W, RW, INFO )
00737          CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
00738          INFOT = 11
00739          CALL CSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
00740      $                R2, W, RW, INFO )
00741          CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
00742       END IF
00743 *
00744 *     Print a summary line.
00745 *
00746       IF( OK ) THEN
00747          WRITE( NOUT, FMT = 9999 )PATH
00748       ELSE
00749          WRITE( NOUT, FMT = 9998 )PATH
00750       END IF
00751 *
00752  9999 FORMAT( 1X, A3, ' drivers passed the tests of the error exits' )
00753  9998 FORMAT( ' *** ', A3, ' drivers failed the tests of the error ',
00754      $      'exits ***' )
00755 *
00756       RETURN
00757 *
00758 *     End of CERRVX
00759 *
00760       END
 All Files Functions