1       SUBROUTINE ALAERH( PATH, SUBNAM, INFO, INFOE, OPTS, M, N, KL, KU,
   2      $                   N5, IMAT, NFAIL, NERRS, NOUT )
   3 *
   4 *  -- LAPACK auxiliary test routine (version 3.1) --
   5 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
   6 *     November 2006
   7 *
   8 *     .. Scalar Arguments ..
   9       CHARACTER*3        PATH
  10       CHARACTER** )    SUBNAM
  11       CHARACTER** )    OPTS
  12       INTEGER            IMAT, INFO, INFOE, KL, KU, M, N, N5, NERRS,
  13      $                   NFAIL, NOUT
  14 *     ..
  15 *
  16 *  Purpose
  17 *  =======
  18 *
  19 *  ALAERH is an error handler for the LAPACK routines.  It prints the
  20 *  header if this is the first error message and prints the error code
  21 *  and form of recovery, if any.  The character evaluations in this
  22 *  routine may make it slow, but it should not be called once the LAPACK
  23 *  routines are fully debugged.
  24 *
  25 *  Arguments
  26 *  =========
  27 *
  28 *  PATH    (input) CHARACTER*3
  29 *          The LAPACK path name of subroutine SUBNAM.
  30 *
  31 *  SUBNAM  (input) CHARACTER*(*)
  32 *          The name of the subroutine that returned an error code.
  33 *
  34 *  INFO    (input) INTEGER
  35 *          The error code returned from routine SUBNAM.
  36 *
  37 *  INFOE   (input) INTEGER
  38 *          The expected error code from routine SUBNAM, if SUBNAM were
  39 *          error-free.  If INFOE = 0, an error message is printed, but
  40 *          if INFOE.NE.0, we assume only the return code INFO is wrong.
  41 *
  42 *  OPTS    (input) CHARACTER*(*)
  43 *          The character options to the subroutine SUBNAM, concatenated
  44 *          into a single character string.  For example, UPLO = 'U',
  45 *          TRANS = 'T', and DIAG = 'N' for a triangular routine would
  46 *          be specified as OPTS = 'UTN'.
  47 *
  48 *  M       (input) INTEGER
  49 *          The matrix row dimension.
  50 *
  51 *  N       (input) INTEGER
  52 *          The matrix column dimension.  Accessed only if PATH = xGE or
  53 *          xGB.
  54 *
  55 *  KL      (input) INTEGER
  56 *          The number of sub-diagonals of the matrix.  Accessed only if
  57 *          PATH = xGB, xPB, or xTB.  Also used for NRHS for PATH = xLS.
  58 *
  59 *  KU      (input) INTEGER
  60 *          The number of super-diagonals of the matrix.  Accessed only
  61 *          if PATH = xGB.
  62 *
  63 *  N5      (input) INTEGER
  64 *          A fifth integer parameter, may be the blocksize NB or the
  65 *          number of right hand sides NRHS.
  66 *
  67 *  IMAT    (input) INTEGER
  68 *          The matrix type.
  69 *
  70 *  NFAIL   (input) INTEGER
  71 *          The number of prior tests that did not pass the threshold;
  72 *          used to determine if the header should be printed.
  73 *
  74 *  NERRS   (input/output) INTEGER
  75 *          On entry, the number of errors already detected; used to
  76 *          determine if the header should be printed.
  77 *          On exit, NERRS is increased by 1.
  78 *
  79 *  NOUT    (input) INTEGER
  80 *          The unit number on which results are to be printed.
  81 *
  82 *  =====================================================================
  83 *
  84 *     .. Local Scalars ..
  85       CHARACTER          UPLO
  86       CHARACTER*2        P2
  87       CHARACTER*3        C3
  88 *     ..
  89 *     .. External Functions ..
  90       LOGICAL            LSAME, LSAMEN
  91       EXTERNAL           LSAME, LSAMEN
  92 *     ..
  93 *     .. Intrinsic Functions ..
  94       INTRINSIC          LEN_TRIM
  95 *     ..
  96 *     .. External Subroutines ..
  97       EXTERNAL           ALADHD, ALAHD
  98 *     ..
  99 *     .. Executable Statements ..
 100 *
 101       IF( INFO.EQ.0 )
 102      $   RETURN
 103       P2 = PATH( 23 )
 104       C3 = SUBNAM( 46 )
 105 *
 106 *     Print the header if this is the first error message.
 107 *
 108       IF( NFAIL.EQ.0 .AND. NERRS.EQ.0 ) THEN
 109          IF( LSAMEN( 3, C3, 'SV ' ) .OR. LSAMEN( 3, C3, 'SVX' ) ) THEN
 110             CALL ALADHD( NOUT, PATH )
 111          ELSE
 112             CALL ALAHD( NOUT, PATH )
 113          END IF
 114       END IF
 115       NERRS = NERRS + 1
 116 *
 117 *     Print the message detailing the error and form of recovery,
 118 *     if any.
 119 *
 120       IF( LSAMEN( 2, P2, 'GE' ) ) THEN
 121 *
 122 *        xGE:  General matrices
 123 *
 124          IF( LSAMEN( 3, C3, 'TRF' ) ) THEN
 125             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 126                WRITE( NOUT, FMT = 9988 )
 127      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, M, N, N5,
 128      $            IMAT
 129             ELSE
 130                WRITE( NOUT, FMT = 9975 )
 131      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, N5, IMAT
 132             END IF
 133             IF( INFO.NE.0 )
 134      $         WRITE( NOUT, FMT = 9949 )
 135 *
 136          ELSE IF( LSAMEN( 3, C3, 'SV ' ) ) THEN
 137 *
 138             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 139                WRITE( NOUT, FMT = 9984 )
 140      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, N, N5,
 141      $            IMAT
 142             ELSE
 143                WRITE( NOUT, FMT = 9970 )
 144      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, N, N5, IMAT
 145             END IF
 146 *
 147          ELSE IF( LSAMEN( 3, C3, 'SVX' ) ) THEN
 148 *
 149             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 150                WRITE( NOUT, FMT = 9992 )
 151      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE,
 152      $            OPTS( 11 ), OPTS( 22 ), N, N5, IMAT
 153             ELSE
 154                WRITE( NOUT, FMT = 9997 )
 155      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ),
 156      $            OPTS( 22 ), N, N5, IMAT
 157             END IF
 158 *
 159          ELSE IF( LSAMEN( 3, C3, 'TRI' ) ) THEN
 160 *
 161             WRITE( NOUT, FMT = 9971 )
 162      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, N, N5, IMAT
 163 *
 164          ELSE IF( LSAMEN( 5, SUBNAM( 26 ), 'LATMS' ) ) THEN
 165 *
 166             WRITE( NOUT, FMT = 9978 )
 167      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, IMAT
 168 *
 169          ELSE IF( LSAMEN( 3, C3, 'CON' ) ) THEN
 170 *
 171             WRITE( NOUT, FMT = 9969 )
 172      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ), M,
 173      $         IMAT
 174 *
 175          ELSE IF( LSAMEN( 3, C3, 'LS ' ) ) THEN
 176 *
 177             WRITE( NOUT, FMT = 9965 )
 178      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ), M, N,
 179      $         KL, N5, IMAT
 180 *
 181          ELSE IF( LSAMEN( 3, C3, 'LSX' ) .OR. LSAMEN( 3, C3, 'LSS' ) )
 182      $             THEN
 183 *
 184             WRITE( NOUT, FMT = 9974 )
 185      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, KL, N5, IMAT
 186 *
 187          ELSE
 188 *
 189             WRITE( NOUT, FMT = 9963 )
 190      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ), M, N5,
 191      $         IMAT
 192          END IF
 193 *
 194       ELSE IF( LSAMEN( 2, P2, 'GB' ) ) THEN
 195 *
 196 *        xGB:  General band matrices
 197 *
 198          IF( LSAMEN( 3, C3, 'TRF' ) ) THEN
 199             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 200                WRITE( NOUT, FMT = 9989 )
 201      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, M, N, KL,
 202      $            KU, N5, IMAT
 203             ELSE
 204                WRITE( NOUT, FMT = 9976 )
 205      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, KL, KU, N5,
 206      $            IMAT
 207             END IF
 208             IF( INFO.NE.0 )
 209      $         WRITE( NOUT, FMT = 9949 )
 210 *
 211          ELSE IF( LSAMEN( 3, C3, 'SV ' ) ) THEN
 212 *
 213             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 214                WRITE( NOUT, FMT = 9986 )
 215      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, N, KL, KU,
 216      $            N5, IMAT
 217             ELSE
 218                WRITE( NOUT, FMT = 9972 )
 219      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, N, KL, KU, N5,
 220      $            IMAT
 221             END IF
 222 *
 223          ELSE IF( LSAMEN( 3, C3, 'SVX' ) ) THEN
 224 *
 225             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 226                WRITE( NOUT, FMT = 9993 )
 227      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE,
 228      $            OPTS( 11 ), OPTS( 22 ), N, KL, KU, N5, IMAT
 229             ELSE
 230                WRITE( NOUT, FMT = 9998 )
 231      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ),
 232      $            OPTS( 22 ), N, KL, KU, N5, IMAT
 233             END IF
 234 *
 235          ELSE IF( LSAMEN( 5, SUBNAM( 26 ), 'LATMS' ) ) THEN
 236 *
 237             WRITE( NOUT, FMT = 9977 )
 238      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, KL, KU, IMAT
 239 *
 240          ELSE IF( LSAMEN( 3, C3, 'CON' ) ) THEN
 241 *
 242             WRITE( NOUT, FMT = 9968 )
 243      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ), M, KL,
 244      $         KU, IMAT
 245 *
 246          ELSE
 247 *
 248             WRITE( NOUT, FMT = 9964 )
 249      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ), M, KL,
 250      $         KU, N5, IMAT
 251          END IF
 252 *
 253       ELSE IF( LSAMEN( 2, P2, 'GT' ) ) THEN
 254 *
 255 *        xGT:  General tridiagonal matrices
 256 *
 257          IF( LSAMEN( 3, C3, 'TRF' ) ) THEN
 258             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 259                WRITE( NOUT, FMT = 9987 )
 260      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, N, IMAT
 261             ELSE
 262                WRITE( NOUT, FMT = 9973 )
 263      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, N, IMAT
 264             END IF
 265             IF( INFO.NE.0 )
 266      $         WRITE( NOUT, FMT = 9949 )
 267 *
 268          ELSE IF( LSAMEN( 3, C3, 'SV ' ) ) THEN
 269 *
 270             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 271                WRITE( NOUT, FMT = 9984 )
 272      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, N, N5,
 273      $            IMAT
 274             ELSE
 275                WRITE( NOUT, FMT = 9970 )
 276      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, N, N5, IMAT
 277             END IF
 278 *
 279          ELSE IF( LSAMEN( 3, C3, 'SVX' ) ) THEN
 280 *
 281             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 282                WRITE( NOUT, FMT = 9992 )
 283      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE,
 284      $            OPTS( 11 ), OPTS( 22 ), N, N5, IMAT
 285             ELSE
 286                WRITE( NOUT, FMT = 9997 )
 287      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ),
 288      $            OPTS( 22 ), N, N5, IMAT
 289             END IF
 290 *
 291          ELSE IF( LSAMEN( 3, C3, 'CON' ) ) THEN
 292 *
 293             WRITE( NOUT, FMT = 9969 )
 294      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ), M,
 295      $         IMAT
 296 *
 297          ELSE
 298 *
 299             WRITE( NOUT, FMT = 9963 )
 300      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ), M, N5,
 301      $         IMAT
 302          END IF
 303 *
 304       ELSE IF( LSAMEN( 2, P2, 'PO' ) ) THEN
 305 *
 306 *        xPO:  Symmetric or Hermitian positive definite matrices
 307 *
 308          UPLO = OPTS( 11 )
 309          IF( LSAMEN( 3, C3, 'TRF' ) ) THEN
 310             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 311                WRITE( NOUT, FMT = 9980 )
 312      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, UPLO, M,
 313      $            N5, IMAT
 314             ELSE
 315                WRITE( NOUT, FMT = 9956 )
 316      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, N5, IMAT
 317             END IF
 318             IF( INFO.NE.0 )
 319      $         WRITE( NOUT, FMT = 9949 )
 320 *
 321          ELSE IF( LSAMEN( 3, C3, 'SV ' ) ) THEN
 322 *
 323             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 324                WRITE( NOUT, FMT = 9979 )
 325      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, UPLO, N,
 326      $            N5, IMAT
 327             ELSE
 328                WRITE( NOUT, FMT = 9955 )
 329      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, N, N5, IMAT
 330             END IF
 331 *
 332          ELSE IF( LSAMEN( 3, C3, 'SVX' ) ) THEN
 333 *
 334             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 335                WRITE( NOUT, FMT = 9990 )
 336      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE,
 337      $            OPTS( 11 ), OPTS( 22 ), N, N5, IMAT
 338             ELSE
 339                WRITE( NOUT, FMT = 9995 )
 340      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ),
 341      $            OPTS( 22 ), N, N5, IMAT
 342             END IF
 343 *
 344          ELSE IF( LSAMEN( 3, C3, 'TRI' ) ) THEN
 345 *
 346             WRITE( NOUT, FMT = 9956 )
 347      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, N5, IMAT
 348 *
 349          ELSE IF( LSAMEN( 5, SUBNAM( 26 ), 'LATMS' ) .OR.
 350      $            LSAMEN( 3, C3, 'CON' ) ) THEN
 351 *
 352             WRITE( NOUT, FMT = 9960 )
 353      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, IMAT
 354 *
 355          ELSE
 356 *
 357             WRITE( NOUT, FMT = 9955 )
 358      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, N5, IMAT
 359          END IF
 360 *
 361       ELSE IF( LSAMEN( 2, P2, 'PS' ) ) THEN
 362 *
 363 *        xPS:  Symmetric or Hermitian positive semi-definite matrices
 364 *
 365          UPLO = OPTS( 11 )
 366          IF( LSAMEN( 3, C3, 'TRF' ) ) THEN
 367             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 368                WRITE( NOUT, FMT = 9980 )SUBNAM, INFO, INFOE, UPLO, M,
 369      $            N5, IMAT
 370             ELSE
 371                WRITE( NOUT, FMT = 9956 )SUBNAM, INFO, UPLO, M, N5, IMAT
 372             END IF
 373             IF( INFO.NE.0 )
 374      $         WRITE( NOUT, FMT = 9949 )
 375 *
 376          ELSE IF( LSAMEN( 3, C3, 'SV ' ) ) THEN
 377 *
 378             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 379                WRITE( NOUT, FMT = 9979 )SUBNAM, INFO, INFOE, UPLO, N,
 380      $            N5, IMAT
 381             ELSE
 382                WRITE( NOUT, FMT = 9955 )SUBNAM, INFO, UPLO, N, N5, IMAT
 383             END IF
 384 *
 385          ELSE IF( LSAMEN( 3, C3, 'SVX' ) ) THEN
 386 *
 387             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 388                WRITE( NOUT, FMT = 9990 )SUBNAM, INFO, INFOE,
 389      $            OPTS( 11 ), OPTS( 22 ), N, N5, IMAT
 390             ELSE
 391                WRITE( NOUT, FMT = 9995 )SUBNAM, INFO, OPTS( 11 ),
 392      $            OPTS( 22 ), N, N5, IMAT
 393             END IF
 394 *
 395          ELSE IF( LSAMEN( 3, C3, 'TRI' ) ) THEN
 396 *
 397             WRITE( NOUT, FMT = 9956 )SUBNAM, INFO, UPLO, M, N5, IMAT
 398 *
 399          ELSE IF( LSAMEN( 5, SUBNAM( 26 ), 'LATMT' ) .OR.
 400      $            LSAMEN( 3, C3, 'CON' ) ) THEN
 401 *
 402             WRITE( NOUT, FMT = 9960 )SUBNAM, INFO, UPLO, M, IMAT
 403 *
 404          ELSE
 405 *
 406             WRITE( NOUT, FMT = 9955 )SUBNAM, INFO, UPLO, M, N5, IMAT
 407          END IF
 408 *
 409       ELSE IF( LSAMEN( 2, P2, 'SY' ) .OR. LSAMEN( 2, P2, 'HE' ) ) THEN
 410 *
 411 *        xHE, or xSY:  Symmetric or Hermitian indefinite matrices
 412 *
 413          UPLO = OPTS( 11 )
 414          IF( LSAMEN( 3, C3, 'TRF' ) ) THEN
 415             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 416                WRITE( NOUT, FMT = 9980 )
 417      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, UPLO, M,
 418      $            N5, IMAT
 419             ELSE
 420                WRITE( NOUT, FMT = 9956 )
 421      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, N5, IMAT
 422             END IF
 423             IF( INFO.NE.0 )
 424      $         WRITE( NOUT, FMT = 9949 )
 425 *
 426          ELSE IF( LSAMEN( 3, C3, 'SV ' ) ) THEN
 427 *
 428             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 429                WRITE( NOUT, FMT = 9979 )
 430      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, UPLO, N,
 431      $            N5, IMAT
 432             ELSE
 433                WRITE( NOUT, FMT = 9955 )
 434      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, N, N5, IMAT
 435             END IF
 436 *
 437          ELSE IF( LSAMEN( 3, C3, 'SVX' ) ) THEN
 438 *
 439             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 440                WRITE( NOUT, FMT = 9990 )
 441      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE,
 442      $            OPTS( 11 ), OPTS( 22 ), N, N5, IMAT
 443             ELSE
 444                WRITE( NOUT, FMT = 9995 )
 445      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ),
 446      $            OPTS( 22 ), N, N5, IMAT
 447             END IF
 448 *
 449          ELSE IF( LSAMEN( 5, SUBNAM( 26 ), 'LATMS' ) .OR.
 450      $            LSAMEN( 3, C3, 'TRI' ) .OR. LSAMEN( 3, C3, 'CON' ) )
 451      $             THEN
 452 *
 453             WRITE( NOUT, FMT = 9960 )
 454      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, IMAT
 455 *
 456          ELSE
 457 *
 458             WRITE( NOUT, FMT = 9955 )
 459      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, N5, IMAT
 460          END IF
 461 *
 462       ELSE IF( LSAMEN( 2, P2, 'PP' ) .OR. LSAMEN( 2, P2, 'SP' ) .OR.
 463      $         LSAMEN( 2, P2, 'HP' ) ) THEN
 464 *
 465 *        xPP, xHP, or xSP:  Symmetric or Hermitian packed matrices
 466 *
 467          UPLO = OPTS( 11 )
 468          IF( LSAMEN( 3, C3, 'TRF' ) ) THEN
 469             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 470                WRITE( NOUT, FMT = 9983 )
 471      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, UPLO, M,
 472      $            IMAT
 473             ELSE
 474                WRITE( NOUT, FMT = 9960 )
 475      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, IMAT
 476             END IF
 477             IF( INFO.NE.0 )
 478      $         WRITE( NOUT, FMT = 9949 )
 479 *
 480          ELSE IF( LSAMEN( 3, C3, 'SV ' ) ) THEN
 481 *
 482             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 483                WRITE( NOUT, FMT = 9979 )
 484      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, UPLO, N,
 485      $            N5, IMAT
 486             ELSE
 487                WRITE( NOUT, FMT = 9955 )
 488      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, N, N5, IMAT
 489             END IF
 490 *
 491          ELSE IF( LSAMEN( 3, C3, 'SVX' ) ) THEN
 492 *
 493             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 494                WRITE( NOUT, FMT = 9990 )
 495      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE,
 496      $            OPTS( 11 ), OPTS( 22 ), N, N5, IMAT
 497             ELSE
 498                WRITE( NOUT, FMT = 9995 )
 499      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ),
 500      $            OPTS( 22 ), N, N5, IMAT
 501             END IF
 502 *
 503          ELSE IF( LSAMEN( 5, SUBNAM( 26 ), 'LATMS' ) .OR.
 504      $            LSAMEN( 3, C3, 'TRI' ) .OR. LSAMEN( 3, C3, 'CON' ) )
 505      $             THEN
 506 *
 507             WRITE( NOUT, FMT = 9960 )
 508      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, IMAT
 509 *
 510          ELSE
 511 *
 512             WRITE( NOUT, FMT = 9955 )
 513      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, N5, IMAT
 514          END IF
 515 *
 516       ELSE IF( LSAMEN( 2, P2, 'PB' ) ) THEN
 517 *
 518 *        xPB:  Symmetric (Hermitian) positive definite band matrix
 519 *
 520          UPLO = OPTS( 11 )
 521          IF( LSAMEN( 3, C3, 'TRF' ) ) THEN
 522             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 523                WRITE( NOUT, FMT = 9982 )
 524      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, UPLO, M,
 525      $            KL, N5, IMAT
 526             ELSE
 527                WRITE( NOUT, FMT = 9958 )
 528      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, KL, N5,
 529      $            IMAT
 530             END IF
 531             IF( INFO.NE.0 )
 532      $         WRITE( NOUT, FMT = 9949 )
 533 *
 534          ELSE IF( LSAMEN( 3, C3, 'SV ' ) ) THEN
 535 *
 536             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 537                WRITE( NOUT, FMT = 9981 )
 538      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, UPLO, N,
 539      $            KL, N5, IMAT
 540             ELSE
 541                WRITE( NOUT, FMT = 9957 )
 542      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, N, KL, N5,
 543      $            IMAT
 544             END IF
 545 *
 546          ELSE IF( LSAMEN( 3, C3, 'SVX' ) ) THEN
 547 *
 548             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 549                WRITE( NOUT, FMT = 9991 )
 550      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE,
 551      $            OPTS( 11 ), OPTS( 22 ), N, KL, N5, IMAT
 552             ELSE
 553                WRITE( NOUT, FMT = 9996 )
 554      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ),
 555      $            OPTS( 22 ), N, KL, N5, IMAT
 556             END IF
 557 *
 558          ELSE IF( LSAMEN( 5, SUBNAM( 26 ), 'LATMS' ) .OR.
 559      $            LSAMEN( 3, C3, 'CON' ) ) THEN
 560 *
 561             WRITE( NOUT, FMT = 9959 )
 562      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, KL, IMAT
 563 *
 564          ELSE
 565 *
 566             WRITE( NOUT, FMT = 9957 )
 567      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, KL, N5,
 568      $         IMAT
 569          END IF
 570 *
 571       ELSE IF( LSAMEN( 2, P2, 'PT' ) ) THEN
 572 *
 573 *        xPT:  Positive definite tridiagonal matrices
 574 *
 575          IF( LSAMEN( 3, C3, 'TRF' ) ) THEN
 576             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 577                WRITE( NOUT, FMT = 9987 )
 578      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, N, IMAT
 579             ELSE
 580                WRITE( NOUT, FMT = 9973 )
 581      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, N, IMAT
 582             END IF
 583             IF( INFO.NE.0 )
 584      $         WRITE( NOUT, FMT = 9949 )
 585 *
 586          ELSE IF( LSAMEN( 3, C3, 'SV ' ) ) THEN
 587 *
 588             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 589                WRITE( NOUT, FMT = 9984 )
 590      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, N, N5,
 591      $            IMAT
 592             ELSE
 593                WRITE( NOUT, FMT = 9970 )
 594      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, N, N5, IMAT
 595             END IF
 596 *
 597          ELSE IF( LSAMEN( 3, C3, 'SVX' ) ) THEN
 598 *
 599             IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 600                WRITE( NOUT, FMT = 9994 )
 601      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE,
 602      $            OPTS( 11 ), N, N5, IMAT
 603             ELSE
 604                WRITE( NOUT, FMT = 9999 )
 605      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ), N,
 606      $            N5, IMAT
 607             END IF
 608 *
 609          ELSE IF( LSAMEN( 3, C3, 'CON' ) ) THEN
 610 *
 611             IF( LSAME( SUBNAM( 11 ), 'S' ) .OR.
 612      $          LSAME( SUBNAM( 11 ), 'D' ) ) THEN
 613                WRITE( NOUT, FMT = 9973 )
 614      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, IMAT
 615             ELSE
 616                WRITE( NOUT, FMT = 9969 )
 617      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ), M,
 618      $            IMAT
 619             END IF
 620 *
 621          ELSE
 622 *
 623             WRITE( NOUT, FMT = 9963 )
 624      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ), M, N5,
 625      $         IMAT
 626          END IF
 627 *
 628       ELSE IF( LSAMEN( 2, P2, 'TR' ) ) THEN
 629 *
 630 *        xTR:  Triangular matrix
 631 *
 632          IF( LSAMEN( 3, C3, 'TRI' ) ) THEN
 633             WRITE( NOUT, FMT = 9961 )
 634      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ),
 635      $         OPTS( 22 ), M, N5, IMAT
 636          ELSE IF( LSAMEN( 3, C3, 'CON' ) ) THEN
 637             WRITE( NOUT, FMT = 9967 )
 638      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ),
 639      $         OPTS( 22 ), OPTS( 33 ), M, IMAT
 640          ELSE IF( LSAMEN( 5, SUBNAM( 26 ), 'LATRS' ) ) THEN
 641             WRITE( NOUT, FMT = 9952 )
 642      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ),
 643      $         OPTS( 22 ), OPTS( 33 ), OPTS( 44 ), M, IMAT
 644          ELSE
 645             WRITE( NOUT, FMT = 9953 )
 646      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ),
 647      $         OPTS( 22 ), OPTS( 33 ), M, N5, IMAT
 648          END IF
 649 *
 650       ELSE IF( LSAMEN( 2, P2, 'TP' ) ) THEN
 651 *
 652 *        xTP:  Triangular packed matrix
 653 *
 654          IF( LSAMEN( 3, C3, 'TRI' ) ) THEN
 655             WRITE( NOUT, FMT = 9962 )
 656      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ),
 657      $         OPTS( 22 ), M, IMAT
 658          ELSE IF( LSAMEN( 3, C3, 'CON' ) ) THEN
 659             WRITE( NOUT, FMT = 9967 )
 660      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ),
 661      $         OPTS( 22 ), OPTS( 33 ), M, IMAT
 662          ELSE IF( LSAMEN( 5, SUBNAM( 26 ), 'LATPS' ) ) THEN
 663             WRITE( NOUT, FMT = 9952 )
 664      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ),
 665      $         OPTS( 22 ), OPTS( 33 ), OPTS( 44 ), M, IMAT
 666          ELSE
 667             WRITE( NOUT, FMT = 9953 )
 668      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ),
 669      $         OPTS( 22 ), OPTS( 33 ), M, N5, IMAT
 670          END IF
 671 *
 672       ELSE IF( LSAMEN( 2, P2, 'TB' ) ) THEN
 673 *
 674 *        xTB:  Triangular band matrix
 675 *
 676          IF( LSAMEN( 3, C3, 'CON' ) ) THEN
 677             WRITE( NOUT, FMT = 9966 )
 678      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ),
 679      $         OPTS( 22 ), OPTS( 33 ), M, KL, IMAT
 680          ELSE IF( LSAMEN( 5, SUBNAM( 26 ), 'LATBS' ) ) THEN
 681             WRITE( NOUT, FMT = 9951 )
 682      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ),
 683      $         OPTS( 22 ), OPTS( 33 ), OPTS( 44 ), M, KL, IMAT
 684          ELSE
 685             WRITE( NOUT, FMT = 9954 )
 686      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 11 ),
 687      $         OPTS( 22 ), OPTS( 33 ), M, KL, N5, IMAT
 688          END IF
 689 *
 690       ELSE IF( LSAMEN( 2, P2, 'QR' ) ) THEN
 691 *
 692 *        xQR:  QR factorization
 693 *
 694          IF( LSAMEN( 3, C3, 'QRS' ) ) THEN
 695             WRITE( NOUT, FMT = 9974 )
 696      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, KL, N5, IMAT
 697          ELSE IF( LSAMEN( 5, SUBNAM( 26 ), 'LATMS' ) ) THEN
 698             WRITE( NOUT, FMT = 9978 )
 699      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, IMAT
 700          END IF
 701 *
 702       ELSE IF( LSAMEN( 2, P2, 'LQ' ) ) THEN
 703 *
 704 *        xLQ:  LQ factorization
 705 *
 706          IF( LSAMEN( 3, C3, 'LQS' ) ) THEN
 707             WRITE( NOUT, FMT = 9974 )
 708      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, KL, N5, IMAT
 709          ELSE IF( LSAMEN( 5, SUBNAM( 26 ), 'LATMS' ) ) THEN
 710             WRITE( NOUT, FMT = 9978 )
 711      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, IMAT
 712          END IF
 713 *
 714       ELSE IF( LSAMEN( 2, P2, 'QL' ) ) THEN
 715 *
 716 *        xQL:  QL factorization
 717 *
 718          IF( LSAMEN( 3, C3, 'QLS' ) ) THEN
 719             WRITE( NOUT, FMT = 9974 )
 720      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, KL, N5, IMAT
 721          ELSE IF( LSAMEN( 5, SUBNAM( 26 ), 'LATMS' ) ) THEN
 722             WRITE( NOUT, FMT = 9978 )
 723      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, IMAT
 724          END IF
 725 *
 726       ELSE IF( LSAMEN( 2, P2, 'RQ' ) ) THEN
 727 *
 728 *        xRQ:  RQ factorization
 729 *
 730          IF( LSAMEN( 3, C3, 'RQS' ) ) THEN
 731             WRITE( NOUT, FMT = 9974 )
 732      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, KL, N5, IMAT
 733          ELSE IF( LSAMEN( 5, SUBNAM( 26 ), 'LATMS' ) ) THEN
 734             WRITE( NOUT, FMT = 9978 )
 735      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, IMAT
 736          END IF
 737 *
 738       ELSE IF( LSAMEN( 2, P2, 'LU' ) ) THEN
 739 *
 740          IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 741             WRITE( NOUT, FMT = 9988 )
 742      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, M, N, N5,
 743      $         IMAT
 744          ELSE
 745             WRITE( NOUT, FMT = 9975 )
 746      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, N5, IMAT
 747          END IF
 748 *
 749       ELSE IF( LSAMEN( 2, P2, 'CH' ) ) THEN
 750 *
 751          IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
 752             WRITE( NOUT, FMT = 9985 )
 753      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, M, N5, IMAT
 754          ELSE
 755             WRITE( NOUT, FMT = 9971 )
 756      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N5, IMAT
 757          END IF
 758 *
 759       ELSE
 760 *
 761 *        Print a generic message if the path is unknown.
 762 *
 763          WRITE( NOUT, FMT = 9950 )
 764      $     SUBNAM(1:LEN_TRIM( SUBNAM )), INFO
 765       END IF
 766 *
 767 *     Description of error message (alphabetical, left to right)
 768 *
 769 *     SUBNAM, INFO, FACT, N, NRHS, IMAT
 770 *
 771  9999 FORMAT' *** Error code from ', A, '=', I5, ', FACT=''', A1,
 772      $      ''', N=', I5, ', NRHS=', I4, ', type ', I2 )
 773 *
 774 *     SUBNAM, INFO, FACT, TRANS, N, KL, KU, NRHS, IMAT
 775 *
 776  9998 FORMAT' *** Error code from ', A, ' =', I5, / ' ==> FACT=''',
 777      $      A1, ''', TRANS=''', A1, ''', N=', I5, ', KL=', I5, ', KU=',
 778      $      I5, ', NRHS=', I4, ', type ', I1 )
 779 *
 780 *     SUBNAM, INFO, FACT, TRANS, N, NRHS, IMAT
 781 *
 782  9997 FORMAT' *** Error code from ', A, ' =', I5, / ' ==> FACT=''',
 783      $      A1, ''', TRANS=''', A1, ''', N =', I5, ', NRHS =', I4,
 784      $      ', type ', I2 )
 785 *
 786 *     SUBNAM, INFO, FACT, UPLO, N, KD, NRHS, IMAT
 787 *
 788  9996 FORMAT' *** Error code from ', A, ' =', I5, / ' ==> FACT=''',
 789      $      A1, ''', UPLO=''', A1, ''', N=', I5, ', KD=', I5, ', NRHS=',
 790      $      I4, ', type ', I2 )
 791 *
 792 *     SUBNAM, INFO, FACT, UPLO, N, NRHS, IMAT
 793 *
 794  9995 FORMAT' *** Error code from ', A, ' =', I5, / ' ==> FACT=''',
 795      $      A1, ''', UPLO=''', A1, ''', N =', I5, ', NRHS =', I4,
 796      $      ', type ', I2 )
 797 *
 798 *     SUBNAM, INFO, INFOE, FACT, N, NRHS, IMAT
 799 *
 800  9994 FORMAT' *** ', A, ' returned with INFO =', I5, ' instead of ',
 801      $      I2, / ' ==> FACT=''', A1, ''', N =', I5, ', NRHS =', I4,
 802      $      ', type ', I2 )
 803 *
 804 *     SUBNAM, INFO, INFOE, FACT, TRANS, N, KL, KU, NRHS, IMAT
 805 *
 806  9993 FORMAT' *** ', A, ' returned with INFO =', I5, ' instead of ',
 807      $      I2, / ' ==> FACT=''', A1, ''', TRANS=''', A1, ''', N=', I5,
 808      $      ', KL=', I5, ', KU=', I5, ', NRHS=', I4, ', type ', I1 )
 809 *
 810 *     SUBNAM, INFO, INFOE, FACT, TRANS, N, NRHS, IMAT
 811 *
 812  9992 FORMAT' *** ', A, ' returned with INFO =', I5, ' instead of ',
 813      $      I2, / ' ==> FACT=''', A1, ''', TRANS=''', A1, ''', N =', I5,
 814      $      ', NRHS =', I4, ', type ', I2 )
 815 *
 816 *     SUBNAM, INFO, INFOE, FACT, UPLO, N, KD, NRHS, IMAT
 817 *
 818  9991 FORMAT' *** ', A, ' returned with INFO =', I5, ' instead of ',
 819      $      I2, / ' ==> FACT=''', A1, ''', UPLO=''', A1, ''', N=', I5,
 820      $      ', KD=', I5, ', NRHS=', I4, ', type ', I2 )
 821 *
 822 *     SUBNAM, INFO, INFOE, FACT, UPLO, N, NRHS, IMAT
 823 *
 824  9990 FORMAT' *** ', A, ' returned with INFO =', I5, ' instead of ',
 825      $      I2, / ' ==> FACT=''', A1, ''', UPLO=''', A1, ''', N =', I5,
 826      $      ', NRHS =', I4, ', type ', I2 )
 827 *
 828 *     SUBNAM, INFO, INFOE, M, N, KL, KU, NB, IMAT
 829 *
 830  9989 FORMAT' *** ', A, ' returned with INFO =', I5, ' instead of ',
 831      $      I2, / ' ==> M = ', I5, ', N =', I5, ', KL =', I5, ', KU =',
 832      $      I5, ', NB =', I4, ', type ', I2 )
 833 *
 834 *     SUBNAM, INFO, INFOE, M, N, NB, IMAT
 835 *
 836  9988 FORMAT' *** ', A, ' returned with INFO =', I5, ' instead of ',
 837      $      I2, / ' ==> M =', I5, ', N =', I5, ', NB =', I4, ', type ',
 838      $      I2 )
 839 *
 840 *     SUBNAM, INFO, INFOE, N, IMAT
 841 *
 842  9987 FORMAT' *** ', A, ' returned with INFO =', I5, ' instead of ',
 843      $      I2, ' for N=', I5, ', type ', I2 )
 844 *
 845 *     SUBNAM, INFO, INFOE, N, KL, KU, NRHS, IMAT
 846 *
 847  9986 FORMAT' *** ', A, ' returned with INFO =', I5, ' instead of ',
 848      $      I2, / ' ==> N =', I5, ', KL =', I5, ', KU =', I5,
 849      $      ', NRHS =', I4, ', type ', I2 )
 850 *
 851 *     SUBNAM, INFO, INFOE, N, NB, IMAT
 852 *
 853  9985 FORMAT' *** ', A, ' returned with INFO =', I5, ' instead of ',
 854      $      I2, / ' ==> N =', I5, ', NB =', I4, ', type ', I2 )
 855 *
 856 *     SUBNAM, INFO, INFOE, N, NRHS, IMAT
 857 *
 858  9984 FORMAT' *** ', A, ' returned with INFO =', I5, ' instead of ',
 859      $      I2, / ' ==> N =', I5, ', NRHS =', I4, ', type ', I2 )
 860 *
 861 *     SUBNAM, INFO, INFOE, UPLO, N, IMAT
 862 *
 863  9983 FORMAT' *** ', A, ' returned with INFO =', I5, ' instead of ',
 864      $      I2, / ' ==> UPLO = ''', A1, ''', N =', I5, ', type ', I2 )
 865 *
 866 *     SUBNAM, INFO, INFOE, UPLO, N, KD, NB, IMAT
 867 *
 868  9982 FORMAT' *** ', A, ' returned with INFO =', I5, ' instead of ',
 869      $      I2, / ' ==> UPLO = ''', A1, ''', N =', I5, ', KD =', I5,
 870      $      ', NB =', I4, ', type ', I2 )
 871 *
 872 *     SUBNAM, INFO, INFOE, UPLO, N, KD, NRHS, IMAT
 873 *
 874  9981 FORMAT' *** ', A, ' returned with INFO =', I5, ' instead of ',
 875      $      I2, / ' ==> UPLO=''', A1, ''', N =', I5, ', KD =', I5,
 876      $      ', NRHS =', I4, ', type ', I2 )
 877 *
 878 *     SUBNAM, INFO, INFOE, UPLO, N, NB, IMAT
 879 *
 880  9980 FORMAT' *** ', A, ' returned with INFO =', I5, ' instead of ',
 881      $      I2, / ' ==> UPLO = ''', A1, ''', N =', I5, ', NB =', I4,
 882      $      ', type ', I2 )
 883 *
 884 *     SUBNAM, INFO, INFOE, UPLO, N, NRHS, IMAT
 885 *
 886  9979 FORMAT' *** ', A, ' returned with INFO =', I5, ' instead of ',
 887      $      I2, / ' ==> UPLO = ''', A1, ''', N =', I5, ', NRHS =', I4,
 888      $      ', type ', I2 )
 889 *
 890 *     SUBNAM, INFO, M, N, IMAT
 891 *
 892  9978 FORMAT' *** Error code from ', A, ' =', I5, ' for M =', I5,
 893      $      ', N =', I5, ', type ', I2 )
 894 *
 895 *     SUBNAM, INFO, M, N, KL, KU, IMAT
 896 *
 897  9977 FORMAT' *** Error code from ', A, ' =', I5, / ' ==> M = ', I5,
 898      $      ', N =', I5, ', KL =', I5, ', KU =', I5, ', type ', I2 )
 899 *
 900 *     SUBNAM, INFO, M, N, KL, KU, NB, IMAT
 901 *
 902  9976 FORMAT' *** Error code from ', A, ' =', I5, / ' ==> M = ', I5,
 903      $      ', N =', I5, ', KL =', I5, ', KU =', I5, ', NB =', I4,
 904      $      ', type ', I2 )
 905 *
 906 *     SUBNAM, INFO, M, N, NB, IMAT
 907 *
 908  9975 FORMAT' *** Error code from ', A, '=', I5, ' for M=', I5,
 909      $      ', N=', I5, ', NB=', I4, ', type ', I2 )
 910 *
 911 *     SUBNAM, INFO, M, N, NRHS, NB, IMAT
 912 *
 913  9974 FORMAT' *** Error code from ', A, '=', I5, / ' ==> M =', I5,
 914      $      ', N =', I5, ', NRHS =', I4, ', NB =', I4, ', type ', I2 )
 915 *
 916 *     SUBNAM, INFO, N, IMAT
 917 *
 918  9973 FORMAT' *** Error code from ', A, ' =', I5, ' for N =', I5,
 919      $      ', type ', I2 )
 920 *
 921 *     SUBNAM, INFO, N, KL, KU, NRHS, IMAT
 922 *
 923  9972 FORMAT' *** Error code from ', A, ' =', I5, / ' ==> N =', I5,
 924      $      ', KL =', I5, ', KU =', I5, ', NRHS =', I4, ', type ', I2 )
 925 *
 926 *     SUBNAM, INFO, N, NB, IMAT
 927 *
 928  9971 FORMAT' *** Error code from ', A, '=', I5, ' for N=', I5,
 929      $      ', NB=', I4, ', type ', I2 )
 930 *
 931 *     SUBNAM, INFO, N, NRHS, IMAT
 932 *
 933  9970 FORMAT' *** Error code from ', A, ' =', I5, ' for N =', I5,
 934      $      ', NRHS =', I4, ', type ', I2 )
 935 *
 936 *     SUBNAM, INFO, NORM, N, IMAT
 937 *
 938  9969 FORMAT' *** Error code from ', A, ' =', I5, ' for NORM = ''',
 939      $      A1, ''', N =', I5, ', type ', I2 )
 940 *
 941 *     SUBNAM, INFO, NORM, N, KL, KU, IMAT
 942 *
 943  9968 FORMAT' *** Error code from ', A, ' =', I5, / ' ==> NORM =''',
 944      $      A1, ''', N =', I5, ', KL =', I5, ', KU =', I5, ', type ',
 945      $      I2 )
 946 *
 947 *     SUBNAM, INFO, NORM, UPLO, DIAG, N, IMAT
 948 *
 949  9967 FORMAT' *** Error code from ', A, ' =', I5, / ' ==> NORM=''',
 950      $      A1, ''', UPLO =''', A1, ''', DIAG=''', A1, ''', N =', I5,
 951      $      ', type ', I2 )
 952 *
 953 *     SUBNAM, INFO, NORM, UPLO, DIAG, N, KD, IMAT
 954 *
 955  9966 FORMAT' *** Error code from ', A, ' =', I5, / ' ==> NORM=''',
 956      $      A1, ''', UPLO =''', A1, ''', DIAG=''', A1, ''', N=', I5,
 957      $      ', KD=', I5, ', type ', I2 )
 958 *
 959 *     SUBNAM, INFO, TRANS, M, N, NRHS, NB, IMAT
 960 *
 961  9965 FORMAT' *** Error code from ', A, ' =', I5,
 962      $      / ' ==> TRANS = ''', A1, ''', M =', I5, ', N =', I5,
 963      $      ', NRHS =', I4, ', NB =', I4, ', type ', I2 )
 964 *
 965 *     SUBNAM, INFO, TRANS, N, KL, KU, NRHS, IMAT
 966 *
 967  9964 FORMAT' *** Error code from ', A, '=', I5, / ' ==> TRANS=''',
 968      $      A1, ''', N =', I5, ', KL =', I5, ', KU =', I5, ', NRHS =',
 969      $      I4, ', type ', I2 )
 970 *
 971 *     SUBNAM, INFO, TRANS, N, NRHS, IMAT
 972 *
 973  9963 FORMAT' *** Error code from ', A, ' =', I5,
 974      $      / ' ==> TRANS = ''', A1, ''', N =', I5, ', NRHS =', I4,
 975      $      ', type ', I2 )
 976 *
 977 *     SUBNAM, INFO, UPLO, DIAG, N, IMAT
 978 *
 979  9962 FORMAT' *** Error code from ', A, ' =', I5, / ' ==> UPLO=''',
 980      $      A1, ''', DIAG =''', A1, ''', N =', I5, ', type ', I2 )
 981 *
 982 *     SUBNAM, INFO, UPLO, DIAG, N, NB, IMAT
 983 *
 984  9961 FORMAT' *** Error code from ', A, ' =', I5, / ' ==> UPLO=''',
 985      $      A1, ''', DIAG =''', A1, ''', N =', I5, ', NB =', I4,
 986      $      ', type ', I2 )
 987 *
 988 *     SUBNAM, INFO, UPLO, N, IMAT
 989 *
 990  9960 FORMAT' *** Error code from ', A, ' =', I5, ' for UPLO = ''',
 991      $      A1, ''', N =', I5, ', type ', I2 )
 992 *
 993 *     SUBNAM, INFO, UPLO, N, KD, IMAT
 994 *
 995  9959 FORMAT' *** Error code from ', A, ' =', I5, / ' ==> UPLO = ''',
 996      $      A1, ''', N =', I5, ', KD =', I5, ', type ', I2 )
 997 *
 998 *     SUBNAM, INFO, UPLO, N, KD, NB, IMAT
 999 *
1000  9958 FORMAT' *** Error code from ', A, ' =', I5, / ' ==> UPLO = ''',
1001      $      A1, ''', N =', I5, ', KD =', I5, ', NB =', I4, ', type ',
1002      $      I2 )
1003 *
1004 *     SUBNAM, INFO, UPLO, N, KD, NRHS, IMAT
1005 *
1006  9957 FORMAT' *** Error code from ', A, '=', I5, / ' ==> UPLO = ''',
1007      $      A1, ''', N =', I5, ', KD =', I5, ', NRHS =', I4, ', type ',
1008      $      I2 )
1009 *
1010 *     SUBNAM, INFO, UPLO, N, NB, IMAT
1011 *
1012  9956 FORMAT' *** Error code from ', A, ' =', I5, / ' ==> UPLO = ''',
1013      $      A1, ''', N =', I5, ', NB =', I4, ', type ', I2 )
1014 *
1015 *     SUBNAM, INFO, UPLO, N, NRHS, IMAT
1016 *
1017  9955 FORMAT' *** Error code from ', A, ' =', I5, / ' ==> UPLO = ''',
1018      $      A1, ''', N =', I5, ', NRHS =', I4, ', type ', I2 )
1019 *
1020 *     SUBNAM, INFO, UPLO, TRANS, DIAG, N, KD, NRHS, IMAT
1021 *
1022  9954 FORMAT' *** Error code from ', A, ' =', I5, / ' ==> UPLO=''',
1023      $      A1, ''', TRANS=''', A1, ''', DIAG=''', A1, ''', N=', I5,
1024      $      ', KD=', I5, ', NRHS=', I4, ', type ', I2 )
1025 *
1026 *     SUBNAM, INFO, UPLO, TRANS, DIAG, N, NRHS, IMAT
1027 *
1028  9953 FORMAT' *** Error code from ', A, ' =', I5, / ' ==> UPLO=''',
1029      $      A1, ''', TRANS=''', A1, ''', DIAG=''', A1, ''', N =', I5,
1030      $      ', NRHS =', I4, ', type ', I2 )
1031 *
1032 *     SUBNAM, INFO, UPLO, TRANS, DIAG, NORMIN, N, IMAT
1033 *
1034  9952 FORMAT' *** Error code from ', A, ' =', I5, / ' ==> UPLO=''',
1035      $      A1, ''', TRANS=''', A1, ''', DIAG=''', A1, ''', NORMIN=''',
1036      $      A1, ''', N =', I5, ', type ', I2 )
1037 *
1038 *     SUBNAM, INFO, UPLO, TRANS, DIAG, NORMIN, N, KD, IMAT
1039 *
1040  9951 FORMAT' *** Error code from ', A, ' =', I5, / ' ==> UPLO=''',
1041      $      A1, ''', TRANS=''', A1, ''', DIAG=''', A1, ''', NORMIN=''',
1042      $      A1, ''', N=', I5, ', KD=', I5, ', type ', I2 )
1043 *
1044 *     Unknown type
1045 *
1046  9950 FORMAT' *** Error code from ', A, ' =', I5 )
1047 *
1048 *     What we do next
1049 *
1050  9949 FORMAT' ==> Doing only the condition estimate for this case' )
1051 *
1052       RETURN
1053 *
1054 *     End of ALAERH
1055 *
1056       END