1 SUBROUTINE SERRGG( PATH, NUNIT )
2 *
3 * -- LAPACK test routine (version 3.1) --
4 * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
5 * November 2006
6 *
7 * .. Scalar Arguments ..
8 CHARACTER*3 PATH
9 INTEGER NUNIT
10 * ..
11 *
12 * Purpose
13 * =======
14 *
15 * SERRGG tests the error exits for SGGES, SGGESX, SGGEV, SGGEVX,
16 * SGGGLM, SGGHRD, SGGLSE, SGGQRF, SGGRQF, SGGSVD, SGGSVP, SHGEQZ,
17 * STGEVC, STGEXC, STGSEN, STGSJA, STGSNA, and STGSYL.
18 *
19 * Arguments
20 * =========
21 *
22 * PATH (input) CHARACTER*3
23 * The LAPACK path name for the routines to be tested.
24 *
25 * NUNIT (input) INTEGER
26 * The unit number for output.
27 *
28 * =====================================================================
29 *
30 * .. Parameters ..
31 INTEGER NMAX, LW
32 PARAMETER ( NMAX = 3, LW = 6*NMAX )
33 REAL ONE, ZERO
34 PARAMETER ( ONE = 1.0E+0, ZERO = 0.0E+0 )
35 * ..
36 * .. Local Scalars ..
37 CHARACTER*2 C2
38 INTEGER DUMMYK, DUMMYL, I, IFST, ILST, INFO, J, M,
39 $ NCYCLE, NT, SDIM
40 REAL ANRM, BNRM, DIF, SCALE, TOLA, TOLB
41 * ..
42 * .. Local Arrays ..
43 LOGICAL BW( NMAX ), SEL( NMAX )
44 INTEGER IW( NMAX )
45 REAL A( NMAX, NMAX ), B( NMAX, NMAX ), LS( NMAX ),
46 $ Q( NMAX, NMAX ), R1( NMAX ), R2( NMAX ),
47 $ R3( NMAX ), RCE( 2 ), RCV( 2 ), RS( NMAX ),
48 $ TAU( NMAX ), U( NMAX, NMAX ), V( NMAX, NMAX ),
49 $ W( LW ), Z( NMAX, NMAX )
50 * ..
51 * .. External Functions ..
52 LOGICAL LSAMEN, SLCTES, SLCTSX
53 EXTERNAL LSAMEN, SLCTES, SLCTSX
54 * ..
55 * .. External Subroutines ..
56 EXTERNAL CHKXER, SGGES, SGGESX, SGGEV, SGGEVX, SGGGLM,
57 $ SGGHRD, SGGLSE, SGGQRF, SGGRQF, SGGSVD, SGGSVP,
58 $ SHGEQZ, STGEVC, STGEXC, STGSEN, STGSJA, STGSNA,
59 $ STGSYL
60 * ..
61 * .. Scalars in Common ..
62 LOGICAL LERR, OK
63 CHARACTER*32 SRNAMT
64 INTEGER INFOT, NOUT
65 * ..
66 * .. Common blocks ..
67 COMMON / INFOC / INFOT, NOUT, OK, LERR
68 COMMON / SRNAMC / SRNAMT
69 * ..
70 * .. Executable Statements ..
71 *
72 NOUT = NUNIT
73 WRITE( NOUT, FMT = * )
74 C2 = PATH( 2: 3 )
75 *
76 * Set the variables to innocuous values.
77 *
78 DO 20 J = 1, NMAX
79 SEL( J ) = .TRUE.
80 DO 10 I = 1, NMAX
81 A( I, J ) = ZERO
82 B( I, J ) = ZERO
83 10 CONTINUE
84 20 CONTINUE
85 DO 30 I = 1, NMAX
86 A( I, I ) = ONE
87 B( I, I ) = ONE
88 30 CONTINUE
89 OK = .TRUE.
90 TOLA = 1.0E0
91 TOLB = 1.0E0
92 IFST = 1
93 ILST = 1
94 NT = 0
95 *
96 * Test error exits for the GG path.
97 *
98 IF( LSAMEN( 2, C2, 'GG' ) ) THEN
99 *
100 * SGGHRD
101 *
102 SRNAMT = 'SGGHRD'
103 INFOT = 1
104 CALL SGGHRD( '/', 'N', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
105 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
106 INFOT = 2
107 CALL SGGHRD( 'N', '/', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
108 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
109 INFOT = 3
110 CALL SGGHRD( 'N', 'N', -1, 0, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
111 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
112 INFOT = 4
113 CALL SGGHRD( 'N', 'N', 0, 0, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
114 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
115 INFOT = 5
116 CALL SGGHRD( 'N', 'N', 0, 1, 1, A, 1, B, 1, Q, 1, Z, 1, INFO )
117 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
118 INFOT = 7
119 CALL SGGHRD( 'N', 'N', 2, 1, 1, A, 1, B, 2, Q, 1, Z, 1, INFO )
120 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
121 INFOT = 9
122 CALL SGGHRD( 'N', 'N', 2, 1, 1, A, 2, B, 1, Q, 1, Z, 1, INFO )
123 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
124 INFOT = 11
125 CALL SGGHRD( 'V', 'N', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, INFO )
126 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
127 INFOT = 13
128 CALL SGGHRD( 'N', 'V', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, INFO )
129 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
130 NT = NT + 9
131 *
132 * SHGEQZ
133 *
134 SRNAMT = 'SHGEQZ'
135 INFOT = 1
136 CALL SHGEQZ( '/', 'N', 'N', 0, 1, 0, A, 1, B, 1, R1, R2, R3, Q,
137 $ 1, Z, 1, W, LW, INFO )
138 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
139 INFOT = 2
140 CALL SHGEQZ( 'E', '/', 'N', 0, 1, 0, A, 1, B, 1, R1, R2, R3, Q,
141 $ 1, Z, 1, W, LW, INFO )
142 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
143 INFOT = 3
144 CALL SHGEQZ( 'E', 'N', '/', 0, 1, 0, A, 1, B, 1, R1, R2, R3, Q,
145 $ 1, Z, 1, W, LW, INFO )
146 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
147 INFOT = 4
148 CALL SHGEQZ( 'E', 'N', 'N', -1, 0, 0, A, 1, B, 1, R1, R2, R3,
149 $ Q, 1, Z, 1, W, LW, INFO )
150 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
151 INFOT = 5
152 CALL SHGEQZ( 'E', 'N', 'N', 0, 0, 0, A, 1, B, 1, R1, R2, R3, Q,
153 $ 1, Z, 1, W, LW, INFO )
154 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
155 INFOT = 6
156 CALL SHGEQZ( 'E', 'N', 'N', 0, 1, 1, A, 1, B, 1, R1, R2, R3, Q,
157 $ 1, Z, 1, W, LW, INFO )
158 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
159 INFOT = 8
160 CALL SHGEQZ( 'E', 'N', 'N', 2, 1, 1, A, 1, B, 2, R1, R2, R3, Q,
161 $ 1, Z, 1, W, LW, INFO )
162 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
163 INFOT = 10
164 CALL SHGEQZ( 'E', 'N', 'N', 2, 1, 1, A, 2, B, 1, R1, R2, R3, Q,
165 $ 1, Z, 1, W, LW, INFO )
166 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
167 INFOT = 15
168 CALL SHGEQZ( 'E', 'V', 'N', 2, 1, 1, A, 2, B, 2, R1, R2, R3, Q,
169 $ 1, Z, 1, W, LW, INFO )
170 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
171 INFOT = 17
172 CALL SHGEQZ( 'E', 'N', 'V', 2, 1, 1, A, 2, B, 2, R1, R2, R3, Q,
173 $ 1, Z, 1, W, LW, INFO )
174 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
175 NT = NT + 10
176 *
177 * STGEVC
178 *
179 SRNAMT = 'STGEVC'
180 INFOT = 1
181 CALL STGEVC( '/', 'A', SEL, 0, A, 1, B, 1, Q, 1, Z, 1, 0, M, W,
182 $ INFO )
183 CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
184 INFOT = 2
185 CALL STGEVC( 'R', '/', SEL, 0, A, 1, B, 1, Q, 1, Z, 1, 0, M, W,
186 $ INFO )
187 CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
188 INFOT = 4
189 CALL STGEVC( 'R', 'A', SEL, -1, A, 1, B, 1, Q, 1, Z, 1, 0, M,
190 $ W, INFO )
191 CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
192 INFOT = 6
193 CALL STGEVC( 'R', 'A', SEL, 2, A, 1, B, 2, Q, 1, Z, 2, 0, M, W,
194 $ INFO )
195 CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
196 INFOT = 8
197 CALL STGEVC( 'R', 'A', SEL, 2, A, 2, B, 1, Q, 1, Z, 2, 0, M, W,
198 $ INFO )
199 CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
200 INFOT = 10
201 CALL STGEVC( 'L', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 1, 0, M, W,
202 $ INFO )
203 CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
204 INFOT = 12
205 CALL STGEVC( 'R', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 1, 0, M, W,
206 $ INFO )
207 CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
208 INFOT = 13
209 CALL STGEVC( 'R', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 2, 1, M, W,
210 $ INFO )
211 CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
212 NT = NT + 8
213 *
214 * Test error exits for the GSV path.
215 *
216 ELSE IF( LSAMEN( 3, PATH, 'GSV' ) ) THEN
217 *
218 * SGGSVD
219 *
220 SRNAMT = 'SGGSVD'
221 INFOT = 1
222 CALL SGGSVD( '/', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
223 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, INFO )
224 CALL CHKXER( 'SGGSVD', INFOT, NOUT, LERR, OK )
225 INFOT = 2
226 CALL SGGSVD( 'N', '/', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
227 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, INFO )
228 CALL CHKXER( 'SGGSVD', INFOT, NOUT, LERR, OK )
229 INFOT = 3
230 CALL SGGSVD( 'N', 'N', '/', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
231 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, INFO )
232 CALL CHKXER( 'SGGSVD', INFOT, NOUT, LERR, OK )
233 INFOT = 4
234 CALL SGGSVD( 'N', 'N', 'N', -1, 0, 0, DUMMYK, DUMMYL, A, 1, B,
235 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, INFO )
236 CALL CHKXER( 'SGGSVD', INFOT, NOUT, LERR, OK )
237 INFOT = 5
238 CALL SGGSVD( 'N', 'N', 'N', 0, -1, 0, DUMMYK, DUMMYL, A, 1, B,
239 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, INFO )
240 CALL CHKXER( 'SGGSVD', INFOT, NOUT, LERR, OK )
241 INFOT = 6
242 CALL SGGSVD( 'N', 'N', 'N', 0, 0, -1, DUMMYK, DUMMYL, A, 1, B,
243 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, INFO )
244 CALL CHKXER( 'SGGSVD', INFOT, NOUT, LERR, OK )
245 INFOT = 10
246 CALL SGGSVD( 'N', 'N', 'N', 2, 1, 1, DUMMYK, DUMMYL, A, 1, B,
247 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, INFO )
248 CALL CHKXER( 'SGGSVD', INFOT, NOUT, LERR, OK )
249 INFOT = 12
250 CALL SGGSVD( 'N', 'N', 'N', 1, 1, 2, DUMMYK, DUMMYL, A, 1, B,
251 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, INFO )
252 CALL CHKXER( 'SGGSVD', INFOT, NOUT, LERR, OK )
253 INFOT = 16
254 CALL SGGSVD( 'U', 'N', 'N', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B,
255 $ 2, R1, R2, U, 1, V, 1, Q, 1, W, IW, INFO )
256 CALL CHKXER( 'SGGSVD', INFOT, NOUT, LERR, OK )
257 INFOT = 18
258 CALL SGGSVD( 'N', 'V', 'N', 1, 1, 2, DUMMYK, DUMMYL, A, 1, B,
259 $ 2, R1, R2, U, 1, V, 1, Q, 1, W, IW, INFO )
260 CALL CHKXER( 'SGGSVD', INFOT, NOUT, LERR, OK )
261 INFOT = 20
262 CALL SGGSVD( 'N', 'N', 'Q', 1, 2, 1, DUMMYK, DUMMYL, A, 1, B,
263 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, INFO )
264 CALL CHKXER( 'SGGSVD', INFOT, NOUT, LERR, OK )
265 NT = NT + 11
266 *
267 * SGGSVP
268 *
269 SRNAMT = 'SGGSVP'
270 INFOT = 1
271 CALL SGGSVP( '/', 'N', 'N', 0, 0, 0, A, 1, B, 1, TOLA, TOLB,
272 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
273 $ INFO )
274 CALL CHKXER( 'SGGSVP', INFOT, NOUT, LERR, OK )
275 INFOT = 2
276 CALL SGGSVP( 'N', '/', 'N', 0, 0, 0, A, 1, B, 1, TOLA, TOLB,
277 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
278 $ INFO )
279 CALL CHKXER( 'SGGSVP', INFOT, NOUT, LERR, OK )
280 INFOT = 3
281 CALL SGGSVP( 'N', 'N', '/', 0, 0, 0, A, 1, B, 1, TOLA, TOLB,
282 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
283 $ INFO )
284 CALL CHKXER( 'SGGSVP', INFOT, NOUT, LERR, OK )
285 INFOT = 4
286 CALL SGGSVP( 'N', 'N', 'N', -1, 0, 0, A, 1, B, 1, TOLA, TOLB,
287 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
288 $ INFO )
289 CALL CHKXER( 'SGGSVP', INFOT, NOUT, LERR, OK )
290 INFOT = 5
291 CALL SGGSVP( 'N', 'N', 'N', 0, -1, 0, A, 1, B, 1, TOLA, TOLB,
292 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
293 $ INFO )
294 CALL CHKXER( 'SGGSVP', INFOT, NOUT, LERR, OK )
295 INFOT = 6
296 CALL SGGSVP( 'N', 'N', 'N', 0, 0, -1, A, 1, B, 1, TOLA, TOLB,
297 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
298 $ INFO )
299 CALL CHKXER( 'SGGSVP', INFOT, NOUT, LERR, OK )
300 INFOT = 8
301 CALL SGGSVP( 'N', 'N', 'N', 2, 1, 1, A, 1, B, 1, TOLA, TOLB,
302 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
303 $ INFO )
304 CALL CHKXER( 'SGGSVP', INFOT, NOUT, LERR, OK )
305 INFOT = 10
306 CALL SGGSVP( 'N', 'N', 'N', 1, 2, 1, A, 1, B, 1, TOLA, TOLB,
307 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
308 $ INFO )
309 CALL CHKXER( 'SGGSVP', INFOT, NOUT, LERR, OK )
310 INFOT = 16
311 CALL SGGSVP( 'U', 'N', 'N', 2, 2, 2, A, 2, B, 2, TOLA, TOLB,
312 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
313 $ INFO )
314 CALL CHKXER( 'SGGSVP', INFOT, NOUT, LERR, OK )
315 INFOT = 18
316 CALL SGGSVP( 'N', 'V', 'N', 1, 2, 1, A, 1, B, 2, TOLA, TOLB,
317 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
318 $ INFO )
319 CALL CHKXER( 'SGGSVP', INFOT, NOUT, LERR, OK )
320 INFOT = 20
321 CALL SGGSVP( 'N', 'N', 'Q', 1, 1, 2, A, 1, B, 1, TOLA, TOLB,
322 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
323 $ INFO )
324 CALL CHKXER( 'SGGSVP', INFOT, NOUT, LERR, OK )
325 NT = NT + 11
326 *
327 * STGSJA
328 *
329 SRNAMT = 'STGSJA'
330 INFOT = 1
331 CALL STGSJA( '/', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
332 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
333 $ NCYCLE, INFO )
334 CALL CHKXER( 'STGSJA', INFOT, NOUT, LERR, OK )
335 INFOT = 2
336 CALL STGSJA( 'N', '/', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
337 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
338 $ NCYCLE, INFO )
339 CALL CHKXER( 'STGSJA', INFOT, NOUT, LERR, OK )
340 INFOT = 3
341 CALL STGSJA( 'N', 'N', '/', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
342 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
343 $ NCYCLE, INFO )
344 CALL CHKXER( 'STGSJA', INFOT, NOUT, LERR, OK )
345 INFOT = 4
346 CALL STGSJA( 'N', 'N', 'N', -1, 0, 0, DUMMYK, DUMMYL, A, 1, B,
347 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
348 $ NCYCLE, INFO )
349 CALL CHKXER( 'STGSJA', INFOT, NOUT, LERR, OK )
350 INFOT = 5
351 CALL STGSJA( 'N', 'N', 'N', 0, -1, 0, DUMMYK, DUMMYL, A, 1, B,
352 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
353 $ NCYCLE, INFO )
354 CALL CHKXER( 'STGSJA', INFOT, NOUT, LERR, OK )
355 INFOT = 6
356 CALL STGSJA( 'N', 'N', 'N', 0, 0, -1, DUMMYK, DUMMYL, A, 1, B,
357 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
358 $ NCYCLE, INFO )
359 CALL CHKXER( 'STGSJA', INFOT, NOUT, LERR, OK )
360 INFOT = 10
361 CALL STGSJA( 'N', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 0, B,
362 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
363 $ NCYCLE, INFO )
364 CALL CHKXER( 'STGSJA', INFOT, NOUT, LERR, OK )
365 INFOT = 12
366 CALL STGSJA( 'N', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
367 $ 0, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
368 $ NCYCLE, INFO )
369 CALL CHKXER( 'STGSJA', INFOT, NOUT, LERR, OK )
370 INFOT = 18
371 CALL STGSJA( 'U', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
372 $ 1, TOLA, TOLB, R1, R2, U, 0, V, 1, Q, 1, W,
373 $ NCYCLE, INFO )
374 CALL CHKXER( 'STGSJA', INFOT, NOUT, LERR, OK )
375 INFOT = 20
376 CALL STGSJA( 'N', 'V', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
377 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 0, Q, 1, W,
378 $ NCYCLE, INFO )
379 CALL CHKXER( 'STGSJA', INFOT, NOUT, LERR, OK )
380 INFOT = 22
381 CALL STGSJA( 'N', 'N', 'Q', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
382 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 0, W,
383 $ NCYCLE, INFO )
384 CALL CHKXER( 'STGSJA', INFOT, NOUT, LERR, OK )
385 NT = NT + 11
386 *
387 * Test error exits for the GLM path.
388 *
389 ELSE IF( LSAMEN( 3, PATH, 'GLM' ) ) THEN
390 *
391 * SGGGLM
392 *
393 SRNAMT = 'SGGGLM'
394 INFOT = 1
395 CALL SGGGLM( -1, 0, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
396 CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
397 INFOT = 2
398 CALL SGGGLM( 0, -1, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
399 CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
400 INFOT = 2
401 CALL SGGGLM( 0, 1, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
402 CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
403 INFOT = 3
404 CALL SGGGLM( 0, 0, -1, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
405 CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
406 INFOT = 3
407 CALL SGGGLM( 1, 0, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
408 CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
409 INFOT = 5
410 CALL SGGGLM( 0, 0, 0, A, 0, B, 1, R1, R2, R3, W, LW, INFO )
411 CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
412 INFOT = 7
413 CALL SGGGLM( 0, 0, 0, A, 1, B, 0, R1, R2, R3, W, LW, INFO )
414 CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
415 INFOT = 12
416 CALL SGGGLM( 1, 1, 1, A, 1, B, 1, R1, R2, R3, W, 1, INFO )
417 CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
418 NT = NT + 8
419 *
420 * Test error exits for the LSE path.
421 *
422 ELSE IF( LSAMEN( 3, PATH, 'LSE' ) ) THEN
423 *
424 * SGGLSE
425 *
426 SRNAMT = 'SGGLSE'
427 INFOT = 1
428 CALL SGGLSE( -1, 0, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
429 CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
430 INFOT = 2
431 CALL SGGLSE( 0, -1, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
432 CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
433 INFOT = 3
434 CALL SGGLSE( 0, 0, -1, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
435 CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
436 INFOT = 3
437 CALL SGGLSE( 0, 0, 1, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
438 CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
439 INFOT = 3
440 CALL SGGLSE( 0, 1, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
441 CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
442 INFOT = 5
443 CALL SGGLSE( 0, 0, 0, A, 0, B, 1, R1, R2, R3, W, LW, INFO )
444 CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
445 INFOT = 7
446 CALL SGGLSE( 0, 0, 0, A, 1, B, 0, R1, R2, R3, W, LW, INFO )
447 CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
448 INFOT = 12
449 CALL SGGLSE( 1, 1, 1, A, 1, B, 1, R1, R2, R3, W, 1, INFO )
450 CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
451 NT = NT + 8
452 *
453 * Test error exits for the GQR path.
454 *
455 ELSE IF( LSAMEN( 3, PATH, 'GQR' ) ) THEN
456 *
457 * SGGQRF
458 *
459 SRNAMT = 'SGGQRF'
460 INFOT = 1
461 CALL SGGQRF( -1, 0, 0, A, 1, R1, B, 1, R2, W, LW, INFO )
462 CALL CHKXER( 'SGGQRF', INFOT, NOUT, LERR, OK )
463 INFOT = 2
464 CALL SGGQRF( 0, -1, 0, A, 1, R1, B, 1, R2, W, LW, INFO )
465 CALL CHKXER( 'SGGQRF', INFOT, NOUT, LERR, OK )
466 INFOT = 3
467 CALL SGGQRF( 0, 0, -1, A, 1, R1, B, 1, R2, W, LW, INFO )
468 CALL CHKXER( 'SGGQRF', INFOT, NOUT, LERR, OK )
469 INFOT = 5
470 CALL SGGQRF( 0, 0, 0, A, 0, R1, B, 1, R2, W, LW, INFO )
471 CALL CHKXER( 'SGGQRF', INFOT, NOUT, LERR, OK )
472 INFOT = 8
473 CALL SGGQRF( 0, 0, 0, A, 1, R1, B, 0, R2, W, LW, INFO )
474 CALL CHKXER( 'SGGQRF', INFOT, NOUT, LERR, OK )
475 INFOT = 11
476 CALL SGGQRF( 1, 1, 2, A, 1, R1, B, 1, R2, W, 1, INFO )
477 CALL CHKXER( 'SGGQRF', INFOT, NOUT, LERR, OK )
478 NT = NT + 6
479 *
480 * SGGRQF
481 *
482 SRNAMT = 'SGGRQF'
483 INFOT = 1
484 CALL SGGRQF( -1, 0, 0, A, 1, R1, B, 1, R2, W, LW, INFO )
485 CALL CHKXER( 'SGGRQF', INFOT, NOUT, LERR, OK )
486 INFOT = 2
487 CALL SGGRQF( 0, -1, 0, A, 1, R1, B, 1, R2, W, LW, INFO )
488 CALL CHKXER( 'SGGRQF', INFOT, NOUT, LERR, OK )
489 INFOT = 3
490 CALL SGGRQF( 0, 0, -1, A, 1, R1, B, 1, R2, W, LW, INFO )
491 CALL CHKXER( 'SGGRQF', INFOT, NOUT, LERR, OK )
492 INFOT = 5
493 CALL SGGRQF( 0, 0, 0, A, 0, R1, B, 1, R2, W, LW, INFO )
494 CALL CHKXER( 'SGGRQF', INFOT, NOUT, LERR, OK )
495 INFOT = 8
496 CALL SGGRQF( 0, 0, 0, A, 1, R1, B, 0, R2, W, LW, INFO )
497 CALL CHKXER( 'SGGRQF', INFOT, NOUT, LERR, OK )
498 INFOT = 11
499 CALL SGGRQF( 1, 1, 2, A, 1, R1, B, 1, R2, W, 1, INFO )
500 CALL CHKXER( 'SGGRQF', INFOT, NOUT, LERR, OK )
501 NT = NT + 6
502 *
503 * Test error exits for the SGS, SGV, SGX, and SXV paths.
504 *
505 ELSE IF( LSAMEN( 3, PATH, 'SGS' ) .OR.
506 $ LSAMEN( 3, PATH, 'SGV' ) .OR.
507 $ LSAMEN( 3, PATH, 'SGX' ) .OR. LSAMEN( 3, PATH, 'SXV' ) )
508 $ THEN
509 *
510 * SGGES
511 *
512 SRNAMT = 'SGGES '
513 INFOT = 1
514 CALL SGGES( '/', 'N', 'S', SLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
515 $ R3, Q, 1, U, 1, W, 1, BW, INFO )
516 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
517 INFOT = 2
518 CALL SGGES( 'N', '/', 'S', SLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
519 $ R3, Q, 1, U, 1, W, 1, BW, INFO )
520 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
521 INFOT = 3
522 CALL SGGES( 'N', 'V', '/', SLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
523 $ R3, Q, 1, U, 1, W, 1, BW, INFO )
524 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
525 INFOT = 5
526 CALL SGGES( 'N', 'V', 'S', SLCTES, -1, A, 1, B, 1, SDIM, R1,
527 $ R2, R3, Q, 1, U, 1, W, 1, BW, INFO )
528 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
529 INFOT = 7
530 CALL SGGES( 'N', 'V', 'S', SLCTES, 1, A, 0, B, 1, SDIM, R1, R2,
531 $ R3, Q, 1, U, 1, W, 1, BW, INFO )
532 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
533 INFOT = 9
534 CALL SGGES( 'N', 'V', 'S', SLCTES, 1, A, 1, B, 0, SDIM, R1, R2,
535 $ R3, Q, 1, U, 1, W, 1, BW, INFO )
536 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
537 INFOT = 15
538 CALL SGGES( 'N', 'V', 'S', SLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
539 $ R3, Q, 0, U, 1, W, 1, BW, INFO )
540 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
541 INFOT = 15
542 CALL SGGES( 'V', 'V', 'S', SLCTES, 2, A, 2, B, 2, SDIM, R1, R2,
543 $ R3, Q, 1, U, 2, W, 1, BW, INFO )
544 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
545 INFOT = 17
546 CALL SGGES( 'N', 'V', 'S', SLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
547 $ R3, Q, 1, U, 0, W, 1, BW, INFO )
548 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
549 INFOT = 17
550 CALL SGGES( 'V', 'V', 'S', SLCTES, 2, A, 2, B, 2, SDIM, R1, R2,
551 $ R3, Q, 2, U, 1, W, 1, BW, INFO )
552 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
553 INFOT = 19
554 CALL SGGES( 'V', 'V', 'S', SLCTES, 2, A, 2, B, 2, SDIM, R1, R2,
555 $ R3, Q, 2, U, 2, W, 1, BW, INFO )
556 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
557 NT = NT + 11
558 *
559 * SGGESX
560 *
561 SRNAMT = 'SGGESX'
562 INFOT = 1
563 CALL SGGESX( '/', 'N', 'S', SLCTSX, 'N', 1, A, 1, B, 1, SDIM,
564 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW,
565 $ INFO )
566 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
567 INFOT = 2
568 CALL SGGESX( 'N', '/', 'S', SLCTSX, 'N', 1, A, 1, B, 1, SDIM,
569 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW,
570 $ INFO )
571 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
572 INFOT = 3
573 CALL SGGESX( 'V', 'V', '/', SLCTSX, 'N', 1, A, 1, B, 1, SDIM,
574 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW,
575 $ INFO )
576 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
577 INFOT = 5
578 CALL SGGESX( 'V', 'V', 'S', SLCTSX, '/', 1, A, 1, B, 1, SDIM,
579 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW,
580 $ INFO )
581 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
582 INFOT = 6
583 CALL SGGESX( 'V', 'V', 'S', SLCTSX, 'B', -1, A, 1, B, 1, SDIM,
584 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW,
585 $ INFO )
586 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
587 INFOT = 8
588 CALL SGGESX( 'V', 'V', 'S', SLCTSX, 'B', 1, A, 0, B, 1, SDIM,
589 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW,
590 $ INFO )
591 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
592 INFOT = 10
593 CALL SGGESX( 'V', 'V', 'S', SLCTSX, 'B', 1, A, 1, B, 0, SDIM,
594 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW,
595 $ INFO )
596 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
597 INFOT = 16
598 CALL SGGESX( 'V', 'V', 'S', SLCTSX, 'B', 1, A, 1, B, 1, SDIM,
599 $ R1, R2, R3, Q, 0, U, 1, RCE, RCV, W, 1, IW, 1, BW,
600 $ INFO )
601 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
602 INFOT = 16
603 CALL SGGESX( 'V', 'V', 'S', SLCTSX, 'B', 2, A, 2, B, 2, SDIM,
604 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW,
605 $ INFO )
606 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
607 INFOT = 18
608 CALL SGGESX( 'V', 'V', 'S', SLCTSX, 'B', 1, A, 1, B, 1, SDIM,
609 $ R1, R2, R3, Q, 1, U, 0, RCE, RCV, W, 1, IW, 1, BW,
610 $ INFO )
611 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
612 INFOT = 18
613 CALL SGGESX( 'V', 'V', 'S', SLCTSX, 'B', 2, A, 2, B, 2, SDIM,
614 $ R1, R2, R3, Q, 2, U, 1, RCE, RCV, W, 1, IW, 1, BW,
615 $ INFO )
616 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
617 INFOT = 22
618 CALL SGGESX( 'V', 'V', 'S', SLCTSX, 'B', 2, A, 2, B, 2, SDIM,
619 $ R1, R2, R3, Q, 2, U, 2, RCE, RCV, W, 1, IW, 1, BW,
620 $ INFO )
621 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
622 INFOT = 24
623 CALL SGGESX( 'V', 'V', 'S', SLCTSX, 'V', 1, A, 1, B, 1, SDIM,
624 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 32, IW, 0,
625 $ BW, INFO )
626 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
627 NT = NT + 13
628 *
629 * SGGEV
630 *
631 SRNAMT = 'SGGEV '
632 INFOT = 1
633 CALL SGGEV( '/', 'N', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1, W,
634 $ 1, INFO )
635 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
636 INFOT = 2
637 CALL SGGEV( 'N', '/', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1, W,
638 $ 1, INFO )
639 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
640 INFOT = 3
641 CALL SGGEV( 'V', 'V', -1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1,
642 $ W, 1, INFO )
643 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
644 INFOT = 5
645 CALL SGGEV( 'V', 'V', 1, A, 0, B, 1, R1, R2, R3, Q, 1, U, 1, W,
646 $ 1, INFO )
647 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
648 INFOT = 7
649 CALL SGGEV( 'V', 'V', 1, A, 1, B, 0, R1, R2, R3, Q, 1, U, 1, W,
650 $ 1, INFO )
651 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
652 INFOT = 12
653 CALL SGGEV( 'N', 'V', 1, A, 1, B, 1, R1, R2, R3, Q, 0, U, 1, W,
654 $ 1, INFO )
655 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
656 INFOT = 12
657 CALL SGGEV( 'V', 'V', 2, A, 2, B, 2, R1, R2, R3, Q, 1, U, 2, W,
658 $ 1, INFO )
659 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
660 INFOT = 14
661 CALL SGGEV( 'V', 'N', 2, A, 2, B, 2, R1, R2, R3, Q, 2, U, 0, W,
662 $ 1, INFO )
663 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
664 INFOT = 14
665 CALL SGGEV( 'V', 'V', 2, A, 2, B, 2, R1, R2, R3, Q, 2, U, 1, W,
666 $ 1, INFO )
667 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
668 INFOT = 16
669 CALL SGGEV( 'V', 'V', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1, W,
670 $ 1, INFO )
671 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
672 NT = NT + 10
673 *
674 * SGGEVX
675 *
676 SRNAMT = 'SGGEVX'
677 INFOT = 1
678 CALL SGGEVX( '/', 'N', 'N', 'N', 1, A, 1, B, 1, R1, R2, R3, Q,
679 $ 1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
680 $ IW, BW, INFO )
681 CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
682 INFOT = 2
683 CALL SGGEVX( 'N', '/', 'N', 'N', 1, A, 1, B, 1, R1, R2, R3, Q,
684 $ 1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
685 $ IW, BW, INFO )
686 CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
687 INFOT = 3
688 CALL SGGEVX( 'N', 'N', '/', 'N', 1, A, 1, B, 1, R1, R2, R3, Q,
689 $ 1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
690 $ IW, BW, INFO )
691 CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
692 INFOT = 4
693 CALL SGGEVX( 'N', 'N', 'N', '/', 1, A, 1, B, 1, R1, R2, R3, Q,
694 $ 1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
695 $ IW, BW, INFO )
696 CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
697 INFOT = 5
698 CALL SGGEVX( 'N', 'N', 'N', 'N', -1, A, 1, B, 1, R1, R2, R3, Q,
699 $ 1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
700 $ IW, BW, INFO )
701 CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
702 INFOT = 7
703 CALL SGGEVX( 'N', 'N', 'N', 'N', 1, A, 0, B, 1, R1, R2, R3, Q,
704 $ 1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
705 $ IW, BW, INFO )
706 CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
707 INFOT = 9
708 CALL SGGEVX( 'N', 'N', 'N', 'N', 1, A, 1, B, 0, R1, R2, R3, Q,
709 $ 1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
710 $ IW, BW, INFO )
711 CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
712 INFOT = 14
713 CALL SGGEVX( 'N', 'N', 'N', 'N', 1, A, 1, B, 1, R1, R2, R3, Q,
714 $ 0, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
715 $ IW, BW, INFO )
716 CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
717 INFOT = 14
718 CALL SGGEVX( 'N', 'V', 'N', 'N', 2, A, 2, B, 2, R1, R2, R3, Q,
719 $ 1, U, 2, 1, 2, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
720 $ IW, BW, INFO )
721 CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
722 INFOT = 16
723 CALL SGGEVX( 'N', 'N', 'N', 'N', 1, A, 1, B, 1, R1, R2, R3, Q,
724 $ 1, U, 0, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
725 $ IW, BW, INFO )
726 CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
727 INFOT = 16
728 CALL SGGEVX( 'N', 'N', 'V', 'N', 2, A, 2, B, 2, R1, R2, R3, Q,
729 $ 2, U, 1, 1, 2, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
730 $ IW, BW, INFO )
731 CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
732 INFOT = 26
733 CALL SGGEVX( 'N', 'N', 'V', 'N', 2, A, 2, B, 2, R1, R2, R3, Q,
734 $ 2, U, 2, 1, 2, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
735 $ IW, BW, INFO )
736 CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
737 NT = NT + 12
738 *
739 * STGEXC
740 *
741 SRNAMT = 'STGEXC'
742 INFOT = 3
743 CALL STGEXC( .TRUE., .TRUE., -1, A, 1, B, 1, Q, 1, Z, 1, IFST,
744 $ ILST, W, 1, INFO )
745 CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
746 INFOT = 5
747 CALL STGEXC( .TRUE., .TRUE., 1, A, 0, B, 1, Q, 1, Z, 1, IFST,
748 $ ILST, W, 1, INFO )
749 CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
750 INFOT = 7
751 CALL STGEXC( .TRUE., .TRUE., 1, A, 1, B, 0, Q, 1, Z, 1, IFST,
752 $ ILST, W, 1, INFO )
753 CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
754 INFOT = 9
755 CALL STGEXC( .FALSE., .TRUE., 1, A, 1, B, 1, Q, 0, Z, 1, IFST,
756 $ ILST, W, 1, INFO )
757 CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
758 INFOT = 9
759 CALL STGEXC( .TRUE., .TRUE., 1, A, 1, B, 1, Q, 0, Z, 1, IFST,
760 $ ILST, W, 1, INFO )
761 CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
762 INFOT = 11
763 CALL STGEXC( .TRUE., .FALSE., 1, A, 1, B, 1, Q, 1, Z, 0, IFST,
764 $ ILST, W, 1, INFO )
765 CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
766 INFOT = 11
767 CALL STGEXC( .TRUE., .TRUE., 1, A, 1, B, 1, Q, 1, Z, 0, IFST,
768 $ ILST, W, 1, INFO )
769 CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
770 INFOT = 15
771 CALL STGEXC( .TRUE., .TRUE., 1, A, 1, B, 1, Q, 1, Z, 1, IFST,
772 $ ILST, W, 0, INFO )
773 CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
774 NT = NT + 8
775 *
776 * STGSEN
777 *
778 SRNAMT = 'STGSEN'
779 INFOT = 1
780 CALL STGSEN( -1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2,
781 $ R3, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
782 $ INFO )
783 CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
784 INFOT = 5
785 CALL STGSEN( 1, .TRUE., .TRUE., SEL, -1, A, 1, B, 1, R1, R2,
786 $ R3, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
787 $ INFO )
788 CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
789 INFOT = 7
790 CALL STGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 0, B, 1, R1, R2, R3,
791 $ Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
792 $ INFO )
793 CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
794 INFOT = 9
795 CALL STGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 0, R1, R2, R3,
796 $ Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
797 $ INFO )
798 CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
799 INFOT = 14
800 CALL STGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
801 $ Q, 0, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
802 $ INFO )
803 CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
804 INFOT = 16
805 CALL STGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
806 $ Q, 1, Z, 0, M, TOLA, TOLB, RCV, W, 1, IW, 1,
807 $ INFO )
808 CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
809 INFOT = 22
810 CALL STGSEN( 0, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
811 $ Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
812 $ INFO )
813 CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
814 INFOT = 22
815 CALL STGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
816 $ Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
817 $ INFO )
818 CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
819 INFOT = 22
820 CALL STGSEN( 2, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
821 $ Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
822 $ INFO )
823 CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
824 INFOT = 24
825 CALL STGSEN( 0, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
826 $ Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 20, IW, 0,
827 $ INFO )
828 CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
829 INFOT = 24
830 CALL STGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
831 $ Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 20, IW, 0,
832 $ INFO )
833 CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
834 INFOT = 24
835 CALL STGSEN( 2, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
836 $ Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 20, IW, 1,
837 $ INFO )
838 CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
839 NT = NT + 12
840 *
841 * STGSNA
842 *
843 SRNAMT = 'STGSNA'
844 INFOT = 1
845 CALL STGSNA( '/', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
846 $ 1, M, W, 1, IW, INFO )
847 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
848 INFOT = 2
849 CALL STGSNA( 'B', '/', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
850 $ 1, M, W, 1, IW, INFO )
851 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
852 INFOT = 4
853 CALL STGSNA( 'B', 'A', SEL, -1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
854 $ 1, M, W, 1, IW, INFO )
855 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
856 INFOT = 6
857 CALL STGSNA( 'B', 'A', SEL, 1, A, 0, B, 1, Q, 1, U, 1, R1, R2,
858 $ 1, M, W, 1, IW, INFO )
859 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
860 INFOT = 8
861 CALL STGSNA( 'B', 'A', SEL, 1, A, 1, B, 0, Q, 1, U, 1, R1, R2,
862 $ 1, M, W, 1, IW, INFO )
863 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
864 INFOT = 10
865 CALL STGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 0, U, 1, R1, R2,
866 $ 1, M, W, 1, IW, INFO )
867 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
868 INFOT = 12
869 CALL STGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 0, R1, R2,
870 $ 1, M, W, 1, IW, INFO )
871 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
872 INFOT = 15
873 CALL STGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
874 $ 0, M, W, 1, IW, INFO )
875 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
876 INFOT = 18
877 CALL STGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
878 $ 1, M, W, 0, IW, INFO )
879 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
880 NT = NT + 9
881 *
882 * STGSYL
883 *
884 SRNAMT = 'STGSYL'
885 INFOT = 1
886 CALL STGSYL( '/', 0, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
887 $ SCALE, DIF, W, 1, IW, INFO )
888 CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
889 INFOT = 2
890 CALL STGSYL( 'N', -1, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
891 $ SCALE, DIF, W, 1, IW, INFO )
892 CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
893 INFOT = 3
894 CALL STGSYL( 'N', 0, 0, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
895 $ SCALE, DIF, W, 1, IW, INFO )
896 CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
897 INFOT = 4
898 CALL STGSYL( 'N', 0, 1, 0, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
899 $ SCALE, DIF, W, 1, IW, INFO )
900 CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
901 INFOT = 6
902 CALL STGSYL( 'N', 0, 1, 1, A, 0, B, 1, Q, 1, U, 1, V, 1, Z, 1,
903 $ SCALE, DIF, W, 1, IW, INFO )
904 CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
905 INFOT = 8
906 CALL STGSYL( 'N', 0, 1, 1, A, 1, B, 0, Q, 1, U, 1, V, 1, Z, 1,
907 $ SCALE, DIF, W, 1, IW, INFO )
908 CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
909 INFOT = 10
910 CALL STGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 0, U, 1, V, 1, Z, 1,
911 $ SCALE, DIF, W, 1, IW, INFO )
912 CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
913 INFOT = 12
914 CALL STGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 1, U, 0, V, 1, Z, 1,
915 $ SCALE, DIF, W, 1, IW, INFO )
916 CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
917 INFOT = 14
918 CALL STGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 0, Z, 1,
919 $ SCALE, DIF, W, 1, IW, INFO )
920 CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
921 INFOT = 16
922 CALL STGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 0,
923 $ SCALE, DIF, W, 1, IW, INFO )
924 CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
925 INFOT = 20
926 CALL STGSYL( 'N', 1, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
927 $ SCALE, DIF, W, 1, IW, INFO )
928 CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
929 INFOT = 20
930 CALL STGSYL( 'N', 2, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
931 $ SCALE, DIF, W, 1, IW, INFO )
932 CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
933 NT = NT + 12
934 END IF
935 *
936 * Print a summary line.
937 *
938 IF( OK ) THEN
939 WRITE( NOUT, FMT = 9999 )PATH, NT
940 ELSE
941 WRITE( NOUT, FMT = 9998 )PATH
942 END IF
943 *
944 9999 FORMAT( 1X, A3, ' routines passed the tests of the error exits (',
945 $ I3, ' tests done)' )
946 9998 FORMAT( ' *** ', A3, ' routines failed the tests of the error ',
947 $ 'exits ***' )
948 *
949 RETURN
950 *
951 * End of SERRGG
952 *
953 END
2 *
3 * -- LAPACK test routine (version 3.1) --
4 * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
5 * November 2006
6 *
7 * .. Scalar Arguments ..
8 CHARACTER*3 PATH
9 INTEGER NUNIT
10 * ..
11 *
12 * Purpose
13 * =======
14 *
15 * SERRGG tests the error exits for SGGES, SGGESX, SGGEV, SGGEVX,
16 * SGGGLM, SGGHRD, SGGLSE, SGGQRF, SGGRQF, SGGSVD, SGGSVP, SHGEQZ,
17 * STGEVC, STGEXC, STGSEN, STGSJA, STGSNA, and STGSYL.
18 *
19 * Arguments
20 * =========
21 *
22 * PATH (input) CHARACTER*3
23 * The LAPACK path name for the routines to be tested.
24 *
25 * NUNIT (input) INTEGER
26 * The unit number for output.
27 *
28 * =====================================================================
29 *
30 * .. Parameters ..
31 INTEGER NMAX, LW
32 PARAMETER ( NMAX = 3, LW = 6*NMAX )
33 REAL ONE, ZERO
34 PARAMETER ( ONE = 1.0E+0, ZERO = 0.0E+0 )
35 * ..
36 * .. Local Scalars ..
37 CHARACTER*2 C2
38 INTEGER DUMMYK, DUMMYL, I, IFST, ILST, INFO, J, M,
39 $ NCYCLE, NT, SDIM
40 REAL ANRM, BNRM, DIF, SCALE, TOLA, TOLB
41 * ..
42 * .. Local Arrays ..
43 LOGICAL BW( NMAX ), SEL( NMAX )
44 INTEGER IW( NMAX )
45 REAL A( NMAX, NMAX ), B( NMAX, NMAX ), LS( NMAX ),
46 $ Q( NMAX, NMAX ), R1( NMAX ), R2( NMAX ),
47 $ R3( NMAX ), RCE( 2 ), RCV( 2 ), RS( NMAX ),
48 $ TAU( NMAX ), U( NMAX, NMAX ), V( NMAX, NMAX ),
49 $ W( LW ), Z( NMAX, NMAX )
50 * ..
51 * .. External Functions ..
52 LOGICAL LSAMEN, SLCTES, SLCTSX
53 EXTERNAL LSAMEN, SLCTES, SLCTSX
54 * ..
55 * .. External Subroutines ..
56 EXTERNAL CHKXER, SGGES, SGGESX, SGGEV, SGGEVX, SGGGLM,
57 $ SGGHRD, SGGLSE, SGGQRF, SGGRQF, SGGSVD, SGGSVP,
58 $ SHGEQZ, STGEVC, STGEXC, STGSEN, STGSJA, STGSNA,
59 $ STGSYL
60 * ..
61 * .. Scalars in Common ..
62 LOGICAL LERR, OK
63 CHARACTER*32 SRNAMT
64 INTEGER INFOT, NOUT
65 * ..
66 * .. Common blocks ..
67 COMMON / INFOC / INFOT, NOUT, OK, LERR
68 COMMON / SRNAMC / SRNAMT
69 * ..
70 * .. Executable Statements ..
71 *
72 NOUT = NUNIT
73 WRITE( NOUT, FMT = * )
74 C2 = PATH( 2: 3 )
75 *
76 * Set the variables to innocuous values.
77 *
78 DO 20 J = 1, NMAX
79 SEL( J ) = .TRUE.
80 DO 10 I = 1, NMAX
81 A( I, J ) = ZERO
82 B( I, J ) = ZERO
83 10 CONTINUE
84 20 CONTINUE
85 DO 30 I = 1, NMAX
86 A( I, I ) = ONE
87 B( I, I ) = ONE
88 30 CONTINUE
89 OK = .TRUE.
90 TOLA = 1.0E0
91 TOLB = 1.0E0
92 IFST = 1
93 ILST = 1
94 NT = 0
95 *
96 * Test error exits for the GG path.
97 *
98 IF( LSAMEN( 2, C2, 'GG' ) ) THEN
99 *
100 * SGGHRD
101 *
102 SRNAMT = 'SGGHRD'
103 INFOT = 1
104 CALL SGGHRD( '/', 'N', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
105 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
106 INFOT = 2
107 CALL SGGHRD( 'N', '/', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
108 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
109 INFOT = 3
110 CALL SGGHRD( 'N', 'N', -1, 0, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
111 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
112 INFOT = 4
113 CALL SGGHRD( 'N', 'N', 0, 0, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
114 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
115 INFOT = 5
116 CALL SGGHRD( 'N', 'N', 0, 1, 1, A, 1, B, 1, Q, 1, Z, 1, INFO )
117 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
118 INFOT = 7
119 CALL SGGHRD( 'N', 'N', 2, 1, 1, A, 1, B, 2, Q, 1, Z, 1, INFO )
120 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
121 INFOT = 9
122 CALL SGGHRD( 'N', 'N', 2, 1, 1, A, 2, B, 1, Q, 1, Z, 1, INFO )
123 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
124 INFOT = 11
125 CALL SGGHRD( 'V', 'N', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, INFO )
126 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
127 INFOT = 13
128 CALL SGGHRD( 'N', 'V', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, INFO )
129 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
130 NT = NT + 9
131 *
132 * SHGEQZ
133 *
134 SRNAMT = 'SHGEQZ'
135 INFOT = 1
136 CALL SHGEQZ( '/', 'N', 'N', 0, 1, 0, A, 1, B, 1, R1, R2, R3, Q,
137 $ 1, Z, 1, W, LW, INFO )
138 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
139 INFOT = 2
140 CALL SHGEQZ( 'E', '/', 'N', 0, 1, 0, A, 1, B, 1, R1, R2, R3, Q,
141 $ 1, Z, 1, W, LW, INFO )
142 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
143 INFOT = 3
144 CALL SHGEQZ( 'E', 'N', '/', 0, 1, 0, A, 1, B, 1, R1, R2, R3, Q,
145 $ 1, Z, 1, W, LW, INFO )
146 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
147 INFOT = 4
148 CALL SHGEQZ( 'E', 'N', 'N', -1, 0, 0, A, 1, B, 1, R1, R2, R3,
149 $ Q, 1, Z, 1, W, LW, INFO )
150 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
151 INFOT = 5
152 CALL SHGEQZ( 'E', 'N', 'N', 0, 0, 0, A, 1, B, 1, R1, R2, R3, Q,
153 $ 1, Z, 1, W, LW, INFO )
154 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
155 INFOT = 6
156 CALL SHGEQZ( 'E', 'N', 'N', 0, 1, 1, A, 1, B, 1, R1, R2, R3, Q,
157 $ 1, Z, 1, W, LW, INFO )
158 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
159 INFOT = 8
160 CALL SHGEQZ( 'E', 'N', 'N', 2, 1, 1, A, 1, B, 2, R1, R2, R3, Q,
161 $ 1, Z, 1, W, LW, INFO )
162 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
163 INFOT = 10
164 CALL SHGEQZ( 'E', 'N', 'N', 2, 1, 1, A, 2, B, 1, R1, R2, R3, Q,
165 $ 1, Z, 1, W, LW, INFO )
166 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
167 INFOT = 15
168 CALL SHGEQZ( 'E', 'V', 'N', 2, 1, 1, A, 2, B, 2, R1, R2, R3, Q,
169 $ 1, Z, 1, W, LW, INFO )
170 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
171 INFOT = 17
172 CALL SHGEQZ( 'E', 'N', 'V', 2, 1, 1, A, 2, B, 2, R1, R2, R3, Q,
173 $ 1, Z, 1, W, LW, INFO )
174 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
175 NT = NT + 10
176 *
177 * STGEVC
178 *
179 SRNAMT = 'STGEVC'
180 INFOT = 1
181 CALL STGEVC( '/', 'A', SEL, 0, A, 1, B, 1, Q, 1, Z, 1, 0, M, W,
182 $ INFO )
183 CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
184 INFOT = 2
185 CALL STGEVC( 'R', '/', SEL, 0, A, 1, B, 1, Q, 1, Z, 1, 0, M, W,
186 $ INFO )
187 CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
188 INFOT = 4
189 CALL STGEVC( 'R', 'A', SEL, -1, A, 1, B, 1, Q, 1, Z, 1, 0, M,
190 $ W, INFO )
191 CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
192 INFOT = 6
193 CALL STGEVC( 'R', 'A', SEL, 2, A, 1, B, 2, Q, 1, Z, 2, 0, M, W,
194 $ INFO )
195 CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
196 INFOT = 8
197 CALL STGEVC( 'R', 'A', SEL, 2, A, 2, B, 1, Q, 1, Z, 2, 0, M, W,
198 $ INFO )
199 CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
200 INFOT = 10
201 CALL STGEVC( 'L', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 1, 0, M, W,
202 $ INFO )
203 CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
204 INFOT = 12
205 CALL STGEVC( 'R', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 1, 0, M, W,
206 $ INFO )
207 CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
208 INFOT = 13
209 CALL STGEVC( 'R', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 2, 1, M, W,
210 $ INFO )
211 CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
212 NT = NT + 8
213 *
214 * Test error exits for the GSV path.
215 *
216 ELSE IF( LSAMEN( 3, PATH, 'GSV' ) ) THEN
217 *
218 * SGGSVD
219 *
220 SRNAMT = 'SGGSVD'
221 INFOT = 1
222 CALL SGGSVD( '/', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
223 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, INFO )
224 CALL CHKXER( 'SGGSVD', INFOT, NOUT, LERR, OK )
225 INFOT = 2
226 CALL SGGSVD( 'N', '/', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
227 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, INFO )
228 CALL CHKXER( 'SGGSVD', INFOT, NOUT, LERR, OK )
229 INFOT = 3
230 CALL SGGSVD( 'N', 'N', '/', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
231 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, INFO )
232 CALL CHKXER( 'SGGSVD', INFOT, NOUT, LERR, OK )
233 INFOT = 4
234 CALL SGGSVD( 'N', 'N', 'N', -1, 0, 0, DUMMYK, DUMMYL, A, 1, B,
235 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, INFO )
236 CALL CHKXER( 'SGGSVD', INFOT, NOUT, LERR, OK )
237 INFOT = 5
238 CALL SGGSVD( 'N', 'N', 'N', 0, -1, 0, DUMMYK, DUMMYL, A, 1, B,
239 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, INFO )
240 CALL CHKXER( 'SGGSVD', INFOT, NOUT, LERR, OK )
241 INFOT = 6
242 CALL SGGSVD( 'N', 'N', 'N', 0, 0, -1, DUMMYK, DUMMYL, A, 1, B,
243 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, INFO )
244 CALL CHKXER( 'SGGSVD', INFOT, NOUT, LERR, OK )
245 INFOT = 10
246 CALL SGGSVD( 'N', 'N', 'N', 2, 1, 1, DUMMYK, DUMMYL, A, 1, B,
247 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, INFO )
248 CALL CHKXER( 'SGGSVD', INFOT, NOUT, LERR, OK )
249 INFOT = 12
250 CALL SGGSVD( 'N', 'N', 'N', 1, 1, 2, DUMMYK, DUMMYL, A, 1, B,
251 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, INFO )
252 CALL CHKXER( 'SGGSVD', INFOT, NOUT, LERR, OK )
253 INFOT = 16
254 CALL SGGSVD( 'U', 'N', 'N', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B,
255 $ 2, R1, R2, U, 1, V, 1, Q, 1, W, IW, INFO )
256 CALL CHKXER( 'SGGSVD', INFOT, NOUT, LERR, OK )
257 INFOT = 18
258 CALL SGGSVD( 'N', 'V', 'N', 1, 1, 2, DUMMYK, DUMMYL, A, 1, B,
259 $ 2, R1, R2, U, 1, V, 1, Q, 1, W, IW, INFO )
260 CALL CHKXER( 'SGGSVD', INFOT, NOUT, LERR, OK )
261 INFOT = 20
262 CALL SGGSVD( 'N', 'N', 'Q', 1, 2, 1, DUMMYK, DUMMYL, A, 1, B,
263 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, INFO )
264 CALL CHKXER( 'SGGSVD', INFOT, NOUT, LERR, OK )
265 NT = NT + 11
266 *
267 * SGGSVP
268 *
269 SRNAMT = 'SGGSVP'
270 INFOT = 1
271 CALL SGGSVP( '/', 'N', 'N', 0, 0, 0, A, 1, B, 1, TOLA, TOLB,
272 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
273 $ INFO )
274 CALL CHKXER( 'SGGSVP', INFOT, NOUT, LERR, OK )
275 INFOT = 2
276 CALL SGGSVP( 'N', '/', 'N', 0, 0, 0, A, 1, B, 1, TOLA, TOLB,
277 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
278 $ INFO )
279 CALL CHKXER( 'SGGSVP', INFOT, NOUT, LERR, OK )
280 INFOT = 3
281 CALL SGGSVP( 'N', 'N', '/', 0, 0, 0, A, 1, B, 1, TOLA, TOLB,
282 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
283 $ INFO )
284 CALL CHKXER( 'SGGSVP', INFOT, NOUT, LERR, OK )
285 INFOT = 4
286 CALL SGGSVP( 'N', 'N', 'N', -1, 0, 0, A, 1, B, 1, TOLA, TOLB,
287 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
288 $ INFO )
289 CALL CHKXER( 'SGGSVP', INFOT, NOUT, LERR, OK )
290 INFOT = 5
291 CALL SGGSVP( 'N', 'N', 'N', 0, -1, 0, A, 1, B, 1, TOLA, TOLB,
292 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
293 $ INFO )
294 CALL CHKXER( 'SGGSVP', INFOT, NOUT, LERR, OK )
295 INFOT = 6
296 CALL SGGSVP( 'N', 'N', 'N', 0, 0, -1, A, 1, B, 1, TOLA, TOLB,
297 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
298 $ INFO )
299 CALL CHKXER( 'SGGSVP', INFOT, NOUT, LERR, OK )
300 INFOT = 8
301 CALL SGGSVP( 'N', 'N', 'N', 2, 1, 1, A, 1, B, 1, TOLA, TOLB,
302 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
303 $ INFO )
304 CALL CHKXER( 'SGGSVP', INFOT, NOUT, LERR, OK )
305 INFOT = 10
306 CALL SGGSVP( 'N', 'N', 'N', 1, 2, 1, A, 1, B, 1, TOLA, TOLB,
307 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
308 $ INFO )
309 CALL CHKXER( 'SGGSVP', INFOT, NOUT, LERR, OK )
310 INFOT = 16
311 CALL SGGSVP( 'U', 'N', 'N', 2, 2, 2, A, 2, B, 2, TOLA, TOLB,
312 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
313 $ INFO )
314 CALL CHKXER( 'SGGSVP', INFOT, NOUT, LERR, OK )
315 INFOT = 18
316 CALL SGGSVP( 'N', 'V', 'N', 1, 2, 1, A, 1, B, 2, TOLA, TOLB,
317 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
318 $ INFO )
319 CALL CHKXER( 'SGGSVP', INFOT, NOUT, LERR, OK )
320 INFOT = 20
321 CALL SGGSVP( 'N', 'N', 'Q', 1, 1, 2, A, 1, B, 1, TOLA, TOLB,
322 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W,
323 $ INFO )
324 CALL CHKXER( 'SGGSVP', INFOT, NOUT, LERR, OK )
325 NT = NT + 11
326 *
327 * STGSJA
328 *
329 SRNAMT = 'STGSJA'
330 INFOT = 1
331 CALL STGSJA( '/', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
332 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
333 $ NCYCLE, INFO )
334 CALL CHKXER( 'STGSJA', INFOT, NOUT, LERR, OK )
335 INFOT = 2
336 CALL STGSJA( 'N', '/', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
337 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
338 $ NCYCLE, INFO )
339 CALL CHKXER( 'STGSJA', INFOT, NOUT, LERR, OK )
340 INFOT = 3
341 CALL STGSJA( 'N', 'N', '/', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
342 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
343 $ NCYCLE, INFO )
344 CALL CHKXER( 'STGSJA', INFOT, NOUT, LERR, OK )
345 INFOT = 4
346 CALL STGSJA( 'N', 'N', 'N', -1, 0, 0, DUMMYK, DUMMYL, A, 1, B,
347 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
348 $ NCYCLE, INFO )
349 CALL CHKXER( 'STGSJA', INFOT, NOUT, LERR, OK )
350 INFOT = 5
351 CALL STGSJA( 'N', 'N', 'N', 0, -1, 0, DUMMYK, DUMMYL, A, 1, B,
352 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
353 $ NCYCLE, INFO )
354 CALL CHKXER( 'STGSJA', INFOT, NOUT, LERR, OK )
355 INFOT = 6
356 CALL STGSJA( 'N', 'N', 'N', 0, 0, -1, DUMMYK, DUMMYL, A, 1, B,
357 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
358 $ NCYCLE, INFO )
359 CALL CHKXER( 'STGSJA', INFOT, NOUT, LERR, OK )
360 INFOT = 10
361 CALL STGSJA( 'N', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 0, B,
362 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
363 $ NCYCLE, INFO )
364 CALL CHKXER( 'STGSJA', INFOT, NOUT, LERR, OK )
365 INFOT = 12
366 CALL STGSJA( 'N', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
367 $ 0, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
368 $ NCYCLE, INFO )
369 CALL CHKXER( 'STGSJA', INFOT, NOUT, LERR, OK )
370 INFOT = 18
371 CALL STGSJA( 'U', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
372 $ 1, TOLA, TOLB, R1, R2, U, 0, V, 1, Q, 1, W,
373 $ NCYCLE, INFO )
374 CALL CHKXER( 'STGSJA', INFOT, NOUT, LERR, OK )
375 INFOT = 20
376 CALL STGSJA( 'N', 'V', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
377 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 0, Q, 1, W,
378 $ NCYCLE, INFO )
379 CALL CHKXER( 'STGSJA', INFOT, NOUT, LERR, OK )
380 INFOT = 22
381 CALL STGSJA( 'N', 'N', 'Q', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
382 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 0, W,
383 $ NCYCLE, INFO )
384 CALL CHKXER( 'STGSJA', INFOT, NOUT, LERR, OK )
385 NT = NT + 11
386 *
387 * Test error exits for the GLM path.
388 *
389 ELSE IF( LSAMEN( 3, PATH, 'GLM' ) ) THEN
390 *
391 * SGGGLM
392 *
393 SRNAMT = 'SGGGLM'
394 INFOT = 1
395 CALL SGGGLM( -1, 0, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
396 CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
397 INFOT = 2
398 CALL SGGGLM( 0, -1, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
399 CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
400 INFOT = 2
401 CALL SGGGLM( 0, 1, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
402 CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
403 INFOT = 3
404 CALL SGGGLM( 0, 0, -1, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
405 CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
406 INFOT = 3
407 CALL SGGGLM( 1, 0, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
408 CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
409 INFOT = 5
410 CALL SGGGLM( 0, 0, 0, A, 0, B, 1, R1, R2, R3, W, LW, INFO )
411 CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
412 INFOT = 7
413 CALL SGGGLM( 0, 0, 0, A, 1, B, 0, R1, R2, R3, W, LW, INFO )
414 CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
415 INFOT = 12
416 CALL SGGGLM( 1, 1, 1, A, 1, B, 1, R1, R2, R3, W, 1, INFO )
417 CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
418 NT = NT + 8
419 *
420 * Test error exits for the LSE path.
421 *
422 ELSE IF( LSAMEN( 3, PATH, 'LSE' ) ) THEN
423 *
424 * SGGLSE
425 *
426 SRNAMT = 'SGGLSE'
427 INFOT = 1
428 CALL SGGLSE( -1, 0, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
429 CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
430 INFOT = 2
431 CALL SGGLSE( 0, -1, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
432 CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
433 INFOT = 3
434 CALL SGGLSE( 0, 0, -1, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
435 CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
436 INFOT = 3
437 CALL SGGLSE( 0, 0, 1, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
438 CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
439 INFOT = 3
440 CALL SGGLSE( 0, 1, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
441 CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
442 INFOT = 5
443 CALL SGGLSE( 0, 0, 0, A, 0, B, 1, R1, R2, R3, W, LW, INFO )
444 CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
445 INFOT = 7
446 CALL SGGLSE( 0, 0, 0, A, 1, B, 0, R1, R2, R3, W, LW, INFO )
447 CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
448 INFOT = 12
449 CALL SGGLSE( 1, 1, 1, A, 1, B, 1, R1, R2, R3, W, 1, INFO )
450 CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
451 NT = NT + 8
452 *
453 * Test error exits for the GQR path.
454 *
455 ELSE IF( LSAMEN( 3, PATH, 'GQR' ) ) THEN
456 *
457 * SGGQRF
458 *
459 SRNAMT = 'SGGQRF'
460 INFOT = 1
461 CALL SGGQRF( -1, 0, 0, A, 1, R1, B, 1, R2, W, LW, INFO )
462 CALL CHKXER( 'SGGQRF', INFOT, NOUT, LERR, OK )
463 INFOT = 2
464 CALL SGGQRF( 0, -1, 0, A, 1, R1, B, 1, R2, W, LW, INFO )
465 CALL CHKXER( 'SGGQRF', INFOT, NOUT, LERR, OK )
466 INFOT = 3
467 CALL SGGQRF( 0, 0, -1, A, 1, R1, B, 1, R2, W, LW, INFO )
468 CALL CHKXER( 'SGGQRF', INFOT, NOUT, LERR, OK )
469 INFOT = 5
470 CALL SGGQRF( 0, 0, 0, A, 0, R1, B, 1, R2, W, LW, INFO )
471 CALL CHKXER( 'SGGQRF', INFOT, NOUT, LERR, OK )
472 INFOT = 8
473 CALL SGGQRF( 0, 0, 0, A, 1, R1, B, 0, R2, W, LW, INFO )
474 CALL CHKXER( 'SGGQRF', INFOT, NOUT, LERR, OK )
475 INFOT = 11
476 CALL SGGQRF( 1, 1, 2, A, 1, R1, B, 1, R2, W, 1, INFO )
477 CALL CHKXER( 'SGGQRF', INFOT, NOUT, LERR, OK )
478 NT = NT + 6
479 *
480 * SGGRQF
481 *
482 SRNAMT = 'SGGRQF'
483 INFOT = 1
484 CALL SGGRQF( -1, 0, 0, A, 1, R1, B, 1, R2, W, LW, INFO )
485 CALL CHKXER( 'SGGRQF', INFOT, NOUT, LERR, OK )
486 INFOT = 2
487 CALL SGGRQF( 0, -1, 0, A, 1, R1, B, 1, R2, W, LW, INFO )
488 CALL CHKXER( 'SGGRQF', INFOT, NOUT, LERR, OK )
489 INFOT = 3
490 CALL SGGRQF( 0, 0, -1, A, 1, R1, B, 1, R2, W, LW, INFO )
491 CALL CHKXER( 'SGGRQF', INFOT, NOUT, LERR, OK )
492 INFOT = 5
493 CALL SGGRQF( 0, 0, 0, A, 0, R1, B, 1, R2, W, LW, INFO )
494 CALL CHKXER( 'SGGRQF', INFOT, NOUT, LERR, OK )
495 INFOT = 8
496 CALL SGGRQF( 0, 0, 0, A, 1, R1, B, 0, R2, W, LW, INFO )
497 CALL CHKXER( 'SGGRQF', INFOT, NOUT, LERR, OK )
498 INFOT = 11
499 CALL SGGRQF( 1, 1, 2, A, 1, R1, B, 1, R2, W, 1, INFO )
500 CALL CHKXER( 'SGGRQF', INFOT, NOUT, LERR, OK )
501 NT = NT + 6
502 *
503 * Test error exits for the SGS, SGV, SGX, and SXV paths.
504 *
505 ELSE IF( LSAMEN( 3, PATH, 'SGS' ) .OR.
506 $ LSAMEN( 3, PATH, 'SGV' ) .OR.
507 $ LSAMEN( 3, PATH, 'SGX' ) .OR. LSAMEN( 3, PATH, 'SXV' ) )
508 $ THEN
509 *
510 * SGGES
511 *
512 SRNAMT = 'SGGES '
513 INFOT = 1
514 CALL SGGES( '/', 'N', 'S', SLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
515 $ R3, Q, 1, U, 1, W, 1, BW, INFO )
516 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
517 INFOT = 2
518 CALL SGGES( 'N', '/', 'S', SLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
519 $ R3, Q, 1, U, 1, W, 1, BW, INFO )
520 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
521 INFOT = 3
522 CALL SGGES( 'N', 'V', '/', SLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
523 $ R3, Q, 1, U, 1, W, 1, BW, INFO )
524 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
525 INFOT = 5
526 CALL SGGES( 'N', 'V', 'S', SLCTES, -1, A, 1, B, 1, SDIM, R1,
527 $ R2, R3, Q, 1, U, 1, W, 1, BW, INFO )
528 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
529 INFOT = 7
530 CALL SGGES( 'N', 'V', 'S', SLCTES, 1, A, 0, B, 1, SDIM, R1, R2,
531 $ R3, Q, 1, U, 1, W, 1, BW, INFO )
532 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
533 INFOT = 9
534 CALL SGGES( 'N', 'V', 'S', SLCTES, 1, A, 1, B, 0, SDIM, R1, R2,
535 $ R3, Q, 1, U, 1, W, 1, BW, INFO )
536 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
537 INFOT = 15
538 CALL SGGES( 'N', 'V', 'S', SLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
539 $ R3, Q, 0, U, 1, W, 1, BW, INFO )
540 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
541 INFOT = 15
542 CALL SGGES( 'V', 'V', 'S', SLCTES, 2, A, 2, B, 2, SDIM, R1, R2,
543 $ R3, Q, 1, U, 2, W, 1, BW, INFO )
544 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
545 INFOT = 17
546 CALL SGGES( 'N', 'V', 'S', SLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
547 $ R3, Q, 1, U, 0, W, 1, BW, INFO )
548 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
549 INFOT = 17
550 CALL SGGES( 'V', 'V', 'S', SLCTES, 2, A, 2, B, 2, SDIM, R1, R2,
551 $ R3, Q, 2, U, 1, W, 1, BW, INFO )
552 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
553 INFOT = 19
554 CALL SGGES( 'V', 'V', 'S', SLCTES, 2, A, 2, B, 2, SDIM, R1, R2,
555 $ R3, Q, 2, U, 2, W, 1, BW, INFO )
556 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
557 NT = NT + 11
558 *
559 * SGGESX
560 *
561 SRNAMT = 'SGGESX'
562 INFOT = 1
563 CALL SGGESX( '/', 'N', 'S', SLCTSX, 'N', 1, A, 1, B, 1, SDIM,
564 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW,
565 $ INFO )
566 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
567 INFOT = 2
568 CALL SGGESX( 'N', '/', 'S', SLCTSX, 'N', 1, A, 1, B, 1, SDIM,
569 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW,
570 $ INFO )
571 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
572 INFOT = 3
573 CALL SGGESX( 'V', 'V', '/', SLCTSX, 'N', 1, A, 1, B, 1, SDIM,
574 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW,
575 $ INFO )
576 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
577 INFOT = 5
578 CALL SGGESX( 'V', 'V', 'S', SLCTSX, '/', 1, A, 1, B, 1, SDIM,
579 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW,
580 $ INFO )
581 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
582 INFOT = 6
583 CALL SGGESX( 'V', 'V', 'S', SLCTSX, 'B', -1, A, 1, B, 1, SDIM,
584 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW,
585 $ INFO )
586 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
587 INFOT = 8
588 CALL SGGESX( 'V', 'V', 'S', SLCTSX, 'B', 1, A, 0, B, 1, SDIM,
589 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW,
590 $ INFO )
591 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
592 INFOT = 10
593 CALL SGGESX( 'V', 'V', 'S', SLCTSX, 'B', 1, A, 1, B, 0, SDIM,
594 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW,
595 $ INFO )
596 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
597 INFOT = 16
598 CALL SGGESX( 'V', 'V', 'S', SLCTSX, 'B', 1, A, 1, B, 1, SDIM,
599 $ R1, R2, R3, Q, 0, U, 1, RCE, RCV, W, 1, IW, 1, BW,
600 $ INFO )
601 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
602 INFOT = 16
603 CALL SGGESX( 'V', 'V', 'S', SLCTSX, 'B', 2, A, 2, B, 2, SDIM,
604 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW,
605 $ INFO )
606 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
607 INFOT = 18
608 CALL SGGESX( 'V', 'V', 'S', SLCTSX, 'B', 1, A, 1, B, 1, SDIM,
609 $ R1, R2, R3, Q, 1, U, 0, RCE, RCV, W, 1, IW, 1, BW,
610 $ INFO )
611 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
612 INFOT = 18
613 CALL SGGESX( 'V', 'V', 'S', SLCTSX, 'B', 2, A, 2, B, 2, SDIM,
614 $ R1, R2, R3, Q, 2, U, 1, RCE, RCV, W, 1, IW, 1, BW,
615 $ INFO )
616 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
617 INFOT = 22
618 CALL SGGESX( 'V', 'V', 'S', SLCTSX, 'B', 2, A, 2, B, 2, SDIM,
619 $ R1, R2, R3, Q, 2, U, 2, RCE, RCV, W, 1, IW, 1, BW,
620 $ INFO )
621 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
622 INFOT = 24
623 CALL SGGESX( 'V', 'V', 'S', SLCTSX, 'V', 1, A, 1, B, 1, SDIM,
624 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 32, IW, 0,
625 $ BW, INFO )
626 CALL CHKXER( 'SGGESX', INFOT, NOUT, LERR, OK )
627 NT = NT + 13
628 *
629 * SGGEV
630 *
631 SRNAMT = 'SGGEV '
632 INFOT = 1
633 CALL SGGEV( '/', 'N', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1, W,
634 $ 1, INFO )
635 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
636 INFOT = 2
637 CALL SGGEV( 'N', '/', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1, W,
638 $ 1, INFO )
639 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
640 INFOT = 3
641 CALL SGGEV( 'V', 'V', -1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1,
642 $ W, 1, INFO )
643 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
644 INFOT = 5
645 CALL SGGEV( 'V', 'V', 1, A, 0, B, 1, R1, R2, R3, Q, 1, U, 1, W,
646 $ 1, INFO )
647 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
648 INFOT = 7
649 CALL SGGEV( 'V', 'V', 1, A, 1, B, 0, R1, R2, R3, Q, 1, U, 1, W,
650 $ 1, INFO )
651 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
652 INFOT = 12
653 CALL SGGEV( 'N', 'V', 1, A, 1, B, 1, R1, R2, R3, Q, 0, U, 1, W,
654 $ 1, INFO )
655 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
656 INFOT = 12
657 CALL SGGEV( 'V', 'V', 2, A, 2, B, 2, R1, R2, R3, Q, 1, U, 2, W,
658 $ 1, INFO )
659 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
660 INFOT = 14
661 CALL SGGEV( 'V', 'N', 2, A, 2, B, 2, R1, R2, R3, Q, 2, U, 0, W,
662 $ 1, INFO )
663 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
664 INFOT = 14
665 CALL SGGEV( 'V', 'V', 2, A, 2, B, 2, R1, R2, R3, Q, 2, U, 1, W,
666 $ 1, INFO )
667 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
668 INFOT = 16
669 CALL SGGEV( 'V', 'V', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1, W,
670 $ 1, INFO )
671 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
672 NT = NT + 10
673 *
674 * SGGEVX
675 *
676 SRNAMT = 'SGGEVX'
677 INFOT = 1
678 CALL SGGEVX( '/', 'N', 'N', 'N', 1, A, 1, B, 1, R1, R2, R3, Q,
679 $ 1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
680 $ IW, BW, INFO )
681 CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
682 INFOT = 2
683 CALL SGGEVX( 'N', '/', 'N', 'N', 1, A, 1, B, 1, R1, R2, R3, Q,
684 $ 1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
685 $ IW, BW, INFO )
686 CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
687 INFOT = 3
688 CALL SGGEVX( 'N', 'N', '/', 'N', 1, A, 1, B, 1, R1, R2, R3, Q,
689 $ 1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
690 $ IW, BW, INFO )
691 CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
692 INFOT = 4
693 CALL SGGEVX( 'N', 'N', 'N', '/', 1, A, 1, B, 1, R1, R2, R3, Q,
694 $ 1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
695 $ IW, BW, INFO )
696 CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
697 INFOT = 5
698 CALL SGGEVX( 'N', 'N', 'N', 'N', -1, A, 1, B, 1, R1, R2, R3, Q,
699 $ 1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
700 $ IW, BW, INFO )
701 CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
702 INFOT = 7
703 CALL SGGEVX( 'N', 'N', 'N', 'N', 1, A, 0, B, 1, R1, R2, R3, Q,
704 $ 1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
705 $ IW, BW, INFO )
706 CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
707 INFOT = 9
708 CALL SGGEVX( 'N', 'N', 'N', 'N', 1, A, 1, B, 0, R1, R2, R3, Q,
709 $ 1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
710 $ IW, BW, INFO )
711 CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
712 INFOT = 14
713 CALL SGGEVX( 'N', 'N', 'N', 'N', 1, A, 1, B, 1, R1, R2, R3, Q,
714 $ 0, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
715 $ IW, BW, INFO )
716 CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
717 INFOT = 14
718 CALL SGGEVX( 'N', 'V', 'N', 'N', 2, A, 2, B, 2, R1, R2, R3, Q,
719 $ 1, U, 2, 1, 2, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
720 $ IW, BW, INFO )
721 CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
722 INFOT = 16
723 CALL SGGEVX( 'N', 'N', 'N', 'N', 1, A, 1, B, 1, R1, R2, R3, Q,
724 $ 1, U, 0, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
725 $ IW, BW, INFO )
726 CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
727 INFOT = 16
728 CALL SGGEVX( 'N', 'N', 'V', 'N', 2, A, 2, B, 2, R1, R2, R3, Q,
729 $ 2, U, 1, 1, 2, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
730 $ IW, BW, INFO )
731 CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
732 INFOT = 26
733 CALL SGGEVX( 'N', 'N', 'V', 'N', 2, A, 2, B, 2, R1, R2, R3, Q,
734 $ 2, U, 2, 1, 2, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
735 $ IW, BW, INFO )
736 CALL CHKXER( 'SGGEVX', INFOT, NOUT, LERR, OK )
737 NT = NT + 12
738 *
739 * STGEXC
740 *
741 SRNAMT = 'STGEXC'
742 INFOT = 3
743 CALL STGEXC( .TRUE., .TRUE., -1, A, 1, B, 1, Q, 1, Z, 1, IFST,
744 $ ILST, W, 1, INFO )
745 CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
746 INFOT = 5
747 CALL STGEXC( .TRUE., .TRUE., 1, A, 0, B, 1, Q, 1, Z, 1, IFST,
748 $ ILST, W, 1, INFO )
749 CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
750 INFOT = 7
751 CALL STGEXC( .TRUE., .TRUE., 1, A, 1, B, 0, Q, 1, Z, 1, IFST,
752 $ ILST, W, 1, INFO )
753 CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
754 INFOT = 9
755 CALL STGEXC( .FALSE., .TRUE., 1, A, 1, B, 1, Q, 0, Z, 1, IFST,
756 $ ILST, W, 1, INFO )
757 CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
758 INFOT = 9
759 CALL STGEXC( .TRUE., .TRUE., 1, A, 1, B, 1, Q, 0, Z, 1, IFST,
760 $ ILST, W, 1, INFO )
761 CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
762 INFOT = 11
763 CALL STGEXC( .TRUE., .FALSE., 1, A, 1, B, 1, Q, 1, Z, 0, IFST,
764 $ ILST, W, 1, INFO )
765 CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
766 INFOT = 11
767 CALL STGEXC( .TRUE., .TRUE., 1, A, 1, B, 1, Q, 1, Z, 0, IFST,
768 $ ILST, W, 1, INFO )
769 CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
770 INFOT = 15
771 CALL STGEXC( .TRUE., .TRUE., 1, A, 1, B, 1, Q, 1, Z, 1, IFST,
772 $ ILST, W, 0, INFO )
773 CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
774 NT = NT + 8
775 *
776 * STGSEN
777 *
778 SRNAMT = 'STGSEN'
779 INFOT = 1
780 CALL STGSEN( -1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2,
781 $ R3, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
782 $ INFO )
783 CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
784 INFOT = 5
785 CALL STGSEN( 1, .TRUE., .TRUE., SEL, -1, A, 1, B, 1, R1, R2,
786 $ R3, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
787 $ INFO )
788 CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
789 INFOT = 7
790 CALL STGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 0, B, 1, R1, R2, R3,
791 $ Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
792 $ INFO )
793 CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
794 INFOT = 9
795 CALL STGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 0, R1, R2, R3,
796 $ Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
797 $ INFO )
798 CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
799 INFOT = 14
800 CALL STGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
801 $ Q, 0, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
802 $ INFO )
803 CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
804 INFOT = 16
805 CALL STGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
806 $ Q, 1, Z, 0, M, TOLA, TOLB, RCV, W, 1, IW, 1,
807 $ INFO )
808 CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
809 INFOT = 22
810 CALL STGSEN( 0, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
811 $ Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
812 $ INFO )
813 CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
814 INFOT = 22
815 CALL STGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
816 $ Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
817 $ INFO )
818 CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
819 INFOT = 22
820 CALL STGSEN( 2, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
821 $ Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
822 $ INFO )
823 CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
824 INFOT = 24
825 CALL STGSEN( 0, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
826 $ Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 20, IW, 0,
827 $ INFO )
828 CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
829 INFOT = 24
830 CALL STGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
831 $ Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 20, IW, 0,
832 $ INFO )
833 CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
834 INFOT = 24
835 CALL STGSEN( 2, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3,
836 $ Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 20, IW, 1,
837 $ INFO )
838 CALL CHKXER( 'STGSEN', INFOT, NOUT, LERR, OK )
839 NT = NT + 12
840 *
841 * STGSNA
842 *
843 SRNAMT = 'STGSNA'
844 INFOT = 1
845 CALL STGSNA( '/', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
846 $ 1, M, W, 1, IW, INFO )
847 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
848 INFOT = 2
849 CALL STGSNA( 'B', '/', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
850 $ 1, M, W, 1, IW, INFO )
851 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
852 INFOT = 4
853 CALL STGSNA( 'B', 'A', SEL, -1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
854 $ 1, M, W, 1, IW, INFO )
855 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
856 INFOT = 6
857 CALL STGSNA( 'B', 'A', SEL, 1, A, 0, B, 1, Q, 1, U, 1, R1, R2,
858 $ 1, M, W, 1, IW, INFO )
859 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
860 INFOT = 8
861 CALL STGSNA( 'B', 'A', SEL, 1, A, 1, B, 0, Q, 1, U, 1, R1, R2,
862 $ 1, M, W, 1, IW, INFO )
863 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
864 INFOT = 10
865 CALL STGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 0, U, 1, R1, R2,
866 $ 1, M, W, 1, IW, INFO )
867 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
868 INFOT = 12
869 CALL STGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 0, R1, R2,
870 $ 1, M, W, 1, IW, INFO )
871 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
872 INFOT = 15
873 CALL STGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
874 $ 0, M, W, 1, IW, INFO )
875 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
876 INFOT = 18
877 CALL STGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
878 $ 1, M, W, 0, IW, INFO )
879 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
880 NT = NT + 9
881 *
882 * STGSYL
883 *
884 SRNAMT = 'STGSYL'
885 INFOT = 1
886 CALL STGSYL( '/', 0, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
887 $ SCALE, DIF, W, 1, IW, INFO )
888 CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
889 INFOT = 2
890 CALL STGSYL( 'N', -1, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
891 $ SCALE, DIF, W, 1, IW, INFO )
892 CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
893 INFOT = 3
894 CALL STGSYL( 'N', 0, 0, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
895 $ SCALE, DIF, W, 1, IW, INFO )
896 CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
897 INFOT = 4
898 CALL STGSYL( 'N', 0, 1, 0, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
899 $ SCALE, DIF, W, 1, IW, INFO )
900 CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
901 INFOT = 6
902 CALL STGSYL( 'N', 0, 1, 1, A, 0, B, 1, Q, 1, U, 1, V, 1, Z, 1,
903 $ SCALE, DIF, W, 1, IW, INFO )
904 CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
905 INFOT = 8
906 CALL STGSYL( 'N', 0, 1, 1, A, 1, B, 0, Q, 1, U, 1, V, 1, Z, 1,
907 $ SCALE, DIF, W, 1, IW, INFO )
908 CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
909 INFOT = 10
910 CALL STGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 0, U, 1, V, 1, Z, 1,
911 $ SCALE, DIF, W, 1, IW, INFO )
912 CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
913 INFOT = 12
914 CALL STGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 1, U, 0, V, 1, Z, 1,
915 $ SCALE, DIF, W, 1, IW, INFO )
916 CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
917 INFOT = 14
918 CALL STGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 0, Z, 1,
919 $ SCALE, DIF, W, 1, IW, INFO )
920 CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
921 INFOT = 16
922 CALL STGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 0,
923 $ SCALE, DIF, W, 1, IW, INFO )
924 CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
925 INFOT = 20
926 CALL STGSYL( 'N', 1, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
927 $ SCALE, DIF, W, 1, IW, INFO )
928 CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
929 INFOT = 20
930 CALL STGSYL( 'N', 2, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
931 $ SCALE, DIF, W, 1, IW, INFO )
932 CALL CHKXER( 'STGSYL', INFOT, NOUT, LERR, OK )
933 NT = NT + 12
934 END IF
935 *
936 * Print a summary line.
937 *
938 IF( OK ) THEN
939 WRITE( NOUT, FMT = 9999 )PATH, NT
940 ELSE
941 WRITE( NOUT, FMT = 9998 )PATH
942 END IF
943 *
944 9999 FORMAT( 1X, A3, ' routines passed the tests of the error exits (',
945 $ I3, ' tests done)' )
946 9998 FORMAT( ' *** ', A3, ' routines failed the tests of the error ',
947 $ 'exits ***' )
948 *
949 RETURN
950 *
951 * End of SERRGG
952 *
953 END