1*> \brief \b SERRGG
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 SERRGG( 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*> SERRGG tests the error exits for SGGES, SGGESX, SGGEV, SGGEVX,
25*> SGGES3, SGGEV3, SGGGLM, SGGHRD, SGGLSE, SGGQRF, SGGRQF,
26*> SGGSVD3, SGGSVP3, SHGEQZ, SORCSD, STGEVC, STGEXC, STGSEN,
27*> STGSJA, STGSNA, and STGSYL.
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 single_eig
54*
55*  =====================================================================
56      SUBROUTINE SERRGG( 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      REAL               ONE, ZERO
73      PARAMETER          ( ONE = 1.0E+0, ZERO = 0.0E+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      REAL               ANRM, BNRM, DIF, SCALE, TOLA, TOLB
80*     ..
81*     .. Local Arrays ..
82      LOGICAL            BW( NMAX ), SEL( NMAX )
83      INTEGER            IW( NMAX ), IDUM(NMAX)
84      REAL               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            LSAMEN, SLCTES, SLCTSX
92      EXTERNAL           LSAMEN, SLCTES, SLCTSX
93*     ..
94*     .. External Subroutines ..
95      EXTERNAL           CHKXER, SGGES, SGGESX, SGGEV, SGGEVX, SGGGLM,
96     $                   SGGHRD, SGGLSE, SGGQRF, SGGRQF,
97     $                   SHGEQZ, SORCSD, STGEVC, STGEXC, STGSEN, STGSJA,
98     $                   STGSNA, STGSYL, SGGES3, SGGEV3, SGGHD3,
99     $                   SGGSVD3, SGGSVP3, 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.0E0
131      TOLB = 1.0E0
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*        SGGHRD
150*
151         SRNAMT = 'SGGHRD'
152         INFOT = 1
153         CALL SGGHRD( '/', 'N', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
154         CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
155         INFOT = 2
156         CALL SGGHRD( 'N', '/', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
157         CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
158         INFOT = 3
159         CALL SGGHRD( 'N', 'N', -1, 0, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
160         CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
161         INFOT = 4
162         CALL SGGHRD( 'N', 'N', 0, 0, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
163         CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
164         INFOT = 5
165         CALL SGGHRD( 'N', 'N', 0, 1, 1, A, 1, B, 1, Q, 1, Z, 1, INFO )
166         CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
167         INFOT = 7
168         CALL SGGHRD( 'N', 'N', 2, 1, 1, A, 1, B, 2, Q, 1, Z, 1, INFO )
169         CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
170         INFOT = 9
171         CALL SGGHRD( 'N', 'N', 2, 1, 1, A, 2, B, 1, Q, 1, Z, 1, INFO )
172         CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
173         INFOT = 11
174         CALL SGGHRD( 'V', 'N', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, INFO )
175         CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
176         INFOT = 13
177         CALL SGGHRD( 'N', 'V', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, INFO )
178         CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
179         NT = NT + 9
180*
181*        SGGHD3
182*
183         SRNAMT = 'SGGHD3'
184         INFOT = 1
185         CALL SGGHD3( '/', 'N', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, W, LW,
186     $                INFO )
187         CALL CHKXER( 'SGGHD3', INFOT, NOUT, LERR, OK )
188         INFOT = 2
189         CALL SGGHD3( 'N', '/', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, W, LW,
190     $                INFO )
191         CALL CHKXER( 'SGGHD3', INFOT, NOUT, LERR, OK )
192         INFOT = 3
193         CALL SGGHD3( 'N', 'N', -1, 0, 0, A, 1, B, 1, Q, 1, Z, 1, W, LW,
194     $                INFO )
195         CALL CHKXER( 'SGGHD3', INFOT, NOUT, LERR, OK )
196         INFOT = 4
197         CALL SGGHD3( 'N', 'N', 0, 0, 0, A, 1, B, 1, Q, 1, Z, 1, W, LW,
198     $                INFO )
199         CALL CHKXER( 'SGGHD3', INFOT, NOUT, LERR, OK )
200         INFOT = 5
201         CALL SGGHD3( 'N', 'N', 0, 1, 1, A, 1, B, 1, Q, 1, Z, 1, W, LW,
202     $                INFO )
203         CALL CHKXER( 'SGGHD3', INFOT, NOUT, LERR, OK )
204         INFOT = 7
205         CALL SGGHD3( 'N', 'N', 2, 1, 1, A, 1, B, 2, Q, 1, Z, 1, W, LW,
206     $                INFO )
207         CALL CHKXER( 'SGGHD3', INFOT, NOUT, LERR, OK )
208         INFOT = 9
209         CALL SGGHD3( 'N', 'N', 2, 1, 1, A, 2, B, 1, Q, 1, Z, 1, W, LW,
210     $                INFO )
211         CALL CHKXER( 'SGGHD3', INFOT, NOUT, LERR, OK )
212         INFOT = 11
213         CALL SGGHD3( 'V', 'N', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, W, LW,
214     $                INFO )
215         CALL CHKXER( 'SGGHD3', INFOT, NOUT, LERR, OK )
216         INFOT = 13
217         CALL SGGHD3( 'N', 'V', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, W, LW,
218     $                INFO )
219         CALL CHKXER( 'SGGHD3', INFOT, NOUT, LERR, OK )
220         NT = NT + 9
221*
222*        SHGEQZ
223*
224         SRNAMT = 'SHGEQZ'
225         INFOT = 1
226         CALL SHGEQZ( '/', 'N', 'N', 0, 1, 0, A, 1, B, 1, R1, R2, R3, Q,
227     $                1, Z, 1, W, LW, INFO )
228         CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
229         INFOT = 2
230         CALL SHGEQZ( 'E', '/', 'N', 0, 1, 0, A, 1, B, 1, R1, R2, R3, Q,
231     $                1, Z, 1, W, LW, INFO )
232         CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
233         INFOT = 3
234         CALL SHGEQZ( 'E', 'N', '/', 0, 1, 0, A, 1, B, 1, R1, R2, R3, Q,
235     $                1, Z, 1, W, LW, INFO )
236         CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
237         INFOT = 4
238         CALL SHGEQZ( 'E', 'N', 'N', -1, 0, 0, A, 1, B, 1, R1, R2, R3,
239     $                Q, 1, Z, 1, W, LW, INFO )
240         CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
241         INFOT = 5
242         CALL SHGEQZ( 'E', 'N', 'N', 0, 0, 0, A, 1, B, 1, R1, R2, R3, Q,
243     $                1, Z, 1, W, LW, INFO )
244         CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
245         INFOT = 6
246         CALL SHGEQZ( 'E', 'N', 'N', 0, 1, 1, A, 1, B, 1, R1, R2, R3, Q,
247     $                1, Z, 1, W, LW, INFO )
248         CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
249         INFOT = 8
250         CALL SHGEQZ( 'E', 'N', 'N', 2, 1, 1, A, 1, B, 2, R1, R2, R3, Q,
251     $                1, Z, 1, W, LW, INFO )
252         CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
253         INFOT = 10
254         CALL SHGEQZ( 'E', 'N', 'N', 2, 1, 1, A, 2, B, 1, R1, R2, R3, Q,
255     $                1, Z, 1, W, LW, INFO )
256         CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
257         INFOT = 15
258         CALL SHGEQZ( 'E', 'V', 'N', 2, 1, 1, A, 2, B, 2, R1, R2, R3, Q,
259     $                1, Z, 1, W, LW, INFO )
260         CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
261         INFOT = 17
262         CALL SHGEQZ( 'E', 'N', 'V', 2, 1, 1, A, 2, B, 2, R1, R2, R3, Q,
263     $                1, Z, 1, W, LW, INFO )
264         CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
265         NT = NT + 10
266*
267*        STGEVC
268*
269         SRNAMT = 'STGEVC'
270         INFOT = 1
271         CALL STGEVC( '/', 'A', SEL, 0, A, 1, B, 1, Q, 1, Z, 1, 0, M, W,
272     $                INFO )
273         CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
274         INFOT = 2
275         CALL STGEVC( 'R', '/', SEL, 0, A, 1, B, 1, Q, 1, Z, 1, 0, M, W,
276     $                INFO )
277         CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
278         INFOT = 4
279         CALL STGEVC( 'R', 'A', SEL, -1, A, 1, B, 1, Q, 1, Z, 1, 0, M,
280     $                W, INFO )
281         CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
282         INFOT = 6
283         CALL STGEVC( 'R', 'A', SEL, 2, A, 1, B, 2, Q, 1, Z, 2, 0, M, W,
284     $                INFO )
285         CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
286         INFOT = 8
287         CALL STGEVC( 'R', 'A', SEL, 2, A, 2, B, 1, Q, 1, Z, 2, 0, M, W,
288     $                INFO )
289         CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
290         INFOT = 10
291         CALL STGEVC( 'L', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 1, 0, M, W,
292     $                INFO )
293         CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
294         INFOT = 12
295         CALL STGEVC( 'R', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 1, 0, M, W,
296     $                INFO )
297         CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
298         INFOT = 13
299         CALL STGEVC( 'R', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 2, 1, M, W,
300     $                INFO )
301         CALL CHKXER( 'STGEVC', 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*        SGGSVD3
309*
310         SRNAMT = 'SGGSVD3'
311         INFOT = 1
312         CALL SGGSVD3( '/', '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( 'SGGSVD3', INFOT, NOUT, LERR, OK )
315         INFOT = 2
316         CALL SGGSVD3( '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( 'SGGSVD3', INFOT, NOUT, LERR, OK )
319         INFOT = 3
320         CALL SGGSVD3( '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( 'SGGSVD3', INFOT, NOUT, LERR, OK )
323         INFOT = 4
324         CALL SGGSVD3( '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( 'SGGSVD3', INFOT, NOUT, LERR, OK )
327         INFOT = 5
328         CALL SGGSVD3( '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( 'SGGSVD3', INFOT, NOUT, LERR, OK )
331         INFOT = 6
332         CALL SGGSVD3( '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( 'SGGSVD3', INFOT, NOUT, LERR, OK )
335         INFOT = 10
336         CALL SGGSVD3( '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( 'SGGSVD3', INFOT, NOUT, LERR, OK )
339         INFOT = 12
340         CALL SGGSVD3( '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( 'SGGSVD3', INFOT, NOUT, LERR, OK )
343         INFOT = 16
344         CALL SGGSVD3( '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( 'SGGSVD3', INFOT, NOUT, LERR, OK )
347         INFOT = 18
348         CALL SGGSVD3( '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( 'SGGSVD3', INFOT, NOUT, LERR, OK )
351         INFOT = 20
352         CALL SGGSVD3( '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( 'SGGSVD3', INFOT, NOUT, LERR, OK )
355         NT = NT + 11
356*
357*        SGGSVP3
358*
359         SRNAMT = 'SGGSVP3'
360         INFOT = 1
361         CALL SGGSVP3( '/', '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( 'SGGSVP3', INFOT, NOUT, LERR, OK )
365         INFOT = 2
366         CALL SGGSVP3( '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( 'SGGSVP3', INFOT, NOUT, LERR, OK )
370         INFOT = 3
371         CALL SGGSVP3( '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( 'SGGSVP3', INFOT, NOUT, LERR, OK )
375         INFOT = 4
376         CALL SGGSVP3( '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( 'SGGSVP3', INFOT, NOUT, LERR, OK )
380         INFOT = 5
381         CALL SGGSVP3( '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( 'SGGSVP3', INFOT, NOUT, LERR, OK )
385         INFOT = 6
386         CALL SGGSVP3( '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( 'SGGSVP3', INFOT, NOUT, LERR, OK )
390         INFOT = 8
391         CALL SGGSVP3( '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( 'SGGSVP3', INFOT, NOUT, LERR, OK )
395         INFOT = 10
396         CALL SGGSVP3( '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( 'SGGSVP3', INFOT, NOUT, LERR, OK )
400         INFOT = 16
401         CALL SGGSVP3( '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( 'SGGSVP3', INFOT, NOUT, LERR, OK )
405         INFOT = 18
406         CALL SGGSVP3( '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( 'SGGSVP3', INFOT, NOUT, LERR, OK )
410         INFOT = 20
411         CALL SGGSVP3( '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( 'SGGSVP3', INFOT, NOUT, LERR, OK )
415         NT = NT + 11
416*
417*        STGSJA
418*
419         SRNAMT = 'STGSJA'
420         INFOT = 1
421         CALL STGSJA( '/', '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( 'STGSJA', INFOT, NOUT, LERR, OK )
425         INFOT = 2
426         CALL STGSJA( '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( 'STGSJA', INFOT, NOUT, LERR, OK )
430         INFOT = 3
431         CALL STGSJA( '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( 'STGSJA', INFOT, NOUT, LERR, OK )
435         INFOT = 4
436         CALL STGSJA( '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( 'STGSJA', INFOT, NOUT, LERR, OK )
440         INFOT = 5
441         CALL STGSJA( '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( 'STGSJA', INFOT, NOUT, LERR, OK )
445         INFOT = 6
446         CALL STGSJA( '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( 'STGSJA', INFOT, NOUT, LERR, OK )
450         INFOT = 10
451         CALL STGSJA( '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( 'STGSJA', INFOT, NOUT, LERR, OK )
455         INFOT = 12
456         CALL STGSJA( '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( 'STGSJA', INFOT, NOUT, LERR, OK )
460         INFOT = 18
461         CALL STGSJA( '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( 'STGSJA', INFOT, NOUT, LERR, OK )
465         INFOT = 20
466         CALL STGSJA( '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( 'STGSJA', INFOT, NOUT, LERR, OK )
470         INFOT = 22
471         CALL STGSJA( '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( 'STGSJA', 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*        SGGGLM
482*
483         SRNAMT = 'SGGGLM'
484         INFOT = 1
485         CALL SGGGLM( -1, 0, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
486         CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
487         INFOT = 2
488         CALL SGGGLM( 0, -1, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
489         CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
490         INFOT = 2
491         CALL SGGGLM( 0, 1, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
492         CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
493         INFOT = 3
494         CALL SGGGLM( 0, 0, -1, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
495         CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
496         INFOT = 3
497         CALL SGGGLM( 1, 0, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
498         CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
499         INFOT = 5
500         CALL SGGGLM( 0, 0, 0, A, 0, B, 1, R1, R2, R3, W, LW, INFO )
501         CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
502         INFOT = 7
503         CALL SGGGLM( 0, 0, 0, A, 1, B, 0, R1, R2, R3, W, LW, INFO )
504         CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
505         INFOT = 12
506         CALL SGGGLM( 1, 1, 1, A, 1, B, 1, R1, R2, R3, W, 1, INFO )
507         CALL CHKXER( 'SGGGLM', 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*        SGGLSE
515*
516         SRNAMT = 'SGGLSE'
517         INFOT = 1
518         CALL SGGLSE( -1, 0, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
519         CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
520         INFOT = 2
521         CALL SGGLSE( 0, -1, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
522         CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
523         INFOT = 3
524         CALL SGGLSE( 0, 0, -1, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
525         CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
526         INFOT = 3
527         CALL SGGLSE( 0, 0, 1, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
528         CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
529         INFOT = 3
530         CALL SGGLSE( 0, 1, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
531         CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
532         INFOT = 5
533         CALL SGGLSE( 0, 0, 0, A, 0, B, 1, R1, R2, R3, W, LW, INFO )
534         CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
535         INFOT = 7
536         CALL SGGLSE( 0, 0, 0, A, 1, B, 0, R1, R2, R3, W, LW, INFO )
537         CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
538         INFOT = 12
539         CALL SGGLSE( 1, 1, 1, A, 1, B, 1, R1, R2, R3, W, 1, INFO )
540         CALL CHKXER( 'SGGLSE', 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*        SORCSD
548*
549         SRNAMT = 'SORCSD'
550         INFOT = 7
551         CALL SORCSD( '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( 'SORCSD', INFOT, NOUT, LERR, OK )
557         INFOT = 8
558         CALL SORCSD( '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( 'SORCSD', INFOT, NOUT, LERR, OK )
564         INFOT = 9
565         CALL SORCSD( '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( 'SORCSD', INFOT, NOUT, LERR, OK )
571         INFOT = 11
572         CALL SORCSD( '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( 'SORCSD', INFOT, NOUT, LERR, OK )
578         INFOT = 20
579         CALL SORCSD( '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( 'SORCSD', INFOT, NOUT, LERR, OK )
585         INFOT = 22
586         CALL SORCSD( '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( 'SORCSD', INFOT, NOUT, LERR, OK )
592         INFOT = 24
593         CALL SORCSD( '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( 'SORCSD', INFOT, NOUT, LERR, OK )
599         INFOT = 26
600         CALL SORCSD( '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( 'SORCSD', 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*        SGGQRF
613*
614         SRNAMT = 'SGGQRF'
615         INFOT = 1
616         CALL SGGQRF( -1, 0, 0, A, 1, R1, B, 1, R2, W, LW, INFO )
617         CALL CHKXER( 'SGGQRF', INFOT, NOUT, LERR, OK )
618         INFOT = 2
619         CALL SGGQRF( 0, -1, 0, A, 1, R1, B, 1, R2, W, LW, INFO )
620         CALL CHKXER( 'SGGQRF', INFOT, NOUT, LERR, OK )
621         INFOT = 3
622         CALL SGGQRF( 0, 0, -1, A, 1, R1, B, 1, R2, W, LW, INFO )
623         CALL CHKXER( 'SGGQRF', INFOT, NOUT, LERR, OK )
624         INFOT = 5
625         CALL SGGQRF( 0, 0, 0, A, 0, R1, B, 1, R2, W, LW, INFO )
626         CALL CHKXER( 'SGGQRF', INFOT, NOUT, LERR, OK )
627         INFOT = 8
628         CALL SGGQRF( 0, 0, 0, A, 1, R1, B, 0, R2, W, LW, INFO )
629         CALL CHKXER( 'SGGQRF', INFOT, NOUT, LERR, OK )
630         INFOT = 11
631         CALL SGGQRF( 1, 1, 2, A, 1, R1, B, 1, R2, W, 1, INFO )
632         CALL CHKXER( 'SGGQRF', INFOT, NOUT, LERR, OK )
633         NT = NT + 6
634*
635*        SGGRQF
636*
637         SRNAMT = 'SGGRQF'
638         INFOT = 1
639         CALL SGGRQF( -1, 0, 0, A, 1, R1, B, 1, R2, W, LW, INFO )
640         CALL CHKXER( 'SGGRQF', INFOT, NOUT, LERR, OK )
641         INFOT = 2
642         CALL SGGRQF( 0, -1, 0, A, 1, R1, B, 1, R2, W, LW, INFO )
643         CALL CHKXER( 'SGGRQF', INFOT, NOUT, LERR, OK )
644         INFOT = 3
645         CALL SGGRQF( 0, 0, -1, A, 1, R1, B, 1, R2, W, LW, INFO )
646         CALL CHKXER( 'SGGRQF', INFOT, NOUT, LERR, OK )
647         INFOT = 5
648         CALL SGGRQF( 0, 0, 0, A, 0, R1, B, 1, R2, W, LW, INFO )
649         CALL CHKXER( 'SGGRQF', INFOT, NOUT, LERR, OK )
650         INFOT = 8
651         CALL SGGRQF( 0, 0, 0, A, 1, R1, B, 0, R2, W, LW, INFO )
652         CALL CHKXER( 'SGGRQF', INFOT, NOUT, LERR, OK )
653         INFOT = 11
654         CALL SGGRQF( 1, 1, 2, A, 1, R1, B, 1, R2, W, 1, INFO )
655         CALL CHKXER( 'SGGRQF', INFOT, NOUT, LERR, OK )
656         NT = NT + 6
657*
658*     Test error exits for the SGS, SGV, SGX, and SXV paths.
659*
660      ELSE IF( LSAMEN( 3, PATH, 'SGS' ) .OR.
661     $         LSAMEN( 3, PATH, 'SGV' ) .OR.
662     $         LSAMEN( 3, PATH, 'SGX' ) .OR. LSAMEN( 3, PATH, 'SXV' ) )
663     $          THEN
664*
665*        SGGES
666*
667         SRNAMT = 'SGGES '
668         INFOT = 1
669         CALL SGGES( '/', 'N', 'S', SLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
670     $               R3, Q, 1, U, 1, W, 1, BW, INFO )
671         CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
672         INFOT = 2
673         CALL SGGES( 'N', '/', 'S', SLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
674     $               R3, Q, 1, U, 1, W, 1, BW, INFO )
675         CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
676         INFOT = 3
677         CALL SGGES( 'N', 'V', '/', SLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
678     $               R3, Q, 1, U, 1, W, 1, BW, INFO )
679         CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
680         INFOT = 5
681         CALL SGGES( 'N', 'V', 'S', SLCTES, -1, A, 1, B, 1, SDIM, R1,
682     $               R2, R3, Q, 1, U, 1, W, 1, BW, INFO )
683         CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
684         INFOT = 7
685         CALL SGGES( 'N', 'V', 'S', SLCTES, 1, A, 0, B, 1, SDIM, R1, R2,
686     $               R3, Q, 1, U, 1, W, 1, BW, INFO )
687         CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
688         INFOT = 9
689         CALL SGGES( 'N', 'V', 'S', SLCTES, 1, A, 1, B, 0, SDIM, R1, R2,
690     $               R3, Q, 1, U, 1, W, 1, BW, INFO )
691         CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
692         INFOT = 15
693         CALL SGGES( 'N', 'V', 'S', SLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
694     $               R3, Q, 0, U, 1, W, 1, BW, INFO )
695         CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
696         INFOT = 15
697         CALL SGGES( 'V', 'V', 'S', SLCTES, 2, A, 2, B, 2, SDIM, R1, R2,
698     $               R3, Q, 1, U, 2, W, 1, BW, INFO )
699         CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
700         INFOT = 17
701         CALL SGGES( 'N', 'V', 'S', SLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
702     $               R3, Q, 1, U, 0, W, 1, BW, INFO )
703         CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
704         INFOT = 17
705         CALL SGGES( 'V', 'V', 'S', SLCTES, 2, A, 2, B, 2, SDIM, R1, R2,
706     $               R3, Q, 2, U, 1, W, 1, BW, INFO )
707         CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
708         INFOT = 19
709         CALL SGGES( 'V', 'V', 'S', SLCTES, 2, A, 2, B, 2, SDIM, R1, R2,
710     $               R3, Q, 2, U, 2, W, 1, BW, INFO )
711         CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
712         NT = NT + 11
713*
714*        SGGES3
715*
716         SRNAMT = 'SGGES3'
717         INFOT = 1
718         CALL SGGES3( '/', 'N', 'S', SLCTES, 1, A, 1, B, 1, SDIM, R1,
719     $                R2, R3, Q, 1, U, 1, W, 1, BW, INFO )
720         CALL CHKXER( 'SGGES3 ', INFOT, NOUT, LERR, OK )
721         INFOT = 2
722         CALL SGGES3( 'N', '/', 'S', SLCTES, 1, A, 1, B, 1, SDIM, R1,
723     $                R2, R3, Q, 1, U, 1, W, 1, BW, INFO )
724         CALL CHKXER( 'SGGES3 ', INFOT, NOUT, LERR, OK )
725         INFOT = 3
726         CALL SGGES3( 'N', 'V', '/', SLCTES, 1, A, 1, B, 1, SDIM, R1,
727     $                R2, R3, Q, 1, U, 1, W, 1, BW, INFO )
728         CALL CHKXER( 'SGGES3 ', INFOT, NOUT, LERR, OK )
729         INFOT = 5
730         CALL SGGES3( 'N', 'V', 'S', SLCTES, -1, A, 1, B, 1, SDIM, R1,
731     $                R2, R3, Q, 1, U, 1, W, 1, BW, INFO )
732         CALL CHKXER( 'SGGES3 ', INFOT, NOUT, LERR, OK )
733         INFOT = 7
734         CALL SGGES3( 'N', 'V', 'S', SLCTES, 1, A, 0, B, 1, SDIM, R1,
735     $                R2, R3, Q, 1, U, 1, W, 1, BW, INFO )
736         CALL CHKXER( 'SGGES3 ', INFOT, NOUT, LERR, OK )
737         INFOT = 9
738         CALL SGGES3( 'N', 'V', 'S', SLCTES, 1, A, 1, B, 0, SDIM, R1,
739     $                R2, R3, Q, 1, U, 1, W, 1, BW, INFO )
740         CALL CHKXER( 'SGGES3 ', INFOT, NOUT, LERR, OK )
741         INFOT = 15
742         CALL SGGES3( 'N', 'V', 'S', SLCTES, 1, A, 1, B, 1, SDIM, R1,
743     $                R2, R3, Q, 0, U, 1, W, 1, BW, INFO )
744         CALL CHKXER( 'SGGES3 ', INFOT, NOUT, LERR, OK )
745         INFOT = 15
746         CALL SGGES3( 'V', 'V', 'S', SLCTES, 2, A, 2, B, 2, SDIM, R1,
747     $                R2, R3, Q, 1, U, 2, W, 1, BW, INFO )
748         CALL CHKXER( 'SGGES3 ', INFOT, NOUT, LERR, OK )
749         INFOT = 17
750         CALL SGGES3( 'N', 'V', 'S', SLCTES, 1, A, 1, B, 1, SDIM, R1,
751     $                R2, R3, Q, 1, U, 0, W, 1, BW, INFO )
752         CALL CHKXER( 'SGGES3 ', INFOT, NOUT, LERR, OK )
753         INFOT = 17
754         CALL SGGES3( 'V', 'V', 'S', SLCTES, 2, A, 2, B, 2, SDIM, R1,
755     $                R2, R3, Q, 2, U, 1, W, 1, BW, INFO )
756         CALL CHKXER( 'SGGES3 ', INFOT, NOUT, LERR, OK )
757         INFOT = 19
758         CALL SGGES3( 'V', 'V', 'S', SLCTES, 2, A, 2, B, 2, SDIM, R1,
759     $                R2, R3, Q, 2, U, 2, W, 1, BW, INFO )
760         CALL CHKXER( 'SGGES3 ', INFOT, NOUT, LERR, OK )
761         NT = NT + 11
762*
763*        SGGESX
764*
765         SRNAMT = 'SGGESX'
766         INFOT = 1
767         CALL SGGESX( '/', 'N', 'S', SLCTSX, '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( 'SGGESX', INFOT, NOUT, LERR, OK )
771         INFOT = 2
772         CALL SGGESX( 'N', '/', 'S', SLCTSX, '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( 'SGGESX', INFOT, NOUT, LERR, OK )
776         INFOT = 3
777         CALL SGGESX( 'V', 'V', '/', SLCTSX, '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( 'SGGESX', INFOT, NOUT, LERR, OK )
781         INFOT = 5
782         CALL SGGESX( 'V', 'V', 'S', SLCTSX, '/', 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( 'SGGESX', INFOT, NOUT, LERR, OK )
786         INFOT = 6
787         CALL SGGESX( 'V', 'V', 'S', SLCTSX, '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( 'SGGESX', INFOT, NOUT, LERR, OK )
791         INFOT = 8
792         CALL SGGESX( 'V', 'V', 'S', SLCTSX, '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( 'SGGESX', INFOT, NOUT, LERR, OK )
796         INFOT = 10
797         CALL SGGESX( 'V', 'V', 'S', SLCTSX, '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( 'SGGESX', INFOT, NOUT, LERR, OK )
801         INFOT = 16
802         CALL SGGESX( 'V', 'V', 'S', SLCTSX, '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( 'SGGESX', INFOT, NOUT, LERR, OK )
806         INFOT = 16
807         CALL SGGESX( 'V', 'V', 'S', SLCTSX, '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( 'SGGESX', INFOT, NOUT, LERR, OK )
811         INFOT = 18
812         CALL SGGESX( 'V', 'V', 'S', SLCTSX, '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( 'SGGESX', INFOT, NOUT, LERR, OK )
816         INFOT = 18
817         CALL SGGESX( 'V', 'V', 'S', SLCTSX, '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( 'SGGESX', INFOT, NOUT, LERR, OK )
821         INFOT = 22
822         CALL SGGESX( 'V', 'V', 'S', SLCTSX, '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( 'SGGESX', INFOT, NOUT, LERR, OK )
826         INFOT = 24
827         CALL SGGESX( 'V', 'V', 'S', SLCTSX, '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( 'SGGESX', INFOT, NOUT, LERR, OK )
831         NT = NT + 13
832*
833*        SGGEV
834*
835         SRNAMT = 'SGGEV '
836         INFOT = 1
837         CALL SGGEV( '/', 'N', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1, W,
838     $               1, INFO )
839         CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
840         INFOT = 2
841         CALL SGGEV( 'N', '/', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1, W,
842     $               1, INFO )
843         CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
844         INFOT = 3
845         CALL SGGEV( 'V', 'V', -1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1,
846     $               W, 1, INFO )
847         CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
848         INFOT = 5
849         CALL SGGEV( 'V', 'V', 1, A, 0, B, 1, R1, R2, R3, Q, 1, U, 1, W,
850     $               1, INFO )
851         CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
852         INFOT = 7
853         CALL SGGEV( 'V', 'V', 1, A, 1, B, 0, R1, R2, R3, Q, 1, U, 1, W,
854     $               1, INFO )
855         CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
856         INFOT = 12
857         CALL SGGEV( 'N', 'V', 1, A, 1, B, 1, R1, R2, R3, Q, 0, U, 1, W,
858     $               1, INFO )
859         CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
860         INFOT = 12
861         CALL SGGEV( 'V', 'V', 2, A, 2, B, 2, R1, R2, R3, Q, 1, U, 2, W,
862     $               1, INFO )
863         CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
864         INFOT = 14
865         CALL SGGEV( 'V', 'N', 2, A, 2, B, 2, R1, R2, R3, Q, 2, U, 0, W,
866     $               1, INFO )
867         CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
868         INFOT = 14
869         CALL SGGEV( 'V', 'V', 2, A, 2, B, 2, R1, R2, R3, Q, 2, U, 1, W,
870     $               1, INFO )
871         CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
872         INFOT = 16
873         CALL SGGEV( 'V', 'V', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1, W,
874     $               1, INFO )
875         CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
876         NT = NT + 10
877*
878*        SGGEV3
879*
880         SRNAMT = 'SGGEV3 '
881         INFOT = 1
882         CALL SGGEV3( '/', 'N', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1,
883     $                W, 1, INFO )
884         CALL CHKXER( 'SGGEV3 ', INFOT, NOUT, LERR, OK )
885         INFOT = 2
886         CALL SGGEV3( 'N', '/', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1,
887     $                W, 1, INFO )
888         CALL CHKXER( 'SGGEV3 ', INFOT, NOUT, LERR, OK )
889         INFOT = 3
890         CALL SGGEV3( 'V', 'V', -1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1,
891     $               W, 1, INFO )
892         CALL CHKXER( 'SGGEV3 ', INFOT, NOUT, LERR, OK )
893         INFOT = 5
894         CALL SGGEV3( 'V', 'V', 1, A, 0, B, 1, R1, R2, R3, Q, 1, U, 1,
895     $                W, 1, INFO )
896         CALL CHKXER( 'SGGEV3 ', INFOT, NOUT, LERR, OK )
897         INFOT = 7
898         CALL SGGEV3( 'V', 'V', 1, A, 1, B, 0, R1, R2, R3, Q, 1, U, 1,
899     $                W, 1, INFO )
900         CALL CHKXER( 'SGGEV3 ', INFOT, NOUT, LERR, OK )
901         INFOT = 12
902         CALL SGGEV3( 'N', 'V', 1, A, 1, B, 1, R1, R2, R3, Q, 0, U, 1,
903     $                W, 1, INFO )
904         CALL CHKXER( 'SGGEV3 ', INFOT, NOUT, LERR, OK )
905         INFOT = 12
906         CALL SGGEV3( 'V', 'V', 2, A, 2, B, 2, R1, R2, R3, Q, 1, U, 2,
907     $                W, 1, INFO )
908         CALL CHKXER( 'SGGEV3 ', INFOT, NOUT, LERR, OK )
909         INFOT = 14
910         CALL SGGEV3( 'V', 'N', 2, A, 2, B, 2, R1, R2, R3, Q, 2, U, 0,
911     $                W, 1, INFO )
912         CALL CHKXER( 'SGGEV3 ', INFOT, NOUT, LERR, OK )
913         INFOT = 14
914         CALL SGGEV3( 'V', 'V', 2, A, 2, B, 2, R1, R2, R3, Q, 2, U, 1,
915     $                W, 1, INFO )
916         CALL CHKXER( 'SGGEV3 ', INFOT, NOUT, LERR, OK )
917         INFOT = 16
918         CALL SGGEV3( 'V', 'V', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1,
919     $                W, 1, INFO )
920         CALL CHKXER( 'SGGEV3 ', INFOT, NOUT, LERR, OK )
921         NT = NT + 10
922*
923*        SGGEVX
924*
925         SRNAMT = 'SGGEVX'
926         INFOT = 1
927         CALL SGGEVX( '/', 'N', 'N', 'N', 1, A, 1, B, 1, R1, R2, R3, Q,
928     $                1, U, 1, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV,
929     $                W, 1, IW, BW, INFO )
930         CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
931         INFOT = 2
932         CALL SGGEVX( '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( 'SGGEVX', INFOT, NOUT, LERR, OK )
936         INFOT = 3
937         CALL SGGEVX( '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( 'SGGEVX', INFOT, NOUT, LERR, OK )
941         INFOT = 4
942         CALL SGGEVX( '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( 'SGGEVX', INFOT, NOUT, LERR, OK )
946         INFOT = 5
947         CALL SGGEVX( 'N', '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( 'SGGEVX', INFOT, NOUT, LERR, OK )
951         INFOT = 7
952         CALL SGGEVX( 'N', 'N', 'N', 'N', 1, A, 0, 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( 'SGGEVX', INFOT, NOUT, LERR, OK )
956         INFOT = 9
957         CALL SGGEVX( 'N', 'N', 'N', 'N', 1, A, 1, B, 0, 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( 'SGGEVX', INFOT, NOUT, LERR, OK )
961         INFOT = 14
962         CALL SGGEVX( 'N', 'N', 'N', 'N', 1, A, 1, B, 1, R1, R2, R3, Q,
963     $                0, U, 1, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV,
964     $                W, 1, IW, BW, INFO )
965         CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
966         INFOT = 14
967         CALL SGGEVX( 'N', 'V', 'N', 'N', 2, A, 2, B, 2, R1, R2, R3, Q,
968     $                1, U, 2, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV,
969     $                W, 1, IW, BW, INFO )
970         CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
971         INFOT = 16
972         CALL SGGEVX( 'N', 'N', 'N', 'N', 1, A, 1, B, 1, R1, R2, R3, Q,
973     $                1, U, 0, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV,
974     $                W, 1, IW, BW, INFO )
975         CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
976         INFOT = 16
977         CALL SGGEVX( 'N', 'N', 'V', 'N', 2, A, 2, B, 2, R1, R2, R3, Q,
978     $                2, U, 1, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV,
979     $                W, 1, IW, BW, INFO )
980         CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
981         INFOT = 26
982         CALL SGGEVX( 'N', 'N', 'V', 'N', 2, A, 2, B, 2, R1, R2, R3, Q,
983     $                2, U, 2, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV,
984     $                W, 1, IW, BW, INFO )
985         CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
986         NT = NT + 12
987*
988*        STGEXC
989*
990         SRNAMT = 'STGEXC'
991         INFOT = 3
992         CALL STGEXC( .TRUE., .TRUE., -1, A, 1, B, 1, Q, 1, Z, 1, IFST,
993     $                ILST, W, 1, INFO )
994         CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
995         INFOT = 5
996         CALL STGEXC( .TRUE., .TRUE., 1, A, 0, B, 1, Q, 1, Z, 1, IFST,
997     $                ILST, W, 1, INFO )
998         CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
999         INFOT = 7
1000         CALL STGEXC( .TRUE., .TRUE., 1, A, 1, B, 0, Q, 1, Z, 1, IFST,
1001     $                ILST, W, 1, INFO )
1002         CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
1003         INFOT = 9
1004         CALL STGEXC( .FALSE., .TRUE., 1, A, 1, B, 1, Q, 0, Z, 1, IFST,
1005     $                ILST, W, 1, INFO )
1006         CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
1007         INFOT = 9
1008         CALL STGEXC( .TRUE., .TRUE., 1, A, 1, B, 1, Q, 0, Z, 1, IFST,
1009     $                ILST, W, 1, INFO )
1010         CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
1011         INFOT = 11
1012         CALL STGEXC( .TRUE., .FALSE., 1, A, 1, B, 1, Q, 1, Z, 0, IFST,
1013     $                ILST, W, 1, INFO )
1014         CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
1015         INFOT = 11
1016         CALL STGEXC( .TRUE., .TRUE., 1, A, 1, B, 1, Q, 1, Z, 0, IFST,
1017     $                ILST, W, 1, INFO )
1018         CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
1019         INFOT = 15
1020         CALL STGEXC( .TRUE., .TRUE., 1, A, 1, B, 1, Q, 1, Z, 1, IFST,
1021     $                ILST, W, 0, INFO )
1022         CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
1023         NT = NT + 8
1024*
1025*        STGSEN
1026*
1027         SRNAMT = 'STGSEN'
1028         INFOT = 1
1029         CALL STGSEN( -1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2,
1030     $                R3, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
1031     $                INFO )
1032         CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
1033         INFOT = 5
1034         CALL STGSEN( 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( 'STGSEN', INFOT, NOUT, LERR, OK )
1038         INFOT = 7
1039         CALL STGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 0, B, 1, R1, R2, R3,
1040     $                Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
1041     $                INFO )
1042         CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
1043         INFOT = 9
1044         CALL STGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 0, R1, R2, R3,
1045     $                Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
1046     $                INFO )
1047         CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
1048         INFOT = 14
1049         CALL STGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
1050     $                Q, 0, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
1051     $                INFO )
1052         CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
1053         INFOT = 16
1054         CALL STGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
1055     $                Q, 1, Z, 0, M, TOLA, TOLB, RCV, W, 1, IW, 1,
1056     $                INFO )
1057         CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
1058         INFOT = 22
1059         CALL STGSEN( 0, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
1060     $                Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
1061     $                INFO )
1062         CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
1063         INFOT = 22
1064         CALL STGSEN( 1, .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( 'STGSEN', INFOT, NOUT, LERR, OK )
1068         INFOT = 22
1069         CALL STGSEN( 2, .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( 'STGSEN', INFOT, NOUT, LERR, OK )
1073         INFOT = 24
1074         CALL STGSEN( 0, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
1075     $                Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 20, IW, 0,
1076     $                INFO )
1077         CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
1078         INFOT = 24
1079         CALL STGSEN( 1, .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( 'STGSEN', INFOT, NOUT, LERR, OK )
1083         INFOT = 24
1084         CALL STGSEN( 2, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
1085     $                Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 20, IW, 1,
1086     $                INFO )
1087         CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
1088         NT = NT + 12
1089*
1090*        STGSNA
1091*
1092         SRNAMT = 'STGSNA'
1093         INFOT = 1
1094         CALL STGSNA( '/', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
1095     $                1, M, W, 1, IW, INFO )
1096         CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
1097         INFOT = 2
1098         CALL STGSNA( 'B', '/', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
1099     $                1, M, W, 1, IW, INFO )
1100         CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
1101         INFOT = 4
1102         CALL STGSNA( 'B', 'A', SEL, -1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
1103     $                1, M, W, 1, IW, INFO )
1104         CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
1105         INFOT = 6
1106         CALL STGSNA( 'B', 'A', SEL, 1, A, 0, B, 1, Q, 1, U, 1, R1, R2,
1107     $                1, M, W, 1, IW, INFO )
1108         CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
1109         INFOT = 8
1110         CALL STGSNA( 'B', 'A', SEL, 1, A, 1, B, 0, Q, 1, U, 1, R1, R2,
1111     $                1, M, W, 1, IW, INFO )
1112         CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
1113         INFOT = 10
1114         CALL STGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 0, U, 1, R1, R2,
1115     $                1, M, W, 1, IW, INFO )
1116         CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
1117         INFOT = 12
1118         CALL STGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 0, R1, R2,
1119     $                1, M, W, 1, IW, INFO )
1120         CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
1121         INFOT = 15
1122         CALL STGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
1123     $                0, M, W, 1, IW, INFO )
1124         CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
1125         INFOT = 18
1126         CALL STGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
1127     $                1, M, W, 0, IW, INFO )
1128         CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
1129         NT = NT + 9
1130*
1131*        STGSYL
1132*
1133         SRNAMT = 'STGSYL'
1134         INFOT = 1
1135         CALL STGSYL( '/', 0, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
1136     $                SCALE, DIF, W, 1, IW, INFO )
1137         CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
1138         INFOT = 2
1139         CALL STGSYL( 'N', -1, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
1140     $                SCALE, DIF, W, 1, IW, INFO )
1141         CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
1142         INFOT = 3
1143         CALL STGSYL( 'N', 0, 0, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
1144     $                SCALE, DIF, W, 1, IW, INFO )
1145         CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
1146         INFOT = 4
1147         CALL STGSYL( 'N', 0, 1, 0, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
1148     $                SCALE, DIF, W, 1, IW, INFO )
1149         CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
1150         INFOT = 6
1151         CALL STGSYL( 'N', 0, 1, 1, A, 0, B, 1, Q, 1, U, 1, V, 1, Z, 1,
1152     $                SCALE, DIF, W, 1, IW, INFO )
1153         CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
1154         INFOT = 8
1155         CALL STGSYL( 'N', 0, 1, 1, A, 1, B, 0, Q, 1, U, 1, V, 1, Z, 1,
1156     $                SCALE, DIF, W, 1, IW, INFO )
1157         CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
1158         INFOT = 10
1159         CALL STGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 0, U, 1, V, 1, Z, 1,
1160     $                SCALE, DIF, W, 1, IW, INFO )
1161         CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
1162         INFOT = 12
1163         CALL STGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 1, U, 0, V, 1, Z, 1,
1164     $                SCALE, DIF, W, 1, IW, INFO )
1165         CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
1166         INFOT = 14
1167         CALL STGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 0, Z, 1,
1168     $                SCALE, DIF, W, 1, IW, INFO )
1169         CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
1170         INFOT = 16
1171         CALL STGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 0,
1172     $                SCALE, DIF, W, 1, IW, INFO )
1173         CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
1174         INFOT = 20
1175         CALL STGSYL( 'N', 1, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
1176     $                SCALE, DIF, W, 1, IW, INFO )
1177         CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
1178         INFOT = 20
1179         CALL STGSYL( 'N', 2, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
1180     $                SCALE, DIF, W, 1, IW, INFO )
1181         CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
1182         NT = NT + 12
1183      END IF
1184*
1185*     Print a summary line.
1186*
1187      IF( OK ) THEN
1188         WRITE( NOUT, FMT = 9999 )PATH, NT
1189      ELSE
1190         WRITE( NOUT, FMT = 9998 )PATH
1191      END IF
1192*
1193 9999 FORMAT( 1X, A3, ' routines passed the tests of the error exits (',
1194     $      I3, ' tests done)' )
1195 9998 FORMAT( ' *** ', A3, ' routines failed the tests of the error ',
1196     $      'exits ***' )
1197*
1198      RETURN
1199*
1200*     End of SERRGG
1201*
1202      END
1203