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