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