LAPACK  3.8.0
LAPACK: Linear Algebra PACKage
zchkee.f
Go to the documentation of this file.
1 *> \brief \b ZCHKEE
2 *
3 * =========== DOCUMENTATION ===========
4 *
5 * Online html documentation available at
6 * http://www.netlib.org/lapack/explore-html/
7 *
8 * Definition:
9 * ===========
10 *
11 * PROGRAM ZCHKEE
12 *
13 *
14 *> \par Purpose:
15 * =============
16 *>
17 *> \verbatim
18 *>
19 *> ZCHKEE tests the COMPLEX*16 LAPACK subroutines for the matrix
20 *> eigenvalue problem. The test paths in this version are
21 *>
22 *> NEP (Nonsymmetric Eigenvalue Problem):
23 *> Test ZGEHRD, ZUNGHR, ZHSEQR, ZTREVC, ZHSEIN, and ZUNMHR
24 *>
25 *> SEP (Hermitian Eigenvalue Problem):
26 *> Test ZHETRD, ZUNGTR, ZSTEQR, ZSTERF, ZSTEIN, ZSTEDC,
27 *> and drivers ZHEEV(X), ZHBEV(X), ZHPEV(X),
28 *> ZHEEVD, ZHBEVD, ZHPEVD
29 *>
30 *> SVD (Singular Value Decomposition):
31 *> Test ZGEBRD, ZUNGBR, and ZBDSQR
32 *> and the drivers ZGESVD, ZGESDD
33 *>
34 *> ZEV (Nonsymmetric Eigenvalue/eigenvector Driver):
35 *> Test ZGEEV
36 *>
37 *> ZES (Nonsymmetric Schur form Driver):
38 *> Test ZGEES
39 *>
40 *> ZVX (Nonsymmetric Eigenvalue/eigenvector Expert Driver):
41 *> Test ZGEEVX
42 *>
43 *> ZSX (Nonsymmetric Schur form Expert Driver):
44 *> Test ZGEESX
45 *>
46 *> ZGG (Generalized Nonsymmetric Eigenvalue Problem):
47 *> Test ZGGHD3, ZGGBAL, ZGGBAK, ZHGEQZ, and ZTGEVC
48 *>
49 *> ZGS (Generalized Nonsymmetric Schur form Driver):
50 *> Test ZGGES
51 *>
52 *> ZGV (Generalized Nonsymmetric Eigenvalue/eigenvector Driver):
53 *> Test ZGGEV
54 *>
55 *> ZGX (Generalized Nonsymmetric Schur form Expert Driver):
56 *> Test ZGGESX
57 *>
58 *> ZXV (Generalized Nonsymmetric Eigenvalue/eigenvector Expert Driver):
59 *> Test ZGGEVX
60 *>
61 *> ZSG (Hermitian Generalized Eigenvalue Problem):
62 *> Test ZHEGST, ZHEGV, ZHEGVD, ZHEGVX, ZHPGST, ZHPGV, ZHPGVD,
63 *> ZHPGVX, ZHBGST, ZHBGV, ZHBGVD, and ZHBGVX
64 *>
65 *> ZHB (Hermitian Band Eigenvalue Problem):
66 *> Test ZHBTRD
67 *>
68 *> ZBB (Band Singular Value Decomposition):
69 *> Test ZGBBRD
70 *>
71 *> ZEC (Eigencondition estimation):
72 *> Test ZTRSYL, ZTREXC, ZTRSNA, and ZTRSEN
73 *>
74 *> ZBL (Balancing a general matrix)
75 *> Test ZGEBAL
76 *>
77 *> ZBK (Back transformation on a balanced matrix)
78 *> Test ZGEBAK
79 *>
80 *> ZGL (Balancing a matrix pair)
81 *> Test ZGGBAL
82 *>
83 *> ZGK (Back transformation on a matrix pair)
84 *> Test ZGGBAK
85 *>
86 *> GLM (Generalized Linear Regression Model):
87 *> Tests ZGGGLM
88 *>
89 *> GQR (Generalized QR and RQ factorizations):
90 *> Tests ZGGQRF and ZGGRQF
91 *>
92 *> GSV (Generalized Singular Value Decomposition):
93 *> Tests ZGGSVD, ZGGSVP, ZTGSJA, ZLAGS2, ZLAPLL, and ZLAPMT
94 *>
95 *> CSD (CS decomposition):
96 *> Tests ZUNCSD
97 *>
98 *> LSE (Constrained Linear Least Squares):
99 *> Tests ZGGLSE
100 *>
101 *> Each test path has a different set of inputs, but the data sets for
102 *> the driver routines xEV, xES, xVX, and xSX can be concatenated in a
103 *> single input file. The first line of input should contain one of the
104 *> 3-character path names in columns 1-3. The number of remaining lines
105 *> depends on what is found on the first line.
106 *>
107 *> The number of matrix types used in testing is often controllable from
108 *> the input file. The number of matrix types for each path, and the
109 *> test routine that describes them, is as follows:
110 *>
111 *> Path name(s) Types Test routine
112 *>
113 *> ZHS or NEP 21 ZCHKHS
114 *> ZST or SEP 21 ZCHKST (routines)
115 *> 18 ZDRVST (drivers)
116 *> ZBD or SVD 16 ZCHKBD (routines)
117 *> 5 ZDRVBD (drivers)
118 *> ZEV 21 ZDRVEV
119 *> ZES 21 ZDRVES
120 *> ZVX 21 ZDRVVX
121 *> ZSX 21 ZDRVSX
122 *> ZGG 26 ZCHKGG (routines)
123 *> ZGS 26 ZDRGES
124 *> ZGX 5 ZDRGSX
125 *> ZGV 26 ZDRGEV
126 *> ZXV 2 ZDRGVX
127 *> ZSG 21 ZDRVSG
128 *> ZHB 15 ZCHKHB
129 *> ZBB 15 ZCHKBB
130 *> ZEC - ZCHKEC
131 *> ZBL - ZCHKBL
132 *> ZBK - ZCHKBK
133 *> ZGL - ZCHKGL
134 *> ZGK - ZCHKGK
135 *> GLM 8 ZCKGLM
136 *> GQR 8 ZCKGQR
137 *> GSV 8 ZCKGSV
138 *> CSD 3 ZCKCSD
139 *> LSE 8 ZCKLSE
140 *>
141 *>-----------------------------------------------------------------------
142 *>
143 *> NEP input file:
144 *>
145 *> line 2: NN, INTEGER
146 *> Number of values of N.
147 *>
148 *> line 3: NVAL, INTEGER array, dimension (NN)
149 *> The values for the matrix dimension N.
150 *>
151 *> line 4: NPARMS, INTEGER
152 *> Number of values of the parameters NB, NBMIN, NX, NS, and
153 *> MAXB.
154 *>
155 *> line 5: NBVAL, INTEGER array, dimension (NPARMS)
156 *> The values for the blocksize NB.
157 *>
158 *> line 6: NBMIN, INTEGER array, dimension (NPARMS)
159 *> The values for the minimum blocksize NBMIN.
160 *>
161 *> line 7: NXVAL, INTEGER array, dimension (NPARMS)
162 *> The values for the crossover point NX.
163 *>
164 *> line 8: INMIN, INTEGER array, dimension (NPARMS)
165 *> LAHQR vs TTQRE crossover point, >= 11
166 *>
167 *> line 9: INWIN, INTEGER array, dimension (NPARMS)
168 *> recommended deflation window size
169 *>
170 *> line 10: INIBL, INTEGER array, dimension (NPARMS)
171 *> nibble crossover point
172 *>
173 *> line 11: ISHFTS, INTEGER array, dimension (NPARMS)
174 *> number of simultaneous shifts)
175 *>
176 *> line 12: IACC22, INTEGER array, dimension (NPARMS)
177 *> select structured matrix multiply: 0, 1 or 2)
178 *>
179 *> line 13: THRESH
180 *> Threshold value for the test ratios. Information will be
181 *> printed about each test for which the test ratio is greater
182 *> than or equal to the threshold. To have all of the test
183 *> ratios printed, use THRESH = 0.0 .
184 *>
185 *> line 14: NEWSD, INTEGER
186 *> A code indicating how to set the random number seed.
187 *> = 0: Set the seed to a default value before each run
188 *> = 1: Initialize the seed to a default value only before the
189 *> first run
190 *> = 2: Like 1, but use the seed values on the next line
191 *>
192 *> If line 14 was 2:
193 *>
194 *> line 15: INTEGER array, dimension (4)
195 *> Four integer values for the random number seed.
196 *>
197 *> lines 15-EOF: The remaining lines occur in sets of 1 or 2 and allow
198 *> the user to specify the matrix types. Each line contains
199 *> a 3-character path name in columns 1-3, and the number
200 *> of matrix types must be the first nonblank item in columns
201 *> 4-80. If the number of matrix types is at least 1 but is
202 *> less than the maximum number of possible types, a second
203 *> line will be read to get the numbers of the matrix types to
204 *> be used. For example,
205 *> NEP 21
206 *> requests all of the matrix types for the nonsymmetric
207 *> eigenvalue problem, while
208 *> NEP 4
209 *> 9 10 11 12
210 *> requests only matrices of type 9, 10, 11, and 12.
211 *>
212 *> The valid 3-character path names are 'NEP' or 'ZHS' for the
213 *> nonsymmetric eigenvalue routines.
214 *>
215 *>-----------------------------------------------------------------------
216 *>
217 *> SEP or ZSG input file:
218 *>
219 *> line 2: NN, INTEGER
220 *> Number of values of N.
221 *>
222 *> line 3: NVAL, INTEGER array, dimension (NN)
223 *> The values for the matrix dimension N.
224 *>
225 *> line 4: NPARMS, INTEGER
226 *> Number of values of the parameters NB, NBMIN, and NX.
227 *>
228 *> line 5: NBVAL, INTEGER array, dimension (NPARMS)
229 *> The values for the blocksize NB.
230 *>
231 *> line 6: NBMIN, INTEGER array, dimension (NPARMS)
232 *> The values for the minimum blocksize NBMIN.
233 *>
234 *> line 7: NXVAL, INTEGER array, dimension (NPARMS)
235 *> The values for the crossover point NX.
236 *>
237 *> line 8: THRESH
238 *> Threshold value for the test ratios. Information will be
239 *> printed about each test for which the test ratio is greater
240 *> than or equal to the threshold.
241 *>
242 *> line 9: TSTCHK, LOGICAL
243 *> Flag indicating whether or not to test the LAPACK routines.
244 *>
245 *> line 10: TSTDRV, LOGICAL
246 *> Flag indicating whether or not to test the driver routines.
247 *>
248 *> line 11: TSTERR, LOGICAL
249 *> Flag indicating whether or not to test the error exits for
250 *> the LAPACK routines and driver routines.
251 *>
252 *> line 12: NEWSD, INTEGER
253 *> A code indicating how to set the random number seed.
254 *> = 0: Set the seed to a default value before each run
255 *> = 1: Initialize the seed to a default value only before the
256 *> first run
257 *> = 2: Like 1, but use the seed values on the next line
258 *>
259 *> If line 12 was 2:
260 *>
261 *> line 13: INTEGER array, dimension (4)
262 *> Four integer values for the random number seed.
263 *>
264 *> lines 13-EOF: Lines specifying matrix types, as for NEP.
265 *> The valid 3-character path names are 'SEP' or 'ZST' for the
266 *> Hermitian eigenvalue routines and driver routines, and
267 *> 'ZSG' for the routines for the Hermitian generalized
268 *> eigenvalue problem.
269 *>
270 *>-----------------------------------------------------------------------
271 *>
272 *> SVD input file:
273 *>
274 *> line 2: NN, INTEGER
275 *> Number of values of M and N.
276 *>
277 *> line 3: MVAL, INTEGER array, dimension (NN)
278 *> The values for the matrix row dimension M.
279 *>
280 *> line 4: NVAL, INTEGER array, dimension (NN)
281 *> The values for the matrix column dimension N.
282 *>
283 *> line 5: NPARMS, INTEGER
284 *> Number of values of the parameter NB, NBMIN, NX, and NRHS.
285 *>
286 *> line 6: NBVAL, INTEGER array, dimension (NPARMS)
287 *> The values for the blocksize NB.
288 *>
289 *> line 7: NBMIN, INTEGER array, dimension (NPARMS)
290 *> The values for the minimum blocksize NBMIN.
291 *>
292 *> line 8: NXVAL, INTEGER array, dimension (NPARMS)
293 *> The values for the crossover point NX.
294 *>
295 *> line 9: NSVAL, INTEGER array, dimension (NPARMS)
296 *> The values for the number of right hand sides NRHS.
297 *>
298 *> line 10: THRESH
299 *> Threshold value for the test ratios. Information will be
300 *> printed about each test for which the test ratio is greater
301 *> than or equal to the threshold.
302 *>
303 *> line 11: TSTCHK, LOGICAL
304 *> Flag indicating whether or not to test the LAPACK routines.
305 *>
306 *> line 12: TSTDRV, LOGICAL
307 *> Flag indicating whether or not to test the driver routines.
308 *>
309 *> line 13: TSTERR, LOGICAL
310 *> Flag indicating whether or not to test the error exits for
311 *> the LAPACK routines and driver routines.
312 *>
313 *> line 14: NEWSD, INTEGER
314 *> A code indicating how to set the random number seed.
315 *> = 0: Set the seed to a default value before each run
316 *> = 1: Initialize the seed to a default value only before the
317 *> first run
318 *> = 2: Like 1, but use the seed values on the next line
319 *>
320 *> If line 14 was 2:
321 *>
322 *> line 15: INTEGER array, dimension (4)
323 *> Four integer values for the random number seed.
324 *>
325 *> lines 15-EOF: Lines specifying matrix types, as for NEP.
326 *> The 3-character path names are 'SVD' or 'ZBD' for both the
327 *> SVD routines and the SVD driver routines.
328 *>
329 *>-----------------------------------------------------------------------
330 *>
331 *> ZEV and ZES data files:
332 *>
333 *> line 1: 'ZEV' or 'ZES' in columns 1 to 3.
334 *>
335 *> line 2: NSIZES, INTEGER
336 *> Number of sizes of matrices to use. Should be at least 0
337 *> and at most 20. If NSIZES = 0, no testing is done
338 *> (although the remaining 3 lines are still read).
339 *>
340 *> line 3: NN, INTEGER array, dimension(NSIZES)
341 *> Dimensions of matrices to be tested.
342 *>
343 *> line 4: NB, NBMIN, NX, NS, NBCOL, INTEGERs
344 *> These integer parameters determine how blocking is done
345 *> (see ILAENV for details)
346 *> NB : block size
347 *> NBMIN : minimum block size
348 *> NX : minimum dimension for blocking
349 *> NS : number of shifts in xHSEQR
350 *> NBCOL : minimum column dimension for blocking
351 *>
352 *> line 5: THRESH, REAL
353 *> The test threshold against which computed residuals are
354 *> compared. Should generally be in the range from 10. to 20.
355 *> If it is 0., all test case data will be printed.
356 *>
357 *> line 6: NEWSD, INTEGER
358 *> A code indicating how to set the random number seed.
359 *> = 0: Set the seed to a default value before each run
360 *> = 1: Initialize the seed to a default value only before the
361 *> first run
362 *> = 2: Like 1, but use the seed values on the next line
363 *>
364 *> If line 6 was 2:
365 *>
366 *> line 7: INTEGER array, dimension (4)
367 *> Four integer values for the random number seed.
368 *>
369 *> lines 8 and following: Lines specifying matrix types, as for NEP.
370 *> The 3-character path name is 'ZEV' to test CGEEV, or
371 *> 'ZES' to test CGEES.
372 *>
373 *>-----------------------------------------------------------------------
374 *>
375 *> The ZVX data has two parts. The first part is identical to ZEV,
376 *> and the second part consists of test matrices with precomputed
377 *> solutions.
378 *>
379 *> line 1: 'ZVX' in columns 1-3.
380 *>
381 *> line 2: NSIZES, INTEGER
382 *> If NSIZES = 0, no testing of randomly generated examples
383 *> is done, but any precomputed examples are tested.
384 *>
385 *> line 3: NN, INTEGER array, dimension(NSIZES)
386 *>
387 *> line 4: NB, NBMIN, NX, NS, NBCOL, INTEGERs
388 *>
389 *> line 5: THRESH, REAL
390 *>
391 *> line 6: NEWSD, INTEGER
392 *>
393 *> If line 6 was 2:
394 *>
395 *> line 7: INTEGER array, dimension (4)
396 *>
397 *> lines 8 and following: The first line contains 'ZVX' in columns 1-3
398 *> followed by the number of matrix types, possibly with
399 *> a second line to specify certain matrix types.
400 *> If the number of matrix types = 0, no testing of randomly
401 *> generated examples is done, but any precomputed examples
402 *> are tested.
403 *>
404 *> remaining lines : Each matrix is stored on 1+N+N**2 lines, where N is
405 *> its dimension. The first line contains the dimension N and
406 *> ISRT (two integers). ISRT indicates whether the last N lines
407 *> are sorted by increasing real part of the eigenvalue
408 *> (ISRT=0) or by increasing imaginary part (ISRT=1). The next
409 *> N**2 lines contain the matrix rowwise, one entry per line.
410 *> The last N lines correspond to each eigenvalue. Each of
411 *> these last N lines contains 4 real values: the real part of
412 *> the eigenvalues, the imaginary part of the eigenvalue, the
413 *> reciprocal condition number of the eigenvalues, and the
414 *> reciprocal condition number of the vector eigenvector. The
415 *> end of data is indicated by dimension N=0. Even if no data
416 *> is to be tested, there must be at least one line containing
417 *> N=0.
418 *>
419 *>-----------------------------------------------------------------------
420 *>
421 *> The ZSX data is like ZVX. The first part is identical to ZEV, and the
422 *> second part consists of test matrices with precomputed solutions.
423 *>
424 *> line 1: 'ZSX' in columns 1-3.
425 *>
426 *> line 2: NSIZES, INTEGER
427 *> If NSIZES = 0, no testing of randomly generated examples
428 *> is done, but any precomputed examples are tested.
429 *>
430 *> line 3: NN, INTEGER array, dimension(NSIZES)
431 *>
432 *> line 4: NB, NBMIN, NX, NS, NBCOL, INTEGERs
433 *>
434 *> line 5: THRESH, REAL
435 *>
436 *> line 6: NEWSD, INTEGER
437 *>
438 *> If line 6 was 2:
439 *>
440 *> line 7: INTEGER array, dimension (4)
441 *>
442 *> lines 8 and following: The first line contains 'ZSX' in columns 1-3
443 *> followed by the number of matrix types, possibly with
444 *> a second line to specify certain matrix types.
445 *> If the number of matrix types = 0, no testing of randomly
446 *> generated examples is done, but any precomputed examples
447 *> are tested.
448 *>
449 *> remaining lines : Each matrix is stored on 3+N**2 lines, where N is
450 *> its dimension. The first line contains the dimension N, the
451 *> dimension M of an invariant subspace, and ISRT. The second
452 *> line contains M integers, identifying the eigenvalues in the
453 *> invariant subspace (by their position in a list of
454 *> eigenvalues ordered by increasing real part (if ISRT=0) or
455 *> by increasing imaginary part (if ISRT=1)). The next N**2
456 *> lines contain the matrix rowwise. The last line contains the
457 *> reciprocal condition number for the average of the selected
458 *> eigenvalues, and the reciprocal condition number for the
459 *> corresponding right invariant subspace. The end of data in
460 *> indicated by a line containing N=0, M=0, and ISRT = 0. Even
461 *> if no data is to be tested, there must be at least one line
462 *> containing N=0, M=0 and ISRT=0.
463 *>
464 *>-----------------------------------------------------------------------
465 *>
466 *> ZGG input file:
467 *>
468 *> line 2: NN, INTEGER
469 *> Number of values of N.
470 *>
471 *> line 3: NVAL, INTEGER array, dimension (NN)
472 *> The values for the matrix dimension N.
473 *>
474 *> line 4: NPARMS, INTEGER
475 *> Number of values of the parameters NB, NBMIN, NBCOL, NS, and
476 *> MAXB.
477 *>
478 *> line 5: NBVAL, INTEGER array, dimension (NPARMS)
479 *> The values for the blocksize NB.
480 *>
481 *> line 6: NBMIN, INTEGER array, dimension (NPARMS)
482 *> The values for NBMIN, the minimum row dimension for blocks.
483 *>
484 *> line 7: NSVAL, INTEGER array, dimension (NPARMS)
485 *> The values for the number of shifts.
486 *>
487 *> line 8: MXBVAL, INTEGER array, dimension (NPARMS)
488 *> The values for MAXB, used in determining minimum blocksize.
489 *>
490 *> line 9: IACC22, INTEGER array, dimension (NPARMS)
491 *> select structured matrix multiply: 1 or 2)
492 *>
493 *> line 10: NBCOL, INTEGER array, dimension (NPARMS)
494 *> The values for NBCOL, the minimum column dimension for
495 *> blocks.
496 *>
497 *> line 11: THRESH
498 *> Threshold value for the test ratios. Information will be
499 *> printed about each test for which the test ratio is greater
500 *> than or equal to the threshold.
501 *>
502 *> line 12: TSTCHK, LOGICAL
503 *> Flag indicating whether or not to test the LAPACK routines.
504 *>
505 *> line 13: TSTDRV, LOGICAL
506 *> Flag indicating whether or not to test the driver routines.
507 *>
508 *> line 14: TSTERR, LOGICAL
509 *> Flag indicating whether or not to test the error exits for
510 *> the LAPACK routines and driver routines.
511 *>
512 *> line 15: NEWSD, INTEGER
513 *> A code indicating how to set the random number seed.
514 *> = 0: Set the seed to a default value before each run
515 *> = 1: Initialize the seed to a default value only before the
516 *> first run
517 *> = 2: Like 1, but use the seed values on the next line
518 *>
519 *> If line 15 was 2:
520 *>
521 *> line 16: INTEGER array, dimension (4)
522 *> Four integer values for the random number seed.
523 *>
524 *> lines 17-EOF: Lines specifying matrix types, as for NEP.
525 *> The 3-character path name is 'ZGG' for the generalized
526 *> eigenvalue problem routines and driver routines.
527 *>
528 *>-----------------------------------------------------------------------
529 *>
530 *> ZGS and ZGV input files:
531 *>
532 *> line 1: 'ZGS' or 'ZGV' in columns 1 to 3.
533 *>
534 *> line 2: NN, INTEGER
535 *> Number of values of N.
536 *>
537 *> line 3: NVAL, INTEGER array, dimension(NN)
538 *> Dimensions of matrices to be tested.
539 *>
540 *> line 4: NB, NBMIN, NX, NS, NBCOL, INTEGERs
541 *> These integer parameters determine how blocking is done
542 *> (see ILAENV for details)
543 *> NB : block size
544 *> NBMIN : minimum block size
545 *> NX : minimum dimension for blocking
546 *> NS : number of shifts in xHGEQR
547 *> NBCOL : minimum column dimension for blocking
548 *>
549 *> line 5: THRESH, REAL
550 *> The test threshold against which computed residuals are
551 *> compared. Should generally be in the range from 10. to 20.
552 *> If it is 0., all test case data will be printed.
553 *>
554 *> line 6: TSTERR, LOGICAL
555 *> Flag indicating whether or not to test the error exits.
556 *>
557 *> line 7: NEWSD, INTEGER
558 *> A code indicating how to set the random number seed.
559 *> = 0: Set the seed to a default value before each run
560 *> = 1: Initialize the seed to a default value only before the
561 *> first run
562 *> = 2: Like 1, but use the seed values on the next line
563 *>
564 *> If line 17 was 2:
565 *>
566 *> line 7: INTEGER array, dimension (4)
567 *> Four integer values for the random number seed.
568 *>
569 *> lines 7-EOF: Lines specifying matrix types, as for NEP.
570 *> The 3-character path name is 'ZGS' for the generalized
571 *> eigenvalue problem routines and driver routines.
572 *>
573 *>-----------------------------------------------------------------------
574 *>
575 *> ZGX input file:
576 *> line 1: 'ZGX' in columns 1 to 3.
577 *>
578 *> line 2: N, INTEGER
579 *> Value of N.
580 *>
581 *> line 3: NB, NBMIN, NX, NS, NBCOL, INTEGERs
582 *> These integer parameters determine how blocking is done
583 *> (see ILAENV for details)
584 *> NB : block size
585 *> NBMIN : minimum block size
586 *> NX : minimum dimension for blocking
587 *> NS : number of shifts in xHGEQR
588 *> NBCOL : minimum column dimension for blocking
589 *>
590 *> line 4: THRESH, REAL
591 *> The test threshold against which computed residuals are
592 *> compared. Should generally be in the range from 10. to 20.
593 *> Information will be printed about each test for which the
594 *> test ratio is greater than or equal to the threshold.
595 *>
596 *> line 5: TSTERR, LOGICAL
597 *> Flag indicating whether or not to test the error exits for
598 *> the LAPACK routines and driver routines.
599 *>
600 *> line 6: NEWSD, INTEGER
601 *> A code indicating how to set the random number seed.
602 *> = 0: Set the seed to a default value before each run
603 *> = 1: Initialize the seed to a default value only before the
604 *> first run
605 *> = 2: Like 1, but use the seed values on the next line
606 *>
607 *> If line 6 was 2:
608 *>
609 *> line 7: INTEGER array, dimension (4)
610 *> Four integer values for the random number seed.
611 *>
612 *> If line 2 was 0:
613 *>
614 *> line 7-EOF: Precomputed examples are tested.
615 *>
616 *> remaining lines : Each example is stored on 3+2*N*N lines, where N is
617 *> its dimension. The first line contains the dimension (a
618 *> single integer). The next line contains an integer k such
619 *> that only the last k eigenvalues will be selected and appear
620 *> in the leading diagonal blocks of $A$ and $B$. The next N*N
621 *> lines contain the matrix A, one element per line. The next N*N
622 *> lines contain the matrix B. The last line contains the
623 *> reciprocal of the eigenvalue cluster condition number and the
624 *> reciprocal of the deflating subspace (associated with the
625 *> selected eigencluster) condition number. The end of data is
626 *> indicated by dimension N=0. Even if no data is to be tested,
627 *> there must be at least one line containing N=0.
628 *>
629 *>-----------------------------------------------------------------------
630 *>
631 *> ZXV input files:
632 *> line 1: 'ZXV' in columns 1 to 3.
633 *>
634 *> line 2: N, INTEGER
635 *> Value of N.
636 *>
637 *> line 3: NB, NBMIN, NX, NS, NBCOL, INTEGERs
638 *> These integer parameters determine how blocking is done
639 *> (see ILAENV for details)
640 *> NB : block size
641 *> NBMIN : minimum block size
642 *> NX : minimum dimension for blocking
643 *> NS : number of shifts in xHGEQR
644 *> NBCOL : minimum column dimension for blocking
645 *>
646 *> line 4: THRESH, REAL
647 *> The test threshold against which computed residuals are
648 *> compared. Should generally be in the range from 10. to 20.
649 *> Information will be printed about each test for which the
650 *> test ratio is greater than or equal to the threshold.
651 *>
652 *> line 5: TSTERR, LOGICAL
653 *> Flag indicating whether or not to test the error exits for
654 *> the LAPACK routines and driver routines.
655 *>
656 *> line 6: NEWSD, INTEGER
657 *> A code indicating how to set the random number seed.
658 *> = 0: Set the seed to a default value before each run
659 *> = 1: Initialize the seed to a default value only before the
660 *> first run
661 *> = 2: Like 1, but use the seed values on the next line
662 *>
663 *> If line 6 was 2:
664 *>
665 *> line 7: INTEGER array, dimension (4)
666 *> Four integer values for the random number seed.
667 *>
668 *> If line 2 was 0:
669 *>
670 *> line 7-EOF: Precomputed examples are tested.
671 *>
672 *> remaining lines : Each example is stored on 3+2*N*N lines, where N is
673 *> its dimension. The first line contains the dimension (a
674 *> single integer). The next N*N lines contain the matrix A, one
675 *> element per line. The next N*N lines contain the matrix B.
676 *> The next line contains the reciprocals of the eigenvalue
677 *> condition numbers. The last line contains the reciprocals of
678 *> the eigenvector condition numbers. The end of data is
679 *> indicated by dimension N=0. Even if no data is to be tested,
680 *> there must be at least one line containing N=0.
681 *>
682 *>-----------------------------------------------------------------------
683 *>
684 *> ZHB input file:
685 *>
686 *> line 2: NN, INTEGER
687 *> Number of values of N.
688 *>
689 *> line 3: NVAL, INTEGER array, dimension (NN)
690 *> The values for the matrix dimension N.
691 *>
692 *> line 4: NK, INTEGER
693 *> Number of values of K.
694 *>
695 *> line 5: KVAL, INTEGER array, dimension (NK)
696 *> The values for the matrix dimension K.
697 *>
698 *> line 6: THRESH
699 *> Threshold value for the test ratios. Information will be
700 *> printed about each test for which the test ratio is greater
701 *> than or equal to the threshold.
702 *>
703 *> line 7: NEWSD, INTEGER
704 *> A code indicating how to set the random number seed.
705 *> = 0: Set the seed to a default value before each run
706 *> = 1: Initialize the seed to a default value only before the
707 *> first run
708 *> = 2: Like 1, but use the seed values on the next line
709 *>
710 *> If line 7 was 2:
711 *>
712 *> line 8: INTEGER array, dimension (4)
713 *> Four integer values for the random number seed.
714 *>
715 *> lines 8-EOF: Lines specifying matrix types, as for NEP.
716 *> The 3-character path name is 'ZHB'.
717 *>
718 *>-----------------------------------------------------------------------
719 *>
720 *> ZBB input file:
721 *>
722 *> line 2: NN, INTEGER
723 *> Number of values of M and N.
724 *>
725 *> line 3: MVAL, INTEGER array, dimension (NN)
726 *> The values for the matrix row dimension M.
727 *>
728 *> line 4: NVAL, INTEGER array, dimension (NN)
729 *> The values for the matrix column dimension N.
730 *>
731 *> line 4: NK, INTEGER
732 *> Number of values of K.
733 *>
734 *> line 5: KVAL, INTEGER array, dimension (NK)
735 *> The values for the matrix bandwidth K.
736 *>
737 *> line 6: NPARMS, INTEGER
738 *> Number of values of the parameter NRHS
739 *>
740 *> line 7: NSVAL, INTEGER array, dimension (NPARMS)
741 *> The values for the number of right hand sides NRHS.
742 *>
743 *> line 8: THRESH
744 *> Threshold value for the test ratios. Information will be
745 *> printed about each test for which the test ratio is greater
746 *> than or equal to the threshold.
747 *>
748 *> line 9: NEWSD, INTEGER
749 *> A code indicating how to set the random number seed.
750 *> = 0: Set the seed to a default value before each run
751 *> = 1: Initialize the seed to a default value only before the
752 *> first run
753 *> = 2: Like 1, but use the seed values on the next line
754 *>
755 *> If line 9 was 2:
756 *>
757 *> line 10: INTEGER array, dimension (4)
758 *> Four integer values for the random number seed.
759 *>
760 *> lines 10-EOF: Lines specifying matrix types, as for SVD.
761 *> The 3-character path name is 'ZBB'.
762 *>
763 *>-----------------------------------------------------------------------
764 *>
765 *> ZEC input file:
766 *>
767 *> line 2: THRESH, REAL
768 *> Threshold value for the test ratios. Information will be
769 *> printed about each test for which the test ratio is greater
770 *> than or equal to the threshold.
771 *>
772 *> lines 3-EOF:
773 *>
774 *> Input for testing the eigencondition routines consists of a set of
775 *> specially constructed test cases and their solutions. The data
776 *> format is not intended to be modified by the user.
777 *>
778 *>-----------------------------------------------------------------------
779 *>
780 *> ZBL and ZBK input files:
781 *>
782 *> line 1: 'ZBL' in columns 1-3 to test CGEBAL, or 'ZBK' in
783 *> columns 1-3 to test CGEBAK.
784 *>
785 *> The remaining lines consist of specially constructed test cases.
786 *>
787 *>-----------------------------------------------------------------------
788 *>
789 *> ZGL and ZGK input files:
790 *>
791 *> line 1: 'ZGL' in columns 1-3 to test ZGGBAL, or 'ZGK' in
792 *> columns 1-3 to test ZGGBAK.
793 *>
794 *> The remaining lines consist of specially constructed test cases.
795 *>
796 *>-----------------------------------------------------------------------
797 *>
798 *> GLM data file:
799 *>
800 *> line 1: 'GLM' in columns 1 to 3.
801 *>
802 *> line 2: NN, INTEGER
803 *> Number of values of M, P, and N.
804 *>
805 *> line 3: MVAL, INTEGER array, dimension(NN)
806 *> Values of M (row dimension).
807 *>
808 *> line 4: PVAL, INTEGER array, dimension(NN)
809 *> Values of P (row dimension).
810 *>
811 *> line 5: NVAL, INTEGER array, dimension(NN)
812 *> Values of N (column dimension), note M <= N <= M+P.
813 *>
814 *> line 6: THRESH, REAL
815 *> Threshold value for the test ratios. Information will be
816 *> printed about each test for which the test ratio is greater
817 *> than or equal to the threshold.
818 *>
819 *> line 7: TSTERR, LOGICAL
820 *> Flag indicating whether or not to test the error exits for
821 *> the LAPACK routines and driver routines.
822 *>
823 *> line 8: NEWSD, INTEGER
824 *> A code indicating how to set the random number seed.
825 *> = 0: Set the seed to a default value before each run
826 *> = 1: Initialize the seed to a default value only before the
827 *> first run
828 *> = 2: Like 1, but use the seed values on the next line
829 *>
830 *> If line 8 was 2:
831 *>
832 *> line 9: INTEGER array, dimension (4)
833 *> Four integer values for the random number seed.
834 *>
835 *> lines 9-EOF: Lines specifying matrix types, as for NEP.
836 *> The 3-character path name is 'GLM' for the generalized
837 *> linear regression model routines.
838 *>
839 *>-----------------------------------------------------------------------
840 *>
841 *> GQR data file:
842 *>
843 *> line 1: 'GQR' in columns 1 to 3.
844 *>
845 *> line 2: NN, INTEGER
846 *> Number of values of M, P, and N.
847 *>
848 *> line 3: MVAL, INTEGER array, dimension(NN)
849 *> Values of M.
850 *>
851 *> line 4: PVAL, INTEGER array, dimension(NN)
852 *> Values of P.
853 *>
854 *> line 5: NVAL, INTEGER array, dimension(NN)
855 *> Values of N.
856 *>
857 *> line 6: THRESH, REAL
858 *> Threshold value for the test ratios. Information will be
859 *> printed about each test for which the test ratio is greater
860 *> than or equal to the threshold.
861 *>
862 *> line 7: TSTERR, LOGICAL
863 *> Flag indicating whether or not to test the error exits for
864 *> the LAPACK routines and driver routines.
865 *>
866 *> line 8: NEWSD, INTEGER
867 *> A code indicating how to set the random number seed.
868 *> = 0: Set the seed to a default value before each run
869 *> = 1: Initialize the seed to a default value only before the
870 *> first run
871 *> = 2: Like 1, but use the seed values on the next line
872 *>
873 *> If line 8 was 2:
874 *>
875 *> line 9: INTEGER array, dimension (4)
876 *> Four integer values for the random number seed.
877 *>
878 *> lines 9-EOF: Lines specifying matrix types, as for NEP.
879 *> The 3-character path name is 'GQR' for the generalized
880 *> QR and RQ routines.
881 *>
882 *>-----------------------------------------------------------------------
883 *>
884 *> GSV data file:
885 *>
886 *> line 1: 'GSV' in columns 1 to 3.
887 *>
888 *> line 2: NN, INTEGER
889 *> Number of values of M, P, and N.
890 *>
891 *> line 3: MVAL, INTEGER array, dimension(NN)
892 *> Values of M (row dimension).
893 *>
894 *> line 4: PVAL, INTEGER array, dimension(NN)
895 *> Values of P (row dimension).
896 *>
897 *> line 5: NVAL, INTEGER array, dimension(NN)
898 *> Values of N (column dimension).
899 *>
900 *> line 6: THRESH, REAL
901 *> Threshold value for the test ratios. Information will be
902 *> printed about each test for which the test ratio is greater
903 *> than or equal to the threshold.
904 *>
905 *> line 7: TSTERR, LOGICAL
906 *> Flag indicating whether or not to test the error exits for
907 *> the LAPACK routines and driver routines.
908 *>
909 *> line 8: NEWSD, INTEGER
910 *> A code indicating how to set the random number seed.
911 *> = 0: Set the seed to a default value before each run
912 *> = 1: Initialize the seed to a default value only before the
913 *> first run
914 *> = 2: Like 1, but use the seed values on the next line
915 *>
916 *> If line 8 was 2:
917 *>
918 *> line 9: INTEGER array, dimension (4)
919 *> Four integer values for the random number seed.
920 *>
921 *> lines 9-EOF: Lines specifying matrix types, as for NEP.
922 *> The 3-character path name is 'GSV' for the generalized
923 *> SVD routines.
924 *>
925 *>-----------------------------------------------------------------------
926 *>
927 *> CSD data file:
928 *>
929 *> line 1: 'CSD' in columns 1 to 3.
930 *>
931 *> line 2: NM, INTEGER
932 *> Number of values of M, P, and N.
933 *>
934 *> line 3: MVAL, INTEGER array, dimension(NM)
935 *> Values of M (row and column dimension of orthogonal matrix).
936 *>
937 *> line 4: PVAL, INTEGER array, dimension(NM)
938 *> Values of P (row dimension of top-left block).
939 *>
940 *> line 5: NVAL, INTEGER array, dimension(NM)
941 *> Values of N (column dimension of top-left block).
942 *>
943 *> line 6: THRESH, REAL
944 *> Threshold value for the test ratios. Information will be
945 *> printed about each test for which the test ratio is greater
946 *> than or equal to the threshold.
947 *>
948 *> line 7: TSTERR, LOGICAL
949 *> Flag indicating whether or not to test the error exits for
950 *> the LAPACK routines and driver routines.
951 *>
952 *> line 8: NEWSD, INTEGER
953 *> A code indicating how to set the random number seed.
954 *> = 0: Set the seed to a default value before each run
955 *> = 1: Initialize the seed to a default value only before the
956 *> first run
957 *> = 2: Like 1, but use the seed values on the next line
958 *>
959 *> If line 8 was 2:
960 *>
961 *> line 9: INTEGER array, dimension (4)
962 *> Four integer values for the random number seed.
963 *>
964 *> lines 9-EOF: Lines specifying matrix types, as for NEP.
965 *> The 3-character path name is 'CSD' for the CSD routine.
966 *>
967 *>-----------------------------------------------------------------------
968 *>
969 *> LSE data file:
970 *>
971 *> line 1: 'LSE' in columns 1 to 3.
972 *>
973 *> line 2: NN, INTEGER
974 *> Number of values of M, P, and N.
975 *>
976 *> line 3: MVAL, INTEGER array, dimension(NN)
977 *> Values of M.
978 *>
979 *> line 4: PVAL, INTEGER array, dimension(NN)
980 *> Values of P.
981 *>
982 *> line 5: NVAL, INTEGER array, dimension(NN)
983 *> Values of N, note P <= N <= P+M.
984 *>
985 *> line 6: THRESH, REAL
986 *> Threshold value for the test ratios. Information will be
987 *> printed about each test for which the test ratio is greater
988 *> than or equal to the threshold.
989 *>
990 *> line 7: TSTERR, LOGICAL
991 *> Flag indicating whether or not to test the error exits for
992 *> the LAPACK routines and driver routines.
993 *>
994 *> line 8: NEWSD, INTEGER
995 *> A code indicating how to set the random number seed.
996 *> = 0: Set the seed to a default value before each run
997 *> = 1: Initialize the seed to a default value only before the
998 *> first run
999 *> = 2: Like 1, but use the seed values on the next line
1000 *>
1001 *> If line 8 was 2:
1002 *>
1003 *> line 9: INTEGER array, dimension (4)
1004 *> Four integer values for the random number seed.
1005 *>
1006 *> lines 9-EOF: Lines specifying matrix types, as for NEP.
1007 *> The 3-character path name is 'GSV' for the generalized
1008 *> SVD routines.
1009 *>
1010 *>-----------------------------------------------------------------------
1011 *>
1012 *> NMAX is currently set to 132 and must be at least 12 for some of the
1013 *> precomputed examples, and LWORK = NMAX*(5*NMAX+20) in the parameter
1014 *> statements below. For SVD, we assume NRHS may be as big as N. The
1015 *> parameter NEED is set to 14 to allow for 14 N-by-N matrices for ZGG.
1016 *> \endverbatim
1017 *
1018 * Arguments:
1019 * ==========
1020 *
1021 *
1022 * Authors:
1023 * ========
1024 *
1025 *> \author Univ. of Tennessee
1026 *> \author Univ. of California Berkeley
1027 *> \author Univ. of Colorado Denver
1028 *> \author NAG Ltd.
1029 *
1030 *> \date June 2016
1031 *
1032 *> \ingroup complex16_eig
1033 *
1034 * =====================================================================
1035  PROGRAM zchkee
1036 *
1037 * -- LAPACK test routine (version 3.7.0) --
1038 * -- LAPACK is a software package provided by Univ. of Tennessee, --
1039 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
1040 * June 2016
1041 *
1042 * =====================================================================
1043 *
1044 * .. Parameters ..
1045  INTEGER NMAX
1046  parameter( nmax = 132 )
1047  INTEGER NCMAX
1048  parameter( ncmax = 20 )
1049  INTEGER NEED
1050  parameter( need = 14 )
1051  INTEGER LWORK
1052  parameter( lwork = nmax*( 5*nmax+20 ) )
1053  INTEGER LIWORK
1054  parameter( liwork = nmax*( nmax+20 ) )
1055  INTEGER MAXIN
1056  parameter( maxin = 20 )
1057  INTEGER MAXT
1058  parameter( maxt = 30 )
1059  INTEGER NIN, NOUT
1060  parameter( nin = 5, nout = 6 )
1061 * ..
1062 * .. Local Scalars ..
1063  LOGICAL ZBK, ZBL, ZES, ZEV, ZGK, ZGL, ZGS, ZGV, ZGX,
1064  $ zsx, zvx, zxv, csd, fatal, glm, gqr, gsv, lse,
1065  $ nep, sep, svd, tstchk, tstdif, tstdrv, tsterr,
1066  $ zbb, zgg, zhb
1067  CHARACTER C1
1068  CHARACTER*3 C3, PATH
1069  CHARACTER*32 VNAME
1070  CHARACTER*10 INTSTR
1071  CHARACTER*80 LINE
1072  INTEGER I, I1, IC, INFO, ITMP, K, LENP, MAXTYP, NEWSD,
1073  $ nk, nn, nparms, nrhs, ntypes,
1074  $ vers_major, vers_minor, vers_patch
1075  DOUBLE PRECISION EPS, S1, S2, THRESH, THRSHN
1076 * ..
1077 * .. Local Arrays ..
1078  LOGICAL DOTYPE( maxt ), LOGWRK( nmax )
1079  INTEGER IOLDSD( 4 ), ISEED( 4 ), IWORK( liwork ),
1080  $ kval( maxin ), mval( maxin ), mxbval( maxin ),
1081  $ nbcol( maxin ), nbmin( maxin ), nbval( maxin ),
1082  $ nsval( maxin ), nval( maxin ), nxval( maxin ),
1083  $ pval( maxin )
1084  INTEGER INMIN( maxin ), INWIN( maxin ), INIBL( maxin ),
1085  $ ishfts( maxin ), iacc22( maxin )
1086  DOUBLE PRECISION ALPHA( nmax ), BETA( nmax ), DR( nmax, 12 ),
1087  $ result( 500 ), rwork( lwork ), s( nmax*nmax )
1088  COMPLEX*16 A( nmax*nmax, need ), B( nmax*nmax, 5 ),
1089  $ c( ncmax*ncmax, ncmax*ncmax ), dc( nmax, 6 ),
1090  $ taua( nmax ), taub( nmax ), work( lwork ),
1091  $ x( 5*nmax )
1092 * ..
1093 * .. External Functions ..
1094  LOGICAL LSAMEN
1095  DOUBLE PRECISION DLAMCH, DSECND
1096  EXTERNAL lsamen, dlamch, dsecnd
1097 * ..
1098 * .. External Subroutines ..
1099  EXTERNAL alareq, xlaenv, zchkbb, zchkbd, zchkbk, zchkbl,
1105  $ zdrges3, zdrgev3,
1107 * ..
1108 * .. Intrinsic Functions ..
1109  INTRINSIC len, min
1110 * ..
1111 * .. Scalars in Common ..
1112  LOGICAL LERR, OK
1113  CHARACTER*32 SRNAMT
1114  INTEGER INFOT, MAXB, NPROC, NSHIFT, NUNIT, SELDIM,
1115  $ selopt
1116 * ..
1117 * .. Arrays in Common ..
1118  LOGICAL SELVAL( 20 )
1119  INTEGER IPARMS( 100 )
1120  DOUBLE PRECISION SELWI( 20 ), SELWR( 20 )
1121 * ..
1122 * .. Common blocks ..
1123  COMMON / cenvir / nproc, nshift, maxb
1124  COMMON / infoc / infot, nunit, ok, lerr
1125  COMMON / srnamc / srnamt
1126  COMMON / sslct / selopt, seldim, selval, selwr, selwi
1127  COMMON / claenv / iparms
1128 * ..
1129 * .. Data statements ..
1130  DATA intstr / '0123456789' /
1131  DATA ioldsd / 0, 0, 0, 1 /
1132 * ..
1133 * .. Executable Statements ..
1134 *
1135  a = 0.0
1136  b = 0.0
1137  c = 0.0
1138  dc = 0.0
1139  s1 = dsecnd( )
1140  fatal = .false.
1141  nunit = nout
1142 *
1143 * Return to here to read multiple sets of data
1144 *
1145  10 CONTINUE
1146 *
1147 * Read the first line and set the 3-character test path
1148 *
1149  READ( nin, fmt = '(A80)', end = 380 )line
1150  path = line( 1: 3 )
1151  nep = lsamen( 3, path, 'NEP' ) .OR. lsamen( 3, path, 'ZHS' )
1152  sep = lsamen( 3, path, 'SEP' ) .OR. lsamen( 3, path, 'ZST' ) .OR.
1153  $ lsamen( 3, path, 'ZSG' ) .OR. lsamen( 3, path, 'SE2' )
1154  svd = lsamen( 3, path, 'SVD' ) .OR. lsamen( 3, path, 'ZBD' )
1155  zev = lsamen( 3, path, 'ZEV' )
1156  zes = lsamen( 3, path, 'ZES' )
1157  zvx = lsamen( 3, path, 'ZVX' )
1158  zsx = lsamen( 3, path, 'ZSX' )
1159  zgg = lsamen( 3, path, 'ZGG' )
1160  zgs = lsamen( 3, path, 'ZGS' )
1161  zgx = lsamen( 3, path, 'ZGX' )
1162  zgv = lsamen( 3, path, 'ZGV' )
1163  zxv = lsamen( 3, path, 'ZXV' )
1164  zhb = lsamen( 3, path, 'ZHB' )
1165  zbb = lsamen( 3, path, 'ZBB' )
1166  glm = lsamen( 3, path, 'GLM' )
1167  gqr = lsamen( 3, path, 'GQR' ) .OR. lsamen( 3, path, 'GRQ' )
1168  gsv = lsamen( 3, path, 'GSV' )
1169  csd = lsamen( 3, path, 'CSD' )
1170  lse = lsamen( 3, path, 'LSE' )
1171  zbl = lsamen( 3, path, 'ZBL' )
1172  zbk = lsamen( 3, path, 'ZBK' )
1173  zgl = lsamen( 3, path, 'ZGL' )
1174  zgk = lsamen( 3, path, 'ZGK' )
1175 *
1176 * Report values of parameters.
1177 *
1178  IF( path.EQ.' ' ) THEN
1179  GO TO 10
1180  ELSE IF( nep ) THEN
1181  WRITE( nout, fmt = 9987 )
1182  ELSE IF( sep ) THEN
1183  WRITE( nout, fmt = 9986 )
1184  ELSE IF( svd ) THEN
1185  WRITE( nout, fmt = 9985 )
1186  ELSE IF( zev ) THEN
1187  WRITE( nout, fmt = 9979 )
1188  ELSE IF( zes ) THEN
1189  WRITE( nout, fmt = 9978 )
1190  ELSE IF( zvx ) THEN
1191  WRITE( nout, fmt = 9977 )
1192  ELSE IF( zsx ) THEN
1193  WRITE( nout, fmt = 9976 )
1194  ELSE IF( zgg ) THEN
1195  WRITE( nout, fmt = 9975 )
1196  ELSE IF( zgs ) THEN
1197  WRITE( nout, fmt = 9964 )
1198  ELSE IF( zgx ) THEN
1199  WRITE( nout, fmt = 9965 )
1200  ELSE IF( zgv ) THEN
1201  WRITE( nout, fmt = 9963 )
1202  ELSE IF( zxv ) THEN
1203  WRITE( nout, fmt = 9962 )
1204  ELSE IF( zhb ) THEN
1205  WRITE( nout, fmt = 9974 )
1206  ELSE IF( zbb ) THEN
1207  WRITE( nout, fmt = 9967 )
1208  ELSE IF( glm ) THEN
1209  WRITE( nout, fmt = 9971 )
1210  ELSE IF( gqr ) THEN
1211  WRITE( nout, fmt = 9970 )
1212  ELSE IF( gsv ) THEN
1213  WRITE( nout, fmt = 9969 )
1214  ELSE IF( csd ) THEN
1215  WRITE( nout, fmt = 9960 )
1216  ELSE IF( lse ) THEN
1217  WRITE( nout, fmt = 9968 )
1218  ELSE IF( zbl ) THEN
1219 *
1220 * ZGEBAL: Balancing
1221 *
1222  CALL zchkbl( nin, nout )
1223  GO TO 380
1224  ELSE IF( zbk ) THEN
1225 *
1226 * ZGEBAK: Back transformation
1227 *
1228  CALL zchkbk( nin, nout )
1229  GO TO 380
1230  ELSE IF( zgl ) THEN
1231 *
1232 * ZGGBAL: Balancing
1233 *
1234  CALL zchkgl( nin, nout )
1235  GO TO 380
1236  ELSE IF( zgk ) THEN
1237 *
1238 * ZGGBAK: Back transformation
1239 *
1240  CALL zchkgk( nin, nout )
1241  GO TO 380
1242  ELSE IF( lsamen( 3, path, 'ZEC' ) ) THEN
1243 *
1244 * ZEC: Eigencondition estimation
1245 *
1246  READ( nin, fmt = * )thresh
1247  CALL xlaenv( 1, 1 )
1248  CALL xlaenv( 12, 1 )
1249  tsterr = .true.
1250  CALL zchkec( thresh, tsterr, nin, nout )
1251  GO TO 380
1252  ELSE
1253  WRITE( nout, fmt = 9992 )path
1254  GO TO 380
1255  END IF
1256  CALL ilaver( vers_major, vers_minor, vers_patch )
1257  WRITE( nout, fmt = 9972 ) vers_major, vers_minor, vers_patch
1258  WRITE( nout, fmt = 9984 )
1259 *
1260 * Read the number of values of M, P, and N.
1261 *
1262  READ( nin, fmt = * )nn
1263  IF( nn.LT.0 ) THEN
1264  WRITE( nout, fmt = 9989 )' NN ', nn, 1
1265  nn = 0
1266  fatal = .true.
1267  ELSE IF( nn.GT.maxin ) THEN
1268  WRITE( nout, fmt = 9988 )' NN ', nn, maxin
1269  nn = 0
1270  fatal = .true.
1271  END IF
1272 *
1273 * Read the values of M
1274 *
1275  IF( .NOT.( zgx .OR. zxv ) ) THEN
1276  READ( nin, fmt = * )( mval( i ), i = 1, nn )
1277  IF( svd ) THEN
1278  vname = ' M '
1279  ELSE
1280  vname = ' N '
1281  END IF
1282  DO 20 i = 1, nn
1283  IF( mval( i ).LT.0 ) THEN
1284  WRITE( nout, fmt = 9989 )vname, mval( i ), 0
1285  fatal = .true.
1286  ELSE IF( mval( i ).GT.nmax ) THEN
1287  WRITE( nout, fmt = 9988 )vname, mval( i ), nmax
1288  fatal = .true.
1289  END IF
1290  20 CONTINUE
1291  WRITE( nout, fmt = 9983 )'M: ', ( mval( i ), i = 1, nn )
1292  END IF
1293 *
1294 * Read the values of P
1295 *
1296  IF( glm .OR. gqr .OR. gsv .OR. csd .OR. lse ) THEN
1297  READ( nin, fmt = * )( pval( i ), i = 1, nn )
1298  DO 30 i = 1, nn
1299  IF( pval( i ).LT.0 ) THEN
1300  WRITE( nout, fmt = 9989 )' P ', pval( i ), 0
1301  fatal = .true.
1302  ELSE IF( pval( i ).GT.nmax ) THEN
1303  WRITE( nout, fmt = 9988 )' P ', pval( i ), nmax
1304  fatal = .true.
1305  END IF
1306  30 CONTINUE
1307  WRITE( nout, fmt = 9983 )'P: ', ( pval( i ), i = 1, nn )
1308  END IF
1309 *
1310 * Read the values of N
1311 *
1312  IF( svd .OR. zbb .OR. glm .OR. gqr .OR. gsv .OR. csd .OR.
1313  $ lse ) THEN
1314  READ( nin, fmt = * )( nval( i ), i = 1, nn )
1315  DO 40 i = 1, nn
1316  IF( nval( i ).LT.0 ) THEN
1317  WRITE( nout, fmt = 9989 )' N ', nval( i ), 0
1318  fatal = .true.
1319  ELSE IF( nval( i ).GT.nmax ) THEN
1320  WRITE( nout, fmt = 9988 )' N ', nval( i ), nmax
1321  fatal = .true.
1322  END IF
1323  40 CONTINUE
1324  ELSE
1325  DO 50 i = 1, nn
1326  nval( i ) = mval( i )
1327  50 CONTINUE
1328  END IF
1329  IF( .NOT.( zgx .OR. zxv ) ) THEN
1330  WRITE( nout, fmt = 9983 )'N: ', ( nval( i ), i = 1, nn )
1331  ELSE
1332  WRITE( nout, fmt = 9983 )'N: ', nn
1333  END IF
1334 *
1335 * Read the number of values of K, followed by the values of K
1336 *
1337  IF( zhb .OR. zbb ) THEN
1338  READ( nin, fmt = * )nk
1339  READ( nin, fmt = * )( kval( i ), i = 1, nk )
1340  DO 60 i = 1, nk
1341  IF( kval( i ).LT.0 ) THEN
1342  WRITE( nout, fmt = 9989 )' K ', kval( i ), 0
1343  fatal = .true.
1344  ELSE IF( kval( i ).GT.nmax ) THEN
1345  WRITE( nout, fmt = 9988 )' K ', kval( i ), nmax
1346  fatal = .true.
1347  END IF
1348  60 CONTINUE
1349  WRITE( nout, fmt = 9983 )'K: ', ( kval( i ), i = 1, nk )
1350  END IF
1351 *
1352  IF( zev .OR. zes .OR. zvx .OR. zsx ) THEN
1353 *
1354 * For the nonsymmetric QR driver routines, only one set of
1355 * parameters is allowed.
1356 *
1357  READ( nin, fmt = * )nbval( 1 ), nbmin( 1 ), nxval( 1 ),
1358  $ inmin( 1 ), inwin( 1 ), inibl(1), ishfts(1), iacc22(1)
1359  IF( nbval( 1 ).LT.1 ) THEN
1360  WRITE( nout, fmt = 9989 )' NB ', nbval( 1 ), 1
1361  fatal = .true.
1362  ELSE IF( nbmin( 1 ).LT.1 ) THEN
1363  WRITE( nout, fmt = 9989 )'NBMIN ', nbmin( 1 ), 1
1364  fatal = .true.
1365  ELSE IF( nxval( 1 ).LT.1 ) THEN
1366  WRITE( nout, fmt = 9989 )' NX ', nxval( 1 ), 1
1367  fatal = .true.
1368  ELSE IF( inmin( 1 ).LT.1 ) THEN
1369  WRITE( nout, fmt = 9989 )' INMIN ', inmin( 1 ), 1
1370  fatal = .true.
1371  ELSE IF( inwin( 1 ).LT.1 ) THEN
1372  WRITE( nout, fmt = 9989 )' INWIN ', inwin( 1 ), 1
1373  fatal = .true.
1374  ELSE IF( inibl( 1 ).LT.1 ) THEN
1375  WRITE( nout, fmt = 9989 )' INIBL ', inibl( 1 ), 1
1376  fatal = .true.
1377  ELSE IF( ishfts( 1 ).LT.1 ) THEN
1378  WRITE( nout, fmt = 9989 )' ISHFTS ', ishfts( 1 ), 1
1379  fatal = .true.
1380  ELSE IF( iacc22( 1 ).LT.0 ) THEN
1381  WRITE( nout, fmt = 9989 )' IACC22 ', iacc22( 1 ), 0
1382  fatal = .true.
1383  END IF
1384  CALL xlaenv( 1, nbval( 1 ) )
1385  CALL xlaenv( 2, nbmin( 1 ) )
1386  CALL xlaenv( 3, nxval( 1 ) )
1387  CALL xlaenv(12, max( 11, inmin( 1 ) ) )
1388  CALL xlaenv(13, inwin( 1 ) )
1389  CALL xlaenv(14, inibl( 1 ) )
1390  CALL xlaenv(15, ishfts( 1 ) )
1391  CALL xlaenv(16, iacc22( 1 ) )
1392  WRITE( nout, fmt = 9983 )'NB: ', nbval( 1 )
1393  WRITE( nout, fmt = 9983 )'NBMIN:', nbmin( 1 )
1394  WRITE( nout, fmt = 9983 )'NX: ', nxval( 1 )
1395  WRITE( nout, fmt = 9983 )'INMIN: ', inmin( 1 )
1396  WRITE( nout, fmt = 9983 )'INWIN: ', inwin( 1 )
1397  WRITE( nout, fmt = 9983 )'INIBL: ', inibl( 1 )
1398  WRITE( nout, fmt = 9983 )'ISHFTS: ', ishfts( 1 )
1399  WRITE( nout, fmt = 9983 )'IACC22: ', iacc22( 1 )
1400 *
1401  ELSE IF( zgs .OR. zgx .OR. zgv .OR. zxv ) THEN
1402 *
1403 * For the nonsymmetric generalized driver routines, only one set of
1404 * parameters is allowed.
1405 *
1406  READ( nin, fmt = * )nbval( 1 ), nbmin( 1 ), nxval( 1 ),
1407  $ nsval( 1 ), mxbval( 1 )
1408  IF( nbval( 1 ).LT.1 ) THEN
1409  WRITE( nout, fmt = 9989 )' NB ', nbval( 1 ), 1
1410  fatal = .true.
1411  ELSE IF( nbmin( 1 ).LT.1 ) THEN
1412  WRITE( nout, fmt = 9989 )'NBMIN ', nbmin( 1 ), 1
1413  fatal = .true.
1414  ELSE IF( nxval( 1 ).LT.1 ) THEN
1415  WRITE( nout, fmt = 9989 )' NX ', nxval( 1 ), 1
1416  fatal = .true.
1417  ELSE IF( nsval( 1 ).LT.2 ) THEN
1418  WRITE( nout, fmt = 9989 )' NS ', nsval( 1 ), 2
1419  fatal = .true.
1420  ELSE IF( mxbval( 1 ).LT.1 ) THEN
1421  WRITE( nout, fmt = 9989 )' MAXB ', mxbval( 1 ), 1
1422  fatal = .true.
1423  END IF
1424  CALL xlaenv( 1, nbval( 1 ) )
1425  CALL xlaenv( 2, nbmin( 1 ) )
1426  CALL xlaenv( 3, nxval( 1 ) )
1427  CALL xlaenv( 4, nsval( 1 ) )
1428  CALL xlaenv( 8, mxbval( 1 ) )
1429  WRITE( nout, fmt = 9983 )'NB: ', nbval( 1 )
1430  WRITE( nout, fmt = 9983 )'NBMIN:', nbmin( 1 )
1431  WRITE( nout, fmt = 9983 )'NX: ', nxval( 1 )
1432  WRITE( nout, fmt = 9983 )'NS: ', nsval( 1 )
1433  WRITE( nout, fmt = 9983 )'MAXB: ', mxbval( 1 )
1434  ELSE IF( .NOT.zhb .AND. .NOT.glm .AND. .NOT.gqr .AND. .NOT.
1435  $ gsv .AND. .NOT.csd .AND. .NOT.lse ) THEN
1436 *
1437 * For the other paths, the number of parameters can be varied
1438 * from the input file. Read the number of parameter values.
1439 *
1440  READ( nin, fmt = * )nparms
1441  IF( nparms.LT.1 ) THEN
1442  WRITE( nout, fmt = 9989 )'NPARMS', nparms, 1
1443  nparms = 0
1444  fatal = .true.
1445  ELSE IF( nparms.GT.maxin ) THEN
1446  WRITE( nout, fmt = 9988 )'NPARMS', nparms, maxin
1447  nparms = 0
1448  fatal = .true.
1449  END IF
1450 *
1451 * Read the values of NB
1452 *
1453  IF( .NOT.zbb ) THEN
1454  READ( nin, fmt = * )( nbval( i ), i = 1, nparms )
1455  DO 70 i = 1, nparms
1456  IF( nbval( i ).LT.0 ) THEN
1457  WRITE( nout, fmt = 9989 )' NB ', nbval( i ), 0
1458  fatal = .true.
1459  ELSE IF( nbval( i ).GT.nmax ) THEN
1460  WRITE( nout, fmt = 9988 )' NB ', nbval( i ), nmax
1461  fatal = .true.
1462  END IF
1463  70 CONTINUE
1464  WRITE( nout, fmt = 9983 )'NB: ',
1465  $ ( nbval( i ), i = 1, nparms )
1466  END IF
1467 *
1468 * Read the values of NBMIN
1469 *
1470  IF( nep .OR. sep .OR. svd .OR. zgg ) THEN
1471  READ( nin, fmt = * )( nbmin( i ), i = 1, nparms )
1472  DO 80 i = 1, nparms
1473  IF( nbmin( i ).LT.0 ) THEN
1474  WRITE( nout, fmt = 9989 )'NBMIN ', nbmin( i ), 0
1475  fatal = .true.
1476  ELSE IF( nbmin( i ).GT.nmax ) THEN
1477  WRITE( nout, fmt = 9988 )'NBMIN ', nbmin( i ), nmax
1478  fatal = .true.
1479  END IF
1480  80 CONTINUE
1481  WRITE( nout, fmt = 9983 )'NBMIN:',
1482  $ ( nbmin( i ), i = 1, nparms )
1483  ELSE
1484  DO 90 i = 1, nparms
1485  nbmin( i ) = 1
1486  90 CONTINUE
1487  END IF
1488 *
1489 * Read the values of NX
1490 *
1491  IF( nep .OR. sep .OR. svd ) THEN
1492  READ( nin, fmt = * )( nxval( i ), i = 1, nparms )
1493  DO 100 i = 1, nparms
1494  IF( nxval( i ).LT.0 ) THEN
1495  WRITE( nout, fmt = 9989 )' NX ', nxval( i ), 0
1496  fatal = .true.
1497  ELSE IF( nxval( i ).GT.nmax ) THEN
1498  WRITE( nout, fmt = 9988 )' NX ', nxval( i ), nmax
1499  fatal = .true.
1500  END IF
1501  100 CONTINUE
1502  WRITE( nout, fmt = 9983 )'NX: ',
1503  $ ( nxval( i ), i = 1, nparms )
1504  ELSE
1505  DO 110 i = 1, nparms
1506  nxval( i ) = 1
1507  110 CONTINUE
1508  END IF
1509 *
1510 * Read the values of NSHIFT (if ZGG) or NRHS (if SVD
1511 * or ZBB).
1512 *
1513  IF( svd .OR. zbb .OR. zgg ) THEN
1514  READ( nin, fmt = * )( nsval( i ), i = 1, nparms )
1515  DO 120 i = 1, nparms
1516  IF( nsval( i ).LT.0 ) THEN
1517  WRITE( nout, fmt = 9989 )' NS ', nsval( i ), 0
1518  fatal = .true.
1519  ELSE IF( nsval( i ).GT.nmax ) THEN
1520  WRITE( nout, fmt = 9988 )' NS ', nsval( i ), nmax
1521  fatal = .true.
1522  END IF
1523  120 CONTINUE
1524  WRITE( nout, fmt = 9983 )'NS: ',
1525  $ ( nsval( i ), i = 1, nparms )
1526  ELSE
1527  DO 130 i = 1, nparms
1528  nsval( i ) = 1
1529  130 CONTINUE
1530  END IF
1531 *
1532 * Read the values for MAXB.
1533 *
1534  IF( zgg ) THEN
1535  READ( nin, fmt = * )( mxbval( i ), i = 1, nparms )
1536  DO 140 i = 1, nparms
1537  IF( mxbval( i ).LT.0 ) THEN
1538  WRITE( nout, fmt = 9989 )' MAXB ', mxbval( i ), 0
1539  fatal = .true.
1540  ELSE IF( mxbval( i ).GT.nmax ) THEN
1541  WRITE( nout, fmt = 9988 )' MAXB ', mxbval( i ), nmax
1542  fatal = .true.
1543  END IF
1544  140 CONTINUE
1545  WRITE( nout, fmt = 9983 )'MAXB: ',
1546  $ ( mxbval( i ), i = 1, nparms )
1547  ELSE
1548  DO 150 i = 1, nparms
1549  mxbval( i ) = 1
1550  150 CONTINUE
1551  END IF
1552 *
1553 * Read the values for INMIN.
1554 *
1555  IF( nep ) THEN
1556  READ( nin, fmt = * )( inmin( i ), i = 1, nparms )
1557  DO 540 i = 1, nparms
1558  IF( inmin( i ).LT.0 ) THEN
1559  WRITE( nout, fmt = 9989 )' INMIN ', inmin( i ), 0
1560  fatal = .true.
1561  END IF
1562  540 CONTINUE
1563  WRITE( nout, fmt = 9983 )'INMIN: ',
1564  $ ( inmin( i ), i = 1, nparms )
1565  ELSE
1566  DO 550 i = 1, nparms
1567  inmin( i ) = 1
1568  550 CONTINUE
1569  END IF
1570 *
1571 * Read the values for INWIN.
1572 *
1573  IF( nep ) THEN
1574  READ( nin, fmt = * )( inwin( i ), i = 1, nparms )
1575  DO 560 i = 1, nparms
1576  IF( inwin( i ).LT.0 ) THEN
1577  WRITE( nout, fmt = 9989 )' INWIN ', inwin( i ), 0
1578  fatal = .true.
1579  END IF
1580  560 CONTINUE
1581  WRITE( nout, fmt = 9983 )'INWIN: ',
1582  $ ( inwin( i ), i = 1, nparms )
1583  ELSE
1584  DO 570 i = 1, nparms
1585  inwin( i ) = 1
1586  570 CONTINUE
1587  END IF
1588 *
1589 * Read the values for INIBL.
1590 *
1591  IF( nep ) THEN
1592  READ( nin, fmt = * )( inibl( i ), i = 1, nparms )
1593  DO 580 i = 1, nparms
1594  IF( inibl( i ).LT.0 ) THEN
1595  WRITE( nout, fmt = 9989 )' INIBL ', inibl( i ), 0
1596  fatal = .true.
1597  END IF
1598  580 CONTINUE
1599  WRITE( nout, fmt = 9983 )'INIBL: ',
1600  $ ( inibl( i ), i = 1, nparms )
1601  ELSE
1602  DO 590 i = 1, nparms
1603  inibl( i ) = 1
1604  590 CONTINUE
1605  END IF
1606 *
1607 * Read the values for ISHFTS.
1608 *
1609  IF( nep ) THEN
1610  READ( nin, fmt = * )( ishfts( i ), i = 1, nparms )
1611  DO 600 i = 1, nparms
1612  IF( ishfts( i ).LT.0 ) THEN
1613  WRITE( nout, fmt = 9989 )' ISHFTS ', ishfts( i ), 0
1614  fatal = .true.
1615  END IF
1616  600 CONTINUE
1617  WRITE( nout, fmt = 9983 )'ISHFTS: ',
1618  $ ( ishfts( i ), i = 1, nparms )
1619  ELSE
1620  DO 610 i = 1, nparms
1621  ishfts( i ) = 1
1622  610 CONTINUE
1623  END IF
1624 *
1625 * Read the values for IACC22.
1626 *
1627  IF( nep .OR. zgg ) THEN
1628  READ( nin, fmt = * )( iacc22( i ), i = 1, nparms )
1629  DO 620 i = 1, nparms
1630  IF( iacc22( i ).LT.0 ) THEN
1631  WRITE( nout, fmt = 9989 )' IACC22 ', iacc22( i ), 0
1632  fatal = .true.
1633  END IF
1634  620 CONTINUE
1635  WRITE( nout, fmt = 9983 )'IACC22: ',
1636  $ ( iacc22( i ), i = 1, nparms )
1637  ELSE
1638  DO 630 i = 1, nparms
1639  iacc22( i ) = 1
1640  630 CONTINUE
1641  END IF
1642 *
1643 * Read the values for NBCOL.
1644 *
1645  IF( zgg ) THEN
1646  READ( nin, fmt = * )( nbcol( i ), i = 1, nparms )
1647  DO 160 i = 1, nparms
1648  IF( nbcol( i ).LT.0 ) THEN
1649  WRITE( nout, fmt = 9989 )'NBCOL ', nbcol( i ), 0
1650  fatal = .true.
1651  ELSE IF( nbcol( i ).GT.nmax ) THEN
1652  WRITE( nout, fmt = 9988 )'NBCOL ', nbcol( i ), nmax
1653  fatal = .true.
1654  END IF
1655  160 CONTINUE
1656  WRITE( nout, fmt = 9983 )'NBCOL:',
1657  $ ( nbcol( i ), i = 1, nparms )
1658  ELSE
1659  DO 170 i = 1, nparms
1660  nbcol( i ) = 1
1661  170 CONTINUE
1662  END IF
1663  END IF
1664 *
1665 * Calculate and print the machine dependent constants.
1666 *
1667  WRITE( nout, fmt = * )
1668  eps = dlamch( 'Underflow threshold' )
1669  WRITE( nout, fmt = 9981 )'underflow', eps
1670  eps = dlamch( 'Overflow threshold' )
1671  WRITE( nout, fmt = 9981 )'overflow ', eps
1672  eps = dlamch( 'Epsilon' )
1673  WRITE( nout, fmt = 9981 )'precision', eps
1674 *
1675 * Read the threshold value for the test ratios.
1676 *
1677  READ( nin, fmt = * )thresh
1678  WRITE( nout, fmt = 9982 )thresh
1679  IF( sep .OR. svd .OR. zgg ) THEN
1680 *
1681 * Read the flag that indicates whether to test LAPACK routines.
1682 *
1683  READ( nin, fmt = * )tstchk
1684 *
1685 * Read the flag that indicates whether to test driver routines.
1686 *
1687  READ( nin, fmt = * )tstdrv
1688  END IF
1689 *
1690 * Read the flag that indicates whether to test the error exits.
1691 *
1692  READ( nin, fmt = * )tsterr
1693 *
1694 * Read the code describing how to set the random number seed.
1695 *
1696  READ( nin, fmt = * )newsd
1697 *
1698 * If NEWSD = 2, read another line with 4 integers for the seed.
1699 *
1700  IF( newsd.EQ.2 )
1701  $ READ( nin, fmt = * )( ioldsd( i ), i = 1, 4 )
1702 *
1703  DO 180 i = 1, 4
1704  iseed( i ) = ioldsd( i )
1705  180 CONTINUE
1706 *
1707  IF( fatal ) THEN
1708  WRITE( nout, fmt = 9999 )
1709  stop
1710  END IF
1711 *
1712 * Read the input lines indicating the test path and its parameters.
1713 * The first three characters indicate the test path, and the number
1714 * of test matrix types must be the first nonblank item in columns
1715 * 4-80.
1716 *
1717  190 CONTINUE
1718 *
1719  IF( .NOT.( zgx .OR. zxv ) ) THEN
1720 *
1721  200 CONTINUE
1722  READ( nin, fmt = '(A80)', end = 380 )line
1723  c3 = line( 1: 3 )
1724  lenp = len( line )
1725  i = 3
1726  itmp = 0
1727  i1 = 0
1728  210 CONTINUE
1729  i = i + 1
1730  IF( i.GT.lenp ) THEN
1731  IF( i1.GT.0 ) THEN
1732  GO TO 240
1733  ELSE
1734  ntypes = maxt
1735  GO TO 240
1736  END IF
1737  END IF
1738  IF( line( i: i ).NE.' ' .AND. line( i: i ).NE.',' ) THEN
1739  i1 = i
1740  c1 = line( i1: i1 )
1741 *
1742 * Check that a valid integer was read
1743 *
1744  DO 220 k = 1, 10
1745  IF( c1.EQ.intstr( k: k ) ) THEN
1746  ic = k - 1
1747  GO TO 230
1748  END IF
1749  220 CONTINUE
1750  WRITE( nout, fmt = 9991 )i, line
1751  GO TO 200
1752  230 CONTINUE
1753  itmp = 10*itmp + ic
1754  GO TO 210
1755  ELSE IF( i1.GT.0 ) THEN
1756  GO TO 240
1757  ELSE
1758  GO TO 210
1759  END IF
1760  240 CONTINUE
1761  ntypes = itmp
1762 *
1763 * Skip the tests if NTYPES is <= 0.
1764 *
1765  IF( .NOT.( zev .OR. zes .OR. zvx .OR. zsx .OR. zgv .OR.
1766  $ zgs ) .AND. ntypes.LE.0 ) THEN
1767  WRITE( nout, fmt = 9990 )c3
1768  GO TO 200
1769  END IF
1770 *
1771  ELSE
1772  IF( zgx )
1773  $ c3 = 'ZGX'
1774  IF( zxv )
1775  $ c3 = 'ZXV'
1776  END IF
1777 *
1778 * Reset the random number seed.
1779 *
1780  IF( newsd.EQ.0 ) THEN
1781  DO 250 k = 1, 4
1782  iseed( k ) = ioldsd( k )
1783  250 CONTINUE
1784  END IF
1785 *
1786  IF( lsamen( 3, c3, 'ZHS' ) .OR. lsamen( 3, c3, 'NEP' ) ) THEN
1787 *
1788 * -------------------------------------
1789 * NEP: Nonsymmetric Eigenvalue Problem
1790 * -------------------------------------
1791 * Vary the parameters
1792 * NB = block size
1793 * NBMIN = minimum block size
1794 * NX = crossover point
1795 * NS = number of shifts
1796 * MAXB = minimum submatrix size
1797 *
1798  maxtyp = 21
1799  ntypes = min( maxtyp, ntypes )
1800  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1801  CALL xlaenv( 1, 1 )
1802  IF( tsterr )
1803  $ CALL zerrhs( 'ZHSEQR', nout )
1804  DO 270 i = 1, nparms
1805  CALL xlaenv( 1, nbval( i ) )
1806  CALL xlaenv( 2, nbmin( i ) )
1807  CALL xlaenv( 3, nxval( i ) )
1808  CALL xlaenv(12, max( 11, inmin( i ) ) )
1809  CALL xlaenv(13, inwin( i ) )
1810  CALL xlaenv(14, inibl( i ) )
1811  CALL xlaenv(15, ishfts( i ) )
1812  CALL xlaenv(16, iacc22( i ) )
1813 *
1814  IF( newsd.EQ.0 ) THEN
1815  DO 260 k = 1, 4
1816  iseed( k ) = ioldsd( k )
1817  260 CONTINUE
1818  END IF
1819  WRITE( nout, fmt = 9961 )c3, nbval( i ), nbmin( i ),
1820  $ nxval( i ), max( 11, inmin(i)),
1821  $ inwin( i ), inibl( i ), ishfts( i ), iacc22( i )
1822  CALL zchkhs( nn, nval, maxtyp, dotype, iseed, thresh, nout,
1823  $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
1824  $ a( 1, 4 ), a( 1, 5 ), nmax, a( 1, 6 ),
1825  $ a( 1, 7 ), dc( 1, 1 ), dc( 1, 2 ), a( 1, 8 ),
1826  $ a( 1, 9 ), a( 1, 10 ), a( 1, 11 ), a( 1, 12 ),
1827  $ dc( 1, 3 ), work, lwork, rwork, iwork, logwrk,
1828  $ result, info )
1829  IF( info.NE.0 )
1830  $ WRITE( nout, fmt = 9980 )'ZCHKHS', info
1831  270 CONTINUE
1832 *
1833  ELSE IF( lsamen( 3, c3, 'ZST' ) .OR. lsamen( 3, c3, 'SEP' )
1834  $ .OR. lsamen( 3, c3, 'SE2' ) ) THEN
1835 *
1836 * ----------------------------------
1837 * SEP: Symmetric Eigenvalue Problem
1838 * ----------------------------------
1839 * Vary the parameters
1840 * NB = block size
1841 * NBMIN = minimum block size
1842 * NX = crossover point
1843 *
1844  maxtyp = 21
1845  ntypes = min( maxtyp, ntypes )
1846  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1847  CALL xlaenv( 1, 1 )
1848  CALL xlaenv( 9, 25 )
1849  IF( tsterr )
1850  $ CALL zerrst( 'ZST', nout )
1851  DO 290 i = 1, nparms
1852  CALL xlaenv( 1, nbval( i ) )
1853  CALL xlaenv( 2, nbmin( i ) )
1854  CALL xlaenv( 3, nxval( i ) )
1855 *
1856  IF( newsd.EQ.0 ) THEN
1857  DO 280 k = 1, 4
1858  iseed( k ) = ioldsd( k )
1859  280 CONTINUE
1860  END IF
1861  WRITE( nout, fmt = 9997 )c3, nbval( i ), nbmin( i ),
1862  $ nxval( i )
1863  IF( tstchk ) THEN
1864  IF( lsamen( 3, c3, 'SE2' ) ) THEN
1865  CALL zchkst2stg( nn, nval, maxtyp, dotype, iseed, thresh,
1866  $ nout, a( 1, 1 ), nmax, a( 1, 2 ),
1867  $ dr( 1, 1 ), dr( 1, 2 ), dr( 1, 3 ),
1868  $ dr( 1, 4 ), dr( 1, 5 ), dr( 1, 6 ),
1869  $ dr( 1, 7 ), dr( 1, 8 ), dr( 1, 9 ),
1870  $ dr( 1, 10 ), dr( 1, 11 ), a( 1, 3 ), nmax,
1871  $ a( 1, 4 ), a( 1, 5 ), dc( 1, 1 ), a( 1, 6 ),
1872  $ work, lwork, rwork, lwork, iwork, liwork,
1873  $ result, info )
1874  ELSE
1875  CALL zchkst( nn, nval, maxtyp, dotype, iseed, thresh,
1876  $ nout, a( 1, 1 ), nmax, a( 1, 2 ),
1877  $ dr( 1, 1 ), dr( 1, 2 ), dr( 1, 3 ),
1878  $ dr( 1, 4 ), dr( 1, 5 ), dr( 1, 6 ),
1879  $ dr( 1, 7 ), dr( 1, 8 ), dr( 1, 9 ),
1880  $ dr( 1, 10 ), dr( 1, 11 ), a( 1, 3 ), nmax,
1881  $ a( 1, 4 ), a( 1, 5 ), dc( 1, 1 ), a( 1, 6 ),
1882  $ work, lwork, rwork, lwork, iwork, liwork,
1883  $ result, info )
1884  ENDIF
1885  IF( info.NE.0 )
1886  $ WRITE( nout, fmt = 9980 )'ZCHKST', info
1887  END IF
1888  IF( tstdrv ) THEN
1889  IF( lsamen( 3, c3, 'SE2' ) ) THEN
1890  CALL zdrvst2stg( nn, nval, 18, dotype, iseed, thresh,
1891  $ nout, a( 1, 1 ), nmax, dr( 1, 3 ), dr( 1, 4 ),
1892  $ dr( 1, 5 ), dr( 1, 8 ), dr( 1, 9 ),
1893  $ dr( 1, 10 ), a( 1, 2 ), nmax, a( 1, 3 ),
1894  $ dc( 1, 1 ), a( 1, 4 ), work, lwork, rwork,
1895  $ lwork, iwork, liwork, result, info )
1896  ELSE
1897  CALL zdrvst( nn, nval, 18, dotype, iseed, thresh, nout,
1898  $ a( 1, 1 ), nmax, dr( 1, 3 ), dr( 1, 4 ),
1899  $ dr( 1, 5 ), dr( 1, 8 ), dr( 1, 9 ),
1900  $ dr( 1, 10 ), a( 1, 2 ), nmax, a( 1, 3 ),
1901  $ dc( 1, 1 ), a( 1, 4 ), work, lwork, rwork,
1902  $ lwork, iwork, liwork, result, info )
1903  ENDIF
1904  IF( info.NE.0 )
1905  $ WRITE( nout, fmt = 9980 )'ZDRVST', info
1906  END IF
1907  290 CONTINUE
1908 *
1909  ELSE IF( lsamen( 3, c3, 'ZSG' ) ) THEN
1910 *
1911 * ----------------------------------------------
1912 * ZSG: Hermitian Generalized Eigenvalue Problem
1913 * ----------------------------------------------
1914 * Vary the parameters
1915 * NB = block size
1916 * NBMIN = minimum block size
1917 * NX = crossover point
1918 *
1919  maxtyp = 21
1920  ntypes = min( maxtyp, ntypes )
1921  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1922  CALL xlaenv( 9, 25 )
1923  DO 310 i = 1, nparms
1924  CALL xlaenv( 1, nbval( i ) )
1925  CALL xlaenv( 2, nbmin( i ) )
1926  CALL xlaenv( 3, nxval( i ) )
1927 *
1928  IF( newsd.EQ.0 ) THEN
1929  DO 300 k = 1, 4
1930  iseed( k ) = ioldsd( k )
1931  300 CONTINUE
1932  END IF
1933  WRITE( nout, fmt = 9997 )c3, nbval( i ), nbmin( i ),
1934  $ nxval( i )
1935  IF( tstchk ) THEN
1936 * CALL ZDRVSG( NN, NVAL, MAXTYP, DOTYPE, ISEED, THRESH,
1937 * $ NOUT, A( 1, 1 ), NMAX, A( 1, 2 ), NMAX,
1938 * $ DR( 1, 3 ), A( 1, 3 ), NMAX, A( 1, 4 ),
1939 * $ A( 1, 5 ), A( 1, 6 ), A( 1, 7 ), WORK,
1940 * $ LWORK, RWORK, LWORK, IWORK, LIWORK, RESULT,
1941 * $ INFO )
1942  CALL zdrvsg2stg( nn, nval, maxtyp, dotype, iseed, thresh,
1943  $ nout, a( 1, 1 ), nmax, a( 1, 2 ), nmax,
1944  $ dr( 1, 3 ), dr( 1, 4 ), a( 1, 3 ), nmax,
1945  $ a( 1, 4 ), a( 1, 5 ), a( 1, 6 ),
1946  $ a( 1, 7 ), work, lwork, rwork, lwork,
1947  $ iwork, liwork, result, info )
1948  IF( info.NE.0 )
1949  $ WRITE( nout, fmt = 9980 )'ZDRVSG', info
1950  END IF
1951  310 CONTINUE
1952 *
1953  ELSE IF( lsamen( 3, c3, 'ZBD' ) .OR. lsamen( 3, c3, 'SVD' ) ) THEN
1954 *
1955 * ----------------------------------
1956 * SVD: Singular Value Decomposition
1957 * ----------------------------------
1958 * Vary the parameters
1959 * NB = block size
1960 * NBMIN = minimum block size
1961 * NX = crossover point
1962 * NRHS = number of right hand sides
1963 *
1964  maxtyp = 16
1965  ntypes = min( maxtyp, ntypes )
1966  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1967  CALL xlaenv( 9, 25 )
1968 *
1969 * Test the error exits
1970 *
1971  CALL xlaenv( 1, 1 )
1972  IF( tsterr .AND. tstchk )
1973  $ CALL zerrbd( 'ZBD', nout )
1974  IF( tsterr .AND. tstdrv )
1975  $ CALL zerred( 'ZBD', nout )
1976 *
1977  DO 330 i = 1, nparms
1978  nrhs = nsval( i )
1979  CALL xlaenv( 1, nbval( i ) )
1980  CALL xlaenv( 2, nbmin( i ) )
1981  CALL xlaenv( 3, nxval( i ) )
1982  IF( newsd.EQ.0 ) THEN
1983  DO 320 k = 1, 4
1984  iseed( k ) = ioldsd( k )
1985  320 CONTINUE
1986  END IF
1987  WRITE( nout, fmt = 9995 )c3, nbval( i ), nbmin( i ),
1988  $ nxval( i ), nrhs
1989  IF( tstchk ) THEN
1990  CALL zchkbd( nn, mval, nval, maxtyp, dotype, nrhs, iseed,
1991  $ thresh, a( 1, 1 ), nmax, dr( 1, 1 ),
1992  $ dr( 1, 2 ), dr( 1, 3 ), dr( 1, 4 ),
1993  $ a( 1, 2 ), nmax, a( 1, 3 ), a( 1, 4 ),
1994  $ a( 1, 5 ), nmax, a( 1, 6 ), nmax, a( 1, 7 ),
1995  $ a( 1, 8 ), work, lwork, rwork, nout, info )
1996  IF( info.NE.0 )
1997  $ WRITE( nout, fmt = 9980 )'ZCHKBD', info
1998  END IF
1999  IF( tstdrv )
2000  $ CALL zdrvbd( nn, mval, nval, maxtyp, dotype, iseed,
2001  $ thresh, a( 1, 1 ), nmax, a( 1, 2 ), nmax,
2002  $ a( 1, 3 ), nmax, a( 1, 4 ), a( 1, 5 ),
2003  $ a( 1, 6 ), dr( 1, 1 ), dr( 1, 2 ),
2004  $ dr( 1, 3 ), work, lwork, rwork, iwork, nout,
2005  $ info )
2006  330 CONTINUE
2007 *
2008  ELSE IF( lsamen( 3, c3, 'ZEV' ) ) THEN
2009 *
2010 * --------------------------------------------
2011 * ZEV: Nonsymmetric Eigenvalue Problem Driver
2012 * ZGEEV (eigenvalues and eigenvectors)
2013 * --------------------------------------------
2014 *
2015  maxtyp = 21
2016  ntypes = min( maxtyp, ntypes )
2017  IF( ntypes.LE.0 ) THEN
2018  WRITE( nout, fmt = 9990 )c3
2019  ELSE
2020  IF( tsterr )
2021  $ CALL zerred( c3, nout )
2022  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2023  CALL zdrvev( nn, nval, ntypes, dotype, iseed, thresh, nout,
2024  $ a( 1, 1 ), nmax, a( 1, 2 ), dc( 1, 1 ),
2025  $ dc( 1, 2 ), a( 1, 3 ), nmax, a( 1, 4 ), nmax,
2026  $ a( 1, 5 ), nmax, result, work, lwork, rwork,
2027  $ iwork, info )
2028  IF( info.NE.0 )
2029  $ WRITE( nout, fmt = 9980 )'ZGEEV', info
2030  END IF
2031  WRITE( nout, fmt = 9973 )
2032  GO TO 10
2033 *
2034  ELSE IF( lsamen( 3, c3, 'ZES' ) ) THEN
2035 *
2036 * --------------------------------------------
2037 * ZES: Nonsymmetric Eigenvalue Problem Driver
2038 * ZGEES (Schur form)
2039 * --------------------------------------------
2040 *
2041  maxtyp = 21
2042  ntypes = min( maxtyp, ntypes )
2043  IF( ntypes.LE.0 ) THEN
2044  WRITE( nout, fmt = 9990 )c3
2045  ELSE
2046  IF( tsterr )
2047  $ CALL zerred( c3, nout )
2048  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2049  CALL zdrves( nn, nval, ntypes, dotype, iseed, thresh, nout,
2050  $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2051  $ dc( 1, 1 ), dc( 1, 2 ), a( 1, 4 ), nmax,
2052  $ result, work, lwork, rwork, iwork, logwrk,
2053  $ info )
2054  IF( info.NE.0 )
2055  $ WRITE( nout, fmt = 9980 )'ZGEES', info
2056  END IF
2057  WRITE( nout, fmt = 9973 )
2058  GO TO 10
2059 *
2060  ELSE IF( lsamen( 3, c3, 'ZVX' ) ) THEN
2061 *
2062 * --------------------------------------------------------------
2063 * ZVX: Nonsymmetric Eigenvalue Problem Expert Driver
2064 * ZGEEVX (eigenvalues, eigenvectors and condition numbers)
2065 * --------------------------------------------------------------
2066 *
2067  maxtyp = 21
2068  ntypes = min( maxtyp, ntypes )
2069  IF( ntypes.LT.0 ) THEN
2070  WRITE( nout, fmt = 9990 )c3
2071  ELSE
2072  IF( tsterr )
2073  $ CALL zerred( c3, nout )
2074  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2075  CALL zdrvvx( nn, nval, ntypes, dotype, iseed, thresh, nin,
2076  $ nout, a( 1, 1 ), nmax, a( 1, 2 ), dc( 1, 1 ),
2077  $ dc( 1, 2 ), a( 1, 3 ), nmax, a( 1, 4 ), nmax,
2078  $ a( 1, 5 ), nmax, dr( 1, 1 ), dr( 1, 2 ),
2079  $ dr( 1, 3 ), dr( 1, 4 ), dr( 1, 5 ), dr( 1, 6 ),
2080  $ dr( 1, 7 ), dr( 1, 8 ), result, work, lwork,
2081  $ rwork, info )
2082  IF( info.NE.0 )
2083  $ WRITE( nout, fmt = 9980 )'ZGEEVX', info
2084  END IF
2085  WRITE( nout, fmt = 9973 )
2086  GO TO 10
2087 *
2088  ELSE IF( lsamen( 3, c3, 'ZSX' ) ) THEN
2089 *
2090 * ---------------------------------------------------
2091 * ZSX: Nonsymmetric Eigenvalue Problem Expert Driver
2092 * ZGEESX (Schur form and condition numbers)
2093 * ---------------------------------------------------
2094 *
2095  maxtyp = 21
2096  ntypes = min( maxtyp, ntypes )
2097  IF( ntypes.LT.0 ) THEN
2098  WRITE( nout, fmt = 9990 )c3
2099  ELSE
2100  IF( tsterr )
2101  $ CALL zerred( c3, nout )
2102  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2103  CALL zdrvsx( nn, nval, ntypes, dotype, iseed, thresh, nin,
2104  $ nout, a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2105  $ dc( 1, 1 ), dc( 1, 2 ), dc( 1, 3 ), a( 1, 4 ),
2106  $ nmax, a( 1, 5 ), result, work, lwork, rwork,
2107  $ logwrk, info )
2108  IF( info.NE.0 )
2109  $ WRITE( nout, fmt = 9980 )'ZGEESX', info
2110  END IF
2111  WRITE( nout, fmt = 9973 )
2112  GO TO 10
2113 *
2114  ELSE IF( lsamen( 3, c3, 'ZGG' ) ) THEN
2115 *
2116 * -------------------------------------------------
2117 * ZGG: Generalized Nonsymmetric Eigenvalue Problem
2118 * -------------------------------------------------
2119 * Vary the parameters
2120 * NB = block size
2121 * NBMIN = minimum block size
2122 * NS = number of shifts
2123 * MAXB = minimum submatrix size
2124 * IACC22: structured matrix multiply
2125 * NBCOL = minimum column dimension for blocks
2126 *
2127  maxtyp = 26
2128  ntypes = min( maxtyp, ntypes )
2129  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2130  CALL xlaenv(1,1)
2131  IF( tstchk .AND. tsterr )
2132  $ CALL zerrgg( c3, nout )
2133  DO 350 i = 1, nparms
2134  CALL xlaenv( 1, nbval( i ) )
2135  CALL xlaenv( 2, nbmin( i ) )
2136  CALL xlaenv( 4, nsval( i ) )
2137  CALL xlaenv( 8, mxbval( i ) )
2138  CALL xlaenv( 16, iacc22( i ) )
2139  CALL xlaenv( 5, nbcol( i ) )
2140 *
2141  IF( newsd.EQ.0 ) THEN
2142  DO 340 k = 1, 4
2143  iseed( k ) = ioldsd( k )
2144  340 CONTINUE
2145  END IF
2146  WRITE( nout, fmt = 9996 )c3, nbval( i ), nbmin( i ),
2147  $ nsval( i ), mxbval( i ), iacc22( i ), nbcol( i )
2148  tstdif = .false.
2149  thrshn = 10.d0
2150  IF( tstchk ) THEN
2151  CALL zchkgg( nn, nval, maxtyp, dotype, iseed, thresh,
2152  $ tstdif, thrshn, nout, a( 1, 1 ), nmax,
2153  $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
2154  $ a( 1, 6 ), a( 1, 7 ), a( 1, 8 ), a( 1, 9 ),
2155  $ nmax, a( 1, 10 ), a( 1, 11 ), a( 1, 12 ),
2156  $ dc( 1, 1 ), dc( 1, 2 ), dc( 1, 3 ),
2157  $ dc( 1, 4 ), a( 1, 13 ), a( 1, 14 ), work,
2158  $ lwork, rwork, logwrk, result, info )
2159  IF( info.NE.0 )
2160  $ WRITE( nout, fmt = 9980 )'ZCHKGG', info
2161  END IF
2162  350 CONTINUE
2163 *
2164  ELSE IF( lsamen( 3, c3, 'ZGS' ) ) THEN
2165 *
2166 * -------------------------------------------------
2167 * ZGS: Generalized Nonsymmetric Eigenvalue Problem
2168 * ZGGES (Schur form)
2169 * -------------------------------------------------
2170 *
2171  maxtyp = 26
2172  ntypes = min( maxtyp, ntypes )
2173  IF( ntypes.LE.0 ) THEN
2174  WRITE( nout, fmt = 9990 )c3
2175  ELSE
2176  IF( tsterr )
2177  $ CALL zerrgg( c3, nout )
2178  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2179  CALL zdrges( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2180  $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2181  $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2182  $ dc( 1, 1 ), dc( 1, 2 ), work, lwork, rwork,
2183  $ result, logwrk, info )
2184 *
2185  IF( info.NE.0 )
2186  $ WRITE( nout, fmt = 9980 )'ZDRGES', info
2187 *
2188 * Blocked version
2189 *
2190  CALL zdrges3( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2191  $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2192  $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2193  $ dc( 1, 1 ), dc( 1, 2 ), work, lwork, rwork,
2194  $ result, logwrk, info )
2195 *
2196  IF( info.NE.0 )
2197  $ WRITE( nout, fmt = 9980 )'ZDRGES3', info
2198  END IF
2199  WRITE( nout, fmt = 9973 )
2200  GO TO 10
2201 *
2202  ELSE IF( zgx ) THEN
2203 *
2204 * -------------------------------------------------
2205 * ZGX Generalized Nonsymmetric Eigenvalue Problem
2206 * ZGGESX (Schur form and condition numbers)
2207 * -------------------------------------------------
2208 *
2209  maxtyp = 5
2210  ntypes = maxtyp
2211  IF( nn.LT.0 ) THEN
2212  WRITE( nout, fmt = 9990 )c3
2213  ELSE
2214  IF( tsterr )
2215  $ CALL zerrgg( c3, nout )
2216  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2217  CALL xlaenv( 5, 2 )
2218  CALL zdrgsx( nn, ncmax, thresh, nin, nout, a( 1, 1 ), nmax,
2219  $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
2220  $ a( 1, 6 ), dc( 1, 1 ), dc( 1, 2 ), c,
2221  $ ncmax*ncmax, s, work, lwork, rwork, iwork,
2222  $ liwork, logwrk, info )
2223  IF( info.NE.0 )
2224  $ WRITE( nout, fmt = 9980 )'ZDRGSX', info
2225  END IF
2226  WRITE( nout, fmt = 9973 )
2227  GO TO 10
2228 *
2229  ELSE IF( lsamen( 3, c3, 'ZGV' ) ) THEN
2230 *
2231 * -------------------------------------------------
2232 * ZGV: Generalized Nonsymmetric Eigenvalue Problem
2233 * ZGGEV (Eigenvalue/vector form)
2234 * -------------------------------------------------
2235 *
2236  maxtyp = 26
2237  ntypes = min( maxtyp, ntypes )
2238  IF( ntypes.LE.0 ) THEN
2239  WRITE( nout, fmt = 9990 )c3
2240  ELSE
2241  IF( tsterr )
2242  $ CALL zerrgg( c3, nout )
2243  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2244  CALL zdrgev( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2245  $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2246  $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2247  $ a( 1, 9 ), nmax, dc( 1, 1 ), dc( 1, 2 ),
2248  $ dc( 1, 3 ), dc( 1, 4 ), work, lwork, rwork,
2249  $ result, info )
2250  IF( info.NE.0 )
2251  $ WRITE( nout, fmt = 9980 )'ZDRGEV', info
2252 *
2253 * Blocked version
2254 *
2255  CALL xlaenv(16,2)
2256  CALL zdrgev3( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2257  $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2258  $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2259  $ a( 1, 9 ), nmax, dc( 1, 1 ), dc( 1, 2 ),
2260  $ dc( 1, 3 ), dc( 1, 4 ), work, lwork, rwork,
2261  $ result, info )
2262  IF( info.NE.0 )
2263  $ WRITE( nout, fmt = 9980 )'ZDRGEV3', info
2264  END IF
2265  WRITE( nout, fmt = 9973 )
2266  GO TO 10
2267 *
2268  ELSE IF( zxv ) THEN
2269 *
2270 * -------------------------------------------------
2271 * ZXV: Generalized Nonsymmetric Eigenvalue Problem
2272 * ZGGEVX (eigenvalue/vector with condition numbers)
2273 * -------------------------------------------------
2274 *
2275  maxtyp = 2
2276  ntypes = maxtyp
2277  IF( nn.LT.0 ) THEN
2278  WRITE( nout, fmt = 9990 )c3
2279  ELSE
2280  IF( tsterr )
2281  $ CALL zerrgg( c3, nout )
2282  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2283  CALL zdrgvx( nn, thresh, nin, nout, a( 1, 1 ), nmax,
2284  $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), dc( 1, 1 ),
2285  $ dc( 1, 2 ), a( 1, 5 ), a( 1, 6 ), iwork( 1 ),
2286  $ iwork( 2 ), dr( 1, 1 ), dr( 1, 2 ), dr( 1, 3 ),
2287  $ dr( 1, 4 ), dr( 1, 5 ), dr( 1, 6 ), work,
2288  $ lwork, rwork, iwork( 3 ), liwork-2, result,
2289  $ logwrk, info )
2290 *
2291  IF( info.NE.0 )
2292  $ WRITE( nout, fmt = 9980 )'ZDRGVX', info
2293  END IF
2294  WRITE( nout, fmt = 9973 )
2295  GO TO 10
2296 *
2297  ELSE IF( lsamen( 3, c3, 'ZHB' ) ) THEN
2298 *
2299 * ------------------------------
2300 * ZHB: Hermitian Band Reduction
2301 * ------------------------------
2302 *
2303  maxtyp = 15
2304  ntypes = min( maxtyp, ntypes )
2305  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2306  IF( tsterr )
2307  $ CALL zerrst( 'ZHB', nout )
2308 * CALL ZCHKHB( NN, NVAL, NK, KVAL, MAXTYP, DOTYPE, ISEED, THRESH,
2309 * $ NOUT, A( 1, 1 ), NMAX, DR( 1, 1 ), DR( 1, 2 ),
2310 * $ A( 1, 2 ), NMAX, WORK, LWORK, RWORK, RESULT,
2311 * $ INFO )
2312  CALL zchkhb2stg( nn, nval, nk, kval, maxtyp, dotype, iseed,
2313  $ thresh, nout, a( 1, 1 ), nmax, dr( 1, 1 ),
2314  $ dr( 1, 2 ), dr( 1, 3 ), dr( 1, 4 ), dr( 1, 5 ),
2315  $ a( 1, 2 ), nmax, work, lwork, rwork, result,
2316  $ info )
2317  IF( info.NE.0 )
2318  $ WRITE( nout, fmt = 9980 )'ZCHKHB', info
2319 *
2320  ELSE IF( lsamen( 3, c3, 'ZBB' ) ) THEN
2321 *
2322 * ------------------------------
2323 * ZBB: General Band Reduction
2324 * ------------------------------
2325 *
2326  maxtyp = 15
2327  ntypes = min( maxtyp, ntypes )
2328  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2329  DO 370 i = 1, nparms
2330  nrhs = nsval( i )
2331 *
2332  IF( newsd.EQ.0 ) THEN
2333  DO 360 k = 1, 4
2334  iseed( k ) = ioldsd( k )
2335  360 CONTINUE
2336  END IF
2337  WRITE( nout, fmt = 9966 )c3, nrhs
2338  CALL zchkbb( nn, mval, nval, nk, kval, maxtyp, dotype, nrhs,
2339  $ iseed, thresh, nout, a( 1, 1 ), nmax,
2340  $ a( 1, 2 ), 2*nmax, dr( 1, 1 ), dr( 1, 2 ),
2341  $ a( 1, 4 ), nmax, a( 1, 5 ), nmax, a( 1, 6 ),
2342  $ nmax, a( 1, 7 ), work, lwork, rwork, result,
2343  $ info )
2344  IF( info.NE.0 )
2345  $ WRITE( nout, fmt = 9980 )'ZCHKBB', info
2346  370 CONTINUE
2347 *
2348  ELSE IF( lsamen( 3, c3, 'GLM' ) ) THEN
2349 *
2350 * -----------------------------------------
2351 * GLM: Generalized Linear Regression Model
2352 * -----------------------------------------
2353 *
2354  CALL xlaenv( 1, 1 )
2355  IF( tsterr )
2356  $ CALL zerrgg( 'GLM', nout )
2357  CALL zckglm( nn, nval, mval, pval, ntypes, iseed, thresh, nmax,
2358  $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), x,
2359  $ work, dr( 1, 1 ), nin, nout, info )
2360  IF( info.NE.0 )
2361  $ WRITE( nout, fmt = 9980 )'ZCKGLM', info
2362 *
2363  ELSE IF( lsamen( 3, c3, 'GQR' ) ) THEN
2364 *
2365 * ------------------------------------------
2366 * GQR: Generalized QR and RQ factorizations
2367 * ------------------------------------------
2368 *
2369  CALL xlaenv( 1, 1 )
2370  IF( tsterr )
2371  $ CALL zerrgg( 'GQR', nout )
2372  CALL zckgqr( nn, mval, nn, pval, nn, nval, ntypes, iseed,
2373  $ thresh, nmax, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
2374  $ a( 1, 4 ), taua, b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
2375  $ b( 1, 4 ), b( 1, 5 ), taub, work, dr( 1, 1 ), nin,
2376  $ nout, info )
2377  IF( info.NE.0 )
2378  $ WRITE( nout, fmt = 9980 )'ZCKGQR', info
2379 *
2380  ELSE IF( lsamen( 3, c3, 'GSV' ) ) THEN
2381 *
2382 * ----------------------------------------------
2383 * GSV: Generalized Singular Value Decomposition
2384 * ----------------------------------------------
2385 *
2386  CALL xlaenv(1,1)
2387  IF( tsterr )
2388  $ CALL zerrgg( 'GSV', nout )
2389  CALL zckgsv( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2390  $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
2391  $ a( 1, 3 ), b( 1, 3 ), a( 1, 4 ), alpha, beta,
2392  $ b( 1, 4 ), iwork, work, dr( 1, 1 ), nin, nout,
2393  $ info )
2394  IF( info.NE.0 )
2395  $ WRITE( nout, fmt = 9980 )'ZCKGSV', info
2396 *
2397  ELSE IF( lsamen( 3, c3, 'CSD' ) ) THEN
2398 *
2399 * ----------------------------------------------
2400 * CSD: CS Decomposition
2401 * ----------------------------------------------
2402 *
2403  CALL xlaenv(1,1)
2404  IF( tsterr )
2405  $ CALL zerrgg( 'CSD', nout )
2406  CALL zckcsd( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2407  $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), a( 1, 4 ),
2408  $ a( 1, 5 ), a( 1, 6 ), rwork, iwork, work,
2409  $ dr( 1, 1 ), nin, nout, info )
2410  IF( info.NE.0 )
2411  $ WRITE( nout, fmt = 9980 )'ZCKCSD', info
2412 *
2413  ELSE IF( lsamen( 3, c3, 'LSE' ) ) THEN
2414 *
2415 * --------------------------------------
2416 * LSE: Constrained Linear Least Squares
2417 * --------------------------------------
2418 *
2419  CALL xlaenv( 1, 1 )
2420  IF( tsterr )
2421  $ CALL zerrgg( 'LSE', nout )
2422  CALL zcklse( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2423  $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), x,
2424  $ work, dr( 1, 1 ), nin, nout, info )
2425  IF( info.NE.0 )
2426  $ WRITE( nout, fmt = 9980 )'ZCKLSE', info
2427  ELSE
2428  WRITE( nout, fmt = * )
2429  WRITE( nout, fmt = * )
2430  WRITE( nout, fmt = 9992 )c3
2431  END IF
2432  IF( .NOT.( zgx .OR. zxv ) )
2433  $ GO TO 190
2434  380 CONTINUE
2435  WRITE( nout, fmt = 9994 )
2436  s2 = dsecnd( )
2437  WRITE( nout, fmt = 9993 )s2 - s1
2438 *
2439  9999 FORMAT( / ' Execution not attempted due to input errors' )
2440  9997 FORMAT( / / 1x, a3, ': NB =', i4, ', NBMIN =', i4, ', NX =', i4 )
2441  9996 FORMAT( / / 1x, a3, ': NB =', i4, ', NBMIN =', i4, ', NS =', i4,
2442  $ ', MAXB =', i4, ', IACC22 =', i4, ', NBCOL =', i4 )
2443  9995 FORMAT( / / 1x, a3, ': NB =', i4, ', NBMIN =', i4, ', NX =', i4,
2444  $ ', NRHS =', i4 )
2445  9994 FORMAT( / / ' End of tests' )
2446  9993 FORMAT( ' Total time used = ', f12.2, ' seconds', / )
2447  9992 FORMAT( 1x, a3, ': Unrecognized path name' )
2448  9991 FORMAT( / / ' *** Invalid integer value in column ', i2,
2449  $ ' of input', ' line:', / a79 )
2450  9990 FORMAT( / / 1x, a3, ' routines were not tested' )
2451  9989 FORMAT( ' Invalid input value: ', a, '=', i6, '; must be >=',
2452  $ i6 )
2453  9988 FORMAT( ' Invalid input value: ', a, '=', i6, '; must be <=',
2454  $ i6 )
2455  9987 FORMAT( ' Tests of the Nonsymmetric Eigenvalue Problem routines' )
2456  9986 FORMAT( ' Tests of the Hermitian Eigenvalue Problem routines' )
2457  9985 FORMAT( ' Tests of the Singular Value Decomposition routines' )
2458  9984 FORMAT( / ' The following parameter values will be used:' )
2459  9983 FORMAT( 4x, a, 10i6, / 10x, 10i6 )
2460  9982 FORMAT( / ' Routines pass computational tests if test ratio is ',
2461  $ 'less than', f8.2, / )
2462  9981 FORMAT( ' Relative machine ', a, ' is taken to be', d16.6 )
2463  9980 FORMAT( ' *** Error code from ', a, ' = ', i4 )
2464  9979 FORMAT( / ' Tests of the Nonsymmetric Eigenvalue Problem Driver',
2465  $ / ' ZGEEV (eigenvalues and eigevectors)' )
2466  9978 FORMAT( / ' Tests of the Nonsymmetric Eigenvalue Problem Driver',
2467  $ / ' ZGEES (Schur form)' )
2468  9977 FORMAT( / ' Tests of the Nonsymmetric Eigenvalue Problem Expert',
2469  $ ' Driver', / ' ZGEEVX (eigenvalues, eigenvectors and',
2470  $ ' condition numbers)' )
2471  9976 FORMAT( / ' Tests of the Nonsymmetric Eigenvalue Problem Expert',
2472  $ ' Driver', / ' ZGEESX (Schur form and condition',
2473  $ ' numbers)' )
2474  9975 FORMAT( / ' Tests of the Generalized Nonsymmetric Eigenvalue ',
2475  $ 'Problem routines' )
2476  9974 FORMAT( ' Tests of ZHBTRD', / ' (reduction of a Hermitian band ',
2477  $ 'matrix to real tridiagonal form)' )
2478  9973 FORMAT( / 1x, 71( '-' ) )
2479  9972 FORMAT( / ' LAPACK VERSION ', i1, '.', i1, '.', i1 )
2480  9971 FORMAT( / ' Tests of the Generalized Linear Regression Model ',
2481  $ 'routines' )
2482  9970 FORMAT( / ' Tests of the Generalized QR and RQ routines' )
2483  9969 FORMAT( / ' Tests of the Generalized Singular Value',
2484  $ ' Decomposition routines' )
2485  9968 FORMAT( / ' Tests of the Linear Least Squares routines' )
2486  9967 FORMAT( ' Tests of ZGBBRD', / ' (reduction of a general band ',
2487  $ 'matrix to real bidiagonal form)' )
2488  9966 FORMAT( / / 1x, a3, ': NRHS =', i4 )
2489  9965 FORMAT( / ' Tests of the Generalized Nonsymmetric Eigenvalue ',
2490  $ 'Problem Expert Driver ZGGESX' )
2491  9964 FORMAT( / ' Tests of the Generalized Nonsymmetric Eigenvalue ',
2492  $ 'Problem Driver ZGGES' )
2493  9963 FORMAT( / ' Tests of the Generalized Nonsymmetric Eigenvalue ',
2494  $ 'Problem Driver ZGGEV' )
2495  9962 FORMAT( / ' Tests of the Generalized Nonsymmetric Eigenvalue ',
2496  $ 'Problem Expert Driver ZGGEVX' )
2497  9961 FORMAT( / / 1x, a3, ': NB =', i4, ', NBMIN =', i4, ', NX =', i4,
2498  $ ', INMIN=', i4,
2499  $ ', INWIN =', i4, ', INIBL =', i4, ', ISHFTS =', i4,
2500  $ ', IACC22 =', i4)
2501  9960 FORMAT( / ' Tests of the CS Decomposition routines' )
2502 *
2503 * End of ZCHKEE
2504 *
2505  END
subroutine zchkgg(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, TSTDIF, THRSHN, NOUNIT, A, LDA, B, H, T, S1, S2, P1, P2, U, LDU, V, Q, Z, ALPHA1, BETA1, ALPHA3, BETA3, EVECTL, EVECTR, WORK, LWORK, RWORK, LLWORK, RESULT, INFO)
ZCHKGG
Definition: zchkgg.f:505
subroutine zdrves(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, H, HT, W, WT, VS, LDVS, RESULT, WORK, NWORK, RWORK, IWORK, BWORK, INFO)
ZDRVES
Definition: zdrves.f:380
subroutine zdrvsg(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, B, LDB, D, Z, LDZ, AB, BB, AP, BP, WORK, NWORK, RWORK, LRWORK, IWORK, LIWORK, RESULT, INFO)
ZDRVSG
Definition: zdrvsg.f:372
subroutine zchkbd(NSIZES, MVAL, NVAL, NTYPES, DOTYPE, NRHS, ISEED, THRESH, A, LDA, BD, BE, S1, S2, X, LDX, Y, Z, Q, LDQ, PT, LDPT, U, VT, WORK, LWORK, RWORK, NOUT, INFO)
ZCHKBD
Definition: zchkbd.f:417
subroutine zchkgk(NIN, NOUT)
ZCHKGK
Definition: zchkgk.f:56
subroutine zchkst2stg(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, AP, SD, SE, D1, D2, D3, D4, D5, WA1, WA2, WA3, WR, U, LDU, V, VP, TAU, Z, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, RESULT, INFO)
ZCHKST2STG
Definition: zchkst2stg.f:627
subroutine zdrvsg2stg(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, B, LDB, D, D2, Z, LDZ, AB, BB, AP, BP, WORK, NWORK, RWORK, LRWORK, IWORK, LIWORK, RESULT, INFO)
ZDRVSG2STG
Definition: zdrvsg2stg.f:378
subroutine zchkbl(NIN, NOUT)
ZCHKBL
Definition: zchkbl.f:56
program zchkee
ZCHKEE
Definition: zchkee.f:1035
subroutine zdrgvx(NSIZE, THRESH, NIN, NOUT, A, LDA, B, AI, BI, ALPHA, BETA, VL, VR, ILO, IHI, LSCALE, RSCALE, S, DTRU, DIF, DIFTRU, WORK, LWORK, RWORK, IWORK, LIWORK, RESULT, BWORK, INFO)
ZDRGVX
Definition: zdrgvx.f:299
subroutine zcklse(NN, MVAL, PVAL, NVAL, NMATS, ISEED, THRESH, NMAX, A, AF, B, BF, X, WORK, RWORK, NIN, NOUT, INFO)
ZCKLSE
Definition: zcklse.f:170
subroutine zchkhb(NSIZES, NN, NWDTHS, KK, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, SD, SE, U, LDU, WORK, LWORK, RWORK, RESULT, INFO)
ZCHKHB
Definition: zchkhb.f:300
subroutine zckgqr(NM, MVAL, NP, PVAL, NN, NVAL, NMATS, ISEED, THRESH, NMAX, A, AF, AQ, AR, TAUA, B, BF, BZ, BT, BWK, TAUB, WORK, RWORK, NIN, NOUT, INFO)
ZCKGQR
Definition: zckgqr.f:213
subroutine zchkhb2stg(NSIZES, NN, NWDTHS, KK, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, SD, SE, D1, D2, D3, U, LDU, WORK, LWORK, RWORK, RESULT, INFO)
ZCHKHBSTG
Definition: zchkhb2stg.f:325
subroutine zchkec(THRESH, TSTERR, NIN, NOUT)
ZCHKEC
Definition: zchkec.f:77
subroutine zdrges3(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, B, S, T, Q, LDQ, Z, ALPHA, BETA, WORK, LWORK, RWORK, RESULT, BWORK, INFO)
ZDRGES3
Definition: zdrges3.f:384
subroutine zckglm(NN, NVAL, MVAL, PVAL, NMATS, ISEED, THRESH, NMAX, A, AF, B, BF, X, WORK, RWORK, NIN, NOUT, INFO)
ZCKGLM
Definition: zckglm.f:170
subroutine zchkgl(NIN, NOUT)
ZCHKGL
Definition: zchkgl.f:55
subroutine zchkbk(NIN, NOUT)
ZCHKBK
Definition: zchkbk.f:57
subroutine zerrbd(PATH, NUNIT)
ZERRBD
Definition: zerrbd.f:56
subroutine alareq(PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT)
ALAREQ
Definition: alareq.f:92
subroutine xlaenv(ISPEC, NVALUE)
XLAENV
Definition: xlaenv.f:83
subroutine zchkhs(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, H, T1, T2, U, LDU, Z, UZ, W1, W3, EVECTL, EVECTR, EVECTY, EVECTX, UU, TAU, WORK, NWORK, RWORK, IWORK, SELECT, RESULT, INFO)
ZCHKHS
Definition: zchkhs.f:414
subroutine zdrvst2stg(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, D1, D2, D3, WA1, WA2, WA3, U, LDU, V, TAU, Z, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, RESULT, INFO)
ZDRVST2STG
Definition: zdrvst2stg.f:340
subroutine zchkst(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, AP, SD, SE, D1, D2, D3, D4, D5, WA1, WA2, WA3, WR, U, LDU, V, VP, TAU, Z, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, RESULT, INFO)
ZCHKST
Definition: zchkst.f:606
logical function lse(RI, RJ, LR)
Definition: sblat2.f:2945
subroutine zdrvev(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, H, W, W1, VL, LDVL, VR, LDVR, LRE, LDLRE, RESULT, WORK, NWORK, RWORK, IWORK, INFO)
ZDRVEV
Definition: zdrvev.f:393
subroutine ilaver(VERS_MAJOR, VERS_MINOR, VERS_PATCH)
ILAVER returns the LAPACK version.
Definition: ilaver.f:50
subroutine zckcsd(NM, MVAL, PVAL, QVAL, NMATS, ISEED, THRESH, MMAX, X, XF, U1, U2, V1T, V2T, THETA, IWORK, WORK, RWORK, NIN, NOUT, INFO)
ZCKCSD
Definition: zckcsd.f:186
subroutine zdrvbd(NSIZES, MM, NN, NTYPES, DOTYPE, ISEED, THRESH, A, LDA, U, LDU, VT, LDVT, ASAV, USAV, VTSAV, S, SSAV, E, WORK, LWORK, RWORK, IWORK, NOUNIT, INFO)
ZDRVBD
Definition: zdrvbd.f:391
subroutine zdrvst(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, D1, D2, D3, WA1, WA2, WA3, U, LDU, V, TAU, Z, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, RESULT, INFO)
ZDRVST
Definition: zdrvst.f:340
subroutine zdrgsx(NSIZE, NCMAX, THRESH, NIN, NOUT, A, LDA, B, AI, BI, Z, Q, ALPHA, BETA, C, LDC, S, WORK, LWORK, RWORK, IWORK, LIWORK, BWORK, INFO)
ZDRGSX
Definition: zdrgsx.f:351
subroutine zdrvsx(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NIUNIT, NOUNIT, A, LDA, H, HT, W, WT, WTMP, VS, LDVS, VS1, RESULT, WORK, LWORK, RWORK, BWORK, INFO)
ZDRVSX
Definition: zdrvsx.f:437
subroutine zerred(PATH, NUNIT)
ZERRED
Definition: zerred.f:70
subroutine zerrhs(PATH, NUNIT)
ZERRHS
Definition: zerrhs.f:57
subroutine zdrges(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, B, S, T, Q, LDQ, Z, ALPHA, BETA, WORK, LWORK, RWORK, RESULT, BWORK, INFO)
ZDRGES
Definition: zdrges.f:383
subroutine zckgsv(NM, MVAL, PVAL, NVAL, NMATS, ISEED, THRESH, NMAX, A, AF, B, BF, U, V, Q, ALPHA, BETA, R, IWORK, WORK, RWORK, NIN, NOUT, INFO)
ZCKGSV
Definition: zckgsv.f:200
subroutine zerrst(PATH, NUNIT)
ZERRST
Definition: zerrst.f:64
subroutine zchkbb(NSIZES, MVAL, NVAL, NWDTHS, KK, NTYPES, DOTYPE, NRHS, ISEED, THRESH, NOUNIT, A, LDA, AB, LDAB, BD, BE, Q, LDQ, P, LDP, C, LDC, CC, WORK, LWORK, RWORK, RESULT, INFO)
ZCHKBB
Definition: zchkbb.f:363
subroutine zdrgev(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, B, S, T, Q, LDQ, Z, QE, LDQE, ALPHA, BETA, ALPHA1, BETA1, WORK, LWORK, RWORK, RESULT, INFO)
ZDRGEV
Definition: zdrgev.f:401
subroutine zdrgev3(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, B, S, T, Q, LDQ, Z, QE, LDQE, ALPHA, BETA, ALPHA1, BETA1, WORK, LWORK, RWORK, RESULT, INFO)
ZDRGEV3
Definition: zdrgev3.f:401
subroutine zdrvvx(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NIUNIT, NOUNIT, A, LDA, H, W, W1, VL, LDVL, VR, LDVR, LRE, LDLRE, RCONDV, RCNDV1, RCDVIN, RCONDE, RCNDE1, RCDEIN, SCALE, SCALE1, RESULT, WORK, NWORK, RWORK, INFO)
ZDRVVX
Definition: zdrvvx.f:498
subroutine zerrgg(PATH, NUNIT)
ZERRGG
Definition: zerrgg.f:59