1*> \brief \b ZERRST
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 ZERRST( PATH, NUNIT )
12*
13*       .. Scalar Arguments ..
14*       CHARACTER*3        PATH
15*       INTEGER            NUNIT
16*       ..
17*
18*
19*> \par Purpose:
20*  =============
21*>
22*> \verbatim
23*>
24*> ZERRST tests the error exits for ZHETRD, ZUNGTR, CUNMTR, ZHPTRD,
25*> ZUNGTR, ZUPMTR, ZSTEQR, CSTEIN, ZPTEQR, ZHBTRD,
26*> ZHEEV, CHEEVX, CHEEVD, ZHBEV, CHBEVX, CHBEVD,
27*> ZHPEV, CHPEVX, CHPEVD, and ZSTEDC.
28*> \endverbatim
29*
30*  Arguments:
31*  ==========
32*
33*> \param[in] PATH
34*> \verbatim
35*>          PATH is CHARACTER*3
36*>          The LAPACK path name for the routines to be tested.
37*> \endverbatim
38*>
39*> \param[in] NUNIT
40*> \verbatim
41*>          NUNIT is INTEGER
42*>          The unit number for output.
43*> \endverbatim
44*
45*  Authors:
46*  ========
47*
48*> \author Univ. of Tennessee
49*> \author Univ. of California Berkeley
50*> \author Univ. of Colorado Denver
51*> \author NAG Ltd.
52*
53*> \date November 2011
54*
55*> \ingroup complex16_eig
56*
57*  =====================================================================
58      SUBROUTINE ZERRST( PATH, NUNIT )
59*
60*  -- LAPACK test routine (version 3.4.0) --
61*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
62*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
63*     November 2011
64*
65*     .. Scalar Arguments ..
66      CHARACTER*3        PATH
67      INTEGER            NUNIT
68*     ..
69*
70*  =====================================================================
71*
72*     .. Parameters ..
73      INTEGER            NMAX, LIW, LW
74      PARAMETER          ( NMAX = 3, LIW = 12*NMAX, LW = 20*NMAX )
75*     ..
76*     .. Local Scalars ..
77      CHARACTER*2        C2
78      INTEGER            I, INFO, J, M, N, NT
79*     ..
80*     .. Local Arrays ..
81      INTEGER            I1( NMAX ), I2( NMAX ), I3( NMAX ), IW( LIW )
82      DOUBLE PRECISION   D( NMAX ), E( NMAX ), R( LW ), RW( LW ),
83     $                   X( NMAX )
84      COMPLEX*16         A( NMAX, NMAX ), C( NMAX, NMAX ),
85     $                   Q( NMAX, NMAX ), TAU( NMAX ), W( LW ),
86     $                   Z( NMAX, NMAX )
87*     ..
88*     .. External Functions ..
89      LOGICAL            LSAMEN
90      EXTERNAL           LSAMEN
91*     ..
92*     .. External Subroutines ..
93      EXTERNAL           CHKXER, ZHBEV, ZHBEVD, ZHBEVX, ZHBTRD, ZHEEV,
94     $                   ZHEEVD, ZHEEVR, ZHEEVX, ZHETRD, ZHPEV, ZHPEVD,
95     $                   ZHPEVX, ZHPTRD, ZPTEQR, ZSTEDC, ZSTEIN, ZSTEQR,
96     $                   ZUNGTR, ZUNMTR, ZUPGTR, ZUPMTR
97*     ..
98*     .. Scalars in Common ..
99      LOGICAL            LERR, OK
100      CHARACTER*32       SRNAMT
101      INTEGER            INFOT, NOUT
102*     ..
103*     .. Common blocks ..
104      COMMON             / INFOC / INFOT, NOUT, OK, LERR
105      COMMON             / SRNAMC / SRNAMT
106*     ..
107*     .. Intrinsic Functions ..
108      INTRINSIC          DBLE
109*     ..
110*     .. Executable Statements ..
111*
112      NOUT = NUNIT
113      WRITE( NOUT, FMT = * )
114      C2 = PATH( 2: 3 )
115*
116*     Set the variables to innocuous values.
117*
118      DO 20 J = 1, NMAX
119         DO 10 I = 1, NMAX
120            A( I, J ) = 1.D0 / DBLE( I+J )
121   10    CONTINUE
122   20 CONTINUE
123      DO 30 J = 1, NMAX
124         D( J ) = DBLE( J )
125         E( J ) = 0.0D0
126         I1( J ) = J
127         I2( J ) = J
128         TAU( J ) = 1.D0
129   30 CONTINUE
130      OK = .TRUE.
131      NT = 0
132*
133*     Test error exits for the ST path.
134*
135      IF( LSAMEN( 2, C2, 'ST' ) ) THEN
136*
137*        ZHETRD
138*
139         SRNAMT = 'ZHETRD'
140         INFOT = 1
141         CALL ZHETRD( '/', 0, A, 1, D, E, TAU, W, 1, INFO )
142         CALL CHKXER( 'ZHETRD', INFOT, NOUT, LERR, OK )
143         INFOT = 2
144         CALL ZHETRD( 'U', -1, A, 1, D, E, TAU, W, 1, INFO )
145         CALL CHKXER( 'ZHETRD', INFOT, NOUT, LERR, OK )
146         INFOT = 4
147         CALL ZHETRD( 'U', 2, A, 1, D, E, TAU, W, 1, INFO )
148         CALL CHKXER( 'ZHETRD', INFOT, NOUT, LERR, OK )
149         INFOT = 9
150         CALL ZHETRD( 'U', 0, A, 1, D, E, TAU, W, 0, INFO )
151         CALL CHKXER( 'ZHETRD', INFOT, NOUT, LERR, OK )
152         NT = NT + 4
153*
154*        ZUNGTR
155*
156         SRNAMT = 'ZUNGTR'
157         INFOT = 1
158         CALL ZUNGTR( '/', 0, A, 1, TAU, W, 1, INFO )
159         CALL CHKXER( 'ZUNGTR', INFOT, NOUT, LERR, OK )
160         INFOT = 2
161         CALL ZUNGTR( 'U', -1, A, 1, TAU, W, 1, INFO )
162         CALL CHKXER( 'ZUNGTR', INFOT, NOUT, LERR, OK )
163         INFOT = 4
164         CALL ZUNGTR( 'U', 2, A, 1, TAU, W, 1, INFO )
165         CALL CHKXER( 'ZUNGTR', INFOT, NOUT, LERR, OK )
166         INFOT = 7
167         CALL ZUNGTR( 'U', 3, A, 3, TAU, W, 1, INFO )
168         CALL CHKXER( 'ZUNGTR', INFOT, NOUT, LERR, OK )
169         NT = NT + 4
170*
171*        ZUNMTR
172*
173         SRNAMT = 'ZUNMTR'
174         INFOT = 1
175         CALL ZUNMTR( '/', 'U', 'N', 0, 0, A, 1, TAU, C, 1, W, 1, INFO )
176         CALL CHKXER( 'ZUNMTR', INFOT, NOUT, LERR, OK )
177         INFOT = 2
178         CALL ZUNMTR( 'L', '/', 'N', 0, 0, A, 1, TAU, C, 1, W, 1, INFO )
179         CALL CHKXER( 'ZUNMTR', INFOT, NOUT, LERR, OK )
180         INFOT = 3
181         CALL ZUNMTR( 'L', 'U', '/', 0, 0, A, 1, TAU, C, 1, W, 1, INFO )
182         CALL CHKXER( 'ZUNMTR', INFOT, NOUT, LERR, OK )
183         INFOT = 4
184         CALL ZUNMTR( 'L', 'U', 'N', -1, 0, A, 1, TAU, C, 1, W, 1,
185     $                INFO )
186         CALL CHKXER( 'ZUNMTR', INFOT, NOUT, LERR, OK )
187         INFOT = 5
188         CALL ZUNMTR( 'L', 'U', 'N', 0, -1, A, 1, TAU, C, 1, W, 1,
189     $                INFO )
190         CALL CHKXER( 'ZUNMTR', INFOT, NOUT, LERR, OK )
191         INFOT = 7
192         CALL ZUNMTR( 'L', 'U', 'N', 2, 0, A, 1, TAU, C, 2, W, 1, INFO )
193         CALL CHKXER( 'ZUNMTR', INFOT, NOUT, LERR, OK )
194         INFOT = 7
195         CALL ZUNMTR( 'R', 'U', 'N', 0, 2, A, 1, TAU, C, 1, W, 1, INFO )
196         CALL CHKXER( 'ZUNMTR', INFOT, NOUT, LERR, OK )
197         INFOT = 10
198         CALL ZUNMTR( 'L', 'U', 'N', 2, 0, A, 2, TAU, C, 1, W, 1, INFO )
199         CALL CHKXER( 'ZUNMTR', INFOT, NOUT, LERR, OK )
200         INFOT = 12
201         CALL ZUNMTR( 'L', 'U', 'N', 0, 2, A, 1, TAU, C, 1, W, 1, INFO )
202         CALL CHKXER( 'ZUNMTR', INFOT, NOUT, LERR, OK )
203         INFOT = 12
204         CALL ZUNMTR( 'R', 'U', 'N', 2, 0, A, 1, TAU, C, 2, W, 1, INFO )
205         CALL CHKXER( 'ZUNMTR', INFOT, NOUT, LERR, OK )
206         NT = NT + 10
207*
208*        ZHPTRD
209*
210         SRNAMT = 'ZHPTRD'
211         INFOT = 1
212         CALL ZHPTRD( '/', 0, A, D, E, TAU, INFO )
213         CALL CHKXER( 'ZHPTRD', INFOT, NOUT, LERR, OK )
214         INFOT = 2
215         CALL ZHPTRD( 'U', -1, A, D, E, TAU, INFO )
216         CALL CHKXER( 'ZHPTRD', INFOT, NOUT, LERR, OK )
217         NT = NT + 2
218*
219*        ZUPGTR
220*
221         SRNAMT = 'ZUPGTR'
222         INFOT = 1
223         CALL ZUPGTR( '/', 0, A, TAU, Z, 1, W, INFO )
224         CALL CHKXER( 'ZUPGTR', INFOT, NOUT, LERR, OK )
225         INFOT = 2
226         CALL ZUPGTR( 'U', -1, A, TAU, Z, 1, W, INFO )
227         CALL CHKXER( 'ZUPGTR', INFOT, NOUT, LERR, OK )
228         INFOT = 6
229         CALL ZUPGTR( 'U', 2, A, TAU, Z, 1, W, INFO )
230         CALL CHKXER( 'ZUPGTR', INFOT, NOUT, LERR, OK )
231         NT = NT + 3
232*
233*        ZUPMTR
234*
235         SRNAMT = 'ZUPMTR'
236         INFOT = 1
237         CALL ZUPMTR( '/', 'U', 'N', 0, 0, A, TAU, C, 1, W, INFO )
238         CALL CHKXER( 'ZUPMTR', INFOT, NOUT, LERR, OK )
239         INFOT = 2
240         CALL ZUPMTR( 'L', '/', 'N', 0, 0, A, TAU, C, 1, W, INFO )
241         CALL CHKXER( 'ZUPMTR', INFOT, NOUT, LERR, OK )
242         INFOT = 3
243         CALL ZUPMTR( 'L', 'U', '/', 0, 0, A, TAU, C, 1, W, INFO )
244         CALL CHKXER( 'ZUPMTR', INFOT, NOUT, LERR, OK )
245         INFOT = 4
246         CALL ZUPMTR( 'L', 'U', 'N', -1, 0, A, TAU, C, 1, W, INFO )
247         CALL CHKXER( 'ZUPMTR', INFOT, NOUT, LERR, OK )
248         INFOT = 5
249         CALL ZUPMTR( 'L', 'U', 'N', 0, -1, A, TAU, C, 1, W, INFO )
250         CALL CHKXER( 'ZUPMTR', INFOT, NOUT, LERR, OK )
251         INFOT = 9
252         CALL ZUPMTR( 'L', 'U', 'N', 2, 0, A, TAU, C, 1, W, INFO )
253         CALL CHKXER( 'ZUPMTR', INFOT, NOUT, LERR, OK )
254         NT = NT + 6
255*
256*        ZPTEQR
257*
258         SRNAMT = 'ZPTEQR'
259         INFOT = 1
260         CALL ZPTEQR( '/', 0, D, E, Z, 1, RW, INFO )
261         CALL CHKXER( 'ZPTEQR', INFOT, NOUT, LERR, OK )
262         INFOT = 2
263         CALL ZPTEQR( 'N', -1, D, E, Z, 1, RW, INFO )
264         CALL CHKXER( 'ZPTEQR', INFOT, NOUT, LERR, OK )
265         INFOT = 6
266         CALL ZPTEQR( 'V', 2, D, E, Z, 1, RW, INFO )
267         CALL CHKXER( 'ZPTEQR', INFOT, NOUT, LERR, OK )
268         NT = NT + 3
269*
270*        ZSTEIN
271*
272         SRNAMT = 'ZSTEIN'
273         INFOT = 1
274         CALL ZSTEIN( -1, D, E, 0, X, I1, I2, Z, 1, RW, IW, I3, INFO )
275         CALL CHKXER( 'ZSTEIN', INFOT, NOUT, LERR, OK )
276         INFOT = 4
277         CALL ZSTEIN( 0, D, E, -1, X, I1, I2, Z, 1, RW, IW, I3, INFO )
278         CALL CHKXER( 'ZSTEIN', INFOT, NOUT, LERR, OK )
279         INFOT = 4
280         CALL ZSTEIN( 0, D, E, 1, X, I1, I2, Z, 1, RW, IW, I3, INFO )
281         CALL CHKXER( 'ZSTEIN', INFOT, NOUT, LERR, OK )
282         INFOT = 9
283         CALL ZSTEIN( 2, D, E, 0, X, I1, I2, Z, 1, RW, IW, I3, INFO )
284         CALL CHKXER( 'ZSTEIN', INFOT, NOUT, LERR, OK )
285         NT = NT + 4
286*
287*        ZSTEQR
288*
289         SRNAMT = 'ZSTEQR'
290         INFOT = 1
291         CALL ZSTEQR( '/', 0, D, E, Z, 1, RW, INFO )
292         CALL CHKXER( 'ZSTEQR', INFOT, NOUT, LERR, OK )
293         INFOT = 2
294         CALL ZSTEQR( 'N', -1, D, E, Z, 1, RW, INFO )
295         CALL CHKXER( 'ZSTEQR', INFOT, NOUT, LERR, OK )
296         INFOT = 6
297         CALL ZSTEQR( 'V', 2, D, E, Z, 1, RW, INFO )
298         CALL CHKXER( 'ZSTEQR', INFOT, NOUT, LERR, OK )
299         NT = NT + 3
300*
301*        ZSTEDC
302*
303         SRNAMT = 'ZSTEDC'
304         INFOT = 1
305         CALL ZSTEDC( '/', 0, D, E, Z, 1, W, 1, RW, 1, IW, 1, INFO )
306         CALL CHKXER( 'ZSTEDC', INFOT, NOUT, LERR, OK )
307         INFOT = 2
308         CALL ZSTEDC( 'N', -1, D, E, Z, 1, W, 1, RW, 1, IW, 1, INFO )
309         CALL CHKXER( 'ZSTEDC', INFOT, NOUT, LERR, OK )
310         INFOT = 6
311         CALL ZSTEDC( 'V', 2, D, E, Z, 1, W, 4, RW, 23, IW, 28, INFO )
312         CALL CHKXER( 'ZSTEDC', INFOT, NOUT, LERR, OK )
313         INFOT = 8
314         CALL ZSTEDC( 'N', 2, D, E, Z, 1, W, 0, RW, 1, IW, 1, INFO )
315         CALL CHKXER( 'ZSTEDC', INFOT, NOUT, LERR, OK )
316         INFOT = 8
317         CALL ZSTEDC( 'V', 2, D, E, Z, 2, W, 0, RW, 23, IW, 28, INFO )
318         CALL CHKXER( 'ZSTEDC', INFOT, NOUT, LERR, OK )
319         INFOT = 10
320         CALL ZSTEDC( 'N', 2, D, E, Z, 1, W, 1, RW, 0, IW, 1, INFO )
321         CALL CHKXER( 'ZSTEDC', INFOT, NOUT, LERR, OK )
322         INFOT = 10
323         CALL ZSTEDC( 'I', 2, D, E, Z, 2, W, 1, RW, 1, IW, 12, INFO )
324         CALL CHKXER( 'ZSTEDC', INFOT, NOUT, LERR, OK )
325         INFOT = 10
326         CALL ZSTEDC( 'V', 2, D, E, Z, 2, W, 4, RW, 1, IW, 28, INFO )
327         CALL CHKXER( 'ZSTEDC', INFOT, NOUT, LERR, OK )
328         INFOT = 12
329         CALL ZSTEDC( 'N', 2, D, E, Z, 1, W, 1, RW, 1, IW, 0, INFO )
330         CALL CHKXER( 'ZSTEDC', INFOT, NOUT, LERR, OK )
331         INFOT = 12
332         CALL ZSTEDC( 'I', 2, D, E, Z, 2, W, 1, RW, 23, IW, 0, INFO )
333         CALL CHKXER( 'ZSTEDC', INFOT, NOUT, LERR, OK )
334         INFOT = 12
335         CALL ZSTEDC( 'V', 2, D, E, Z, 2, W, 4, RW, 23, IW, 0, INFO )
336         CALL CHKXER( 'ZSTEDC', INFOT, NOUT, LERR, OK )
337         NT = NT + 11
338*
339*        ZHEEVD
340*
341         SRNAMT = 'ZHEEVD'
342         INFOT = 1
343         CALL ZHEEVD( '/', 'U', 0, A, 1, X, W, 1, RW, 1, IW, 1, INFO )
344         CALL CHKXER( 'ZHEEVD', INFOT, NOUT, LERR, OK )
345         INFOT = 2
346         CALL ZHEEVD( 'N', '/', 0, A, 1, X, W, 1, RW, 1, IW, 1, INFO )
347         CALL CHKXER( 'ZHEEVD', INFOT, NOUT, LERR, OK )
348         INFOT = 3
349         CALL ZHEEVD( 'N', 'U', -1, A, 1, X, W, 1, RW, 1, IW, 1, INFO )
350         CALL CHKXER( 'ZHEEVD', INFOT, NOUT, LERR, OK )
351         INFOT = 5
352         CALL ZHEEVD( 'N', 'U', 2, A, 1, X, W, 3, RW, 2, IW, 1, INFO )
353         CALL CHKXER( 'ZHEEVD', INFOT, NOUT, LERR, OK )
354         INFOT = 8
355         CALL ZHEEVD( 'N', 'U', 1, A, 1, X, W, 0, RW, 1, IW, 1, INFO )
356         CALL CHKXER( 'ZHEEVD', INFOT, NOUT, LERR, OK )
357         INFOT = 8
358         CALL ZHEEVD( 'N', 'U', 2, A, 2, X, W, 2, RW, 2, IW, 1, INFO )
359         CALL CHKXER( 'ZHEEVD', INFOT, NOUT, LERR, OK )
360         INFOT = 8
361         CALL ZHEEVD( 'V', 'U', 2, A, 2, X, W, 3, RW, 25, IW, 12, INFO )
362         CALL CHKXER( 'ZHEEVD', INFOT, NOUT, LERR, OK )
363         INFOT = 10
364         CALL ZHEEVD( 'N', 'U', 1, A, 1, X, W, 1, RW, 0, IW, 1, INFO )
365         CALL CHKXER( 'ZHEEVD', INFOT, NOUT, LERR, OK )
366         INFOT = 10
367         CALL ZHEEVD( 'N', 'U', 2, A, 2, X, W, 3, RW, 1, IW, 1, INFO )
368         CALL CHKXER( 'ZHEEVD', INFOT, NOUT, LERR, OK )
369         INFOT = 10
370         CALL ZHEEVD( 'V', 'U', 2, A, 2, X, W, 8, RW, 18, IW, 12, INFO )
371         CALL CHKXER( 'ZHEEVD', INFOT, NOUT, LERR, OK )
372         INFOT = 12
373         CALL ZHEEVD( 'N', 'U', 1, A, 1, X, W, 1, RW, 1, IW, 0, INFO )
374         CALL CHKXER( 'ZHEEVD', INFOT, NOUT, LERR, OK )
375         INFOT = 12
376         CALL ZHEEVD( 'V', 'U', 2, A, 2, X, W, 8, RW, 25, IW, 11, INFO )
377         CALL CHKXER( 'ZHEEVD', INFOT, NOUT, LERR, OK )
378         NT = NT + 12
379*
380*        ZHEEV
381*
382         SRNAMT = 'ZHEEV '
383         INFOT = 1
384         CALL ZHEEV( '/', 'U', 0, A, 1, X, W, 1, RW, INFO )
385         CALL CHKXER( 'ZHEEV ', INFOT, NOUT, LERR, OK )
386         INFOT = 2
387         CALL ZHEEV( 'N', '/', 0, A, 1, X, W, 1, RW, INFO )
388         CALL CHKXER( 'ZHEEV ', INFOT, NOUT, LERR, OK )
389         INFOT = 3
390         CALL ZHEEV( 'N', 'U', -1, A, 1, X, W, 1, RW, INFO )
391         CALL CHKXER( 'ZHEEV ', INFOT, NOUT, LERR, OK )
392         INFOT = 5
393         CALL ZHEEV( 'N', 'U', 2, A, 1, X, W, 3, RW, INFO )
394         CALL CHKXER( 'ZHEEV ', INFOT, NOUT, LERR, OK )
395         INFOT = 8
396         CALL ZHEEV( 'N', 'U', 2, A, 2, X, W, 2, RW, INFO )
397         CALL CHKXER( 'ZHEEV ', INFOT, NOUT, LERR, OK )
398         NT = NT + 5
399*
400*        ZHEEVX
401*
402         SRNAMT = 'ZHEEVX'
403         INFOT = 1
404         CALL ZHEEVX( '/', 'A', 'U', 0, A, 1, 0.0D0, 0.0D0, 0, 0, 0.0D0,
405     $                M, X, Z, 1, W, 1, RW, IW, I3, INFO )
406         CALL CHKXER( 'ZHEEVX', INFOT, NOUT, LERR, OK )
407         INFOT = 2
408         CALL ZHEEVX( 'V', '/', 'U', 0, A, 1, 0.0D0, 1.0D0, 1, 0, 0.0D0,
409     $                M, X, Z, 1, W, 1, RW, IW, I3, INFO )
410         CALL CHKXER( 'ZHEEVX', INFOT, NOUT, LERR, OK )
411         INFOT = 3
412         CALL ZHEEVX( 'V', 'A', '/', 0, A, 1, 0.0D0, 0.0D0, 0, 0, 0.0D0,
413     $                M, X, Z, 1, W, 1, RW, IW, I3, INFO )
414         INFOT = 4
415         CALL ZHEEVX( 'V', 'A', 'U', -1, A, 1, 0.0D0, 0.0D0, 0, 0,
416     $                0.0D0, M, X, Z, 1, W, 1, RW, IW, I3, INFO )
417         CALL CHKXER( 'ZHEEVX', INFOT, NOUT, LERR, OK )
418         INFOT = 6
419         CALL ZHEEVX( 'V', 'A', 'U', 2, A, 1, 0.0D0, 0.0D0, 0, 0, 0.0D0,
420     $                M, X, Z, 2, W, 3, RW, IW, I3, INFO )
421         CALL CHKXER( 'ZHEEVX', INFOT, NOUT, LERR, OK )
422         INFOT = 8
423         CALL ZHEEVX( 'V', 'V', 'U', 1, A, 1, 0.0D0, 0.0D0, 0, 0, 0.0D0,
424     $                M, X, Z, 1, W, 1, RW, IW, I3, INFO )
425         CALL CHKXER( 'ZHEEVX', INFOT, NOUT, LERR, OK )
426         INFOT = 9
427         CALL ZHEEVX( 'V', 'I', 'U', 1, A, 1, 0.0D0, 0.0D0, 0, 0, 0.0D0,
428     $                M, X, Z, 1, W, 1, RW, IW, I3, INFO )
429         CALL CHKXER( 'ZHEEVX', INFOT, NOUT, LERR, OK )
430         INFOT = 10
431         CALL ZHEEVX( 'V', 'I', 'U', 2, A, 2, 0.0D0, 0.0D0, 2, 1, 0.0D0,
432     $                M, X, Z, 2, W, 3, RW, IW, I3, INFO )
433         CALL CHKXER( 'ZHEEVX', INFOT, NOUT, LERR, OK )
434         INFOT = 15
435         CALL ZHEEVX( 'V', 'A', 'U', 2, A, 2, 0.0D0, 0.0D0, 0, 0, 0.0D0,
436     $                M, X, Z, 1, W, 3, RW, IW, I3, INFO )
437         CALL CHKXER( 'ZHEEVX', INFOT, NOUT, LERR, OK )
438         INFOT = 17
439         CALL ZHEEVX( 'V', 'A', 'U', 2, A, 2, 0.0D0, 0.0D0, 0, 0, 0.0D0,
440     $                M, X, Z, 2, W, 2, RW, IW, I1, INFO )
441         CALL CHKXER( 'ZHEEVX', INFOT, NOUT, LERR, OK )
442         NT = NT + 10
443*
444*        ZHEEVR
445*
446         SRNAMT = 'ZHEEVR'
447         N = 1
448         INFOT = 1
449         CALL ZHEEVR( '/', 'A', 'U', 0, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
450     $                M, R, Z, 1, IW, Q, 2*N, RW, 24*N, IW( 2*N+1 ),
451     $                10*N, INFO )
452         CALL CHKXER( 'ZHEEVR', INFOT, NOUT, LERR, OK )
453         INFOT = 2
454         CALL ZHEEVR( 'V', '/', 'U', 0, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
455     $                M, R, Z, 1, IW, Q, 2*N, RW, 24*N, IW( 2*N+1 ),
456     $                10*N, INFO )
457         CALL CHKXER( 'ZHEEVR', INFOT, NOUT, LERR, OK )
458         INFOT = 3
459         CALL ZHEEVR( 'V', 'A', '/', -1, A, 1, 0.0D0, 0.0D0, 1, 1,
460     $                0.0D0, M, R, Z, 1, IW, Q, 2*N, RW, 24*N,
461     $                IW( 2*N+1 ), 10*N, INFO )
462         CALL CHKXER( 'ZHEEVR', INFOT, NOUT, LERR, OK )
463         INFOT = 4
464         CALL ZHEEVR( 'V', 'A', 'U', -1, A, 1, 0.0D0, 0.0D0, 1, 1,
465     $                0.0D0, M, R, Z, 1, IW, Q, 2*N, RW, 24*N,
466     $                IW( 2*N+1 ), 10*N, INFO )
467         CALL CHKXER( 'ZHEEVR', INFOT, NOUT, LERR, OK )
468         INFOT = 6
469         CALL ZHEEVR( 'V', 'A', 'U', 2, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
470     $                M, R, Z, 1, IW, Q, 2*N, RW, 24*N, IW( 2*N+1 ),
471     $                10*N, INFO )
472         CALL CHKXER( 'ZHEEVR', INFOT, NOUT, LERR, OK )
473         INFOT = 8
474         CALL ZHEEVR( 'V', 'V', 'U', 1, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
475     $                M, R, Z, 1, IW, Q, 2*N, RW, 24*N, IW( 2*N+1 ),
476     $                10*N, INFO )
477         CALL CHKXER( 'ZHEEVR', INFOT, NOUT, LERR, OK )
478         INFOT = 9
479         CALL ZHEEVR( 'V', 'I', 'U', 1, A, 1, 0.0D0, 0.0D0, 0, 1, 0.0D0,
480     $                M, R, Z, 1, IW, Q, 2*N, RW, 24*N, IW( 2*N+1 ),
481     $                10*N, INFO )
482         CALL CHKXER( 'ZHEEVR', INFOT, NOUT, LERR, OK )
483         INFOT = 10
484*
485         CALL ZHEEVR( 'V', 'I', 'U', 2, A, 2, 0.0D0, 0.0D0, 2, 1, 0.0D0,
486     $                M, R, Z, 1, IW, Q, 2*N, RW, 24*N, IW( 2*N+1 ),
487     $                10*N, INFO )
488         CALL CHKXER( 'ZHEEVR', INFOT, NOUT, LERR, OK )
489         INFOT = 15
490         CALL ZHEEVR( 'V', 'I', 'U', 1, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
491     $                M, R, Z, 0, IW, Q, 2*N, RW, 24*N, IW( 2*N+1 ),
492     $                10*N, INFO )
493         CALL CHKXER( 'ZHEEVR', INFOT, NOUT, LERR, OK )
494         INFOT = 18
495         CALL ZHEEVR( 'V', 'I', 'U', 1, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
496     $                M, R, Z, 1, IW, Q, 2*N-1, RW, 24*N, IW( 2*N+1 ),
497     $                10*N, INFO )
498         CALL CHKXER( 'ZHEEVR', INFOT, NOUT, LERR, OK )
499         INFOT = 20
500         CALL ZHEEVR( 'V', 'I', 'U', 1, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
501     $                M, R, Z, 1, IW, Q, 2*N, RW, 24*N-1, IW( 2*N-1 ),
502     $                10*N, INFO )
503         CALL CHKXER( 'ZHEEVR', INFOT, NOUT, LERR, OK )
504         INFOT = 22
505         CALL ZHEEVR( 'V', 'I', 'U', 1, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
506     $                M, R, Z, 1, IW, Q, 2*N, RW, 24*N, IW, 10*N-1,
507     $                INFO )
508         CALL CHKXER( 'ZHEEVR', INFOT, NOUT, LERR, OK )
509         NT = NT + 12
510*
511*        ZHPEVD
512*
513         SRNAMT = 'ZHPEVD'
514         INFOT = 1
515         CALL ZHPEVD( '/', 'U', 0, A, X, Z, 1, W, 1, RW, 1, IW, 1,
516     $                INFO )
517         CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
518         INFOT = 2
519         CALL ZHPEVD( 'N', '/', 0, A, X, Z, 1, W, 1, RW, 1, IW, 1,
520     $                INFO )
521         CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
522         INFOT = 3
523         CALL ZHPEVD( 'N', 'U', -1, A, X, Z, 1, W, 1, RW, 1, IW, 1,
524     $                INFO )
525         CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
526         INFOT = 7
527         CALL ZHPEVD( 'V', 'U', 2, A, X, Z, 1, W, 4, RW, 25, IW, 12,
528     $                INFO )
529         CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
530         INFOT = 9
531         CALL ZHPEVD( 'N', 'U', 1, A, X, Z, 1, W, 0, RW, 1, IW, 1,
532     $                INFO )
533         CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
534         INFOT = 9
535         CALL ZHPEVD( 'N', 'U', 2, A, X, Z, 2, W, 1, RW, 2, IW, 1,
536     $                INFO )
537         CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
538         INFOT = 9
539         CALL ZHPEVD( 'V', 'U', 2, A, X, Z, 2, W, 2, RW, 25, IW, 12,
540     $                INFO )
541         CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
542         INFOT = 11
543         CALL ZHPEVD( 'N', 'U', 1, A, X, Z, 1, W, 1, RW, 0, IW, 1,
544     $                INFO )
545         CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
546         INFOT = 11
547         CALL ZHPEVD( 'N', 'U', 2, A, X, Z, 2, W, 2, RW, 1, IW, 1,
548     $                INFO )
549         CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
550         INFOT = 11
551         CALL ZHPEVD( 'V', 'U', 2, A, X, Z, 2, W, 4, RW, 18, IW, 12,
552     $                INFO )
553         CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
554         INFOT = 13
555         CALL ZHPEVD( 'N', 'U', 1, A, X, Z, 1, W, 1, RW, 1, IW, 0,
556     $                INFO )
557         CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
558         INFOT = 13
559         CALL ZHPEVD( 'N', 'U', 2, A, X, Z, 2, W, 2, RW, 2, IW, 0,
560     $                INFO )
561         CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
562         INFOT = 13
563         CALL ZHPEVD( 'V', 'U', 2, A, X, Z, 2, W, 4, RW, 25, IW, 2,
564     $                INFO )
565         CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
566         NT = NT + 13
567*
568*        ZHPEV
569*
570         SRNAMT = 'ZHPEV '
571         INFOT = 1
572         CALL ZHPEV( '/', 'U', 0, A, X, Z, 1, W, RW, INFO )
573         CALL CHKXER( 'ZHPEV ', INFOT, NOUT, LERR, OK )
574         INFOT = 2
575         CALL ZHPEV( 'N', '/', 0, A, X, Z, 1, W, RW, INFO )
576         CALL CHKXER( 'ZHPEV ', INFOT, NOUT, LERR, OK )
577         INFOT = 3
578         CALL ZHPEV( 'N', 'U', -1, A, X, Z, 1, W, RW, INFO )
579         CALL CHKXER( 'ZHPEV ', INFOT, NOUT, LERR, OK )
580         INFOT = 7
581         CALL ZHPEV( 'V', 'U', 2, A, X, Z, 1, W, RW, INFO )
582         CALL CHKXER( 'ZHPEV ', INFOT, NOUT, LERR, OK )
583         NT = NT + 4
584*
585*        ZHPEVX
586*
587         SRNAMT = 'ZHPEVX'
588         INFOT = 1
589         CALL ZHPEVX( '/', 'A', 'U', 0, A, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
590     $                X, Z, 1, W, RW, IW, I3, INFO )
591         CALL CHKXER( 'ZHPEVX', INFOT, NOUT, LERR, OK )
592         INFOT = 2
593         CALL ZHPEVX( 'V', '/', 'U', 0, A, 0.0D0, 1.0D0, 1, 0, 0.0D0, M,
594     $                X, Z, 1, W, RW, IW, I3, INFO )
595         CALL CHKXER( 'ZHPEVX', INFOT, NOUT, LERR, OK )
596         INFOT = 3
597         CALL ZHPEVX( 'V', 'A', '/', 0, A, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
598     $                X, Z, 1, W, RW, IW, I3, INFO )
599         CALL CHKXER( 'ZHPEVX', INFOT, NOUT, LERR, OK )
600         INFOT = 4
601         CALL ZHPEVX( 'V', 'A', 'U', -1, A, 0.0D0, 0.0D0, 0, 0, 0.0D0,
602     $                M, X, Z, 1, W, RW, IW, I3, INFO )
603         CALL CHKXER( 'ZHPEVX', INFOT, NOUT, LERR, OK )
604         INFOT = 7
605         CALL ZHPEVX( 'V', 'V', 'U', 1, A, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
606     $                X, Z, 1, W, RW, IW, I3, INFO )
607         CALL CHKXER( 'ZHPEVX', INFOT, NOUT, LERR, OK )
608         INFOT = 8
609         CALL ZHPEVX( 'V', 'I', 'U', 1, A, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
610     $                X, Z, 1, W, RW, IW, I3, INFO )
611         CALL CHKXER( 'ZHPEVX', INFOT, NOUT, LERR, OK )
612         INFOT = 9
613         CALL ZHPEVX( 'V', 'I', 'U', 2, A, 0.0D0, 0.0D0, 2, 1, 0.0D0, M,
614     $                X, Z, 2, W, RW, IW, I3, INFO )
615         CALL CHKXER( 'ZHPEVX', INFOT, NOUT, LERR, OK )
616         INFOT = 14
617         CALL ZHPEVX( 'V', 'A', 'U', 2, A, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
618     $                X, Z, 1, W, RW, IW, I3, INFO )
619         CALL CHKXER( 'ZHPEVX', INFOT, NOUT, LERR, OK )
620         NT = NT + 8
621*
622*     Test error exits for the HB path.
623*
624      ELSE IF( LSAMEN( 2, C2, 'HB' ) ) THEN
625*
626*        ZHBTRD
627*
628         SRNAMT = 'ZHBTRD'
629         INFOT = 1
630         CALL ZHBTRD( '/', 'U', 0, 0, A, 1, D, E, Z, 1, W, INFO )
631         CALL CHKXER( 'ZHBTRD', INFOT, NOUT, LERR, OK )
632         INFOT = 2
633         CALL ZHBTRD( 'N', '/', 0, 0, A, 1, D, E, Z, 1, W, INFO )
634         CALL CHKXER( 'ZHBTRD', INFOT, NOUT, LERR, OK )
635         INFOT = 3
636         CALL ZHBTRD( 'N', 'U', -1, 0, A, 1, D, E, Z, 1, W, INFO )
637         CALL CHKXER( 'ZHBTRD', INFOT, NOUT, LERR, OK )
638         INFOT = 4
639         CALL ZHBTRD( 'N', 'U', 0, -1, A, 1, D, E, Z, 1, W, INFO )
640         CALL CHKXER( 'ZHBTRD', INFOT, NOUT, LERR, OK )
641         INFOT = 6
642         CALL ZHBTRD( 'N', 'U', 1, 1, A, 1, D, E, Z, 1, W, INFO )
643         CALL CHKXER( 'ZHBTRD', INFOT, NOUT, LERR, OK )
644         INFOT = 10
645         CALL ZHBTRD( 'V', 'U', 2, 0, A, 1, D, E, Z, 1, W, INFO )
646         CALL CHKXER( 'ZHBTRD', INFOT, NOUT, LERR, OK )
647         NT = NT + 6
648*
649*        ZHBEVD
650*
651         SRNAMT = 'ZHBEVD'
652         INFOT = 1
653         CALL ZHBEVD( '/', 'U', 0, 0, A, 1, X, Z, 1, W, 1, RW, 1, IW, 1,
654     $                INFO )
655         CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
656         INFOT = 2
657         CALL ZHBEVD( 'N', '/', 0, 0, A, 1, X, Z, 1, W, 1, RW, 1, IW, 1,
658     $                INFO )
659         CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
660         INFOT = 3
661         CALL ZHBEVD( 'N', 'U', -1, 0, A, 1, X, Z, 1, W, 1, RW, 1, IW,
662     $                1, INFO )
663         CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
664         INFOT = 4
665         CALL ZHBEVD( 'N', 'U', 0, -1, A, 1, X, Z, 1, W, 1, RW, 1, IW,
666     $                1, INFO )
667         CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
668         INFOT = 6
669         CALL ZHBEVD( 'N', 'U', 2, 1, A, 1, X, Z, 1, W, 2, RW, 2, IW, 1,
670     $                INFO )
671         CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
672         INFOT = 9
673         CALL ZHBEVD( 'V', 'U', 2, 1, A, 2, X, Z, 1, W, 8, RW, 25, IW,
674     $                12, INFO )
675         CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
676         INFOT = 11
677         CALL ZHBEVD( 'N', 'U', 1, 0, A, 1, X, Z, 1, W, 0, RW, 1, IW, 1,
678     $                INFO )
679         CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
680         INFOT = 11
681         CALL ZHBEVD( 'N', 'U', 2, 1, A, 2, X, Z, 2, W, 1, RW, 2, IW, 1,
682     $                INFO )
683         CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
684         INFOT = 11
685         CALL ZHBEVD( 'V', 'U', 2, 1, A, 2, X, Z, 2, W, 2, RW, 25, IW,
686     $                12, INFO )
687         CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
688         INFOT = 13
689         CALL ZHBEVD( 'N', 'U', 1, 0, A, 1, X, Z, 1, W, 1, RW, 0, IW, 1,
690     $                INFO )
691         CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
692         INFOT = 13
693         CALL ZHBEVD( 'N', 'U', 2, 1, A, 2, X, Z, 2, W, 2, RW, 1, IW, 1,
694     $                INFO )
695         CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
696         INFOT = 13
697         CALL ZHBEVD( 'V', 'U', 2, 1, A, 2, X, Z, 2, W, 8, RW, 2, IW,
698     $                12, INFO )
699         CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
700         INFOT = 15
701         CALL ZHBEVD( 'N', 'U', 1, 0, A, 1, X, Z, 1, W, 1, RW, 1, IW, 0,
702     $                INFO )
703         CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
704         INFOT = 15
705         CALL ZHBEVD( 'N', 'U', 2, 1, A, 2, X, Z, 2, W, 2, RW, 2, IW, 0,
706     $                INFO )
707         CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
708         INFOT = 15
709         CALL ZHBEVD( 'V', 'U', 2, 1, A, 2, X, Z, 2, W, 8, RW, 25, IW,
710     $                2, INFO )
711         CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
712         NT = NT + 15
713*
714*        ZHBEV
715*
716         SRNAMT = 'ZHBEV '
717         INFOT = 1
718         CALL ZHBEV( '/', 'U', 0, 0, A, 1, X, Z, 1, W, RW, INFO )
719         CALL CHKXER( 'ZHBEV ', INFOT, NOUT, LERR, OK )
720         INFOT = 2
721         CALL ZHBEV( 'N', '/', 0, 0, A, 1, X, Z, 1, W, RW, INFO )
722         CALL CHKXER( 'ZHBEV ', INFOT, NOUT, LERR, OK )
723         INFOT = 3
724         CALL ZHBEV( 'N', 'U', -1, 0, A, 1, X, Z, 1, W, RW, INFO )
725         CALL CHKXER( 'ZHBEV ', INFOT, NOUT, LERR, OK )
726         INFOT = 4
727         CALL ZHBEV( 'N', 'U', 0, -1, A, 1, X, Z, 1, W, RW, INFO )
728         CALL CHKXER( 'ZHBEV ', INFOT, NOUT, LERR, OK )
729         INFOT = 6
730         CALL ZHBEV( 'N', 'U', 2, 1, A, 1, X, Z, 1, W, RW, INFO )
731         CALL CHKXER( 'ZHBEV ', INFOT, NOUT, LERR, OK )
732         INFOT = 9
733         CALL ZHBEV( 'V', 'U', 2, 0, A, 1, X, Z, 1, W, RW, INFO )
734         CALL CHKXER( 'ZHBEV ', INFOT, NOUT, LERR, OK )
735         NT = NT + 6
736*
737*        ZHBEVX
738*
739         SRNAMT = 'ZHBEVX'
740         INFOT = 1
741         CALL ZHBEVX( '/', 'A', 'U', 0, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
742     $                0, 0.0D0, M, X, Z, 1, W, RW, IW, I3, INFO )
743         CALL CHKXER( 'ZHBEVX', INFOT, NOUT, LERR, OK )
744         INFOT = 2
745         CALL ZHBEVX( 'V', '/', 'U', 0, 0, A, 1, Q, 1, 0.0D0, 1.0D0, 1,
746     $                0, 0.0D0, M, X, Z, 1, W, RW, IW, I3, INFO )
747         CALL CHKXER( 'ZHBEVX', INFOT, NOUT, LERR, OK )
748         INFOT = 3
749         CALL ZHBEVX( 'V', 'A', '/', 0, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
750     $                0, 0.0D0, M, X, Z, 1, W, RW, IW, I3, INFO )
751         INFOT = 4
752         CALL ZHBEVX( 'V', 'A', 'U', -1, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
753     $                0, 0.0D0, M, X, Z, 1, W, RW, IW, I3, INFO )
754         CALL CHKXER( 'ZHBEVX', INFOT, NOUT, LERR, OK )
755         INFOT = 5
756         CALL ZHBEVX( 'V', 'A', 'U', 0, -1, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
757     $                0, 0.0D0, M, X, Z, 1, W, RW, IW, I3, INFO )
758         CALL CHKXER( 'ZHBEVX', INFOT, NOUT, LERR, OK )
759         INFOT = 7
760         CALL ZHBEVX( 'V', 'A', 'U', 2, 1, A, 1, Q, 2, 0.0D0, 0.0D0, 0,
761     $                0, 0.0D0, M, X, Z, 2, W, RW, IW, I3, INFO )
762         CALL CHKXER( 'ZHBEVX', INFOT, NOUT, LERR, OK )
763         INFOT = 9
764         CALL ZHBEVX( 'V', 'A', 'U', 2, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
765     $                0, 0.0D0, M, X, Z, 2, W, RW, IW, I3, INFO )
766         CALL CHKXER( 'ZHBEVX', INFOT, NOUT, LERR, OK )
767         INFOT = 11
768         CALL ZHBEVX( 'V', 'V', 'U', 1, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
769     $                0, 0.0D0, M, X, Z, 1, W, RW, IW, I3, INFO )
770         CALL CHKXER( 'ZHBEVX', INFOT, NOUT, LERR, OK )
771         INFOT = 12
772         CALL ZHBEVX( 'V', 'I', 'U', 1, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
773     $                0, 0.0D0, M, X, Z, 1, W, RW, IW, I3, INFO )
774         CALL CHKXER( 'ZHBEVX', INFOT, NOUT, LERR, OK )
775         INFOT = 13
776         CALL ZHBEVX( 'V', 'I', 'U', 1, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 1,
777     $                2, 0.0D0, M, X, Z, 1, W, RW, IW, I3, INFO )
778         CALL CHKXER( 'ZHBEVX', INFOT, NOUT, LERR, OK )
779         INFOT = 18
780         CALL ZHBEVX( 'V', 'A', 'U', 2, 0, A, 1, Q, 2, 0.0D0, 0.0D0, 0,
781     $                0, 0.0D0, M, X, Z, 1, W, RW, IW, I3, INFO )
782         CALL CHKXER( 'ZHBEVX', INFOT, NOUT, LERR, OK )
783         NT = NT + 11
784      END IF
785*
786*     Print a summary line.
787*
788      IF( OK ) THEN
789         WRITE( NOUT, FMT = 9999 )PATH, NT
790      ELSE
791         WRITE( NOUT, FMT = 9998 )PATH
792      END IF
793*
794 9999 FORMAT( 1X, A3, ' routines passed the tests of the error exits',
795     $      ' (', I3, ' tests done)' )
796 9998 FORMAT( ' *** ', A3, ' routines failed the tests of the error ',
797     $      'exits ***' )
798*
799      RETURN
800*
801*     End of ZERRST
802*
803      END
804