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