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