1*> \brief \b DERRGG
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 DERRGG( 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*> DERRGG tests the error exits for DGGES, DGGESX, DGGEV,  DGGEVX,
25*> DGGGLM, DGGHRD, DGGLSE, DGGQRF, DGGRQF, DGGSVD3,
26*> DGGSVP3, DHGEQZ, DORCSD, DTGEVC, DTGEXC, DTGSEN, DTGSJA, DTGSNA,
27*> DGGES3, DGGEV3, and DTGSYL.
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*> \ingroup double_eig
54*
55*  =====================================================================
56      SUBROUTINE DERRGG( PATH, NUNIT )
57*
58*  -- LAPACK test routine --
59*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
60*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
61*
62*     .. Scalar Arguments ..
63      CHARACTER*3        PATH
64      INTEGER            NUNIT
65*     ..
66*
67*  =====================================================================
68*
69*     .. Parameters ..
70      INTEGER            NMAX, LW
71      PARAMETER          ( NMAX = 3, LW = 6*NMAX )
72      DOUBLE PRECISION   ONE, ZERO
73      PARAMETER          ( ONE = 1.0D+0, ZERO = 0.0D+0 )
74*     ..
75*     .. Local Scalars ..
76      CHARACTER*2        C2
77      INTEGER            DUMMYK, DUMMYL, I, IFST, ILO, IHI, ILST, INFO,
78     $                   J, M, NCYCLE, NT, SDIM, LWORK
79      DOUBLE PRECISION   ANRM, BNRM, DIF, SCALE, TOLA, TOLB
80*     ..
81*     .. Local Arrays ..
82      LOGICAL            BW( NMAX ), SEL( NMAX )
83      INTEGER            IW( NMAX ), IDUM(NMAX)
84      DOUBLE PRECISION   A( NMAX, NMAX ), B( NMAX, NMAX ), LS( NMAX ),
85     $                   Q( NMAX, NMAX ), R1( NMAX ), R2( NMAX ),
86     $                   R3( NMAX ), RCE( 2 ), RCV( 2 ), RS( NMAX ),
87     $                   TAU( NMAX ), U( NMAX, NMAX ), V( NMAX, NMAX ),
88     $                   W( LW ), Z( NMAX, NMAX )
89*     ..
90*     .. External Functions ..
91      LOGICAL            DLCTES, DLCTSX, LSAMEN
92      EXTERNAL           DLCTES, DLCTSX, LSAMEN
93*     ..
94*     .. External Subroutines ..
95      EXTERNAL           CHKXER, DGGES, DGGESX, DGGEV, DGGEVX, DGGGLM,
96     $                   DGGHRD, DGGLSE, DGGQRF, DGGRQF,
97     $                   DHGEQZ, DORCSD, DTGEVC, DTGEXC, DTGSEN, DTGSJA,
98     $                   DTGSNA, DTGSYL, DGGHD3, DGGES3, DGGEV3,
99     $                   DGGSVD3, DGGSVP3, XLAENV
100*     ..
101*     .. Scalars in Common ..
102      LOGICAL            LERR, OK
103      CHARACTER*32       SRNAMT
104      INTEGER            INFOT, NOUT
105*     ..
106*     .. Common blocks ..
107      COMMON             / INFOC / INFOT, NOUT, OK, LERR
108      COMMON             / SRNAMC / SRNAMT
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         SEL( J ) = .TRUE.
120         DO 10 I = 1, NMAX
121            A( I, J ) = ZERO
122            B( I, J ) = ZERO
123   10    CONTINUE
124   20 CONTINUE
125      DO 30 I = 1, NMAX
126         A( I, I ) = ONE
127         B( I, I ) = ONE
128   30 CONTINUE
129      OK = .TRUE.
130      TOLA = 1.0D0
131      TOLB = 1.0D0
132      IFST = 1
133      ILST = 1
134      NT = 0
135      LWORK = 1
136*
137*     Call XLAENV to set the parameters used in CLAQZ0
138*
139      CALL XLAENV( 12, 10 )
140      CALL XLAENV( 13, 12 )
141      CALL XLAENV( 14, 13 )
142      CALL XLAENV( 15, 2 )
143      CALL XLAENV( 17, 10 )
144*
145*     Test error exits for the GG path.
146*
147      IF( LSAMEN( 2, C2, 'GG' ) ) THEN
148*
149*        DGGHRD
150*
151         SRNAMT = 'DGGHRD'
152         INFOT = 1
153         CALL DGGHRD( '/', 'N', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
154         CALL CHKXER( 'DGGHRD', INFOT, NOUT, LERR, OK )
155         INFOT = 2
156         CALL DGGHRD( 'N', '/', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
157         CALL CHKXER( 'DGGHRD', INFOT, NOUT, LERR, OK )
158         INFOT = 3
159         CALL DGGHRD( 'N', 'N', -1, 0, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
160         CALL CHKXER( 'DGGHRD', INFOT, NOUT, LERR, OK )
161         INFOT = 4
162         CALL DGGHRD( 'N', 'N', 0, 0, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
163         CALL CHKXER( 'DGGHRD', INFOT, NOUT, LERR, OK )
164         INFOT = 5
165         CALL DGGHRD( 'N', 'N', 0, 1, 1, A, 1, B, 1, Q, 1, Z, 1, INFO )
166         CALL CHKXER( 'DGGHRD', INFOT, NOUT, LERR, OK )
167         INFOT = 7
168         CALL DGGHRD( 'N', 'N', 2, 1, 1, A, 1, B, 2, Q, 1, Z, 1, INFO )
169         CALL CHKXER( 'DGGHRD', INFOT, NOUT, LERR, OK )
170         INFOT = 9
171         CALL DGGHRD( 'N', 'N', 2, 1, 1, A, 2, B, 1, Q, 1, Z, 1, INFO )
172         CALL CHKXER( 'DGGHRD', INFOT, NOUT, LERR, OK )
173         INFOT = 11
174         CALL DGGHRD( 'V', 'N', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, INFO )
175         CALL CHKXER( 'DGGHRD', INFOT, NOUT, LERR, OK )
176         INFOT = 13
177         CALL DGGHRD( 'N', 'V', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, INFO )
178         CALL CHKXER( 'DGGHRD', INFOT, NOUT, LERR, OK )
179         NT = NT + 9
180*
181*        DGGHD3
182*
183         SRNAMT = 'DGGHD3'
184         INFOT = 1
185         CALL DGGHD3( '/', 'N', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, W, LW,
186     $                INFO )
187         CALL CHKXER( 'DGGHD3', INFOT, NOUT, LERR, OK )
188         INFOT = 2
189         CALL DGGHD3( 'N', '/', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, W, LW,
190     $                INFO )
191         CALL CHKXER( 'DGGHD3', INFOT, NOUT, LERR, OK )
192         INFOT = 3
193         CALL DGGHD3( 'N', 'N', -1, 0, 0, A, 1, B, 1, Q, 1, Z, 1, W, LW,
194     $                INFO )
195         CALL CHKXER( 'DGGHD3', INFOT, NOUT, LERR, OK )
196         INFOT = 4
197         CALL DGGHD3( 'N', 'N', 0, 0, 0, A, 1, B, 1, Q, 1, Z, 1, W, LW,
198     $                INFO )
199         CALL CHKXER( 'DGGHD3', INFOT, NOUT, LERR, OK )
200         INFOT = 5
201         CALL DGGHD3( 'N', 'N', 0, 1, 1, A, 1, B, 1, Q, 1, Z, 1, W, LW,
202     $                INFO )
203         CALL CHKXER( 'DGGHD3', INFOT, NOUT, LERR, OK )
204         INFOT = 7
205         CALL DGGHD3( 'N', 'N', 2, 1, 1, A, 1, B, 2, Q, 1, Z, 1, W, LW,
206     $                INFO )
207         CALL CHKXER( 'DGGHD3', INFOT, NOUT, LERR, OK )
208         INFOT = 9
209         CALL DGGHD3( 'N', 'N', 2, 1, 1, A, 2, B, 1, Q, 1, Z, 1, W, LW,
210     $                INFO )
211         CALL CHKXER( 'DGGHD3', INFOT, NOUT, LERR, OK )
212         INFOT = 11
213         CALL DGGHD3( 'V', 'N', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, W, LW,
214     $                INFO )
215         CALL CHKXER( 'DGGHD3', INFOT, NOUT, LERR, OK )
216         INFOT = 13
217         CALL DGGHD3( 'N', 'V', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, W, LW,
218     $                INFO )
219         CALL CHKXER( 'DGGHD3', INFOT, NOUT, LERR, OK )
220         NT = NT + 9
221*
222*        DHGEQZ
223*
224         SRNAMT = 'DHGEQZ'
225         INFOT = 1
226         CALL DHGEQZ( '/', 'N', 'N', 0, 1, 0, A, 1, B, 1, R1, R2, R3, Q,
227     $                1, Z, 1, W, LW, INFO )
228         CALL CHKXER( 'DHGEQZ', INFOT, NOUT, LERR, OK )
229         INFOT = 2
230         CALL DHGEQZ( 'E', '/', 'N', 0, 1, 0, A, 1, B, 1, R1, R2, R3, Q,
231     $                1, Z, 1, W, LW, INFO )
232         CALL CHKXER( 'DHGEQZ', INFOT, NOUT, LERR, OK )
233         INFOT = 3
234         CALL DHGEQZ( 'E', 'N', '/', 0, 1, 0, A, 1, B, 1, R1, R2, R3, Q,
235     $                1, Z, 1, W, LW, INFO )
236         CALL CHKXER( 'DHGEQZ', INFOT, NOUT, LERR, OK )
237         INFOT = 4
238         CALL DHGEQZ( 'E', 'N', 'N', -1, 0, 0, A, 1, B, 1, R1, R2, R3,
239     $                Q, 1, Z, 1, W, LW, INFO )
240         CALL CHKXER( 'DHGEQZ', INFOT, NOUT, LERR, OK )
241         INFOT = 5
242         CALL DHGEQZ( 'E', 'N', 'N', 0, 0, 0, A, 1, B, 1, R1, R2, R3, Q,
243     $                1, Z, 1, W, LW, INFO )
244         CALL CHKXER( 'DHGEQZ', INFOT, NOUT, LERR, OK )
245         INFOT = 6
246         CALL DHGEQZ( 'E', 'N', 'N', 0, 1, 1, A, 1, B, 1, R1, R2, R3, Q,
247     $                1, Z, 1, W, LW, INFO )
248         CALL CHKXER( 'DHGEQZ', INFOT, NOUT, LERR, OK )
249         INFOT = 8
250         CALL DHGEQZ( 'E', 'N', 'N', 2, 1, 1, A, 1, B, 2, R1, R2, R3, Q,
251     $                1, Z, 1, W, LW, INFO )
252         CALL CHKXER( 'DHGEQZ', INFOT, NOUT, LERR, OK )
253         INFOT = 10
254         CALL DHGEQZ( 'E', 'N', 'N', 2, 1, 1, A, 2, B, 1, R1, R2, R3, Q,
255     $                1, Z, 1, W, LW, INFO )
256         CALL CHKXER( 'DHGEQZ', INFOT, NOUT, LERR, OK )
257         INFOT = 15
258         CALL DHGEQZ( 'E', 'V', 'N', 2, 1, 1, A, 2, B, 2, R1, R2, R3, Q,
259     $                1, Z, 1, W, LW, INFO )
260         CALL CHKXER( 'DHGEQZ', INFOT, NOUT, LERR, OK )
261         INFOT = 17
262         CALL DHGEQZ( 'E', 'N', 'V', 2, 1, 1, A, 2, B, 2, R1, R2, R3, Q,
263     $                1, Z, 1, W, LW, INFO )
264         CALL CHKXER( 'DHGEQZ', INFOT, NOUT, LERR, OK )
265         NT = NT + 10
266*
267*        DTGEVC
268*
269         SRNAMT = 'DTGEVC'
270         INFOT = 1
271         CALL DTGEVC( '/', 'A', SEL, 0, A, 1, B, 1, Q, 1, Z, 1, 0, M, W,
272     $                INFO )
273         CALL CHKXER( 'DTGEVC', INFOT, NOUT, LERR, OK )
274         INFOT = 2
275         CALL DTGEVC( 'R', '/', SEL, 0, A, 1, B, 1, Q, 1, Z, 1, 0, M, W,
276     $                INFO )
277         CALL CHKXER( 'DTGEVC', INFOT, NOUT, LERR, OK )
278         INFOT = 4
279         CALL DTGEVC( 'R', 'A', SEL, -1, A, 1, B, 1, Q, 1, Z, 1, 0, M,
280     $                W, INFO )
281         CALL CHKXER( 'DTGEVC', INFOT, NOUT, LERR, OK )
282         INFOT = 6
283         CALL DTGEVC( 'R', 'A', SEL, 2, A, 1, B, 2, Q, 1, Z, 2, 0, M, W,
284     $                INFO )
285         CALL CHKXER( 'DTGEVC', INFOT, NOUT, LERR, OK )
286         INFOT = 8
287         CALL DTGEVC( 'R', 'A', SEL, 2, A, 2, B, 1, Q, 1, Z, 2, 0, M, W,
288     $                INFO )
289         CALL CHKXER( 'DTGEVC', INFOT, NOUT, LERR, OK )
290         INFOT = 10
291         CALL DTGEVC( 'L', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 1, 0, M, W,
292     $                INFO )
293         CALL CHKXER( 'DTGEVC', INFOT, NOUT, LERR, OK )
294         INFOT = 12
295         CALL DTGEVC( 'R', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 1, 0, M, W,
296     $                INFO )
297         CALL CHKXER( 'DTGEVC', INFOT, NOUT, LERR, OK )
298         INFOT = 13
299         CALL DTGEVC( 'R', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 2, 1, M, W,
300     $                INFO )
301         CALL CHKXER( 'DTGEVC', INFOT, NOUT, LERR, OK )
302         NT = NT + 8
303*
304*     Test error exits for the GSV path.
305*
306      ELSE IF( LSAMEN( 3, PATH, 'GSV' ) ) THEN
307*
308*        DGGSVD3
309*
310         SRNAMT = 'DGGSVD3'
311         INFOT = 1
312         CALL DGGSVD3( '/', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
313     $               1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
314         CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
315         INFOT = 2
316         CALL DGGSVD3( 'N', '/', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
317     $               1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
318         CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
319         INFOT = 3
320         CALL DGGSVD3( 'N', 'N', '/', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
321     $               1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
322         CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
323         INFOT = 4
324         CALL DGGSVD3( 'N', 'N', 'N', -1, 0, 0, DUMMYK, DUMMYL, A, 1, B,
325     $               1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
326         CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
327         INFOT = 5
328         CALL DGGSVD3( 'N', 'N', 'N', 0, -1, 0, DUMMYK, DUMMYL, A, 1, B,
329     $               1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
330         CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
331         INFOT = 6
332         CALL DGGSVD3( 'N', 'N', 'N', 0, 0, -1, DUMMYK, DUMMYL, A, 1, B,
333     $               1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
334         CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
335         INFOT = 10
336         CALL DGGSVD3( 'N', 'N', 'N', 2, 1, 1, DUMMYK, DUMMYL, A, 1, B,
337     $               1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
338         CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
339         INFOT = 12
340         CALL DGGSVD3( 'N', 'N', 'N', 1, 1, 2, DUMMYK, DUMMYL, A, 1, B,
341     $               1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
342         CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
343         INFOT = 16
344         CALL DGGSVD3( 'U', 'N', 'N', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B,
345     $               2, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
346         CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
347         INFOT = 18
348         CALL DGGSVD3( 'N', 'V', 'N', 1, 1, 2, DUMMYK, DUMMYL, A, 1, B,
349     $               2, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
350         CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
351         INFOT = 20
352         CALL DGGSVD3( 'N', 'N', 'Q', 1, 2, 1, DUMMYK, DUMMYL, A, 1, B,
353     $               1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
354         CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
355         NT = NT + 11
356*
357*        DGGSVP3
358*
359         SRNAMT = 'DGGSVP3'
360         INFOT = 1
361         CALL DGGSVP3( '/', 'N', 'N', 0, 0, 0, A, 1, B, 1, TOLA, TOLB,
362     $                 DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
363     $                 LWORK, INFO )
364         CALL CHKXER( 'DGGSVP3', INFOT, NOUT, LERR, OK )
365         INFOT = 2
366         CALL DGGSVP3( 'N', '/', 'N', 0, 0, 0, A, 1, B, 1, TOLA, TOLB,
367     $                 DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
368     $                 LWORK, INFO )
369         CALL CHKXER( 'DGGSVP3', INFOT, NOUT, LERR, OK )
370         INFOT = 3
371         CALL DGGSVP3( 'N', 'N', '/', 0, 0, 0, A, 1, B, 1, TOLA, TOLB,
372     $                 DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
373     $                 LWORK, INFO )
374         CALL CHKXER( 'DGGSVP3', INFOT, NOUT, LERR, OK )
375         INFOT = 4
376         CALL DGGSVP3( 'N', 'N', 'N', -1, 0, 0, A, 1, B, 1, TOLA, TOLB,
377     $                 DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
378     $                 LWORK, INFO )
379         CALL CHKXER( 'DGGSVP3', INFOT, NOUT, LERR, OK )
380         INFOT = 5
381         CALL DGGSVP3( 'N', 'N', 'N', 0, -1, 0, A, 1, B, 1, TOLA, TOLB,
382     $                 DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
383     $                 LWORK, INFO )
384         CALL CHKXER( 'DGGSVP3', INFOT, NOUT, LERR, OK )
385         INFOT = 6
386         CALL DGGSVP3( 'N', 'N', 'N', 0, 0, -1, A, 1, B, 1, TOLA, TOLB,
387     $                 DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
388     $                 LWORK, INFO )
389         CALL CHKXER( 'DGGSVP3', INFOT, NOUT, LERR, OK )
390         INFOT = 8
391         CALL DGGSVP3( 'N', 'N', 'N', 2, 1, 1, A, 1, B, 1, TOLA, TOLB,
392     $                 DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
393     $                 LWORK, INFO )
394         CALL CHKXER( 'DGGSVP3', INFOT, NOUT, LERR, OK )
395         INFOT = 10
396         CALL DGGSVP3( 'N', 'N', 'N', 1, 2, 1, A, 1, B, 1, TOLA, TOLB,
397     $                 DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
398     $                 LWORK, INFO )
399         CALL CHKXER( 'DGGSVP3', INFOT, NOUT, LERR, OK )
400         INFOT = 16
401         CALL DGGSVP3( 'U', 'N', 'N', 2, 2, 2, A, 2, B, 2, TOLA, TOLB,
402     $                 DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
403     $                 LWORK, INFO )
404         CALL CHKXER( 'DGGSVP3', INFOT, NOUT, LERR, OK )
405         INFOT = 18
406         CALL DGGSVP3( 'N', 'V', 'N', 1, 2, 1, A, 1, B, 2, TOLA, TOLB,
407     $                 DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
408     $                 LWORK, INFO )
409         CALL CHKXER( 'DGGSVP3', INFOT, NOUT, LERR, OK )
410         INFOT = 20
411         CALL DGGSVP3( 'N', 'N', 'Q', 1, 1, 2, A, 1, B, 1, TOLA, TOLB,
412     $                 DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
413     $                 LWORK, INFO )
414         CALL CHKXER( 'DGGSVP3', INFOT, NOUT, LERR, OK )
415         NT = NT + 11
416*
417*        DTGSJA
418*
419         SRNAMT = 'DTGSJA'
420         INFOT = 1
421         CALL DTGSJA( '/', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
422     $                1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
423     $                NCYCLE, INFO )
424         CALL CHKXER( 'DTGSJA', INFOT, NOUT, LERR, OK )
425         INFOT = 2
426         CALL DTGSJA( 'N', '/', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
427     $                1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
428     $                NCYCLE, INFO )
429         CALL CHKXER( 'DTGSJA', INFOT, NOUT, LERR, OK )
430         INFOT = 3
431         CALL DTGSJA( 'N', 'N', '/', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
432     $                1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
433     $                NCYCLE, INFO )
434         CALL CHKXER( 'DTGSJA', INFOT, NOUT, LERR, OK )
435         INFOT = 4
436         CALL DTGSJA( 'N', 'N', 'N', -1, 0, 0, DUMMYK, DUMMYL, A, 1, B,
437     $                1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
438     $                NCYCLE, INFO )
439         CALL CHKXER( 'DTGSJA', INFOT, NOUT, LERR, OK )
440         INFOT = 5
441         CALL DTGSJA( 'N', 'N', 'N', 0, -1, 0, DUMMYK, DUMMYL, A, 1, B,
442     $                1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
443     $                NCYCLE, INFO )
444         CALL CHKXER( 'DTGSJA', INFOT, NOUT, LERR, OK )
445         INFOT = 6
446         CALL DTGSJA( 'N', 'N', 'N', 0, 0, -1, DUMMYK, DUMMYL, A, 1, B,
447     $                1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
448     $                NCYCLE, INFO )
449         CALL CHKXER( 'DTGSJA', INFOT, NOUT, LERR, OK )
450         INFOT = 10
451         CALL DTGSJA( 'N', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 0, B,
452     $                1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
453     $                NCYCLE, INFO )
454         CALL CHKXER( 'DTGSJA', INFOT, NOUT, LERR, OK )
455         INFOT = 12
456         CALL DTGSJA( 'N', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
457     $                0, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
458     $                NCYCLE, INFO )
459         CALL CHKXER( 'DTGSJA', INFOT, NOUT, LERR, OK )
460         INFOT = 18
461         CALL DTGSJA( 'U', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
462     $                1, TOLA, TOLB, R1, R2, U, 0, V, 1, Q, 1, W,
463     $                NCYCLE, INFO )
464         CALL CHKXER( 'DTGSJA', INFOT, NOUT, LERR, OK )
465         INFOT = 20
466         CALL DTGSJA( 'N', 'V', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
467     $                1, TOLA, TOLB, R1, R2, U, 1, V, 0, Q, 1, W,
468     $                NCYCLE, INFO )
469         CALL CHKXER( 'DTGSJA', INFOT, NOUT, LERR, OK )
470         INFOT = 22
471         CALL DTGSJA( 'N', 'N', 'Q', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
472     $                1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 0, W,
473     $                NCYCLE, INFO )
474         CALL CHKXER( 'DTGSJA', INFOT, NOUT, LERR, OK )
475         NT = NT + 11
476*
477*     Test error exits for the GLM path.
478*
479      ELSE IF( LSAMEN( 3, PATH, 'GLM' ) ) THEN
480*
481*        DGGGLM
482*
483         SRNAMT = 'DGGGLM'
484         INFOT = 1
485         CALL DGGGLM( -1, 0, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
486         CALL CHKXER( 'DGGGLM', INFOT, NOUT, LERR, OK )
487         INFOT = 2
488         CALL DGGGLM( 0, -1, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
489         CALL CHKXER( 'DGGGLM', INFOT, NOUT, LERR, OK )
490         INFOT = 2
491         CALL DGGGLM( 0, 1, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
492         CALL CHKXER( 'DGGGLM', INFOT, NOUT, LERR, OK )
493         INFOT = 3
494         CALL DGGGLM( 0, 0, -1, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
495         CALL CHKXER( 'DGGGLM', INFOT, NOUT, LERR, OK )
496         INFOT = 3
497         CALL DGGGLM( 1, 0, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
498         CALL CHKXER( 'DGGGLM', INFOT, NOUT, LERR, OK )
499         INFOT = 5
500         CALL DGGGLM( 0, 0, 0, A, 0, B, 1, R1, R2, R3, W, LW, INFO )
501         CALL CHKXER( 'DGGGLM', INFOT, NOUT, LERR, OK )
502         INFOT = 7
503         CALL DGGGLM( 0, 0, 0, A, 1, B, 0, R1, R2, R3, W, LW, INFO )
504         CALL CHKXER( 'DGGGLM', INFOT, NOUT, LERR, OK )
505         INFOT = 12
506         CALL DGGGLM( 1, 1, 1, A, 1, B, 1, R1, R2, R3, W, 1, INFO )
507         CALL CHKXER( 'DGGGLM', INFOT, NOUT, LERR, OK )
508         NT = NT + 8
509*
510*     Test error exits for the LSE path.
511*
512      ELSE IF( LSAMEN( 3, PATH, 'LSE' ) ) THEN
513*
514*        DGGLSE
515*
516         SRNAMT = 'DGGLSE'
517         INFOT = 1
518         CALL DGGLSE( -1, 0, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
519         CALL CHKXER( 'DGGLSE', INFOT, NOUT, LERR, OK )
520         INFOT = 2
521         CALL DGGLSE( 0, -1, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
522         CALL CHKXER( 'DGGLSE', INFOT, NOUT, LERR, OK )
523         INFOT = 3
524         CALL DGGLSE( 0, 0, -1, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
525         CALL CHKXER( 'DGGLSE', INFOT, NOUT, LERR, OK )
526         INFOT = 3
527         CALL DGGLSE( 0, 0, 1, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
528         CALL CHKXER( 'DGGLSE', INFOT, NOUT, LERR, OK )
529         INFOT = 3
530         CALL DGGLSE( 0, 1, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
531         CALL CHKXER( 'DGGLSE', INFOT, NOUT, LERR, OK )
532         INFOT = 5
533         CALL DGGLSE( 0, 0, 0, A, 0, B, 1, R1, R2, R3, W, LW, INFO )
534         CALL CHKXER( 'DGGLSE', INFOT, NOUT, LERR, OK )
535         INFOT = 7
536         CALL DGGLSE( 0, 0, 0, A, 1, B, 0, R1, R2, R3, W, LW, INFO )
537         CALL CHKXER( 'DGGLSE', INFOT, NOUT, LERR, OK )
538         INFOT = 12
539         CALL DGGLSE( 1, 1, 1, A, 1, B, 1, R1, R2, R3, W, 1, INFO )
540         CALL CHKXER( 'DGGLSE', INFOT, NOUT, LERR, OK )
541         NT = NT + 8
542*
543*     Test error exits for the CSD path.
544*
545      ELSE IF( LSAMEN( 3, PATH, 'CSD' ) ) THEN
546*
547*        DORCSD
548*
549         SRNAMT = 'DORCSD'
550         INFOT = 7
551         CALL DORCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
552     $                 -1, 0, 0, A, 1, A,
553     $                 1, A, 1, A, 1, A,
554     $                 A, 1, A, 1, A, 1, A,
555     $                 1, W, LW, IW, INFO )
556         CALL CHKXER( 'DORCSD', INFOT, NOUT, LERR, OK )
557         INFOT = 8
558         CALL DORCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
559     $                 1, -1, 0, A, 1, A,
560     $                 1, A, 1, A, 1, A,
561     $                 A, 1, A, 1, A, 1, A,
562     $                 1, W, LW, IW, INFO )
563         CALL CHKXER( 'DORCSD', INFOT, NOUT, LERR, OK )
564         INFOT = 9
565         CALL DORCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
566     $                 1, 1, -1, A, 1, A,
567     $                 1, A, 1, A, 1, A,
568     $                 A, 1, A, 1, A, 1, A,
569     $                 1, W, LW, IW, INFO )
570         CALL CHKXER( 'DORCSD', INFOT, NOUT, LERR, OK )
571         INFOT = 11
572         CALL DORCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
573     $                 1, 1, 1, A, -1, A,
574     $                 1, A, 1, A, 1, A,
575     $                 A, 1, A, 1, A, 1, A,
576     $                 1, W, LW, IW, INFO )
577         CALL CHKXER( 'DORCSD', INFOT, NOUT, LERR, OK )
578         INFOT = 20
579         CALL DORCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
580     $                 1, 1, 1, A, 1, A,
581     $                 1, A, 1, A, 1, A,
582     $                 A, -1, A, 1, A, 1, A,
583     $                 1, W, LW, IW, INFO )
584         CALL CHKXER( 'DORCSD', INFOT, NOUT, LERR, OK )
585         INFOT = 22
586         CALL DORCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
587     $                 1, 1, 1, A, 1, A,
588     $                 1, A, 1, A, 1, A,
589     $                 A, 1, A, -1, A, 1, A,
590     $                 1, W, LW, IW, INFO )
591         CALL CHKXER( 'DORCSD', INFOT, NOUT, LERR, OK )
592         INFOT = 24
593         CALL DORCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
594     $                 1, 1, 1, A, 1, A,
595     $                 1, A, 1, A, 1, A,
596     $                 A, 1, A, 1, A, -1, A,
597     $                 1, W, LW, IW, INFO )
598         CALL CHKXER( 'DORCSD', INFOT, NOUT, LERR, OK )
599         INFOT = 26
600         CALL DORCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
601     $                 1, 1, 1, A, 1, A,
602     $                 1, A, 1, A, 1, A,
603     $                 A, 1, A, 1, A, 1, A,
604     $                 -1, W, LW, IW, INFO )
605         CALL CHKXER( 'DORCSD', INFOT, NOUT, LERR, OK )
606         NT = NT + 8
607*
608*     Test error exits for the GQR path.
609*
610      ELSE IF( LSAMEN( 3, PATH, 'GQR' ) ) THEN
611*
612*        DGGQRF
613*
614         SRNAMT = 'DGGQRF'
615         INFOT = 1
616         CALL DGGQRF( -1, 0, 0, A, 1, R1, B, 1, R2, W, LW, INFO )
617         CALL CHKXER( 'DGGQRF', INFOT, NOUT, LERR, OK )
618         INFOT = 2
619         CALL DGGQRF( 0, -1, 0, A, 1, R1, B, 1, R2, W, LW, INFO )
620         CALL CHKXER( 'DGGQRF', INFOT, NOUT, LERR, OK )
621         INFOT = 3
622         CALL DGGQRF( 0, 0, -1, A, 1, R1, B, 1, R2, W, LW, INFO )
623         CALL CHKXER( 'DGGQRF', INFOT, NOUT, LERR, OK )
624         INFOT = 5
625         CALL DGGQRF( 0, 0, 0, A, 0, R1, B, 1, R2, W, LW, INFO )
626         CALL CHKXER( 'DGGQRF', INFOT, NOUT, LERR, OK )
627         INFOT = 8
628         CALL DGGQRF( 0, 0, 0, A, 1, R1, B, 0, R2, W, LW, INFO )
629         CALL CHKXER( 'DGGQRF', INFOT, NOUT, LERR, OK )
630         INFOT = 11
631         CALL DGGQRF( 1, 1, 2, A, 1, R1, B, 1, R2, W, 1, INFO )
632         CALL CHKXER( 'DGGQRF', INFOT, NOUT, LERR, OK )
633         NT = NT + 6
634*
635*        DGGRQF
636*
637         SRNAMT = 'DGGRQF'
638         INFOT = 1
639         CALL DGGRQF( -1, 0, 0, A, 1, R1, B, 1, R2, W, LW, INFO )
640         CALL CHKXER( 'DGGRQF', INFOT, NOUT, LERR, OK )
641         INFOT = 2
642         CALL DGGRQF( 0, -1, 0, A, 1, R1, B, 1, R2, W, LW, INFO )
643         CALL CHKXER( 'DGGRQF', INFOT, NOUT, LERR, OK )
644         INFOT = 3
645         CALL DGGRQF( 0, 0, -1, A, 1, R1, B, 1, R2, W, LW, INFO )
646         CALL CHKXER( 'DGGRQF', INFOT, NOUT, LERR, OK )
647         INFOT = 5
648         CALL DGGRQF( 0, 0, 0, A, 0, R1, B, 1, R2, W, LW, INFO )
649         CALL CHKXER( 'DGGRQF', INFOT, NOUT, LERR, OK )
650         INFOT = 8
651         CALL DGGRQF( 0, 0, 0, A, 1, R1, B, 0, R2, W, LW, INFO )
652         CALL CHKXER( 'DGGRQF', INFOT, NOUT, LERR, OK )
653         INFOT = 11
654         CALL DGGRQF( 1, 1, 2, A, 1, R1, B, 1, R2, W, 1, INFO )
655         CALL CHKXER( 'DGGRQF', INFOT, NOUT, LERR, OK )
656         NT = NT + 6
657*
658*     Test error exits for the DGS, DGV, DGX, and DXV paths.
659*
660      ELSE IF( LSAMEN( 3, PATH, 'DGS' ) .OR.
661     $         LSAMEN( 3, PATH, 'DGV' ) .OR.
662     $         LSAMEN( 3, PATH, 'DGX' ) .OR. LSAMEN( 3, PATH, 'DXV' ) )
663     $          THEN
664*
665*        DGGES
666*
667         SRNAMT = 'DGGES '
668         INFOT = 1
669         CALL DGGES( '/', 'N', 'S', DLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
670     $               R3, Q, 1, U, 1, W, 1, BW, INFO )
671         CALL CHKXER( 'DGGES ', INFOT, NOUT, LERR, OK )
672         INFOT = 2
673         CALL DGGES( 'N', '/', 'S', DLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
674     $               R3, Q, 1, U, 1, W, 1, BW, INFO )
675         CALL CHKXER( 'DGGES ', INFOT, NOUT, LERR, OK )
676         INFOT = 3
677         CALL DGGES( 'N', 'V', '/', DLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
678     $               R3, Q, 1, U, 1, W, 1, BW, INFO )
679         CALL CHKXER( 'DGGES ', INFOT, NOUT, LERR, OK )
680         INFOT = 5
681         CALL DGGES( 'N', 'V', 'S', DLCTES, -1, A, 1, B, 1, SDIM, R1,
682     $               R2, R3, Q, 1, U, 1, W, 1, BW, INFO )
683         CALL CHKXER( 'DGGES ', INFOT, NOUT, LERR, OK )
684         INFOT = 7
685         CALL DGGES( 'N', 'V', 'S', DLCTES, 1, A, 0, B, 1, SDIM, R1, R2,
686     $               R3, Q, 1, U, 1, W, 1, BW, INFO )
687         CALL CHKXER( 'DGGES ', INFOT, NOUT, LERR, OK )
688         INFOT = 9
689         CALL DGGES( 'N', 'V', 'S', DLCTES, 1, A, 1, B, 0, SDIM, R1, R2,
690     $               R3, Q, 1, U, 1, W, 1, BW, INFO )
691         CALL CHKXER( 'DGGES ', INFOT, NOUT, LERR, OK )
692         INFOT = 15
693         CALL DGGES( 'N', 'V', 'S', DLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
694     $               R3, Q, 0, U, 1, W, 1, BW, INFO )
695         CALL CHKXER( 'DGGES ', INFOT, NOUT, LERR, OK )
696         INFOT = 15
697         CALL DGGES( 'V', 'V', 'S', DLCTES, 2, A, 2, B, 2, SDIM, R1, R2,
698     $               R3, Q, 1, U, 2, W, 1, BW, INFO )
699         CALL CHKXER( 'DGGES ', INFOT, NOUT, LERR, OK )
700         INFOT = 17
701         CALL DGGES( 'N', 'V', 'S', DLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
702     $               R3, Q, 1, U, 0, W, 1, BW, INFO )
703         CALL CHKXER( 'DGGES ', INFOT, NOUT, LERR, OK )
704         INFOT = 17
705         CALL DGGES( 'V', 'V', 'S', DLCTES, 2, A, 2, B, 2, SDIM, R1, R2,
706     $               R3, Q, 2, U, 1, W, 1, BW, INFO )
707         CALL CHKXER( 'DGGES ', INFOT, NOUT, LERR, OK )
708         INFOT = 19
709         CALL DGGES( 'V', 'V', 'S', DLCTES, 2, A, 2, B, 2, SDIM, R1, R2,
710     $               R3, Q, 2, U, 2, W, 1, BW, INFO )
711         CALL CHKXER( 'DGGES ', INFOT, NOUT, LERR, OK )
712         NT = NT + 11
713*
714*        DGGES3
715*
716         SRNAMT = 'DGGES3 '
717         INFOT = 1
718         CALL DGGES3( '/', 'N', 'S', DLCTES, 1, A, 1, B, 1, SDIM, R1,
719     $                R2, R3, Q, 1, U, 1, W, 1, BW, INFO )
720         CALL CHKXER( 'DGGES3 ', INFOT, NOUT, LERR, OK )
721         INFOT = 2
722         CALL DGGES3( 'N', '/', 'S', DLCTES, 1, A, 1, B, 1, SDIM, R1,
723     $                R2, R3, Q, 1, U, 1, W, 1, BW, INFO )
724         CALL CHKXER( 'DGGES3 ', INFOT, NOUT, LERR, OK )
725         INFOT = 3
726         CALL DGGES3( 'N', 'V', '/', DLCTES, 1, A, 1, B, 1, SDIM, R1,
727     $                R2, R3, Q, 1, U, 1, W, 1, BW, INFO )
728         CALL CHKXER( 'DGGES3 ', INFOT, NOUT, LERR, OK )
729         INFOT = 5
730         CALL DGGES3( 'N', 'V', 'S', DLCTES, -1, A, 1, B, 1, SDIM, R1,
731     $                R2, R3, Q, 1, U, 1, W, 1, BW, INFO )
732         CALL CHKXER( 'DGGES3 ', INFOT, NOUT, LERR, OK )
733         INFOT = 7
734         CALL DGGES3( 'N', 'V', 'S', DLCTES, 1, A, 0, B, 1, SDIM, R1,
735     $                R2, R3, Q, 1, U, 1, W, 1, BW, INFO )
736         CALL CHKXER( 'DGGES3 ', INFOT, NOUT, LERR, OK )
737         INFOT = 9
738         CALL DGGES3( 'N', 'V', 'S', DLCTES, 1, A, 1, B, 0, SDIM, R1,
739     $                R2, R3, Q, 1, U, 1, W, 1, BW, INFO )
740         CALL CHKXER( 'DGGES3 ', INFOT, NOUT, LERR, OK )
741         INFOT = 15
742         CALL DGGES3( 'N', 'V', 'S', DLCTES, 1, A, 1, B, 1, SDIM, R1,
743     $                R2, R3, Q, 0, U, 1, W, 1, BW, INFO )
744         CALL CHKXER( 'DGGES3 ', INFOT, NOUT, LERR, OK )
745         INFOT = 15
746         CALL DGGES3( 'V', 'V', 'S', DLCTES, 2, A, 2, B, 2, SDIM, R1,
747     $                R2, R3, Q, 1, U, 2, W, 1, BW, INFO )
748         CALL CHKXER( 'DGGES3 ', INFOT, NOUT, LERR, OK )
749         INFOT = 17
750         CALL DGGES3( 'N', 'V', 'S', DLCTES, 1, A, 1, B, 1, SDIM, R1,
751     $                R2, R3, Q, 1, U, 0, W, 1, BW, INFO )
752         CALL CHKXER( 'DGGES3 ', INFOT, NOUT, LERR, OK )
753         INFOT = 17
754         CALL DGGES3( 'V', 'V', 'S', DLCTES, 2, A, 2, B, 2, SDIM, R1,
755     $                R2, R3, Q, 2, U, 1, W, 1, BW, INFO )
756         CALL CHKXER( 'DGGES3 ', INFOT, NOUT, LERR, OK )
757         INFOT = 19
758         CALL DGGES3( 'V', 'V', 'S', DLCTES, 2, A, 2, B, 2, SDIM, R1,
759     $                R2, R3, Q, 2, U, 2, W, 1, BW, INFO )
760         CALL CHKXER( 'DGGES3 ', INFOT, NOUT, LERR, OK )
761         NT = NT + 11
762*
763*        DGGESX
764*
765         SRNAMT = 'DGGESX'
766         INFOT = 1
767         CALL DGGESX( '/', 'N', 'S', DLCTSX, 'N', 1, A, 1, B, 1, SDIM,
768     $                R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW,
769     $                INFO )
770         CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK )
771         INFOT = 2
772         CALL DGGESX( 'N', '/', 'S', DLCTSX, 'N', 1, A, 1, B, 1, SDIM,
773     $                R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW,
774     $                INFO )
775         CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK )
776         INFOT = 3
777         CALL DGGESX( 'V', 'V', '/', DLCTSX, 'N', 1, A, 1, B, 1, SDIM,
778     $                R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW,
779     $                INFO )
780         CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK )
781         INFOT = 5
782         CALL DGGESX( 'V', 'V', 'S', DLCTSX, '/', 1, A, 1, B, 1, SDIM,
783     $                R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW,
784     $                INFO )
785         CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK )
786         INFOT = 6
787         CALL DGGESX( 'V', 'V', 'S', DLCTSX, 'B', -1, A, 1, B, 1, SDIM,
788     $                R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW,
789     $                INFO )
790         CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK )
791         INFOT = 8
792         CALL DGGESX( 'V', 'V', 'S', DLCTSX, 'B', 1, A, 0, B, 1, SDIM,
793     $                R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW,
794     $                INFO )
795         CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK )
796         INFOT = 10
797         CALL DGGESX( 'V', 'V', 'S', DLCTSX, 'B', 1, A, 1, B, 0, SDIM,
798     $                R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW,
799     $                INFO )
800         CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK )
801         INFOT = 16
802         CALL DGGESX( 'V', 'V', 'S', DLCTSX, 'B', 1, A, 1, B, 1, SDIM,
803     $                R1, R2, R3, Q, 0, U, 1, RCE, RCV, W, 1, IW, 1, BW,
804     $                INFO )
805         CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK )
806         INFOT = 16
807         CALL DGGESX( 'V', 'V', 'S', DLCTSX, 'B', 2, A, 2, B, 2, SDIM,
808     $                R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW,
809     $                INFO )
810         CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK )
811         INFOT = 18
812         CALL DGGESX( 'V', 'V', 'S', DLCTSX, 'B', 1, A, 1, B, 1, SDIM,
813     $                R1, R2, R3, Q, 1, U, 0, RCE, RCV, W, 1, IW, 1, BW,
814     $                INFO )
815         CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK )
816         INFOT = 18
817         CALL DGGESX( 'V', 'V', 'S', DLCTSX, 'B', 2, A, 2, B, 2, SDIM,
818     $                R1, R2, R3, Q, 2, U, 1, RCE, RCV, W, 1, IW, 1, BW,
819     $                INFO )
820         CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK )
821         INFOT = 22
822         CALL DGGESX( 'V', 'V', 'S', DLCTSX, 'B', 2, A, 2, B, 2, SDIM,
823     $                R1, R2, R3, Q, 2, U, 2, RCE, RCV, W, 1, IW, 1, BW,
824     $                INFO )
825         CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK )
826         INFOT = 24
827         CALL DGGESX( 'V', 'V', 'S', DLCTSX, 'V', 1, A, 1, B, 1, SDIM,
828     $                R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 32, IW, 0,
829     $                BW, INFO )
830         CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK )
831         NT = NT + 13
832*
833*        DGGEV
834*
835         SRNAMT = 'DGGEV '
836         INFOT = 1
837         CALL DGGEV( '/', 'N', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1, W,
838     $               1, INFO )
839         CALL CHKXER( 'DGGEV ', INFOT, NOUT, LERR, OK )
840         INFOT = 2
841         CALL DGGEV( 'N', '/', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1, W,
842     $               1, INFO )
843         CALL CHKXER( 'DGGEV ', INFOT, NOUT, LERR, OK )
844         INFOT = 3
845         CALL DGGEV( 'V', 'V', -1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1,
846     $               W, 1, INFO )
847         CALL CHKXER( 'DGGEV ', INFOT, NOUT, LERR, OK )
848         INFOT = 5
849         CALL DGGEV( 'V', 'V', 1, A, 0, B, 1, R1, R2, R3, Q, 1, U, 1, W,
850     $               1, INFO )
851         CALL CHKXER( 'DGGEV ', INFOT, NOUT, LERR, OK )
852         INFOT = 7
853         CALL DGGEV( 'V', 'V', 1, A, 1, B, 0, R1, R2, R3, Q, 1, U, 1, W,
854     $               1, INFO )
855         CALL CHKXER( 'DGGEV ', INFOT, NOUT, LERR, OK )
856         INFOT = 12
857         CALL DGGEV( 'N', 'V', 1, A, 1, B, 1, R1, R2, R3, Q, 0, U, 1, W,
858     $               1, INFO )
859         CALL CHKXER( 'DGGEV ', INFOT, NOUT, LERR, OK )
860         INFOT = 12
861         CALL DGGEV( 'V', 'V', 2, A, 2, B, 2, R1, R2, R3, Q, 1, U, 2, W,
862     $               1, INFO )
863         CALL CHKXER( 'DGGEV ', INFOT, NOUT, LERR, OK )
864         INFOT = 14
865         CALL DGGEV( 'V', 'N', 2, A, 2, B, 2, R1, R2, R3, Q, 2, U, 0, W,
866     $               1, INFO )
867         CALL CHKXER( 'DGGEV ', INFOT, NOUT, LERR, OK )
868         INFOT = 14
869         CALL DGGEV( 'V', 'V', 2, A, 2, B, 2, R1, R2, R3, Q, 2, U, 1, W,
870     $               1, INFO )
871         CALL CHKXER( 'DGGEV ', INFOT, NOUT, LERR, OK )
872         INFOT = 16
873         CALL DGGEV( 'V', 'V', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1, W,
874     $               1, INFO )
875         CALL CHKXER( 'DGGEV ', INFOT, NOUT, LERR, OK )
876         NT = NT + 10
877*
878*        DGGEV3
879*
880         CALL XLAENV( 12, 20 )
881         CALL XLAENV( 13, 4 )
882         CALL XLAENV( 14, 13 )
883         CALL XLAENV( 15, 2 )
884         CALL XLAENV( 17, 10 )
885         SRNAMT = 'DGGEV3 '
886         INFOT = 1
887         CALL DGGEV3( '/', 'N', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1,
888     $                W, 1, INFO )
889         CALL CHKXER( 'DGGEV3 ', INFOT, NOUT, LERR, OK )
890         INFOT = 2
891         CALL DGGEV3( 'N', '/', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1,
892     $                W, 1, INFO )
893         CALL CHKXER( 'DGGEV3 ', INFOT, NOUT, LERR, OK )
894         INFOT = 3
895         CALL DGGEV3( 'V', 'V', -1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1,
896     $                W, 1, INFO )
897         CALL CHKXER( 'DGGEV3 ', INFOT, NOUT, LERR, OK )
898         INFOT = 5
899         CALL DGGEV3( 'V', 'V', 1, A, 0, B, 1, R1, R2, R3, Q, 1, U, 1,
900     $                W, 1, INFO )
901         CALL CHKXER( 'DGGEV3 ', INFOT, NOUT, LERR, OK )
902         INFOT = 7
903         CALL DGGEV3( 'V', 'V', 1, A, 1, B, 0, R1, R2, R3, Q, 1, U, 1,
904     $                W, 1, INFO )
905         CALL CHKXER( 'DGGEV3 ', INFOT, NOUT, LERR, OK )
906         INFOT = 12
907         CALL DGGEV3( 'N', 'V', 1, A, 1, B, 1, R1, R2, R3, Q, 0, U, 1,
908     $                W, 1, INFO )
909         CALL CHKXER( 'DGGEV3 ', INFOT, NOUT, LERR, OK )
910         INFOT = 12
911         CALL DGGEV3( 'V', 'V', 2, A, 2, B, 2, R1, R2, R3, Q, 1, U, 2,
912     $                W, 1, INFO )
913         CALL CHKXER( 'DGGEV3 ', INFOT, NOUT, LERR, OK )
914         INFOT = 14
915         CALL DGGEV3( 'V', 'N', 2, A, 2, B, 2, R1, R2, R3, Q, 2, U, 0,
916     $                W, 1, INFO )
917         CALL CHKXER( 'DGGEV3 ', INFOT, NOUT, LERR, OK )
918         INFOT = 14
919         CALL DGGEV3( 'V', 'V', 2, A, 2, B, 2, R1, R2, R3, Q, 2, U, 1,
920     $                W, 1, INFO )
921         CALL CHKXER( 'DGGEV3 ', INFOT, NOUT, LERR, OK )
922         INFOT = 16
923         CALL DGGEV3( 'V', 'V', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1,
924     $                W, 1, INFO )
925         CALL CHKXER( 'DGGEV3 ', INFOT, NOUT, LERR, OK )
926         NT = NT + 10
927*
928*        DGGEVX
929*
930         SRNAMT = 'DGGEVX'
931         INFOT = 1
932         CALL DGGEVX( '/', 'N', 'N', 'N', 1, A, 1, B, 1, R1, R2, R3, Q,
933     $                1, U, 1, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV,
934     $                W, 1, IW, BW, INFO )
935         CALL CHKXER( 'DGGEVX', INFOT, NOUT, LERR, OK )
936         INFOT = 2
937         CALL DGGEVX( 'N', '/', 'N', 'N', 1, A, 1, B, 1, R1, R2, R3, Q,
938     $                1, U, 1, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV,
939     $                W, 1, IW, BW, INFO )
940         CALL CHKXER( 'DGGEVX', INFOT, NOUT, LERR, OK )
941         INFOT = 3
942         CALL DGGEVX( 'N', 'N', '/', 'N', 1, A, 1, B, 1, R1, R2, R3, Q,
943     $                1, U, 1, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV,
944     $                W, 1, IW, BW, INFO )
945         CALL CHKXER( 'DGGEVX', INFOT, NOUT, LERR, OK )
946         INFOT = 4
947         CALL DGGEVX( 'N', 'N', 'N', '/', 1, A, 1, B, 1, R1, R2, R3, Q,
948     $                1, U, 1, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV,
949     $                W, 1, IW, BW, INFO )
950         CALL CHKXER( 'DGGEVX', INFOT, NOUT, LERR, OK )
951         INFOT = 5
952         CALL DGGEVX( 'N', 'N', 'N', 'N', -1, A, 1, B, 1, R1, R2, R3, Q,
953     $                1, U, 1, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV,
954     $                W, 1, IW, BW, INFO )
955         CALL CHKXER( 'DGGEVX', INFOT, NOUT, LERR, OK )
956         INFOT = 7
957         CALL DGGEVX( 'N', 'N', 'N', 'N', 1, A, 0, B, 1, R1, R2, R3, Q,
958     $                1, U, 1, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV,
959     $                W, 1, IW, BW, INFO )
960         CALL CHKXER( 'DGGEVX', INFOT, NOUT, LERR, OK )
961         INFOT = 9
962         CALL DGGEVX( 'N', 'N', 'N', 'N', 1, A, 1, B, 0, R1, R2, R3, Q,
963     $                1, U, 1, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV,
964     $                W, 1, IW, BW, INFO )
965         CALL CHKXER( 'DGGEVX', INFOT, NOUT, LERR, OK )
966         INFOT = 14
967         CALL DGGEVX( 'N', 'N', 'N', 'N', 1, A, 1, B, 1, R1, R2, R3, Q,
968     $                0, U, 1, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV,
969     $                W, 1, IW, BW, INFO )
970         CALL CHKXER( 'DGGEVX', INFOT, NOUT, LERR, OK )
971         INFOT = 14
972         CALL DGGEVX( 'N', 'V', 'N', 'N', 2, A, 2, B, 2, R1, R2, R3, Q,
973     $                1, U, 2, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV,
974     $                W, 1, IW, BW, INFO )
975         CALL CHKXER( 'DGGEVX', INFOT, NOUT, LERR, OK )
976         INFOT = 16
977         CALL DGGEVX( 'N', 'N', 'N', 'N', 1, A, 1, B, 1, R1, R2, R3, Q,
978     $                1, U, 0, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV,
979     $                W, 1, IW, BW, INFO )
980         CALL CHKXER( 'DGGEVX', INFOT, NOUT, LERR, OK )
981         INFOT = 16
982         CALL DGGEVX( 'N', 'N', 'V', 'N', 2, A, 2, B, 2, R1, R2, R3, Q,
983     $                2, U, 1, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV,
984     $                W, 1, IW, BW, INFO )
985         CALL CHKXER( 'DGGEVX', INFOT, NOUT, LERR, OK )
986         INFOT = 26
987         CALL DGGEVX( 'N', 'N', 'V', 'N', 2, A, 2, B, 2, R1, R2, R3, Q,
988     $                2, U, 2, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV,
989     $                W, 1, IW, BW, INFO )
990         CALL CHKXER( 'DGGEVX', INFOT, NOUT, LERR, OK )
991         NT = NT + 12
992*
993*        DTGEXC
994*
995         SRNAMT = 'DTGEXC'
996         INFOT = 3
997         CALL DTGEXC( .TRUE., .TRUE., -1, A, 1, B, 1, Q, 1, Z, 1, IFST,
998     $                ILST, W, 1, INFO )
999         CALL CHKXER( 'DTGEXC', INFOT, NOUT, LERR, OK )
1000         INFOT = 5
1001         CALL DTGEXC( .TRUE., .TRUE., 1, A, 0, B, 1, Q, 1, Z, 1, IFST,
1002     $                ILST, W, 1, INFO )
1003         CALL CHKXER( 'DTGEXC', INFOT, NOUT, LERR, OK )
1004         INFOT = 7
1005         CALL DTGEXC( .TRUE., .TRUE., 1, A, 1, B, 0, Q, 1, Z, 1, IFST,
1006     $                ILST, W, 1, INFO )
1007         CALL CHKXER( 'DTGEXC', INFOT, NOUT, LERR, OK )
1008         INFOT = 9
1009         CALL DTGEXC( .FALSE., .TRUE., 1, A, 1, B, 1, Q, 0, Z, 1, IFST,
1010     $                ILST, W, 1, INFO )
1011         CALL CHKXER( 'DTGEXC', INFOT, NOUT, LERR, OK )
1012         INFOT = 9
1013         CALL DTGEXC( .TRUE., .TRUE., 1, A, 1, B, 1, Q, 0, Z, 1, IFST,
1014     $                ILST, W, 1, INFO )
1015         CALL CHKXER( 'DTGEXC', INFOT, NOUT, LERR, OK )
1016         INFOT = 11
1017         CALL DTGEXC( .TRUE., .FALSE., 1, A, 1, B, 1, Q, 1, Z, 0, IFST,
1018     $                ILST, W, 1, INFO )
1019         CALL CHKXER( 'DTGEXC', INFOT, NOUT, LERR, OK )
1020         INFOT = 11
1021         CALL DTGEXC( .TRUE., .TRUE., 1, A, 1, B, 1, Q, 1, Z, 0, IFST,
1022     $                ILST, W, 1, INFO )
1023         CALL CHKXER( 'DTGEXC', INFOT, NOUT, LERR, OK )
1024         INFOT = 15
1025         CALL DTGEXC( .TRUE., .TRUE., 1, A, 1, B, 1, Q, 1, Z, 1, IFST,
1026     $                ILST, W, 0, INFO )
1027         CALL CHKXER( 'DTGEXC', INFOT, NOUT, LERR, OK )
1028         NT = NT + 8
1029*
1030*        DTGSEN
1031*
1032         SRNAMT = 'DTGSEN'
1033         INFOT = 1
1034         CALL DTGSEN( -1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2,
1035     $                R3, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
1036     $                INFO )
1037         CALL CHKXER( 'DTGSEN', INFOT, NOUT, LERR, OK )
1038         INFOT = 5
1039         CALL DTGSEN( 1, .TRUE., .TRUE., SEL, -1, A, 1, B, 1, R1, R2,
1040     $                R3, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
1041     $                INFO )
1042         CALL CHKXER( 'DTGSEN', INFOT, NOUT, LERR, OK )
1043         INFOT = 7
1044         CALL DTGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 0, B, 1, R1, R2, R3,
1045     $                Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
1046     $                INFO )
1047         CALL CHKXER( 'DTGSEN', INFOT, NOUT, LERR, OK )
1048         INFOT = 9
1049         CALL DTGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 0, R1, R2, R3,
1050     $                Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
1051     $                INFO )
1052         CALL CHKXER( 'DTGSEN', INFOT, NOUT, LERR, OK )
1053         INFOT = 14
1054         CALL DTGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
1055     $                Q, 0, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
1056     $                INFO )
1057         CALL CHKXER( 'DTGSEN', INFOT, NOUT, LERR, OK )
1058         INFOT = 16
1059         CALL DTGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
1060     $                Q, 1, Z, 0, M, TOLA, TOLB, RCV, W, 1, IW, 1,
1061     $                INFO )
1062         CALL CHKXER( 'DTGSEN', INFOT, NOUT, LERR, OK )
1063         INFOT = 22
1064         CALL DTGSEN( 0, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
1065     $                Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
1066     $                INFO )
1067         CALL CHKXER( 'DTGSEN', INFOT, NOUT, LERR, OK )
1068         INFOT = 22
1069         CALL DTGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
1070     $                Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
1071     $                INFO )
1072         CALL CHKXER( 'DTGSEN', INFOT, NOUT, LERR, OK )
1073         INFOT = 22
1074         CALL DTGSEN( 2, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
1075     $                Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
1076     $                INFO )
1077         CALL CHKXER( 'DTGSEN', INFOT, NOUT, LERR, OK )
1078         INFOT = 24
1079         CALL DTGSEN( 0, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
1080     $                Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 20, IW, 0,
1081     $                INFO )
1082         CALL CHKXER( 'DTGSEN', INFOT, NOUT, LERR, OK )
1083         INFOT = 24
1084         CALL DTGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
1085     $                Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 20, IW, 0,
1086     $                INFO )
1087         CALL CHKXER( 'DTGSEN', INFOT, NOUT, LERR, OK )
1088         INFOT = 24
1089         CALL DTGSEN( 2, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
1090     $                Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 20, IW, 1,
1091     $                INFO )
1092         CALL CHKXER( 'DTGSEN', INFOT, NOUT, LERR, OK )
1093         NT = NT + 12
1094*
1095*        DTGSNA
1096*
1097         SRNAMT = 'DTGSNA'
1098         INFOT = 1
1099         CALL DTGSNA( '/', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
1100     $                1, M, W, 1, IW, INFO )
1101         CALL CHKXER( 'DTGSNA', INFOT, NOUT, LERR, OK )
1102         INFOT = 2
1103         CALL DTGSNA( 'B', '/', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
1104     $                1, M, W, 1, IW, INFO )
1105         CALL CHKXER( 'DTGSNA', INFOT, NOUT, LERR, OK )
1106         INFOT = 4
1107         CALL DTGSNA( 'B', 'A', SEL, -1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
1108     $                1, M, W, 1, IW, INFO )
1109         CALL CHKXER( 'DTGSNA', INFOT, NOUT, LERR, OK )
1110         INFOT = 6
1111         CALL DTGSNA( 'B', 'A', SEL, 1, A, 0, B, 1, Q, 1, U, 1, R1, R2,
1112     $                1, M, W, 1, IW, INFO )
1113         CALL CHKXER( 'DTGSNA', INFOT, NOUT, LERR, OK )
1114         INFOT = 8
1115         CALL DTGSNA( 'B', 'A', SEL, 1, A, 1, B, 0, Q, 1, U, 1, R1, R2,
1116     $                1, M, W, 1, IW, INFO )
1117         CALL CHKXER( 'DTGSNA', INFOT, NOUT, LERR, OK )
1118         INFOT = 10
1119         CALL DTGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 0, U, 1, R1, R2,
1120     $                1, M, W, 1, IW, INFO )
1121         CALL CHKXER( 'DTGSNA', INFOT, NOUT, LERR, OK )
1122         INFOT = 12
1123         CALL DTGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 0, R1, R2,
1124     $                1, M, W, 1, IW, INFO )
1125         CALL CHKXER( 'DTGSNA', INFOT, NOUT, LERR, OK )
1126         INFOT = 15
1127         CALL DTGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
1128     $                0, M, W, 1, IW, INFO )
1129         CALL CHKXER( 'DTGSNA', INFOT, NOUT, LERR, OK )
1130         INFOT = 18
1131         CALL DTGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
1132     $                1, M, W, 0, IW, INFO )
1133         CALL CHKXER( 'DTGSNA', INFOT, NOUT, LERR, OK )
1134         NT = NT + 9
1135*
1136*        DTGSYL
1137*
1138         SRNAMT = 'DTGSYL'
1139         INFOT = 1
1140         CALL DTGSYL( '/', 0, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
1141     $                SCALE, DIF, W, 1, IW, INFO )
1142         CALL CHKXER( 'DTGSYL', INFOT, NOUT, LERR, OK )
1143         INFOT = 2
1144         CALL DTGSYL( 'N', -1, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
1145     $                SCALE, DIF, W, 1, IW, INFO )
1146         CALL CHKXER( 'DTGSYL', INFOT, NOUT, LERR, OK )
1147         INFOT = 3
1148         CALL DTGSYL( 'N', 0, 0, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
1149     $                SCALE, DIF, W, 1, IW, INFO )
1150         CALL CHKXER( 'DTGSYL', INFOT, NOUT, LERR, OK )
1151         INFOT = 4
1152         CALL DTGSYL( 'N', 0, 1, 0, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
1153     $                SCALE, DIF, W, 1, IW, INFO )
1154         CALL CHKXER( 'DTGSYL', INFOT, NOUT, LERR, OK )
1155         INFOT = 6
1156         CALL DTGSYL( 'N', 0, 1, 1, A, 0, B, 1, Q, 1, U, 1, V, 1, Z, 1,
1157     $                SCALE, DIF, W, 1, IW, INFO )
1158         CALL CHKXER( 'DTGSYL', INFOT, NOUT, LERR, OK )
1159         INFOT = 8
1160         CALL DTGSYL( 'N', 0, 1, 1, A, 1, B, 0, Q, 1, U, 1, V, 1, Z, 1,
1161     $                SCALE, DIF, W, 1, IW, INFO )
1162         CALL CHKXER( 'DTGSYL', INFOT, NOUT, LERR, OK )
1163         INFOT = 10
1164         CALL DTGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 0, U, 1, V, 1, Z, 1,
1165     $                SCALE, DIF, W, 1, IW, INFO )
1166         CALL CHKXER( 'DTGSYL', INFOT, NOUT, LERR, OK )
1167         INFOT = 12
1168         CALL DTGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 1, U, 0, V, 1, Z, 1,
1169     $                SCALE, DIF, W, 1, IW, INFO )
1170         CALL CHKXER( 'DTGSYL', INFOT, NOUT, LERR, OK )
1171         INFOT = 14
1172         CALL DTGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 0, Z, 1,
1173     $                SCALE, DIF, W, 1, IW, INFO )
1174         CALL CHKXER( 'DTGSYL', INFOT, NOUT, LERR, OK )
1175         INFOT = 16
1176         CALL DTGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 0,
1177     $                SCALE, DIF, W, 1, IW, INFO )
1178         CALL CHKXER( 'DTGSYL', INFOT, NOUT, LERR, OK )
1179         INFOT = 20
1180         CALL DTGSYL( 'N', 1, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
1181     $                SCALE, DIF, W, 1, IW, INFO )
1182         CALL CHKXER( 'DTGSYL', INFOT, NOUT, LERR, OK )
1183         INFOT = 20
1184         CALL DTGSYL( 'N', 2, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
1185     $                SCALE, DIF, W, 1, IW, INFO )
1186         CALL CHKXER( 'DTGSYL', INFOT, NOUT, LERR, OK )
1187         NT = NT + 12
1188      END IF
1189*
1190*     Print a summary line.
1191*
1192      IF( OK ) THEN
1193         WRITE( NOUT, FMT = 9999 )PATH, NT
1194      ELSE
1195         WRITE( NOUT, FMT = 9998 )PATH
1196      END IF
1197*
1198 9999 FORMAT( 1X, A3, ' routines passed the tests of the error exits (',
1199     $      I3, ' tests done)' )
1200 9998 FORMAT( ' *** ', A3, ' routines failed the tests of the error ',
1201     $      'exits ***' )
1202*
1203      RETURN
1204*
1205*     End of DERRGG
1206*
1207      END
1208