1*> \brief \b ALAHD
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 ALAHD( IOUNIT, PATH )
12*
13*       .. Scalar Arguments ..
14*       CHARACTER*3        PATH
15*       INTEGER            IOUNIT
16*       ..
17*
18*
19*> \par Purpose:
20*  =============
21*>
22*> \verbatim
23*>
24*> ALAHD prints header information for the different test paths.
25*> \endverbatim
26*
27*  Arguments:
28*  ==========
29*
30*> \param[in] IOUNIT
31*> \verbatim
32*>          IOUNIT is INTEGER
33*>          The unit number to which the header information should be
34*>          printed.
35*> \endverbatim
36*>
37*> \param[in] PATH
38*> \verbatim
39*>          PATH is CHARACTER*3
40*>          The name of the path for which the header information is to
41*>          be printed.  Current paths are
42*>             _GE:  General matrices
43*>             _GB:  General band
44*>             _GT:  General Tridiagonal
45*>             _PO:  Symmetric or Hermitian positive definite
46*>             _PS:  Symmetric or Hermitian positive semi-definite
47*>             _PP:  Symmetric or Hermitian positive definite packed
48*>             _PB:  Symmetric or Hermitian positive definite band
49*>             _PT:  Symmetric or Hermitian positive definite tridiagonal
50*>             _SY:  Symmetric indefinite
51*>             _SP:  Symmetric indefinite packed
52*>             _HE:  (complex) Hermitian indefinite
53*>             _HP:  (complex) Hermitian indefinite packed
54*>             _TR:  Triangular
55*>             _TP:  Triangular packed
56*>             _TB:  Triangular band
57*>             _QR:  QR (general matrices)
58*>             _LQ:  LQ (general matrices)
59*>             _QL:  QL (general matrices)
60*>             _RQ:  RQ (general matrices)
61*>             _QP:  QR with column pivoting
62*>             _TZ:  Trapezoidal
63*>             _LS:  Least Squares driver routines
64*>             _LU:  LU variants
65*>             _CH:  Cholesky variants
66*>             _QS:  QR variants
67*>             _QT:  QRT (general matrices)
68*>             _QX:  QRT (triangular-pentagonal matrices)
69*>          The first character must be one of S, D, C, or Z (C or Z only
70*>          if complex).
71*> \endverbatim
72*
73*  Authors:
74*  ========
75*
76*> \author Univ. of Tennessee
77*> \author Univ. of California Berkeley
78*> \author Univ. of Colorado Denver
79*> \author NAG Ltd.
80*
81*> \date April 2012
82*
83*> \ingroup aux_lin
84*
85*  =====================================================================
86      SUBROUTINE ALAHD( IOUNIT, PATH )
87*
88*  -- LAPACK test routine (version 3.4.1) --
89*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
90*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
91*     April 2012
92*
93*     .. Scalar Arguments ..
94      CHARACTER*3        PATH
95      INTEGER            IOUNIT
96*     ..
97*
98*  =====================================================================
99*
100*     .. Local Scalars ..
101      LOGICAL            CORZ, SORD
102      CHARACTER          C1, C3
103      CHARACTER*2        P2
104      CHARACTER*4        EIGCNM
105      CHARACTER*32       SUBNAM
106      CHARACTER*9        SYM
107*     ..
108*     .. External Functions ..
109      LOGICAL            LSAME, LSAMEN
110      EXTERNAL           LSAME, LSAMEN
111*     ..
112*     .. Intrinsic Functions ..
113      INTRINSIC          LEN_TRIM
114*     ..
115*     .. Executable Statements ..
116*
117      IF( IOUNIT.LE.0 )
118     $   RETURN
119      C1 = PATH( 1: 1 )
120      C3 = PATH( 3: 3 )
121      P2 = PATH( 2: 3 )
122      SORD = LSAME( C1, 'S' ) .OR. LSAME( C1, 'D' )
123      CORZ = LSAME( C1, 'C' ) .OR. LSAME( C1, 'Z' )
124      IF( .NOT.( SORD .OR. CORZ ) )
125     $   RETURN
126*
127      IF( LSAMEN( 2, P2, 'GE' ) ) THEN
128*
129*        GE: General dense
130*
131         WRITE( IOUNIT, FMT = 9999 )PATH
132         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
133         WRITE( IOUNIT, FMT = 9979 )
134         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
135         WRITE( IOUNIT, FMT = 9962 )1
136         WRITE( IOUNIT, FMT = 9961 )2
137         WRITE( IOUNIT, FMT = 9960 )3
138         WRITE( IOUNIT, FMT = 9959 )4
139         WRITE( IOUNIT, FMT = 9958 )5
140         WRITE( IOUNIT, FMT = 9957 )6
141         WRITE( IOUNIT, FMT = 9956 )7
142         WRITE( IOUNIT, FMT = 9955 )8
143         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
144*
145      ELSE IF( LSAMEN( 2, P2, 'GB' ) ) THEN
146*
147*        GB: General band
148*
149         WRITE( IOUNIT, FMT = 9998 )PATH
150         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
151         WRITE( IOUNIT, FMT = 9978 )
152         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
153         WRITE( IOUNIT, FMT = 9962 )1
154         WRITE( IOUNIT, FMT = 9960 )2
155         WRITE( IOUNIT, FMT = 9959 )3
156         WRITE( IOUNIT, FMT = 9958 )4
157         WRITE( IOUNIT, FMT = 9957 )5
158         WRITE( IOUNIT, FMT = 9956 )6
159         WRITE( IOUNIT, FMT = 9955 )7
160         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
161*
162      ELSE IF( LSAMEN( 2, P2, 'GT' ) ) THEN
163*
164*        GT: General tridiagonal
165*
166         WRITE( IOUNIT, FMT = 9997 )PATH
167         WRITE( IOUNIT, FMT = 9977 )
168         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
169         WRITE( IOUNIT, FMT = 9962 )1
170         WRITE( IOUNIT, FMT = 9960 )2
171         WRITE( IOUNIT, FMT = 9959 )3
172         WRITE( IOUNIT, FMT = 9958 )4
173         WRITE( IOUNIT, FMT = 9957 )5
174         WRITE( IOUNIT, FMT = 9956 )6
175         WRITE( IOUNIT, FMT = 9955 )7
176         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
177*
178      ELSE IF( LSAMEN( 2, P2, 'PO' ) .OR. LSAMEN( 2, P2, 'PP' ) ) THEN
179*
180*        PO: Positive definite full
181*        PP: Positive definite packed
182*
183         IF( SORD ) THEN
184            SYM = 'Symmetric'
185         ELSE
186            SYM = 'Hermitian'
187         END IF
188         IF( LSAME( C3, 'O' ) ) THEN
189            WRITE( IOUNIT, FMT = 9996 )PATH, SYM
190         ELSE
191            WRITE( IOUNIT, FMT = 9995 )PATH, SYM
192         END IF
193         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
194         WRITE( IOUNIT, FMT = 9975 )PATH
195         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
196         WRITE( IOUNIT, FMT = 9954 )1
197         WRITE( IOUNIT, FMT = 9961 )2
198         WRITE( IOUNIT, FMT = 9960 )3
199         WRITE( IOUNIT, FMT = 9959 )4
200         WRITE( IOUNIT, FMT = 9958 )5
201         WRITE( IOUNIT, FMT = 9957 )6
202         WRITE( IOUNIT, FMT = 9956 )7
203         WRITE( IOUNIT, FMT = 9955 )8
204         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
205*
206      ELSE IF( LSAMEN( 2, P2, 'PS' ) ) THEN
207*
208*        PS: Positive semi-definite full
209*
210         IF( SORD ) THEN
211            SYM = 'Symmetric'
212         ELSE
213            SYM = 'Hermitian'
214         END IF
215         IF( LSAME( C1, 'S' ) .OR. LSAME( C1, 'C' ) ) THEN
216            EIGCNM = '1E04'
217         ELSE
218            EIGCNM = '1D12'
219         END IF
220         WRITE( IOUNIT, FMT = 9995 )PATH, SYM
221         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
222         WRITE( IOUNIT, FMT = 8973 )EIGCNM, EIGCNM, EIGCNM
223         WRITE( IOUNIT, FMT = '( '' Difference:'' )' )
224         WRITE( IOUNIT, FMT = 8972 )C1
225         WRITE( IOUNIT, FMT = '( '' Test ratio:'' )' )
226         WRITE( IOUNIT, FMT = 8950 )
227         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
228      ELSE IF( LSAMEN( 2, P2, 'PB' ) ) THEN
229*
230*        PB: Positive definite band
231*
232         IF( SORD ) THEN
233            WRITE( IOUNIT, FMT = 9994 )PATH, 'Symmetric'
234         ELSE
235            WRITE( IOUNIT, FMT = 9994 )PATH, 'Hermitian'
236         END IF
237         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
238         WRITE( IOUNIT, FMT = 9973 )PATH
239         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
240         WRITE( IOUNIT, FMT = 9954 )1
241         WRITE( IOUNIT, FMT = 9960 )2
242         WRITE( IOUNIT, FMT = 9959 )3
243         WRITE( IOUNIT, FMT = 9958 )4
244         WRITE( IOUNIT, FMT = 9957 )5
245         WRITE( IOUNIT, FMT = 9956 )6
246         WRITE( IOUNIT, FMT = 9955 )7
247         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
248*
249      ELSE IF( LSAMEN( 2, P2, 'PT' ) ) THEN
250*
251*        PT: Positive definite tridiagonal
252*
253         IF( SORD ) THEN
254            WRITE( IOUNIT, FMT = 9993 )PATH, 'Symmetric'
255         ELSE
256            WRITE( IOUNIT, FMT = 9993 )PATH, 'Hermitian'
257         END IF
258         WRITE( IOUNIT, FMT = 9976 )
259         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
260         WRITE( IOUNIT, FMT = 9952 )1
261         WRITE( IOUNIT, FMT = 9960 )2
262         WRITE( IOUNIT, FMT = 9959 )3
263         WRITE( IOUNIT, FMT = 9958 )4
264         WRITE( IOUNIT, FMT = 9957 )5
265         WRITE( IOUNIT, FMT = 9956 )6
266         WRITE( IOUNIT, FMT = 9955 )7
267         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
268*
269      ELSE IF( LSAMEN( 2, P2, 'SY' )  ) THEN
270*
271*        SY: Symmetric indefinite full
272*
273         IF( LSAME( C3, 'Y' ) ) THEN
274            WRITE( IOUNIT, FMT = 9992 )PATH, 'Symmetric'
275         ELSE
276            WRITE( IOUNIT, FMT = 9991 )PATH, 'Symmetric'
277         END IF
278         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
279         IF( SORD ) THEN
280            WRITE( IOUNIT, FMT = 9972 )
281         ELSE
282            WRITE( IOUNIT, FMT = 9971 )
283         END IF
284         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
285         WRITE( IOUNIT, FMT = 9953 )1
286         WRITE( IOUNIT, FMT = 9961 )2
287         WRITE( IOUNIT, FMT = 9960 )3
288         WRITE( IOUNIT, FMT = 9960 )4
289         WRITE( IOUNIT, FMT = 9959 )5
290         WRITE( IOUNIT, FMT = 9958 )6
291         WRITE( IOUNIT, FMT = 9956 )7
292         WRITE( IOUNIT, FMT = 9957 )8
293         WRITE( IOUNIT, FMT = 9955 )9
294         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
295*
296      ELSE IF( LSAMEN( 2, P2, 'SP' ) ) THEN
297*
298*        SP: Symmetric indefinite packed
299*
300         IF( LSAME( C3, 'Y' ) ) THEN
301            WRITE( IOUNIT, FMT = 9992 )PATH, 'Symmetric'
302         ELSE
303            WRITE( IOUNIT, FMT = 9991 )PATH, 'Symmetric'
304         END IF
305         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
306         IF( SORD ) THEN
307            WRITE( IOUNIT, FMT = 9972 )
308         ELSE
309            WRITE( IOUNIT, FMT = 9971 )
310         END IF
311         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
312         WRITE( IOUNIT, FMT = 9953 )1
313         WRITE( IOUNIT, FMT = 9961 )2
314         WRITE( IOUNIT, FMT = 9960 )3
315         WRITE( IOUNIT, FMT = 9959 )4
316         WRITE( IOUNIT, FMT = 9958 )5
317         WRITE( IOUNIT, FMT = 9956 )6
318         WRITE( IOUNIT, FMT = 9957 )7
319         WRITE( IOUNIT, FMT = 9955 )8
320         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
321*
322      ELSE IF( LSAMEN( 2, P2, 'HE' )  ) THEN
323*
324*        HE: Hermitian indefinite full
325*
326         IF( LSAME( C3, 'E' ) ) THEN
327            WRITE( IOUNIT, FMT = 9992 )PATH, 'Hermitian'
328         ELSE
329            WRITE( IOUNIT, FMT = 9991 )PATH, 'Hermitian'
330         END IF
331         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
332         IF( SORD ) THEN
333            WRITE( IOUNIT, FMT = 9972 )
334         ELSE
335            WRITE( IOUNIT, FMT = 9971 )
336         END IF
337         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
338         WRITE( IOUNIT, FMT = 9953 )1
339         WRITE( IOUNIT, FMT = 9961 )2
340         WRITE( IOUNIT, FMT = 9960 )3
341         WRITE( IOUNIT, FMT = 9960 )4
342         WRITE( IOUNIT, FMT = 9959 )5
343         WRITE( IOUNIT, FMT = 9958 )6
344         WRITE( IOUNIT, FMT = 9956 )7
345         WRITE( IOUNIT, FMT = 9957 )8
346         WRITE( IOUNIT, FMT = 9955 )9
347         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
348*
349      ELSE IF( LSAMEN( 2, P2, 'HP' ) ) THEN
350*
351*        HP: Hermitian indefinite packed
352*
353         IF( LSAME( C3, 'E' ) ) THEN
354            WRITE( IOUNIT, FMT = 9992 )PATH, 'Hermitian'
355         ELSE
356            WRITE( IOUNIT, FMT = 9991 )PATH, 'Hermitian'
357         END IF
358         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
359         WRITE( IOUNIT, FMT = 9972 )
360         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
361         WRITE( IOUNIT, FMT = 9953 )1
362         WRITE( IOUNIT, FMT = 9961 )2
363         WRITE( IOUNIT, FMT = 9960 )3
364         WRITE( IOUNIT, FMT = 9959 )4
365         WRITE( IOUNIT, FMT = 9958 )5
366         WRITE( IOUNIT, FMT = 9956 )6
367         WRITE( IOUNIT, FMT = 9957 )7
368         WRITE( IOUNIT, FMT = 9955 )8
369         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
370*
371      ELSE IF( LSAMEN( 2, P2, 'TR' ) .OR. LSAMEN( 2, P2, 'TP' ) ) THEN
372*
373*        TR: Triangular full
374*        TP: Triangular packed
375*
376         IF( LSAME( C3, 'R' ) ) THEN
377            WRITE( IOUNIT, FMT = 9990 )PATH
378            SUBNAM = PATH( 1: 1 ) // 'LATRS'
379         ELSE
380            WRITE( IOUNIT, FMT = 9989 )PATH
381            SUBNAM = PATH( 1: 1 ) // 'LATPS'
382         END IF
383         WRITE( IOUNIT, FMT = 9966 )PATH
384         WRITE( IOUNIT, FMT = 9965 )SUBNAM(1:LEN_TRIM( SUBNAM ))
385         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
386         WRITE( IOUNIT, FMT = 9961 )1
387         WRITE( IOUNIT, FMT = 9960 )2
388         WRITE( IOUNIT, FMT = 9959 )3
389         WRITE( IOUNIT, FMT = 9958 )4
390         WRITE( IOUNIT, FMT = 9957 )5
391         WRITE( IOUNIT, FMT = 9956 )6
392         WRITE( IOUNIT, FMT = 9955 )7
393         WRITE( IOUNIT, FMT = 9951 )SUBNAM(1:LEN_TRIM( SUBNAM )), 8
394         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
395*
396      ELSE IF( LSAMEN( 2, P2, 'TB' ) ) THEN
397*
398*        TB: Triangular band
399*
400         WRITE( IOUNIT, FMT = 9988 )PATH
401         SUBNAM = PATH( 1: 1 ) // 'LATBS'
402         WRITE( IOUNIT, FMT = 9964 )PATH
403         WRITE( IOUNIT, FMT = 9963 )SUBNAM(1:LEN_TRIM( SUBNAM ))
404         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
405         WRITE( IOUNIT, FMT = 9960 )1
406         WRITE( IOUNIT, FMT = 9959 )2
407         WRITE( IOUNIT, FMT = 9958 )3
408         WRITE( IOUNIT, FMT = 9957 )4
409         WRITE( IOUNIT, FMT = 9956 )5
410         WRITE( IOUNIT, FMT = 9955 )6
411         WRITE( IOUNIT, FMT = 9951 )SUBNAM(1:LEN_TRIM( SUBNAM )), 7
412         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
413*
414      ELSE IF( LSAMEN( 2, P2, 'QR' ) ) THEN
415*
416*        QR decomposition of rectangular matrices
417*
418         WRITE( IOUNIT, FMT = 9987 )PATH, 'QR'
419         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
420         WRITE( IOUNIT, FMT = 9970 )
421         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
422         WRITE( IOUNIT, FMT = 9950 )1
423         WRITE( IOUNIT, FMT = 6950 )8
424         WRITE( IOUNIT, FMT = 9946 )2
425         WRITE( IOUNIT, FMT = 9944 )3, 'M'
426         WRITE( IOUNIT, FMT = 9943 )4, 'M'
427         WRITE( IOUNIT, FMT = 9942 )5, 'M'
428         WRITE( IOUNIT, FMT = 9941 )6, 'M'
429         WRITE( IOUNIT, FMT = 9960 )7
430         WRITE( IOUNIT, FMT = 6660 )9
431         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
432*
433      ELSE IF( LSAMEN( 2, P2, 'LQ' ) ) THEN
434*
435*        LQ decomposition of rectangular matrices
436*
437         WRITE( IOUNIT, FMT = 9987 )PATH, 'LQ'
438         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
439         WRITE( IOUNIT, FMT = 9970 )
440         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
441         WRITE( IOUNIT, FMT = 9949 )1
442         WRITE( IOUNIT, FMT = 9945 )2
443         WRITE( IOUNIT, FMT = 9944 )3, 'N'
444         WRITE( IOUNIT, FMT = 9943 )4, 'N'
445         WRITE( IOUNIT, FMT = 9942 )5, 'N'
446         WRITE( IOUNIT, FMT = 9941 )6, 'N'
447         WRITE( IOUNIT, FMT = 9960 )7
448         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
449*
450      ELSE IF( LSAMEN( 2, P2, 'QL' ) ) THEN
451*
452*        QL decomposition of rectangular matrices
453*
454         WRITE( IOUNIT, FMT = 9987 )PATH, 'QL'
455         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
456         WRITE( IOUNIT, FMT = 9970 )
457         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
458         WRITE( IOUNIT, FMT = 9948 )1
459         WRITE( IOUNIT, FMT = 9946 )2
460         WRITE( IOUNIT, FMT = 9944 )3, 'M'
461         WRITE( IOUNIT, FMT = 9943 )4, 'M'
462         WRITE( IOUNIT, FMT = 9942 )5, 'M'
463         WRITE( IOUNIT, FMT = 9941 )6, 'M'
464         WRITE( IOUNIT, FMT = 9960 )7
465         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
466*
467      ELSE IF( LSAMEN( 2, P2, 'RQ' ) ) THEN
468*
469*        RQ decomposition of rectangular matrices
470*
471         WRITE( IOUNIT, FMT = 9987 )PATH, 'RQ'
472         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
473         WRITE( IOUNIT, FMT = 9970 )
474         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
475         WRITE( IOUNIT, FMT = 9947 )1
476         WRITE( IOUNIT, FMT = 9945 )2
477         WRITE( IOUNIT, FMT = 9944 )3, 'N'
478         WRITE( IOUNIT, FMT = 9943 )4, 'N'
479         WRITE( IOUNIT, FMT = 9942 )5, 'N'
480         WRITE( IOUNIT, FMT = 9941 )6, 'N'
481         WRITE( IOUNIT, FMT = 9960 )7
482         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
483*
484      ELSE IF( LSAMEN( 2, P2, 'QP' ) ) THEN
485*
486*        QR decomposition with column pivoting
487*
488         WRITE( IOUNIT, FMT = 9986 )PATH
489         WRITE( IOUNIT, FMT = 9969 )
490         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
491         WRITE( IOUNIT, FMT = 9940 )1
492         WRITE( IOUNIT, FMT = 9939 )2
493         WRITE( IOUNIT, FMT = 9938 )3
494         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
495*
496      ELSE IF( LSAMEN( 2, P2, 'TZ' ) ) THEN
497*
498*        TZ:  Trapezoidal
499*
500         WRITE( IOUNIT, FMT = 9985 )PATH
501         WRITE( IOUNIT, FMT = 9968 )
502         WRITE( IOUNIT, FMT = 9929 )C1, C1
503         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
504         WRITE( IOUNIT, FMT = 9940 )1
505         WRITE( IOUNIT, FMT = 9937 )2
506         WRITE( IOUNIT, FMT = 9938 )3
507         WRITE( IOUNIT, FMT = 9940 )4
508         WRITE( IOUNIT, FMT = 9937 )5
509         WRITE( IOUNIT, FMT = 9938 )6
510         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
511*
512      ELSE IF( LSAMEN( 2, P2, 'LS' ) ) THEN
513*
514*        LS:  Least Squares driver routines for
515*             LS, LSD, LSS, LSX and LSY.
516*
517         WRITE( IOUNIT, FMT = 9984 )PATH
518         WRITE( IOUNIT, FMT = 9967 )
519         WRITE( IOUNIT, FMT = 9921 )C1, C1, C1, C1, C1
520         WRITE( IOUNIT, FMT = 9935 )1
521         WRITE( IOUNIT, FMT = 9931 )2
522         WRITE( IOUNIT, FMT = 9933 )3
523         WRITE( IOUNIT, FMT = 9935 )4
524         WRITE( IOUNIT, FMT = 9934 )5
525         WRITE( IOUNIT, FMT = 9932 )6
526         WRITE( IOUNIT, FMT = 9920 )
527         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
528*
529      ELSE IF( LSAMEN( 2, P2, 'LU' ) ) THEN
530*
531*        LU factorization variants
532*
533         WRITE( IOUNIT, FMT = 9983 )PATH
534         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
535         WRITE( IOUNIT, FMT = 9979 )
536         WRITE( IOUNIT, FMT = '( '' Test ratio:'' )' )
537         WRITE( IOUNIT, FMT = 9962 )1
538         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
539*
540      ELSE IF( LSAMEN( 2, P2, 'CH' ) ) THEN
541*
542*        Cholesky factorization variants
543*
544         WRITE( IOUNIT, FMT = 9982 )PATH
545         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
546         WRITE( IOUNIT, FMT = 9974 )
547         WRITE( IOUNIT, FMT = '( '' Test ratio:'' )' )
548         WRITE( IOUNIT, FMT = 9954 )1
549         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
550*
551      ELSE IF( LSAMEN( 2, P2, 'QS' ) ) THEN
552*
553*        QR factorization variants
554*
555         WRITE( IOUNIT, FMT = 9981 )PATH
556         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
557         WRITE( IOUNIT, FMT = 9970 )
558         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
559*
560      ELSE IF( LSAMEN( 2, P2, 'QT' ) ) THEN
561*
562*        QRT (general matrices)
563*
564         WRITE( IOUNIT, FMT = 8000 ) PATH
565         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
566         WRITE( IOUNIT, FMT = 8011 ) 1
567         WRITE( IOUNIT, FMT = 8012 ) 2
568         WRITE( IOUNIT, FMT = 8013 ) 3
569         WRITE( IOUNIT, FMT = 8014 ) 4
570         WRITE( IOUNIT, FMT = 8015 ) 5
571         WRITE( IOUNIT, FMT = 8016 ) 6
572*
573      ELSE IF( LSAMEN( 2, P2, 'QX' ) ) THEN
574*
575*        QRT (triangular-pentagonal)
576*
577         WRITE( IOUNIT, FMT = 8001 ) PATH
578         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
579         WRITE( IOUNIT, FMT = 8017 ) 1
580         WRITE( IOUNIT, FMT = 8018 ) 2
581         WRITE( IOUNIT, FMT = 8019 ) 3
582         WRITE( IOUNIT, FMT = 8020 ) 4
583         WRITE( IOUNIT, FMT = 8021 ) 5
584         WRITE( IOUNIT, FMT = 8022 ) 6
585*
586      ELSE
587*
588*        Print error message if no header is available.
589*
590         WRITE( IOUNIT, FMT = 9980 )PATH
591      END IF
592*
593*     First line of header
594*
595 9999 FORMAT( / 1X, A3, ':  General dense matrices' )
596 9998 FORMAT( / 1X, A3, ':  General band matrices' )
597 9997 FORMAT( / 1X, A3, ':  General tridiagonal' )
598 9996 FORMAT( / 1X, A3, ':  ', A9, ' positive definite matrices' )
599 9995 FORMAT( / 1X, A3, ':  ', A9, ' positive definite packed matrices'
600     $       )
601 9994 FORMAT( / 1X, A3, ':  ', A9, ' positive definite band matrices' )
602 9993 FORMAT( / 1X, A3, ':  ', A9, ' positive definite tridiagonal' )
603 9992 FORMAT( / 1X, A3, ':  ', A9, ' indefinite matrices' )
604 9991 FORMAT( / 1X, A3, ':  ', A9, ' indefinite packed matrices' )
605 9990 FORMAT( / 1X, A3, ':  Triangular matrices' )
606 9989 FORMAT( / 1X, A3, ':  Triangular packed matrices' )
607 9988 FORMAT( / 1X, A3, ':  Triangular band matrices' )
608 9987 FORMAT( / 1X, A3, ':  ', A2, ' factorization of general matrices'
609     $       )
610 9986 FORMAT( / 1X, A3, ':  QR factorization with column pivoting' )
611 9985 FORMAT( / 1X, A3, ':  RQ factorization of trapezoidal matrix' )
612 9984 FORMAT( / 1X, A3, ':  Least squares driver routines' )
613 9983 FORMAT( / 1X, A3, ':  LU factorization variants' )
614 9982 FORMAT( / 1X, A3, ':  Cholesky factorization variants' )
615 9981 FORMAT( / 1X, A3, ':  QR factorization variants' )
616 9980 FORMAT( / 1X, A3, ':  No header available' )
617 8000 FORMAT( / 1X, A3, ':  QRT factorization for general matrices' )
618 8001 FORMAT( / 1X, A3, ':  QRT factorization for ',
619     $       'triangular-pentagonal matrices' )
620
621*
622*     GE matrix types
623*
624 9979 FORMAT( 4X, '1. Diagonal', 24X, '7. Last n/2 columns zero', / 4X,
625     $      '2. Upper triangular', 16X,
626     $      '8. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
627     $      '3. Lower triangular', 16X, '9. Random, CNDNUM = 0.1/EPS',
628     $      / 4X, '4. Random, CNDNUM = 2', 13X,
629     $      '10. Scaled near underflow', / 4X, '5. First column zero',
630     $      14X, '11. Scaled near overflow', / 4X,
631     $      '6. Last column zero' )
632*
633*     GB matrix types
634*
635 9978 FORMAT( 4X, '1. Random, CNDNUM = 2', 14X,
636     $      '5. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
637     $      '2. First column zero', 15X, '6. Random, CNDNUM = .01/EPS',
638     $      / 4X, '3. Last column zero', 16X,
639     $      '7. Scaled near underflow', / 4X,
640     $      '4. Last n/2 columns zero', 11X, '8. Scaled near overflow' )
641*
642*     GT matrix types
643*
644 9977 FORMAT( ' Matrix types (1-6 have specified condition numbers):',
645     $      / 4X, '1. Diagonal', 24X, '7. Random, unspecified CNDNUM',
646     $      / 4X, '2. Random, CNDNUM = 2', 14X, '8. First column zero',
647     $      / 4X, '3. Random, CNDNUM = sqrt(0.1/EPS)', 2X,
648     $      '9. Last column zero', / 4X, '4. Random, CNDNUM = 0.1/EPS',
649     $      7X, '10. Last n/2 columns zero', / 4X,
650     $      '5. Scaled near underflow', 10X,
651     $      '11. Scaled near underflow', / 4X,
652     $      '6. Scaled near overflow', 11X, '12. Scaled near overflow' )
653*
654*     PT matrix types
655*
656 9976 FORMAT( ' Matrix types (1-6 have specified condition numbers):',
657     $      / 4X, '1. Diagonal', 24X, '7. Random, unspecified CNDNUM',
658     $      / 4X, '2. Random, CNDNUM = 2', 14X,
659     $      '8. First row and column zero', / 4X,
660     $      '3. Random, CNDNUM = sqrt(0.1/EPS)', 2X,
661     $      '9. Last row and column zero', / 4X,
662     $      '4. Random, CNDNUM = 0.1/EPS', 7X,
663     $      '10. Middle row and column zero', / 4X,
664     $      '5. Scaled near underflow', 10X,
665     $      '11. Scaled near underflow', / 4X,
666     $      '6. Scaled near overflow', 11X, '12. Scaled near overflow' )
667*
668*     PO, PP matrix types
669*
670 9975 FORMAT( 4X, '1. Diagonal', 24X,
671     $      '6. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
672     $      '2. Random, CNDNUM = 2', 14X, '7. Random, CNDNUM = 0.1/EPS',
673     $      / 3X, '*3. First row and column zero', 7X,
674     $      '8. Scaled near underflow', / 3X,
675     $      '*4. Last row and column zero', 8X,
676     $      '9. Scaled near overflow', / 3X,
677     $      '*5. Middle row and column zero', / 3X,
678     $      '(* - tests error exits from ', A3,
679     $      'TRF, no test ratios are computed)' )
680*
681*     CH matrix types
682*
683 9974 FORMAT( 4X, '1. Diagonal', 24X,
684     $      '6. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
685     $      '2. Random, CNDNUM = 2', 14X, '7. Random, CNDNUM = 0.1/EPS',
686     $      / 3X, '*3. First row and column zero', 7X,
687     $      '8. Scaled near underflow', / 3X,
688     $      '*4. Last row and column zero', 8X,
689     $      '9. Scaled near overflow', / 3X,
690     $      '*5. Middle row and column zero', / 3X,
691     $      '(* - tests error exits, no test ratios are computed)' )
692*
693*     PS matrix types
694*
695 8973 FORMAT( 4X, '1. Diagonal', / 4X, '2. Random, CNDNUM = 2', 14X,
696     $      / 3X, '*3. Nonzero eigenvalues of: D(1:RANK-1)=1 and ',
697     $      'D(RANK) = 1.0/', A4, / 3X,
698     $      '*4. Nonzero eigenvalues of: D(1)=1 and ',
699     $      ' D(2:RANK) = 1.0/', A4, / 3X,
700     $      '*5. Nonzero eigenvalues of: D(I) = ', A4,
701     $      '**(-(I-1)/(RANK-1)) ', ' I=1:RANK', / 4X,
702     $      '6. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
703     $      '7. Random, CNDNUM = 0.1/EPS', / 4X,
704     $      '8. Scaled near underflow', / 4X, '9. Scaled near overflow',
705     $      / 3X, '(* - Semi-definite tests )' )
706 8972 FORMAT( 3X, 'RANK minus computed rank, returned by ', A, 'PSTRF' )
707*
708*     PB matrix types
709*
710 9973 FORMAT( 4X, '1. Random, CNDNUM = 2', 14X,
711     $      '5. Random, CNDNUM = sqrt(0.1/EPS)', / 3X,
712     $      '*2. First row and column zero', 7X,
713     $      '6. Random, CNDNUM = 0.1/EPS', / 3X,
714     $      '*3. Last row and column zero', 8X,
715     $      '7. Scaled near underflow', / 3X,
716     $      '*4. Middle row and column zero', 6X,
717     $      '8. Scaled near overflow', / 3X,
718     $      '(* - tests error exits from ', A3,
719     $      'TRF, no test ratios are computed)' )
720*
721*     SSY, SSP, CHE, CHP matrix types
722*
723 9972 FORMAT( 4X, '1. Diagonal', 24X,
724     $      '6. Last n/2 rows and columns zero', / 4X,
725     $      '2. Random, CNDNUM = 2', 14X,
726     $      '7. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
727     $      '3. First row and column zero', 7X,
728     $      '8. Random, CNDNUM = 0.1/EPS', / 4X,
729     $      '4. Last row and column zero', 8X,
730     $      '9. Scaled near underflow', / 4X,
731     $      '5. Middle row and column zero', 5X,
732     $      '10. Scaled near overflow' )
733*
734*     CSY, CSP matrix types
735*
736 9971 FORMAT( 4X, '1. Diagonal', 24X,
737     $      '7. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
738     $      '2. Random, CNDNUM = 2', 14X, '8. Random, CNDNUM = 0.1/EPS',
739     $      / 4X, '3. First row and column zero', 7X,
740     $      '9. Scaled near underflow', / 4X,
741     $      '4. Last row and column zero', 7X,
742     $      '10. Scaled near overflow', / 4X,
743     $      '5. Middle row and column zero', 5X,
744     $      '11. Block diagonal matrix', / 4X,
745     $      '6. Last n/2 rows and columns zero' )
746*
747*     QR matrix types
748*
749 9970 FORMAT( 4X, '1. Diagonal', 24X,
750     $      '5. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
751     $      '2. Upper triangular', 16X, '6. Random, CNDNUM = 0.1/EPS',
752     $      / 4X, '3. Lower triangular', 16X,
753     $      '7. Scaled near underflow', / 4X, '4. Random, CNDNUM = 2',
754     $      14X, '8. Scaled near overflow' )
755*
756*     QP matrix types
757*
758 9969 FORMAT( ' Matrix types (2-6 have condition 1/EPS):', / 4X,
759     $      '1. Zero matrix', 21X, '4. First n/2 columns fixed', / 4X,
760     $      '2. One small eigenvalue', 12X, '5. Last n/2 columns fixed',
761     $      / 4X, '3. Geometric distribution', 10X,
762     $      '6. Every second column fixed' )
763*
764*     TZ matrix types
765*
766 9968 FORMAT( ' Matrix types (2-3 have condition 1/EPS):', / 4X,
767     $      '1. Zero matrix', / 4X, '2. One small eigenvalue', / 4X,
768     $      '3. Geometric distribution' )
769*
770*     LS matrix types
771*
772 9967 FORMAT( ' Matrix types (1-3: full rank, 4-6: rank deficient):',
773     $      / 4X, '1 and 4. Normal scaling', / 4X,
774     $      '2 and 5. Scaled near overflow', / 4X,
775     $      '3 and 6. Scaled near underflow' )
776*
777*     TR, TP matrix types
778*
779 9966 FORMAT( ' Matrix types for ', A3, ' routines:', / 4X,
780     $      '1. Diagonal', 24X, '6. Scaled near overflow', / 4X,
781     $      '2. Random, CNDNUM = 2', 14X, '7. Identity', / 4X,
782     $      '3. Random, CNDNUM = sqrt(0.1/EPS)  ',
783     $      '8. Unit triangular, CNDNUM = 2', / 4X,
784     $      '4. Random, CNDNUM = 0.1/EPS', 8X,
785     $      '9. Unit, CNDNUM = sqrt(0.1/EPS)', / 4X,
786     $      '5. Scaled near underflow', 10X,
787     $      '10. Unit, CNDNUM = 0.1/EPS' )
788 9965 FORMAT( ' Special types for testing ', A, ':', / 3X,
789     $      '11. Matrix elements are O(1), large right hand side', / 3X,
790     $      '12. First diagonal causes overflow,',
791     $      ' offdiagonal column norms < 1', / 3X,
792     $      '13. First diagonal causes overflow,',
793     $      ' offdiagonal column norms > 1', / 3X,
794     $      '14. Growth factor underflows, solution does not overflow',
795     $      / 3X, '15. Small diagonal causes gradual overflow', / 3X,
796     $      '16. One zero diagonal element', / 3X,
797     $      '17. Large offdiagonals cause overflow when adding a column'
798     $      , / 3X, '18. Unit triangular with large right hand side' )
799*
800*     TB matrix types
801*
802 9964 FORMAT( ' Matrix types for ', A3, ' routines:', / 4X,
803     $      '1. Random, CNDNUM = 2', 14X, '6. Identity', / 4X,
804     $      '2. Random, CNDNUM = sqrt(0.1/EPS)  ',
805     $      '7. Unit triangular, CNDNUM = 2', / 4X,
806     $      '3. Random, CNDNUM = 0.1/EPS', 8X,
807     $      '8. Unit, CNDNUM = sqrt(0.1/EPS)', / 4X,
808     $      '4. Scaled near underflow', 11X,
809     $      '9. Unit, CNDNUM = 0.1/EPS', / 4X,
810     $      '5. Scaled near overflow' )
811 9963 FORMAT( ' Special types for testing ', A, ':', / 3X,
812     $      '10. Matrix elements are O(1), large right hand side', / 3X,
813     $      '11. First diagonal causes overflow,',
814     $      ' offdiagonal column norms < 1', / 3X,
815     $      '12. First diagonal causes overflow,',
816     $      ' offdiagonal column norms > 1', / 3X,
817     $      '13. Growth factor underflows, solution does not overflow',
818     $      / 3X, '14. Small diagonal causes gradual overflow', / 3X,
819     $      '15. One zero diagonal element', / 3X,
820     $      '16. Large offdiagonals cause overflow when adding a column'
821     $      , / 3X, '17. Unit triangular with large right hand side' )
822*
823*     Test ratios
824*
825 9962 FORMAT( 3X, I2, ': norm( L * U - A )  / ( N * norm(A) * EPS )' )
826 9961 FORMAT( 3X, I2, ': norm( I - A*AINV ) / ',
827     $      '( N * norm(A) * norm(AINV) * EPS )' )
828 9960 FORMAT( 3X, I2, ': norm( B - A * X )  / ',
829     $      '( norm(A) * norm(X) * EPS )' )
830 6660 FORMAT( 3X, I2, ': diagonal is not non-negative')
831 9959 FORMAT( 3X, I2, ': norm( X - XACT )   / ',
832     $      '( norm(XACT) * CNDNUM * EPS )' )
833 9958 FORMAT( 3X, I2, ': norm( X - XACT )   / ',
834     $      '( norm(XACT) * CNDNUM * EPS ), refined' )
835 9957 FORMAT( 3X, I2, ': norm( X - XACT )   / ',
836     $      '( norm(XACT) * (error bound) )' )
837 9956 FORMAT( 3X, I2, ': (backward error)   / EPS' )
838 9955 FORMAT( 3X, I2, ': RCOND * CNDNUM - 1.0' )
839 9954 FORMAT( 3X, I2, ': norm( U'' * U - A ) / ( N * norm(A) * EPS )',
840     $      ', or', / 7X, 'norm( L * L'' - A ) / ( N * norm(A) * EPS )'
841     $       )
842 8950 FORMAT( 3X,
843     $      'norm( P * U'' * U * P'' - A ) / ( N * norm(A) * EPS )',
844     $      ', or', / 3X,
845     $      'norm( P * L * L'' * P'' - A ) / ( N * norm(A) * EPS )' )
846 9953 FORMAT( 3X, I2, ': norm( U*D*U'' - A ) / ( N * norm(A) * EPS )',
847     $      ', or', / 7X, 'norm( L*D*L'' - A ) / ( N * norm(A) * EPS )'
848     $       )
849 9952 FORMAT( 3X, I2, ': norm( U''*D*U - A ) / ( N * norm(A) * EPS )',
850     $      ', or', / 7X, 'norm( L*D*L'' - A ) / ( N * norm(A) * EPS )'
851     $       )
852 9951 FORMAT( ' Test ratio for ', A, ':', / 3X, I2,
853     $      ': norm( s*b - A*x )  / ( norm(A) * norm(x) * EPS )' )
854 9950 FORMAT( 3X, I2, ': norm( R - Q'' * A ) / ( M * norm(A) * EPS )' )
855 6950 FORMAT( 3X, I2, ': norm( R - Q'' * A ) / ( M * norm(A) * EPS )
856     $       [RFPG]' )
857 9949 FORMAT( 3X, I2, ': norm( L - A * Q'' ) / ( N * norm(A) * EPS )' )
858 9948 FORMAT( 3X, I2, ': norm( L - Q'' * A ) / ( M * norm(A) * EPS )' )
859 9947 FORMAT( 3X, I2, ': norm( R - A * Q'' ) / ( N * norm(A) * EPS )' )
860 9946 FORMAT( 3X, I2, ': norm( I - Q''*Q )   / ( M * EPS )' )
861 9945 FORMAT( 3X, I2, ': norm( I - Q*Q'' )   / ( N * EPS )' )
862 9944 FORMAT( 3X, I2, ': norm( Q*C - Q*C )  / ', '( ', A1,
863     $      ' * norm(C) * EPS )' )
864 9943 FORMAT( 3X, I2, ': norm( C*Q - C*Q )  / ', '( ', A1,
865     $      ' * norm(C) * EPS )' )
866 9942 FORMAT( 3X, I2, ': norm( Q''*C - Q''*C )/ ', '( ', A1,
867     $      ' * norm(C) * EPS )' )
868 9941 FORMAT( 3X, I2, ': norm( C*Q'' - C*Q'' )/ ', '( ', A1,
869     $      ' * norm(C) * EPS )' )
870 9940 FORMAT( 3X, I2, ': norm(svd(A) - svd(R)) / ',
871     $      '( M * norm(svd(R)) * EPS )' )
872 9939 FORMAT( 3X, I2, ': norm( A*P - Q*R )     / ( M * norm(A) * EPS )'
873     $       )
874 9938 FORMAT( 3X, I2, ': norm( I - Q''*Q )      / ( M * EPS )' )
875 9937 FORMAT( 3X, I2, ': norm( A - R*Q )       / ( M * norm(A) * EPS )'
876     $       )
877 9935 FORMAT( 3X, I2, ': norm( B - A * X )   / ',
878     $      '( max(M,N) * norm(A) * norm(X) * EPS )' )
879 9934 FORMAT( 3X, I2, ': norm( (A*X-B)'' *A ) / ',
880     $      '( max(M,N,NRHS) * norm(A) * norm(B) * EPS )' )
881 9933 FORMAT( 3X, I2, ': norm(svd(A)-svd(R)) / ',
882     $      '( min(M,N) * norm(svd(R)) * EPS )' )
883 9932 FORMAT( 3X, I2, ': Check if X is in the row space of A or A''' )
884 9931 FORMAT( 3X, I2, ': norm( (A*X-B)'' *A ) / ',
885     $      '( max(M,N,NRHS) * norm(A) * norm(B) * EPS )', / 7X,
886     $      'if TRANS=''N'' and M.GE.N or TRANS=''T'' and M.LT.N, ',
887     $      'otherwise', / 7X,
888     $      'check if X is in the row space of A or A'' ',
889     $      '(overdetermined case)' )
890 9929 FORMAT( ' Test ratios (1-3: ', A1, 'TZRQF, 4-6: ', A1,
891     $      'TZRZF):' )
892 9920 FORMAT( 3X, ' 7-10: same as 3-6', 3X, ' 11-14: same as 3-6',
893     $      3X, ' 15-18: same as 3-6' )
894 9921 FORMAT( ' Test ratios:', / '    (1-2: ', A1, 'GELS, 3-6: ', A1,
895     $      'GELSX, 7-10: ', A1, 'GELSY, 11-14: ', A1, 'GELSS, 15-18: ',
896     $      A1, 'GELSD)' )
897 8011 FORMAT(3X,I2,': norm( R - Q''*A ) / ( M * norm(A) * EPS )' )
898 8012 FORMAT(3X,I2,': norm( I - Q''*Q ) / ( M * EPS )' )
899 8013 FORMAT(3X,I2,': norm( Q*C - Q*C ) / ( M * norm(C) * EPS )' )
900 8014 FORMAT(3X,I2,': norm( Q''*C - Q''*C ) / ( M * norm(C) * EPS )')
901 8015 FORMAT(3X,I2,': norm( C*Q - C*Q ) / ( M * norm(C) * EPS )' )
902 8016 FORMAT(3X,I2,': norm( C*Q'' - C*Q'' ) / ( M * norm(C) * EPS )')
903 8017 FORMAT(3X,I2,': norm( R - Q''*A ) / ( (M+N) * norm(A) * EPS )' )
904 8018 FORMAT(3X,I2,': norm( I - Q''*Q ) / ( (M+N) * EPS )' )
905 8019 FORMAT(3X,I2,': norm( Q*C - Q*C ) / ( (M+N) * norm(C) * EPS )' )
906 8020 FORMAT(3X,I2,
907     $ ': norm( Q''*C - Q''*C ) / ( (M+N) * norm(C) * EPS )')
908 8021 FORMAT(3X,I2,': norm( C*Q - C*Q ) / ( (M+N) * norm(C) * EPS )' )
909 8022 FORMAT(3X,I2,
910     $ ': norm( C*Q'' - C*Q'' ) / ( (M+N) * norm(C) * EPS )')
911*
912      RETURN
913*
914*     End of ALAHD
915*
916      END
917