1       SUBROUTINE CERRVX( PATH, NUNIT )
   2 *
   3 *  -- LAPACK test routine (version 3.2.1) --
   4 *
   5 *  -- April 2009                                                   --
   6 *
   7 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
   8 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
   9 *
  10 *     .. Scalar Arguments ..
  11       CHARACTER*3        PATH
  12       INTEGER            NUNIT
  13 *     ..
  14 *
  15 *  Purpose
  16 *  =======
  17 *
  18 *  CERRVX tests the error exits for the COMPLEX driver routines
  19 *  for solving linear systems of equations.
  20 *
  21 *  Arguments
  22 *  =========
  23 *
  24 *  PATH    (input) CHARACTER*3
  25 *          The LAPACK path name for the routines to be tested.
  26 *
  27 *  NUNIT   (input) INTEGER
  28 *          The unit number for output.
  29 *
  30 *  =====================================================================
  31 *
  32 *     .. Parameters ..
  33       INTEGER            NMAX
  34       PARAMETER          ( NMAX = 4 )
  35 *     ..
  36 *     .. Local Scalars ..
  37       CHARACTER          EQ
  38       CHARACTER*2        C2
  39       INTEGER            I, INFO, J, N_ERR_BNDS, NPARAMS
  40       REAL               RCOND, RPVGRW, BERR
  41 *     ..
  42 *     .. Local Arrays ..
  43       INTEGER            IP( NMAX )
  44       REAL               C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
  45      $                   RF( NMAX ), RW( NMAX ), ERR_BNDS_N( NMAX, 3 ),
  46      $                   ERR_BNDS_C( NMAX, 3 ), PARAMS
  47       COMPLEX            A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
  48      $                   W( 2*NMAX ), X( NMAX )
  49 *     ..
  50 *     .. External Functions ..
  51       LOGICAL            LSAMEN
  52       EXTERNAL           LSAMEN
  53 *     ..
  54 *     .. External Subroutines ..
  55       EXTERNAL           CGBSV, CGBSVX, CGESV, CGESVX, CGTSV, CGTSVX,
  56      $                   CHESV, CHESVX, CHKXER, CHPSV, CHPSVX, CPBSV,
  57      $                   CPBSVX, CPOSV, CPOSVX, CPPSV, CPPSVX, CPTSV,
  58      $                   CPTSVX, CSPSV, CSPSVX, CSYSV, CSYSVX, CGESVXX,
  59      $                   CPOSVXX, CSYSVXX, CHESVXX, CGBSVXX
  60 *     ..
  61 *     .. Scalars in Common ..
  62       LOGICAL            LERR, OK
  63       CHARACTER*32       SRNAMT
  64       INTEGER            INFOT, NOUT
  65 *     ..
  66 *     .. Common blocks ..
  67       COMMON             / INFOC / INFOT, NOUT, OK, LERR
  68       COMMON             / SRNAMC / SRNAMT
  69 *     ..
  70 *     .. Intrinsic Functions ..
  71       INTRINSIC          CMPLX, REAL
  72 *     ..
  73 *     .. Executable Statements ..
  74 *
  75       NOUT = NUNIT
  76       WRITE( NOUT, FMT = * )
  77       C2 = PATH( 23 )
  78 *
  79 *     Set the variables to innocuous values.
  80 *
  81       DO 20 J = 1, NMAX
  82          DO 10 I = 1, NMAX
  83             A( I, J ) = CMPLX1/ REAL( I+J ), -1/ REAL( I+J ) )
  84             AF( I, J ) = CMPLX1/ REAL( I+J ), -1/ REAL( I+J ) )
  85    10    CONTINUE
  86          B( J ) = 0.
  87          R1( J ) = 0.
  88          R2( J ) = 0.
  89          W( J ) = 0.
  90          X( J ) = 0.
  91          C( J ) = 0.
  92          R( J ) = 0.
  93          IP( J ) = J
  94    20 CONTINUE
  95       EQ = ' '
  96       OK = .TRUE.
  97 *
  98       IF( LSAMEN( 2, C2, 'GE' ) ) THEN
  99 *
 100 *        CGESV
 101 *
 102          SRNAMT = 'CGESV '
 103          INFOT = 1
 104          CALL CGESV( -10, A, 1, IP, B, 1, INFO )
 105          CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK )
 106          INFOT = 2
 107          CALL CGESV( 0-1, A, 1, IP, B, 1, INFO )
 108          CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK )
 109          INFOT = 4
 110          CALL CGESV( 21, A, 1, IP, B, 2, INFO )
 111          CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK )
 112          INFOT = 7
 113          CALL CGESV( 21, A, 2, IP, B, 1, INFO )
 114          CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK )
 115 *
 116 *        CGESVX
 117 *
 118          SRNAMT = 'CGESVX'
 119          INFOT = 1
 120          CALL CGESVX( '/''N'00, A, 1, AF, 1, IP, EQ, R, C, B, 1,
 121      $                X, 1, RCOND, R1, R2, W, RW, INFO )
 122          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
 123          INFOT = 2
 124          CALL CGESVX( 'N''/'00, A, 1, AF, 1, IP, EQ, R, C, B, 1,
 125      $                X, 1, RCOND, R1, R2, W, RW, INFO )
 126          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
 127          INFOT = 3
 128          CALL CGESVX( 'N''N'-10, A, 1, AF, 1, IP, EQ, R, C, B, 1,
 129      $                X, 1, RCOND, R1, R2, W, RW, INFO )
 130          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
 131          INFOT = 4
 132          CALL CGESVX( 'N''N'0-1, A, 1, AF, 1, IP, EQ, R, C, B, 1,
 133      $                X, 1, RCOND, R1, R2, W, RW, INFO )
 134          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
 135          INFOT = 6
 136          CALL CGESVX( 'N''N'21, A, 1, AF, 2, IP, EQ, R, C, B, 2,
 137      $                X, 2, RCOND, R1, R2, W, RW, INFO )
 138          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
 139          INFOT = 8
 140          CALL CGESVX( 'N''N'21, A, 2, AF, 1, IP, EQ, R, C, B, 2,
 141      $                X, 2, RCOND, R1, R2, W, RW, INFO )
 142          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
 143          INFOT = 10
 144          EQ = '/'
 145          CALL CGESVX( 'F''N'00, A, 1, AF, 1, IP, EQ, R, C, B, 1,
 146      $                X, 1, RCOND, R1, R2, W, RW, INFO )
 147          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
 148          INFOT = 11
 149          EQ = 'R'
 150          CALL CGESVX( 'F''N'10, A, 1, AF, 1, IP, EQ, R, C, B, 1,
 151      $                X, 1, RCOND, R1, R2, W, RW, INFO )
 152          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
 153          INFOT = 12
 154          EQ = 'C'
 155          CALL CGESVX( 'F''N'10, A, 1, AF, 1, IP, EQ, R, C, B, 1,
 156      $                X, 1, RCOND, R1, R2, W, RW, INFO )
 157          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
 158          INFOT = 14
 159          CALL CGESVX( 'N''N'21, A, 2, AF, 2, IP, EQ, R, C, B, 1,
 160      $                X, 2, RCOND, R1, R2, W, RW, INFO )
 161          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
 162          INFOT = 16
 163          CALL CGESVX( 'N''N'21, A, 2, AF, 2, IP, EQ, R, C, B, 2,
 164      $                X, 1, RCOND, R1, R2, W, RW, INFO )
 165          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
 166 *
 167 *        CGESVXX
 168 *
 169          N_ERR_BNDS = 3
 170          NPARAMS = 0
 171          SRNAMT = 'CGESVXX'
 172          INFOT = 1
 173          CALL CGESVXX( '/''N'00, A, 1, AF, 1, IP, EQ, R, C, B, 1,
 174      $                X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 175      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 176          CALL CHKXER( 'CGESVXX', INFOT, NOUT, LERR, OK )
 177          INFOT = 2
 178          CALL CGESVXX( 'N''/'00, A, 1, AF, 1, IP, EQ, R, C, B, 1,
 179      $                X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 180      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 181          CALL CHKXER( 'CGESVXX', INFOT, NOUT, LERR, OK )
 182          INFOT = 3
 183          CALL CGESVXX( 'N''N'-10, A, 1, AF, 1, IP, EQ, R, C, B, 1,
 184      $                X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 185      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 186          CALL CHKXER( 'CGESVXX', INFOT, NOUT, LERR, OK )
 187          INFOT = 4
 188          CALL CGESVXX( 'N''N'0-1, A, 1, AF, 1, IP, EQ, R, C, B, 1,
 189      $                X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 190      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 191          CALL CHKXER( 'CGESVXX', INFOT, NOUT, LERR, OK )
 192          INFOT = 6
 193          CALL CGESVXX( 'N''N'21, A, 1, AF, 2, IP, EQ, R, C, B, 2,
 194      $                X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 195      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 196          CALL CHKXER( 'CGESVXX', INFOT, NOUT, LERR, OK )
 197          INFOT = 8
 198          CALL CGESVXX( 'N''N'21, A, 2, AF, 1, IP, EQ, R, C, B, 2,
 199      $                X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 200      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 201          CALL CHKXER( 'CGESVXX', INFOT, NOUT, LERR, OK )
 202          INFOT = 10
 203          EQ = '/'
 204          CALL CGESVXX( 'F''N'00, A, 1, AF, 1, IP, EQ, R, C, B, 1,
 205      $                X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 206      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 207          CALL CHKXER( 'CGESVXX', INFOT, NOUT, LERR, OK )
 208          INFOT = 11
 209          EQ = 'R'
 210          CALL CGESVXX( 'F''N'10, A, 1, AF, 1, IP, EQ, R, C, B, 1,
 211      $                X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 212      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 213          CALL CHKXER( 'CGESVXX', INFOT, NOUT, LERR, OK )
 214          INFOT = 12
 215          EQ = 'C'
 216          CALL CGESVXX( 'F''N'10, A, 1, AF, 1, IP, EQ, R, C, B, 1,
 217      $                X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 218      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 219          CALL CHKXER( 'CGESVXX', INFOT, NOUT, LERR, OK )
 220          INFOT = 14
 221          CALL CGESVXX( 'N''N'21, A, 2, AF, 2, IP, EQ, R, C, B, 1,
 222      $                X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 223      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 224          CALL CHKXER( 'CGESVXX', INFOT, NOUT, LERR, OK )
 225          INFOT = 16
 226          CALL CGESVXX( 'N''N'21, A, 2, AF, 2, IP, EQ, R, C, B, 2,
 227      $                X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 228      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 229          CALL CHKXER( 'CGESVXX', INFOT, NOUT, LERR, OK )
 230 *
 231       ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN
 232 *
 233 *        CGBSV
 234 *
 235          SRNAMT = 'CGBSV '
 236          INFOT = 1
 237          CALL CGBSV( -1000, A, 1, IP, B, 1, INFO )
 238          CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
 239          INFOT = 2
 240          CALL CGBSV( 1-100, A, 1, IP, B, 1, INFO )
 241          CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
 242          INFOT = 3
 243          CALL CGBSV( 10-10, A, 1, IP, B, 1, INFO )
 244          CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
 245          INFOT = 4
 246          CALL CGBSV( 000-1, A, 1, IP, B, 1, INFO )
 247          CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
 248          INFOT = 6
 249          CALL CGBSV( 1110, A, 3, IP, B, 1, INFO )
 250          CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
 251          INFOT = 9
 252          CALL CGBSV( 2000, A, 1, IP, B, 1, INFO )
 253          CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
 254 *
 255 *        CGBSVX
 256 *
 257          SRNAMT = 'CGBSVX'
 258          INFOT = 1
 259          CALL CGBSVX( '/''N'0000, A, 1, AF, 1, IP, EQ, R, C,
 260      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
 261          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
 262          INFOT = 2
 263          CALL CGBSVX( 'N''/'0000, A, 1, AF, 1, IP, EQ, R, C,
 264      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
 265          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
 266          INFOT = 3
 267          CALL CGBSVX( 'N''N'-1000, A, 1, AF, 1, IP, EQ, R, C,
 268      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
 269          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
 270          INFOT = 4
 271          CALL CGBSVX( 'N''N'1-100, A, 1, AF, 1, IP, EQ, R, C,
 272      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
 273          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
 274          INFOT = 5
 275          CALL CGBSVX( 'N''N'10-10, A, 1, AF, 1, IP, EQ, R, C,
 276      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
 277          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
 278          INFOT = 6
 279          CALL CGBSVX( 'N''N'000-1, A, 1, AF, 1, IP, EQ, R, C,
 280      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
 281          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
 282          INFOT = 8
 283          CALL CGBSVX( 'N''N'1110, A, 2, AF, 4, IP, EQ, R, C,
 284      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
 285          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
 286          INFOT = 10
 287          CALL CGBSVX( 'N''N'1110, A, 3, AF, 3, IP, EQ, R, C,
 288      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
 289          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
 290          INFOT = 12
 291          EQ = '/'
 292          CALL CGBSVX( 'F''N'0000, A, 1, AF, 1, IP, EQ, R, C,
 293      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
 294          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
 295          INFOT = 13
 296          EQ = 'R'
 297          CALL CGBSVX( 'F''N'1000, A, 1, AF, 1, IP, EQ, R, C,
 298      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
 299          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
 300          INFOT = 14
 301          EQ = 'C'
 302          CALL CGBSVX( 'F''N'1000, A, 1, AF, 1, IP, EQ, R, C,
 303      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
 304          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
 305          INFOT = 16
 306          CALL CGBSVX( 'N''N'2000, A, 1, AF, 1, IP, EQ, R, C,
 307      $                B, 1, X, 2, RCOND, R1, R2, W, RW, INFO )
 308          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
 309          INFOT = 18
 310          CALL CGBSVX( 'N''N'2000, A, 1, AF, 1, IP, EQ, R, C,
 311      $                B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
 312          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
 313 *
 314 *        CGBSVXX
 315 *
 316          N_ERR_BNDS = 3
 317          NPARAMS = 0
 318          SRNAMT = 'CGBSVXX'
 319          INFOT = 1
 320          CALL CGBSVXX( '/''N'0000, A, 1, AF, 1, IP, EQ, R, C,
 321      $                B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
 322      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
 323      $                INFO )
 324          CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
 325          INFOT = 2
 326          CALL CGBSVXX( 'N''/'0110, A, 1, AF, 1, IP, EQ, R, C,
 327      $                B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
 328      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
 329      $                INFO )
 330          CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
 331          INFOT = 3
 332          CALL CGBSVXX( 'N''N'-1110, A, 1, AF, 1, IP, EQ, R, C,
 333      $                B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
 334      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
 335      $                INFO )
 336          CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
 337          INFOT = 4
 338          CALL CGBSVXX( 'N''N'2-110, A, 1, AF, 1, IP, EQ,
 339      $                R, C, B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
 340      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
 341      $                INFO )
 342          CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
 343          INFOT = 5
 344          CALL CGBSVXX( 'N''N'21-10, A, 1, AF, 1, IP, EQ,
 345      $                R, C, B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
 346      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
 347      $                INFO )
 348          CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
 349          INFOT = 6
 350          CALL CGBSVXX( 'N''N'011-1, A, 1, AF, 1, IP, EQ, R, C,
 351      $                B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
 352      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
 353      $                INFO )
 354          CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
 355          INFOT = 8
 356          CALL CGBSVXX( 'N''N'2111, A, 2, AF, 2, IP, EQ, R, C,
 357      $                B, 2, X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS,
 358      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
 359      $                INFO )
 360          CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
 361          INFOT = 10
 362          CALL CGBSVXX( 'N''N'2111, A, 3, AF, 3, IP, EQ, R, C,
 363      $                B, 2, X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS,
 364      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
 365      $                INFO )
 366          CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
 367          INFOT = 12
 368          EQ = '/'
 369          CALL CGBSVXX( 'F''N'0110, A, 3, AF, 4, IP, EQ, R, C,
 370      $                B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
 371      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
 372      $                INFO )
 373          CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
 374          INFOT = 13
 375          EQ = 'R'
 376          CALL CGBSVXX( 'F''N'1110, A, 3, AF, 4, IP, EQ, R, C,
 377      $                B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
 378      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
 379      $                INFO )
 380          CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
 381          INFOT = 14
 382          EQ = 'C'
 383          CALL CGBSVXX( 'F''N'1110, A, 3, AF, 4, IP, EQ, R, C,
 384      $                B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
 385      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
 386      $                INFO )
 387          CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
 388          INFOT = 15
 389          CALL CGBSVXX( 'N''N'2111, A, 3, AF, 4, IP, EQ, R, C,
 390      $                B, 1, X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS,
 391      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
 392      $                INFO )
 393          CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
 394          INFOT = 16
 395          CALL CGBSVXX( 'N''N'2111, A, 3, AF, 4, IP, EQ, R, C,
 396      $                B, 2, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
 397      $                ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
 398      $                INFO )
 399          CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
 400 *
 401       ELSE IF( LSAMEN( 2, C2, 'GT' ) ) THEN
 402 *
 403 *        CGTSV
 404 *
 405          SRNAMT = 'CGTSV '
 406          INFOT = 1
 407          CALL CGTSV( -10, A( 11 ), A( 12 ), A( 13 ), B, 1,
 408      $               INFO )
 409          CALL CHKXER( 'CGTSV ', INFOT, NOUT, LERR, OK )
 410          INFOT = 2
 411          CALL CGTSV( 0-1, A( 11 ), A( 12 ), A( 13 ), B, 1,
 412      $               INFO )
 413          CALL CHKXER( 'CGTSV ', INFOT, NOUT, LERR, OK )
 414          INFOT = 7
 415          CALL CGTSV( 20, A( 11 ), A( 12 ), A( 13 ), B, 1, INFO )
 416          CALL CHKXER( 'CGTSV ', INFOT, NOUT, LERR, OK )
 417 *
 418 *        CGTSVX
 419 *
 420          SRNAMT = 'CGTSVX'
 421          INFOT = 1
 422          CALL CGTSVX( '/''N'00, A( 11 ), A( 12 ), A( 13 ),
 423      $                AF( 11 ), AF( 12 ), AF( 13 ), AF( 14 ),
 424      $                IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
 425          CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
 426          INFOT = 2
 427          CALL CGTSVX( 'N''/'00, A( 11 ), A( 12 ), A( 13 ),
 428      $                AF( 11 ), AF( 12 ), AF( 13 ), AF( 14 ),
 429      $                IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
 430          CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
 431          INFOT = 3
 432          CALL CGTSVX( 'N''N'-10, A( 11 ), A( 12 ), A( 13 ),
 433      $                AF( 11 ), AF( 12 ), AF( 13 ), AF( 14 ),
 434      $                IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
 435          CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
 436          INFOT = 4
 437          CALL CGTSVX( 'N''N'0-1, A( 11 ), A( 12 ), A( 13 ),
 438      $                AF( 11 ), AF( 12 ), AF( 13 ), AF( 14 ),
 439      $                IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
 440          CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
 441          INFOT = 14
 442          CALL CGTSVX( 'N''N'20, A( 11 ), A( 12 ), A( 13 ),
 443      $                AF( 11 ), AF( 12 ), AF( 13 ), AF( 14 ),
 444      $                IP, B, 1, X, 2, RCOND, R1, R2, W, RW, INFO )
 445          CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
 446          INFOT = 16
 447          CALL CGTSVX( 'N''N'20, A( 11 ), A( 12 ), A( 13 ),
 448      $                AF( 11 ), AF( 12 ), AF( 13 ), AF( 14 ),
 449      $                IP, B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
 450          CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
 451 *
 452       ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN
 453 *
 454 *        CPOSV
 455 *
 456          SRNAMT = 'CPOSV '
 457          INFOT = 1
 458          CALL CPOSV( '/'00, A, 1, B, 1, INFO )
 459          CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
 460          INFOT = 2
 461          CALL CPOSV( 'U'-10, A, 1, B, 1, INFO )
 462          CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
 463          INFOT = 3
 464          CALL CPOSV( 'U'0-1, A, 1, B, 1, INFO )
 465          CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
 466          INFOT = 5
 467          CALL CPOSV( 'U'20, A, 1, B, 2, INFO )
 468          CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
 469          INFOT = 7
 470          CALL CPOSV( 'U'20, A, 2, B, 1, INFO )
 471          CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
 472 *
 473 *        CPOSVX
 474 *
 475          SRNAMT = 'CPOSVX'
 476          INFOT = 1
 477          CALL CPOSVX( '/''U'00, A, 1, AF, 1, EQ, C, B, 1, X, 1,
 478      $                RCOND, R1, R2, W, RW, INFO )
 479          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
 480          INFOT = 2
 481          CALL CPOSVX( 'N''/'00, A, 1, AF, 1, EQ, C, B, 1, X, 1,
 482      $                RCOND, R1, R2, W, RW, INFO )
 483          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
 484          INFOT = 3
 485          CALL CPOSVX( 'N''U'-10, A, 1, AF, 1, EQ, C, B, 1, X, 1,
 486      $                RCOND, R1, R2, W, RW, INFO )
 487          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
 488          INFOT = 4
 489          CALL CPOSVX( 'N''U'0-1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
 490      $                RCOND, R1, R2, W, RW, INFO )
 491          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
 492          INFOT = 6
 493          CALL CPOSVX( 'N''U'20, A, 1, AF, 2, EQ, C, B, 2, X, 2,
 494      $                RCOND, R1, R2, W, RW, INFO )
 495          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
 496          INFOT = 8
 497          CALL CPOSVX( 'N''U'20, A, 2, AF, 1, EQ, C, B, 2, X, 2,
 498      $                RCOND, R1, R2, W, RW, INFO )
 499          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
 500          INFOT = 9
 501          EQ = '/'
 502          CALL CPOSVX( 'F''U'00, A, 1, AF, 1, EQ, C, B, 1, X, 1,
 503      $                RCOND, R1, R2, W, RW, INFO )
 504          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
 505          INFOT = 10
 506          EQ = 'Y'
 507          CALL CPOSVX( 'F''U'10, A, 1, AF, 1, EQ, C, B, 1, X, 1,
 508      $                RCOND, R1, R2, W, RW, INFO )
 509          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
 510          INFOT = 12
 511          CALL CPOSVX( 'N''U'20, A, 2, AF, 2, EQ, C, B, 1, X, 2,
 512      $                RCOND, R1, R2, W, RW, INFO )
 513          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
 514          INFOT = 14
 515          CALL CPOSVX( 'N''U'20, A, 2, AF, 2, EQ, C, B, 2, X, 1,
 516      $                RCOND, R1, R2, W, RW, INFO )
 517          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
 518 *
 519 *        CPOSVXX
 520 *
 521          N_ERR_BNDS = 3
 522          NPARAMS = 0
 523          SRNAMT = 'CPOSVXX'
 524          INFOT = 1
 525          CALL CPOSVXX( '/''U'00, A, 1, AF, 1, EQ, C, B, 1, X, 1,
 526      $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 527      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 528          CALL CHKXER( 'CPOSVXX', INFOT, NOUT, LERR, OK )
 529          INFOT = 2
 530          CALL CPOSVXX( 'N''/'00, A, 1, AF, 1, EQ, C, B, 1, X, 1,
 531      $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 532      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 533          CALL CHKXER( 'CPOSVXX', INFOT, NOUT, LERR, OK )
 534          INFOT = 3
 535          CALL CPOSVXX( 'N''U'-10, A, 1, AF, 1, EQ, C, B, 1, X, 1,
 536      $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 537      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 538          CALL CHKXER( 'CPOSVXX', INFOT, NOUT, LERR, OK )
 539          INFOT = 4
 540          CALL CPOSVXX( 'N''U'0-1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
 541      $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 542      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 543          CALL CHKXER( 'CPOSVXX', INFOT, NOUT, LERR, OK )
 544          INFOT = 6
 545          CALL CPOSVXX( 'N''U'20, A, 1, AF, 2, EQ, C, B, 2, X, 2,
 546      $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 547      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 548          CALL CHKXER( 'CPOSVXX', INFOT, NOUT, LERR, OK )
 549          INFOT = 8
 550          CALL CPOSVXX( 'N''U'20, A, 2, AF, 1, EQ, C, B, 2, X, 2,
 551      $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 552      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 553          CALL CHKXER( 'CPOSVXX', INFOT, NOUT, LERR, OK )
 554          INFOT = 9
 555          EQ = '/'
 556          CALL CPOSVXX( 'F''U'00, A, 1, AF, 1, EQ, C, B, 1, X, 1,
 557      $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 558      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 559          CALL CHKXER( 'CPOSVXX', INFOT, NOUT, LERR, OK )
 560          INFOT = 10
 561          EQ = 'Y'
 562          CALL CPOSVXX( 'F''U'10, A, 1, AF, 1, EQ, C, B, 1, X, 1,
 563      $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 564      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 565          CALL CHKXER( 'CPOSVXX', INFOT, NOUT, LERR, OK )
 566          INFOT = 12
 567          CALL CPOSVXX( 'N''U'20, A, 2, AF, 2, EQ, C, B, 1, X, 2,
 568      $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 569      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 570          CALL CHKXER( 'CPOSVXX', INFOT, NOUT, LERR, OK )
 571          INFOT = 14
 572          CALL CPOSVXX( 'N''U'20, A, 2, AF, 2, EQ, C, B, 2, X, 1,
 573      $                RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 574      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 575          CALL CHKXER( 'CPOSVXX', INFOT, NOUT, LERR, OK )
 576 *
 577       ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
 578 *
 579 *        CPPSV
 580 *
 581          SRNAMT = 'CPPSV '
 582          INFOT = 1
 583          CALL CPPSV( '/'00, A, B, 1, INFO )
 584          CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK )
 585          INFOT = 2
 586          CALL CPPSV( 'U'-10, A, B, 1, INFO )
 587          CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK )
 588          INFOT = 3
 589          CALL CPPSV( 'U'0-1, A, B, 1, INFO )
 590          CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK )
 591          INFOT = 6
 592          CALL CPPSV( 'U'20, A, B, 1, INFO )
 593          CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK )
 594 *
 595 *        CPPSVX
 596 *
 597          SRNAMT = 'CPPSVX'
 598          INFOT = 1
 599          CALL CPPSVX( '/''U'00, A, AF, EQ, C, B, 1, X, 1, RCOND,
 600      $                R1, R2, W, RW, INFO )
 601          CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
 602          INFOT = 2
 603          CALL CPPSVX( 'N''/'00, A, AF, EQ, C, B, 1, X, 1, RCOND,
 604      $                R1, R2, W, RW, INFO )
 605          CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
 606          INFOT = 3
 607          CALL CPPSVX( 'N''U'-10, A, AF, EQ, C, B, 1, X, 1, RCOND,
 608      $                R1, R2, W, RW, INFO )
 609          CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
 610          INFOT = 4
 611          CALL CPPSVX( 'N''U'0-1, A, AF, EQ, C, B, 1, X, 1, RCOND,
 612      $                R1, R2, W, RW, INFO )
 613          CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
 614          INFOT = 7
 615          EQ = '/'
 616          CALL CPPSVX( 'F''U'00, A, AF, EQ, C, B, 1, X, 1, RCOND,
 617      $                R1, R2, W, RW, INFO )
 618          CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
 619          INFOT = 8
 620          EQ = 'Y'
 621          CALL CPPSVX( 'F''U'10, A, AF, EQ, C, B, 1, X, 1, RCOND,
 622      $                R1, R2, W, RW, INFO )
 623          CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
 624          INFOT = 10
 625          CALL CPPSVX( 'N''U'20, A, AF, EQ, C, B, 1, X, 2, RCOND,
 626      $                R1, R2, W, RW, INFO )
 627          CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
 628          INFOT = 12
 629          CALL CPPSVX( 'N''U'20, A, AF, EQ, C, B, 2, X, 1, RCOND,
 630      $                R1, R2, W, RW, INFO )
 631          CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
 632 *
 633       ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
 634 *
 635 *        CPBSV
 636 *
 637          SRNAMT = 'CPBSV '
 638          INFOT = 1
 639          CALL CPBSV( '/'000, A, 1, B, 1, INFO )
 640          CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
 641          INFOT = 2
 642          CALL CPBSV( 'U'-100, A, 1, B, 1, INFO )
 643          CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
 644          INFOT = 3
 645          CALL CPBSV( 'U'1-10, A, 1, B, 1, INFO )
 646          CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
 647          INFOT = 4
 648          CALL CPBSV( 'U'00-1, A, 1, B, 1, INFO )
 649          CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
 650          INFOT = 6
 651          CALL CPBSV( 'U'110, A, 1, B, 2, INFO )
 652          CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
 653          INFOT = 8
 654          CALL CPBSV( 'U'200, A, 1, B, 1, INFO )
 655          CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
 656 *
 657 *        CPBSVX
 658 *
 659          SRNAMT = 'CPBSVX'
 660          INFOT = 1
 661          CALL CPBSVX( '/''U'000, A, 1, AF, 1, EQ, C, B, 1, X, 1,
 662      $                RCOND, R1, R2, W, RW, INFO )
 663          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
 664          INFOT = 2
 665          CALL CPBSVX( 'N''/'000, A, 1, AF, 1, EQ, C, B, 1, X, 1,
 666      $                RCOND, R1, R2, W, RW, INFO )
 667          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
 668          INFOT = 3
 669          CALL CPBSVX( 'N''U'-100, A, 1, AF, 1, EQ, C, B, 1, X,
 670      $                1, RCOND, R1, R2, W, RW, INFO )
 671          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
 672          INFOT = 4
 673          CALL CPBSVX( 'N''U'1-10, A, 1, AF, 1, EQ, C, B, 1, X,
 674      $                1, RCOND, R1, R2, W, RW, INFO )
 675          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
 676          INFOT = 5
 677          CALL CPBSVX( 'N''U'00-1, A, 1, AF, 1, EQ, C, B, 1, X,
 678      $                1, RCOND, R1, R2, W, RW, INFO )
 679          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
 680          INFOT = 7
 681          CALL CPBSVX( 'N''U'110, A, 1, AF, 2, EQ, C, B, 2, X, 2,
 682      $                RCOND, R1, R2, W, RW, INFO )
 683          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
 684          INFOT = 9
 685          CALL CPBSVX( 'N''U'110, A, 2, AF, 1, EQ, C, B, 2, X, 2,
 686      $                RCOND, R1, R2, W, RW, INFO )
 687          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
 688          INFOT = 10
 689          EQ = '/'
 690          CALL CPBSVX( 'F''U'000, A, 1, AF, 1, EQ, C, B, 1, X, 1,
 691      $                RCOND, R1, R2, W, RW, INFO )
 692          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
 693          INFOT = 11
 694          EQ = 'Y'
 695          CALL CPBSVX( 'F''U'100, A, 1, AF, 1, EQ, C, B, 1, X, 1,
 696      $                RCOND, R1, R2, W, RW, INFO )
 697          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
 698          INFOT = 13
 699          CALL CPBSVX( 'N''U'200, A, 1, AF, 1, EQ, C, B, 1, X, 2,
 700      $                RCOND, R1, R2, W, RW, INFO )
 701          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
 702          INFOT = 15
 703          CALL CPBSVX( 'N''U'200, A, 1, AF, 1, EQ, C, B, 2, X, 1,
 704      $                RCOND, R1, R2, W, RW, INFO )
 705          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
 706 *
 707       ELSE IF( LSAMEN( 2, C2, 'PT' ) ) THEN
 708 *
 709 *        CPTSV
 710 *
 711          SRNAMT = 'CPTSV '
 712          INFOT = 1
 713          CALL CPTSV( -10, R, A( 11 ), B, 1, INFO )
 714          CALL CHKXER( 'CPTSV ', INFOT, NOUT, LERR, OK )
 715          INFOT = 2
 716          CALL CPTSV( 0-1, R, A( 11 ), B, 1, INFO )
 717          CALL CHKXER( 'CPTSV ', INFOT, NOUT, LERR, OK )
 718          INFOT = 6
 719          CALL CPTSV( 20, R, A( 11 ), B, 1, INFO )
 720          CALL CHKXER( 'CPTSV ', INFOT, NOUT, LERR, OK )
 721 *
 722 *        CPTSVX
 723 *
 724          SRNAMT = 'CPTSVX'
 725          INFOT = 1
 726          CALL CPTSVX( '/'00, R, A( 11 ), RF, AF( 11 ), B, 1, X,
 727      $                1, RCOND, R1, R2, W, RW, INFO )
 728          CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
 729          INFOT = 2
 730          CALL CPTSVX( 'N'-10, R, A( 11 ), RF, AF( 11 ), B, 1, X,
 731      $                1, RCOND, R1, R2, W, RW, INFO )
 732          CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
 733          INFOT = 3
 734          CALL CPTSVX( 'N'0-1, R, A( 11 ), RF, AF( 11 ), B, 1, X,
 735      $                1, RCOND, R1, R2, W, RW, INFO )
 736          CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
 737          INFOT = 9
 738          CALL CPTSVX( 'N'20, R, A( 11 ), RF, AF( 11 ), B, 1, X,
 739      $                2, RCOND, R1, R2, W, RW, INFO )
 740          CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
 741          INFOT = 11
 742          CALL CPTSVX( 'N'20, R, A( 11 ), RF, AF( 11 ), B, 2, X,
 743      $                1, RCOND, R1, R2, W, RW, INFO )
 744          CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
 745 *
 746       ELSE IF( LSAMEN( 2, C2, 'HE' ) ) THEN
 747 *
 748 *        CHESV
 749 *
 750          SRNAMT = 'CHESV '
 751          INFOT = 1
 752          CALL CHESV( '/'00, A, 1, IP, B, 1, W, 1, INFO )
 753          CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
 754          INFOT = 2
 755          CALL CHESV( 'U'-10, A, 1, IP, B, 1, W, 1, INFO )
 756          CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
 757          INFOT = 3
 758          CALL CHESV( 'U'0-1, A, 1, IP, B, 1, W, 1, INFO )
 759          CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
 760          INFOT = 5
 761          CALL CHESV( 'U'20, A, 1, IP, B, 2, W, 1, INFO )
 762          CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
 763          INFOT = 8
 764          CALL CHESV( 'U'20, A, 2, IP, B, 1, W, 1, INFO )
 765          CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
 766 *
 767 *        CHESVX
 768 *
 769          SRNAMT = 'CHESVX'
 770          INFOT = 1
 771          CALL CHESVX( '/''U'00, A, 1, AF, 1, IP, B, 1, X, 1,
 772      $                RCOND, R1, R2, W, 1, RW, INFO )
 773          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
 774          INFOT = 2
 775          CALL CHESVX( 'N''/'00, A, 1, AF, 1, IP, B, 1, X, 1,
 776      $                RCOND, R1, R2, W, 1, RW, INFO )
 777          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
 778          INFOT = 3
 779          CALL CHESVX( 'N''U'-10, A, 1, AF, 1, IP, B, 1, X, 1,
 780      $                RCOND, R1, R2, W, 1, RW, INFO )
 781          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
 782          INFOT = 4
 783          CALL CHESVX( 'N''U'0-1, A, 1, AF, 1, IP, B, 1, X, 1,
 784      $                RCOND, R1, R2, W, 1, RW, INFO )
 785          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
 786          INFOT = 6
 787          CALL CHESVX( 'N''U'20, A, 1, AF, 2, IP, B, 2, X, 2,
 788      $                RCOND, R1, R2, W, 4, RW, INFO )
 789          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
 790          INFOT = 8
 791          CALL CHESVX( 'N''U'20, A, 2, AF, 1, IP, B, 2, X, 2,
 792      $                RCOND, R1, R2, W, 4, RW, INFO )
 793          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
 794          INFOT = 11
 795          CALL CHESVX( 'N''U'20, A, 2, AF, 2, IP, B, 1, X, 2,
 796      $                RCOND, R1, R2, W, 4, RW, INFO )
 797          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
 798          INFOT = 13
 799          CALL CHESVX( 'N''U'20, A, 2, AF, 2, IP, B, 2, X, 1,
 800      $                RCOND, R1, R2, W, 4, RW, INFO )
 801          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
 802          INFOT = 18
 803          CALL CHESVX( 'N''U'20, A, 2, AF, 2, IP, B, 2, X, 2,
 804      $                RCOND, R1, R2, W, 3, RW, INFO )
 805          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
 806 *
 807 *        CHESVXX
 808 *
 809          N_ERR_BNDS = 3
 810          NPARAMS = 0
 811          SRNAMT = 'CHESVXX'
 812          INFOT = 1
 813          CALL CHESVXX( '/''U'00, A, 1, AF, 1, IP, EQ, C, B, 1, X,
 814      $                1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 815      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 816          CALL CHKXER( 'CHESVXX', INFOT, NOUT, LERR, OK )
 817          INFOT = 2
 818          CALL CHESVXX( 'N''/'00, A, 1, AF, 1, IP, EQ, C, B, 1, X,
 819      $                1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 820      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 821          CALL CHKXER( 'CHESVXX', INFOT, NOUT, LERR, OK )
 822          INFOT = 3
 823          CALL CHESVXX( 'N''U'-10, A, 1, AF, 1, IP, EQ, C, B, 1, X,
 824      $                1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 825      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 826          CALL CHKXER( 'CHESVXX', INFOT, NOUT, LERR, OK )
 827          INFOT = 4
 828          CALL CHESVXX( 'N''U'0-1, A, 1, AF, 1, IP, EQ, C, B, 1, X,
 829      $                1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 830      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 831          CALL CHKXER( 'CHESVXX', INFOT, NOUT, LERR, OK )
 832          INFOT = 6
 833          CALL CHESVXX( 'N''U'20, A, 1, AF, 2, IP, EQ, C, B, 2, X,
 834      $                2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 835      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 836          CALL CHKXER( 'CHESVXX', INFOT, NOUT, LERR, OK )
 837          INFOT = 8
 838          CALL CHESVXX( 'N''U'20, A, 2, AF, 1, IP, EQ, C, B, 2, X,
 839      $                2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 840      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 841          CALL CHKXER( 'CHESVXX', INFOT, NOUT, LERR, OK )
 842          INFOT = 9
 843          EQ = '/'
 844          CALL CHESVXX( 'F''U'00, A, 1, AF, 1, IP, EQ, C, B, 1, X,
 845      $                1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 846      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 847          CALL CHKXER( 'CHESVXX', INFOT, NOUT, LERR, OK )
 848          INFOT = 10
 849          EQ = 'Y'
 850          CALL CHESVXX( 'F''U'10, A, 1, AF, 1, IP, EQ, C, B, 1, X,
 851      $                1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 852      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 853          CALL CHKXER( 'CHESVXX', INFOT, NOUT, LERR, OK )
 854          INFOT = 12
 855          CALL CHESVXX( 'N''U'20, A, 2, AF, 2, IP, EQ, C, B, 1, X,
 856      $                2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 857      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 858          CALL CHKXER( 'CHESVXX', INFOT, NOUT, LERR, OK )
 859          INFOT = 14
 860          CALL CHESVXX( 'N''U'20, A, 2, AF, 2, IP, EQ, C, B, 2, X,
 861      $                1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 862      $                ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 863          CALL CHKXER( 'CHESVXX', INFOT, NOUT, LERR, OK )
 864 *
 865       ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN
 866 *
 867 *        CHPSV
 868 *
 869          SRNAMT = 'CHPSV '
 870          INFOT = 1
 871          CALL CHPSV( '/'00, A, IP, B, 1, INFO )
 872          CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
 873          INFOT = 2
 874          CALL CHPSV( 'U'-10, A, IP, B, 1, INFO )
 875          CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
 876          INFOT = 3
 877          CALL CHPSV( 'U'0-1, A, IP, B, 1, INFO )
 878          CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
 879          INFOT = 7
 880          CALL CHPSV( 'U'20, A, IP, B, 1, INFO )
 881          CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
 882 *
 883 *        CHPSVX
 884 *
 885          SRNAMT = 'CHPSVX'
 886          INFOT = 1
 887          CALL CHPSVX( '/''U'00, A, AF, IP, B, 1, X, 1, RCOND, R1,
 888      $                R2, W, RW, INFO )
 889          CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
 890          INFOT = 2
 891          CALL CHPSVX( 'N''/'00, A, AF, IP, B, 1, X, 1, RCOND, R1,
 892      $                R2, W, RW, INFO )
 893          CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
 894          INFOT = 3
 895          CALL CHPSVX( 'N''U'-10, A, AF, IP, B, 1, X, 1, RCOND, R1,
 896      $                R2, W, RW, INFO )
 897          CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
 898          INFOT = 4
 899          CALL CHPSVX( 'N''U'0-1, A, AF, IP, B, 1, X, 1, RCOND, R1,
 900      $                R2, W, RW, INFO )
 901          CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
 902          INFOT = 9
 903          CALL CHPSVX( 'N''U'20, A, AF, IP, B, 1, X, 2, RCOND, R1,
 904      $                R2, W, RW, INFO )
 905          CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
 906          INFOT = 11
 907          CALL CHPSVX( 'N''U'20, A, AF, IP, B, 2, X, 1, RCOND, R1,
 908      $                R2, W, RW, INFO )
 909          CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
 910 *
 911       ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN
 912 *
 913 *        CSYSV
 914 *
 915          SRNAMT = 'CSYSV '
 916          INFOT = 1
 917          CALL CSYSV( '/'00, A, 1, IP, B, 1, W, 1, INFO )
 918          CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
 919          INFOT = 2
 920          CALL CSYSV( 'U'-10, A, 1, IP, B, 1, W, 1, INFO )
 921          CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
 922          INFOT = 3
 923          CALL CSYSV( 'U'0-1, A, 1, IP, B, 1, W, 1, INFO )
 924          CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
 925          INFOT = 8
 926          CALL CSYSV( 'U'20, A, 2, IP, B, 1, W, 1, INFO )
 927          CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
 928 *
 929 *        CSYSVX
 930 *
 931          SRNAMT = 'CSYSVX'
 932          INFOT = 1
 933          CALL CSYSVX( '/''U'00, A, 1, AF, 1, IP, B, 1, X, 1,
 934      $                RCOND, R1, R2, W, 1, RW, INFO )
 935          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
 936          INFOT = 2
 937          CALL CSYSVX( 'N''/'00, A, 1, AF, 1, IP, B, 1, X, 1,
 938      $                RCOND, R1, R2, W, 1, RW, INFO )
 939          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
 940          INFOT = 3
 941          CALL CSYSVX( 'N''U'-10, A, 1, AF, 1, IP, B, 1, X, 1,
 942      $                RCOND, R1, R2, W, 1, RW, INFO )
 943          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
 944          INFOT = 4
 945          CALL CSYSVX( 'N''U'0-1, A, 1, AF, 1, IP, B, 1, X, 1,
 946      $                RCOND, R1, R2, W, 1, RW, INFO )
 947          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
 948          INFOT = 6
 949          CALL CSYSVX( 'N''U'20, A, 1, AF, 2, IP, B, 2, X, 2,
 950      $                RCOND, R1, R2, W, 4, RW, INFO )
 951          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
 952          INFOT = 8
 953          CALL CSYSVX( 'N''U'20, A, 2, AF, 1, IP, B, 2, X, 2,
 954      $                RCOND, R1, R2, W, 4, RW, INFO )
 955          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
 956          INFOT = 11
 957          CALL CSYSVX( 'N''U'20, A, 2, AF, 2, IP, B, 1, X, 2,
 958      $                RCOND, R1, R2, W, 4, RW, INFO )
 959          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
 960          INFOT = 13
 961          CALL CSYSVX( 'N''U'20, A, 2, AF, 2, IP, B, 2, X, 1,
 962      $                RCOND, R1, R2, W, 4, RW, INFO )
 963          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
 964          INFOT = 18
 965          CALL CSYSVX( 'N''U'20, A, 2, AF, 2, IP, B, 2, X, 2,
 966      $                RCOND, R1, R2, W, 3, RW, INFO )
 967          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
 968 *
 969 *        CSYSVXX
 970 *
 971          N_ERR_BNDS = 3
 972          NPARAMS = 0
 973          SRNAMT = 'CSYSVXX'
 974          INFOT = 1
 975          EQ = 'N'
 976          CALL CSYSVXX( '/''U'00, A, 1, AF, 1, IP, EQ, R, B, 1, X,
 977      $        1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 978      $        ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 979          CALL CHKXER( 'CSYSVXX', INFOT, NOUT, LERR, OK )
 980          INFOT = 2
 981          CALL CSYSVXX( 'N''/'00, A, 1, AF, 1, IP, EQ, R, B, 1, X,
 982      $        1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 983      $        ERR_BNDS_C,  NPARAMS, PARAMS, W, RW, INFO )
 984          CALL CHKXER( 'CSYSVXX', INFOT, NOUT, LERR, OK )
 985          INFOT = 3
 986          CALL CSYSVXX( 'N''U'-10, A, 1, AF, 1, IP, EQ, R, B, 1, X,
 987      $        1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 988      $        ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 989          CALL CHKXER( 'CSYSVXX', INFOT, NOUT, LERR, OK )
 990          INFOT = 4
 991          EQ = '/'
 992          CALL CSYSVXX( 'N''U'0-1, A, 1, AF, 1, IP, EQ, R, B, 1, X,
 993      $        1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
 994      $        ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
 995          CALL CHKXER( 'CSYSVXX', INFOT, NOUT, LERR, OK )
 996          EQ = 'Y'
 997          INFOT = 6
 998          CALL CSYSVXX( 'N''U'20, A, 1, AF, 2, IP, EQ, R, B, 2, X,
 999      $        2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
1000      $        ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
1001          CALL CHKXER( 'CSYSVXX', INFOT, NOUT, LERR, OK )
1002          INFOT = 8
1003          CALL CSYSVXX( 'N''U'20, A, 2, AF, 1, IP, EQ, R, B, 2, X,
1004      $        2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
1005      $        ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
1006          CALL CHKXER( 'CSYSVXX', INFOT, NOUT, LERR, OK )
1007          INFOT = 12
1008          EQ = 'N'
1009          CALL CSYSVXX( 'N''U'20, A, 2, AF, 2, IP, EQ, R, B, 1, X,
1010      $        2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
1011      $        ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
1012          CALL CHKXER( 'CSYSVXX', INFOT, NOUT, LERR, OK )
1013          INFOT = 14
1014          CALL CSYSVXX( 'N''U'20, A, 2, AF, 2, IP, EQ, R, B, 2, X,
1015      $        1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
1016      $        ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
1017          CALL CHKXER( 'CSYSVXX', INFOT, NOUT, LERR, OK )
1018 *
1019       ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
1020 *
1021 *        CSPSV
1022 *
1023          SRNAMT = 'CSPSV '
1024          INFOT = 1
1025          CALL CSPSV( '/'00, A, IP, B, 1, INFO )
1026          CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
1027          INFOT = 2
1028          CALL CSPSV( 'U'-10, A, IP, B, 1, INFO )
1029          CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
1030          INFOT = 3
1031          CALL CSPSV( 'U'0-1, A, IP, B, 1, INFO )
1032          CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
1033          INFOT = 7
1034          CALL CSPSV( 'U'20, A, IP, B, 1, INFO )
1035          CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
1036 *
1037 *        CSPSVX
1038 *
1039          SRNAMT = 'CSPSVX'
1040          INFOT = 1
1041          CALL CSPSVX( '/''U'00, A, AF, IP, B, 1, X, 1, RCOND, R1,
1042      $                R2, W, RW, INFO )
1043          CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
1044          INFOT = 2
1045          CALL CSPSVX( 'N''/'00, A, AF, IP, B, 1, X, 1, RCOND, R1,
1046      $                R2, W, RW, INFO )
1047          CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
1048          INFOT = 3
1049          CALL CSPSVX( 'N''U'-10, A, AF, IP, B, 1, X, 1, RCOND, R1,
1050      $                R2, W, RW, INFO )
1051          CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
1052          INFOT = 4
1053          CALL CSPSVX( 'N''U'0-1, A, AF, IP, B, 1, X, 1, RCOND, R1,
1054      $                R2, W, RW, INFO )
1055          CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
1056          INFOT = 9
1057          CALL CSPSVX( 'N''U'20, A, AF, IP, B, 1, X, 2, RCOND, R1,
1058      $                R2, W, RW, INFO )
1059          CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
1060          INFOT = 11
1061          CALL CSPSVX( 'N''U'20, A, AF, IP, B, 2, X, 1, RCOND, R1,
1062      $                R2, W, RW, INFO )
1063          CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
1064       END IF
1065 *
1066 *     Print a summary line.
1067 *
1068       IF( OK ) THEN
1069          WRITE( NOUT, FMT = 9999 )PATH
1070       ELSE
1071          WRITE( NOUT, FMT = 9998 )PATH
1072       END IF
1073 *
1074  9999 FORMAT1X, A3, ' drivers passed the tests of the error exits' )
1075  9998 FORMAT' *** ', A3, ' drivers failed the tests of the error ',
1076      $      'exits ***' )
1077 *
1078       RETURN
1079 *
1080 *     End of CERRVX
1081 *
1082       END