1*> \brief \b ALADHD
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 ALADHD( 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*> ALADHD prints header information for the driver routines 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*>                     with partial (Bunch-Kaufman) pivoting
52*>             _SR:  Symmetric indefinite,
53*>                     with rook (bounded Bunch-Kaufman) pivoting
54*>             _SK:  Symmetric indefinite,
55*>                     with rook (bounded Bunch-Kaufman) pivoting
56*>                     ( new storage format for factors:
57*>                       L and diagonal of D is stored in A,
58*>                       subdiagonal of D is stored in E )
59*>             _SP:  Symmetric indefinite packed,
60*>                     with partial (Bunch-Kaufman) pivoting
61*>             _HA:  (complex) Hermitian ,
62*>                     Assen Algorithm
63*>             _HE:  (complex) Hermitian indefinite,
64*>                     with partial (Bunch-Kaufman) pivoting
65*>             _HR:  (complex) Hermitian indefinite,
66*>                     with rook (bounded Bunch-Kaufman) pivoting
67*>             _HK:  (complex) Hermitian indefinite,
68*>                     with rook (bounded Bunch-Kaufman) pivoting
69*>                     ( new storage format for factors:
70*>                       L and diagonal of D is stored in A,
71*>                       subdiagonal of D is stored in E )
72*>             _HP:  (complex) Hermitian indefinite packed,
73*>                     with partial (Bunch-Kaufman) pivoting
74*>          The first character must be one of S, D, C, or Z (C or Z only
75*>          if complex).
76*> \endverbatim
77*
78*  Authors:
79*  ========
80*
81*> \author Univ. of Tennessee
82*> \author Univ. of California Berkeley
83*> \author Univ. of Colorado Denver
84*> \author NAG Ltd.
85*
86*> \ingroup aux_lin
87*
88*  =====================================================================
89      SUBROUTINE ALADHD( IOUNIT, PATH )
90*
91*  -- LAPACK test routine --
92*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
93*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
94*
95*     .. Scalar Arguments ..
96      CHARACTER*3        PATH
97      INTEGER            IOUNIT
98*     ..
99*
100*  =====================================================================
101*
102*     .. Local Scalars ..
103      LOGICAL            CORZ, SORD
104      CHARACTER          C1, C3
105      CHARACTER*2        P2
106      CHARACTER*9        SYM
107*     ..
108*     .. External Functions ..
109      LOGICAL            LSAME, LSAMEN
110      EXTERNAL           LSAME, LSAMEN
111*     ..
112*     .. Executable Statements ..
113*
114      IF( IOUNIT.LE.0 )
115     $   RETURN
116      C1 = PATH( 1: 1 )
117      C3 = PATH( 3: 3 )
118      P2 = PATH( 2: 3 )
119      SORD = LSAME( C1, 'S' ) .OR. LSAME( C1, 'D' )
120      CORZ = LSAME( C1, 'C' ) .OR. LSAME( C1, 'Z' )
121      IF( .NOT.( SORD .OR. CORZ ) )
122     $   RETURN
123*
124      IF( LSAMEN( 2, P2, 'GE' ) ) THEN
125*
126*        GE: General dense
127*
128         WRITE( IOUNIT, FMT = 9999 )PATH
129         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
130         WRITE( IOUNIT, FMT = 9989 )
131         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
132         WRITE( IOUNIT, FMT = 9981 )1
133         WRITE( IOUNIT, FMT = 9980 )2
134         WRITE( IOUNIT, FMT = 9979 )3
135         WRITE( IOUNIT, FMT = 9978 )4
136         WRITE( IOUNIT, FMT = 9977 )5
137         WRITE( IOUNIT, FMT = 9976 )6
138         WRITE( IOUNIT, FMT = 9972 )7
139         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
140*
141      ELSE IF( LSAMEN( 2, P2, 'GB' ) ) THEN
142*
143*        GB: General band
144*
145         WRITE( IOUNIT, FMT = 9998 )PATH
146         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
147         WRITE( IOUNIT, FMT = 9988 )
148         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
149         WRITE( IOUNIT, FMT = 9981 )1
150         WRITE( IOUNIT, FMT = 9980 )2
151         WRITE( IOUNIT, FMT = 9979 )3
152         WRITE( IOUNIT, FMT = 9978 )4
153         WRITE( IOUNIT, FMT = 9977 )5
154         WRITE( IOUNIT, FMT = 9976 )6
155         WRITE( IOUNIT, FMT = 9972 )7
156         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
157*
158      ELSE IF( LSAMEN( 2, P2, 'GT' ) ) THEN
159*
160*        GT: General tridiagonal
161*
162         WRITE( IOUNIT, FMT = 9997 )PATH
163         WRITE( IOUNIT, FMT = 9987 )
164         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
165         WRITE( IOUNIT, FMT = 9981 )1
166         WRITE( IOUNIT, FMT = 9980 )2
167         WRITE( IOUNIT, FMT = 9979 )3
168         WRITE( IOUNIT, FMT = 9978 )4
169         WRITE( IOUNIT, FMT = 9977 )5
170         WRITE( IOUNIT, FMT = 9976 )6
171         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
172*
173      ELSE IF( LSAMEN( 2, P2, 'PO' ) .OR. LSAMEN( 2, P2, 'PP' )
174     $         .OR. LSAMEN( 2, P2, 'PS' ) ) THEN
175*
176*        PO: Positive definite full
177*        PS: Positive definite full
178*        PP: Positive definite packed
179*
180         IF( SORD ) THEN
181            SYM = 'Symmetric'
182         ELSE
183            SYM = 'Hermitian'
184         END IF
185         IF( LSAME( C3, 'O' ) ) THEN
186            WRITE( IOUNIT, FMT = 9996 )PATH, SYM
187         ELSE
188            WRITE( IOUNIT, FMT = 9995 )PATH, SYM
189         END IF
190         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
191         WRITE( IOUNIT, FMT = 9985 )PATH
192         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
193         WRITE( IOUNIT, FMT = 9975 )1
194         WRITE( IOUNIT, FMT = 9980 )2
195         WRITE( IOUNIT, FMT = 9979 )3
196         WRITE( IOUNIT, FMT = 9978 )4
197         WRITE( IOUNIT, FMT = 9977 )5
198         WRITE( IOUNIT, FMT = 9976 )6
199         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
200*
201      ELSE IF( LSAMEN( 2, P2, 'PB' ) ) THEN
202*
203*        PB: Positive definite band
204*
205         IF( SORD ) THEN
206            WRITE( IOUNIT, FMT = 9994 )PATH, 'Symmetric'
207         ELSE
208            WRITE( IOUNIT, FMT = 9994 )PATH, 'Hermitian'
209         END IF
210         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
211         WRITE( IOUNIT, FMT = 9984 )PATH
212         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
213         WRITE( IOUNIT, FMT = 9975 )1
214         WRITE( IOUNIT, FMT = 9980 )2
215         WRITE( IOUNIT, FMT = 9979 )3
216         WRITE( IOUNIT, FMT = 9978 )4
217         WRITE( IOUNIT, FMT = 9977 )5
218         WRITE( IOUNIT, FMT = 9976 )6
219         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
220*
221      ELSE IF( LSAMEN( 2, P2, 'PT' ) ) THEN
222*
223*        PT: Positive definite tridiagonal
224*
225         IF( SORD ) THEN
226            WRITE( IOUNIT, FMT = 9993 )PATH, 'Symmetric'
227         ELSE
228            WRITE( IOUNIT, FMT = 9993 )PATH, 'Hermitian'
229         END IF
230         WRITE( IOUNIT, FMT = 9986 )
231         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
232         WRITE( IOUNIT, FMT = 9973 )1
233         WRITE( IOUNIT, FMT = 9980 )2
234         WRITE( IOUNIT, FMT = 9979 )3
235         WRITE( IOUNIT, FMT = 9978 )4
236         WRITE( IOUNIT, FMT = 9977 )5
237         WRITE( IOUNIT, FMT = 9976 )6
238         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
239*
240      ELSE IF( LSAMEN( 2, P2, 'SY' ) .OR. LSAMEN( 2, P2, 'SP' ) ) THEN
241*
242*        SY: Symmetric indefinite full
243*            with partial (Bunch-Kaufman) pivoting algorithm
244*        SP: Symmetric indefinite packed
245*            with partial (Bunch-Kaufman) pivoting algorithm
246*
247         IF( LSAME( C3, 'Y' ) ) THEN
248            WRITE( IOUNIT, FMT = 9992 )PATH, 'Symmetric'
249         ELSE
250            WRITE( IOUNIT, FMT = 9991 )PATH, 'Symmetric'
251         END IF
252         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
253         IF( SORD ) THEN
254            WRITE( IOUNIT, FMT = 9983 )
255         ELSE
256            WRITE( IOUNIT, FMT = 9982 )
257         END IF
258         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
259         WRITE( IOUNIT, FMT = 9974 )1
260         WRITE( IOUNIT, FMT = 9980 )2
261         WRITE( IOUNIT, FMT = 9979 )3
262         WRITE( IOUNIT, FMT = 9977 )4
263         WRITE( IOUNIT, FMT = 9978 )5
264         WRITE( IOUNIT, FMT = 9976 )6
265         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
266*
267      ELSE IF( LSAMEN( 2, P2, 'SR' ) .OR. LSAMEN( 2, P2, 'SK') ) THEN
268*
269*        SR: Symmetric indefinite full,
270*            with rook (bounded Bunch-Kaufman) pivoting algorithm
271*
272*        SK: Symmetric indefinite full,
273*            with rook (bounded Bunch-Kaufman) pivoting algorithm,
274*            ( new storage format for factors:
275*              L and diagonal of D is stored in A,
276*              subdiagonal of D is stored in E )
277*
278         WRITE( IOUNIT, FMT = 9992 )PATH, 'Symmetric'
279*
280         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
281         IF( SORD ) THEN
282            WRITE( IOUNIT, FMT = 9983 )
283         ELSE
284            WRITE( IOUNIT, FMT = 9982 )
285         END IF
286*
287         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
288         WRITE( IOUNIT, FMT = 9974 )1
289         WRITE( IOUNIT, FMT = 9980 )2
290         WRITE( IOUNIT, FMT = 9979 )3
291         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
292*
293      ELSE IF( LSAMEN( 2, P2, 'HA' ) ) THEN
294*
295*        HA: Hermitian
296*            Aasen algorithm
297         WRITE( IOUNIT, FMT = 9971 )PATH, 'Hermitian'
298*
299         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
300         WRITE( IOUNIT, FMT = 9983 )
301*
302         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
303         WRITE( IOUNIT, FMT = 9974 )1
304         WRITE( IOUNIT, FMT = 9980 )2
305         WRITE( IOUNIT, FMT = 9979 )3
306         WRITE( IOUNIT, FMT = 9977 )4
307         WRITE( IOUNIT, FMT = 9978 )5
308         WRITE( IOUNIT, FMT = 9976 )6
309         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
310
311
312      ELSE IF( LSAMEN( 2, P2, 'HE' ) .OR.
313     $         LSAMEN( 2, P2, 'HP' ) ) THEN
314*
315*        HE: Hermitian indefinite full
316*            with partial (Bunch-Kaufman) pivoting algorithm
317*        HP: Hermitian indefinite packed
318*            with partial (Bunch-Kaufman) pivoting algorithm
319*
320         IF( LSAME( C3, 'E' ) ) THEN
321            WRITE( IOUNIT, FMT = 9992 )PATH, 'Hermitian'
322         ELSE
323            WRITE( IOUNIT, FMT = 9991 )PATH, 'Hermitian'
324         END IF
325*
326         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
327         WRITE( IOUNIT, FMT = 9983 )
328*
329         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
330         WRITE( IOUNIT, FMT = 9974 )1
331         WRITE( IOUNIT, FMT = 9980 )2
332         WRITE( IOUNIT, FMT = 9979 )3
333         WRITE( IOUNIT, FMT = 9977 )4
334         WRITE( IOUNIT, FMT = 9978 )5
335         WRITE( IOUNIT, FMT = 9976 )6
336         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
337*
338      ELSE IF( LSAMEN( 2, P2, 'HR' ) .OR. LSAMEN( 2, P2, 'HK' ) ) THEN
339*
340*        HR: Hermitian indefinite full,
341*            with rook (bounded Bunch-Kaufman) pivoting algorithm
342*
343*        HK: Hermitian indefinite full,
344*            with rook (bounded Bunch-Kaufman) pivoting algorithm,
345*            ( new storage format for factors:
346*              L and diagonal of D is stored in A,
347*              subdiagonal of D is stored in E )
348*
349         WRITE( IOUNIT, FMT = 9992 )PATH, 'Hermitian'
350*
351         WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
352         WRITE( IOUNIT, FMT = 9983 )
353*
354         WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
355         WRITE( IOUNIT, FMT = 9974 )1
356         WRITE( IOUNIT, FMT = 9980 )2
357         WRITE( IOUNIT, FMT = 9979 )3
358         WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
359*
360      ELSE
361*
362*        Print error message if no header is available.
363*
364         WRITE( IOUNIT, FMT = 9990 )PATH
365      END IF
366*
367*     First line of header
368*
369 9999 FORMAT( / 1X, A3, ' drivers:  General dense matrices' )
370 9998 FORMAT( / 1X, A3, ' drivers:  General band matrices' )
371 9997 FORMAT( / 1X, A3, ' drivers:  General tridiagonal' )
372 9996 FORMAT( / 1X, A3, ' drivers:  ', A9,
373     $      ' positive definite matrices' )
374 9995 FORMAT( / 1X, A3, ' drivers:  ', A9,
375     $      ' positive definite packed matrices' )
376 9994 FORMAT( / 1X, A3, ' drivers:  ', A9,
377     $      ' positive definite band matrices' )
378 9993 FORMAT( / 1X, A3, ' drivers:  ', A9,
379     $      ' positive definite tridiagonal' )
380 9971 FORMAT( / 1X, A3, ' drivers:  ', A9, ' indefinite matrices',
381     $     ', "Aasen" Algorithm' )
382 9992 FORMAT( / 1X, A3, ' drivers:  ', A9, ' indefinite matrices',
383     $     ', "rook" (bounded Bunch-Kaufman) pivoting' )
384 9991 FORMAT( / 1X, A3, ' drivers:  ', A9,
385     $      ' indefinite packed matrices',
386     $      ', partial (Bunch-Kaufman) pivoting' )
387 9891 FORMAT( / 1X, A3, ' drivers:  ', A9,
388     $      ' indefinite packed matrices',
389     $      ', "rook" (bounded Bunch-Kaufman) pivoting' )
390 9990 FORMAT( / 1X, A3, ':  No header available' )
391*
392*     GE matrix types
393*
394 9989 FORMAT( 4X, '1. Diagonal', 24X, '7. Last n/2 columns zero', / 4X,
395     $      '2. Upper triangular', 16X,
396     $      '8. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
397     $      '3. Lower triangular', 16X, '9. Random, CNDNUM = 0.1/EPS',
398     $      / 4X, '4. Random, CNDNUM = 2', 13X,
399     $      '10. Scaled near underflow', / 4X, '5. First column zero',
400     $      14X, '11. Scaled near overflow', / 4X,
401     $      '6. Last column zero' )
402*
403*     GB matrix types
404*
405 9988 FORMAT( 4X, '1. Random, CNDNUM = 2', 14X,
406     $      '5. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
407     $      '2. First column zero', 15X, '6. Random, CNDNUM = 0.1/EPS',
408     $      / 4X, '3. Last column zero', 16X,
409     $      '7. Scaled near underflow', / 4X,
410     $      '4. Last n/2 columns zero', 11X, '8. Scaled near overflow' )
411*
412*     GT matrix types
413*
414 9987 FORMAT( ' Matrix types (1-6 have specified condition numbers):',
415     $      / 4X, '1. Diagonal', 24X, '7. Random, unspecified CNDNUM',
416     $      / 4X, '2. Random, CNDNUM = 2', 14X, '8. First column zero',
417     $      / 4X, '3. Random, CNDNUM = sqrt(0.1/EPS)', 2X,
418     $      '9. Last column zero', / 4X, '4. Random, CNDNUM = 0.1/EPS',
419     $      7X, '10. Last n/2 columns zero', / 4X,
420     $      '5. Scaled near underflow', 10X,
421     $      '11. Scaled near underflow', / 4X,
422     $      '6. Scaled near overflow', 11X, '12. Scaled near overflow' )
423*
424*     PT matrix types
425*
426 9986 FORMAT( ' Matrix types (1-6 have specified condition numbers):',
427     $      / 4X, '1. Diagonal', 24X, '7. Random, unspecified CNDNUM',
428     $      / 4X, '2. Random, CNDNUM = 2', 14X,
429     $      '8. First row and column zero', / 4X,
430     $      '3. Random, CNDNUM = sqrt(0.1/EPS)', 2X,
431     $      '9. Last row and column zero', / 4X,
432     $      '4. Random, CNDNUM = 0.1/EPS', 7X,
433     $      '10. Middle row and column zero', / 4X,
434     $      '5. Scaled near underflow', 10X,
435     $      '11. Scaled near underflow', / 4X,
436     $      '6. Scaled near overflow', 11X, '12. Scaled near overflow' )
437*
438*     PO, PP matrix types
439*
440 9985 FORMAT( 4X, '1. Diagonal', 24X,
441     $      '6. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
442     $      '2. Random, CNDNUM = 2', 14X, '7. Random, CNDNUM = 0.1/EPS',
443     $      / 3X, '*3. First row and column zero', 7X,
444     $      '8. Scaled near underflow', / 3X,
445     $      '*4. Last row and column zero', 8X,
446     $      '9. Scaled near overflow', / 3X,
447     $      '*5. Middle row and column zero', / 3X,
448     $      '(* - tests error exits from ', A3,
449     $      'TRF, no test ratios are computed)' )
450*
451*     PB matrix types
452*
453 9984 FORMAT( 4X, '1. Random, CNDNUM = 2', 14X,
454     $      '5. Random, CNDNUM = sqrt(0.1/EPS)', / 3X,
455     $      '*2. First row and column zero', 7X,
456     $      '6. Random, CNDNUM = 0.1/EPS', / 3X,
457     $      '*3. Last row and column zero', 8X,
458     $      '7. Scaled near underflow', / 3X,
459     $      '*4. Middle row and column zero', 6X,
460     $      '8. Scaled near overflow', / 3X,
461     $      '(* - tests error exits from ', A3,
462     $      'TRF, no test ratios are computed)' )
463*
464*     SSY, SSP, CHE, CHP matrix types
465*
466 9983 FORMAT( 4X, '1. Diagonal', 24X,
467     $      '6. Last n/2 rows and columns zero', / 4X,
468     $      '2. Random, CNDNUM = 2', 14X,
469     $      '7. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
470     $      '3. First row and column zero', 7X,
471     $      '8. Random, CNDNUM = 0.1/EPS', / 4X,
472     $      '4. Last row and column zero', 8X,
473     $      '9. Scaled near underflow', / 4X,
474     $      '5. Middle row and column zero', 5X,
475     $      '10. Scaled near overflow' )
476*
477*     CSY, CSP matrix types
478*
479 9982 FORMAT( 4X, '1. Diagonal', 24X,
480     $      '7. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
481     $      '2. Random, CNDNUM = 2', 14X, '8. Random, CNDNUM = 0.1/EPS',
482     $      / 4X, '3. First row and column zero', 7X,
483     $      '9. Scaled near underflow', / 4X,
484     $      '4. Last row and column zero', 7X,
485     $      '10. Scaled near overflow', / 4X,
486     $      '5. Middle row and column zero', 5X,
487     $      '11. Block diagonal matrix', / 4X,
488     $      '6. Last n/2 rows and columns zero' )
489*
490*     Test ratios
491*
492 9981 FORMAT( 3X, I2, ': norm( L * U - A )  / ( N * norm(A) * EPS )' )
493 9980 FORMAT( 3X, I2, ': norm( B - A * X )  / ',
494     $      '( norm(A) * norm(X) * EPS )' )
495 9979 FORMAT( 3X, I2, ': norm( X - XACT )   / ',
496     $      '( norm(XACT) * CNDNUM * EPS )' )
497 9978 FORMAT( 3X, I2, ': norm( X - XACT )   / ',
498     $      '( norm(XACT) * (error bound) )' )
499 9977 FORMAT( 3X, I2, ': (backward error)   / EPS' )
500 9976 FORMAT( 3X, I2, ': RCOND * CNDNUM - 1.0' )
501 9975 FORMAT( 3X, I2, ': norm( U'' * U - A ) / ( N * norm(A) * EPS )',
502     $      ', or', / 7X, 'norm( L * L'' - A ) / ( N * norm(A) * EPS )'
503     $       )
504 9974 FORMAT( 3X, I2, ': norm( U*D*U'' - A ) / ( N * norm(A) * EPS )',
505     $      ', or', / 7X, 'norm( L*D*L'' - A ) / ( N * norm(A) * EPS )'
506     $       )
507 9973 FORMAT( 3X, I2, ': norm( U''*D*U - A ) / ( N * norm(A) * EPS )',
508     $      ', or', / 7X, 'norm( L*D*L'' - A ) / ( N * norm(A) * EPS )'
509     $       )
510 9972 FORMAT( 3X, I2, ': abs( WORK(1) - RPVGRW ) /',
511     $      ' ( max( WORK(1), RPVGRW ) * EPS )' )
512*
513      RETURN
514*
515*     End of ALADHD
516*
517      END
518