LAPACK  3.7.0
LAPACK: Linear Algebra PACKage
cchkee.f
Go to the documentation of this file.
1 *> \brief \b CCHKEE
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 CCHKEE
12 *
13 *
14 *> \par Purpose:
15 * =============
16 *>
17 *> \verbatim
18 *>
19 *> CCHKEE tests the COMPLEX LAPACK subroutines for the matrix
20 *> eigenvalue problem. The test paths in this version are
21 *>
22 *> NEP (Nonsymmetric Eigenvalue Problem):
23 *> Test CGEHRD, CUNGHR, CHSEQR, CTREVC, CHSEIN, and CUNMHR
24 *>
25 *> SEP (Hermitian Eigenvalue Problem):
26 *> Test CHETRD, CUNGTR, CSTEQR, CSTERF, CSTEIN, CSTEDC,
27 *> and drivers CHEEV(X), CHBEV(X), CHPEV(X),
28 *> CHEEVD, CHBEVD, CHPEVD
29 *>
30 *> SVD (Singular Value Decomposition):
31 *> Test CGEBRD, CUNGBR, and CBDSQR
32 *> and the drivers CGESVD, CGESDD
33 *>
34 *> CEV (Nonsymmetric Eigenvalue/eigenvector Driver):
35 *> Test CGEEV
36 *>
37 *> CES (Nonsymmetric Schur form Driver):
38 *> Test CGEES
39 *>
40 *> CVX (Nonsymmetric Eigenvalue/eigenvector Expert Driver):
41 *> Test CGEEVX
42 *>
43 *> CSX (Nonsymmetric Schur form Expert Driver):
44 *> Test CGEESX
45 *>
46 *> CGG (Generalized Nonsymmetric Eigenvalue Problem):
47 *> Test CGGHD3, CGGBAL, CGGBAK, CHGEQZ, and CTGEVC
48 *>
49 *> CGS (Generalized Nonsymmetric Schur form Driver):
50 *> Test CGGES
51 *>
52 *> CGV (Generalized Nonsymmetric Eigenvalue/eigenvector Driver):
53 *> Test CGGEV
54 *>
55 *> CGX (Generalized Nonsymmetric Schur form Expert Driver):
56 *> Test CGGESX
57 *>
58 *> CXV (Generalized Nonsymmetric Eigenvalue/eigenvector Expert Driver):
59 *> Test CGGEVX
60 *>
61 *> CSG (Hermitian Generalized Eigenvalue Problem):
62 *> Test CHEGST, CHEGV, CHEGVD, CHEGVX, CHPGST, CHPGV, CHPGVD,
63 *> CHPGVX, CHBGST, CHBGV, CHBGVD, and CHBGVX
64 *>
65 *> CHB (Hermitian Band Eigenvalue Problem):
66 *> Test CHBTRD
67 *>
68 *> CBB (Band Singular Value Decomposition):
69 *> Test CGBBRD
70 *>
71 *> CEC (Eigencondition estimation):
72 *> Test CTRSYL, CTREXC, CTRSNA, and CTRSEN
73 *>
74 *> CBL (Balancing a general matrix)
75 *> Test CGEBAL
76 *>
77 *> CBK (Back transformation on a balanced matrix)
78 *> Test CGEBAK
79 *>
80 *> CGL (Balancing a matrix pair)
81 *> Test CGGBAL
82 *>
83 *> CGK (Back transformation on a matrix pair)
84 *> Test CGGBAK
85 *>
86 *> GLM (Generalized Linear Regression Model):
87 *> Tests CGGGLM
88 *>
89 *> GQR (Generalized QR and RQ factorizations):
90 *> Tests CGGQRF and CGGRQF
91 *>
92 *> GSV (Generalized Singular Value Decomposition):
93 *> Tests CGGSVD, CGGSVP, CTGSJA, CLAGS2, CLAPLL, and CLAPMT
94 *>
95 *> CSD (CS decomposition):
96 *> Tests CUNCSD
97 *>
98 *> LSE (Constrained Linear Least Squares):
99 *> Tests CGGLSE
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 *> CHS or NEP 21 CCHKHS
114 *> CST or SEP 21 CCHKST (routines)
115 *> 18 CDRVST (drivers)
116 *> CBD or SVD 16 CCHKBD (routines)
117 *> 5 CDRVBD (drivers)
118 *> CEV 21 CDRVEV
119 *> CES 21 CDRVES
120 *> CVX 21 CDRVVX
121 *> CSX 21 CDRVSX
122 *> CGG 26 CCHKGG (routines)
123 *> CGS 26 CDRGES
124 *> CGX 5 CDRGSX
125 *> CGV 26 CDRGEV
126 *> CXV 2 CDRGVX
127 *> CSG 21 CDRVSG
128 *> CHB 15 CCHKHB
129 *> CBB 15 CCHKBB
130 *> CEC - CCHKEC
131 *> CBL - CCHKBL
132 *> CBK - CCHKBK
133 *> CGL - CCHKGL
134 *> CGK - CCHKGK
135 *> GLM 8 CCKGLM
136 *> GQR 8 CCKGQR
137 *> GSV 8 CCKGSV
138 *> CSD 3 CCKCSD
139 *> LSE 8 CCKLSE
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 'CHS' for the
213 *> nonsymmetric eigenvalue routines.
214 *>
215 *>-----------------------------------------------------------------------
216 *>
217 *> SEP or CSG 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 'CST' for the
266 *> Hermitian eigenvalue routines and driver routines, and
267 *> 'CSG' 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 'CBD' for both the
327 *> SVD routines and the SVD driver routines.
328 *>
329 *>-----------------------------------------------------------------------
330 *>
331 *> CEV and CES data files:
332 *>
333 *> line 1: 'CEV' or 'CES' 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 'CEV' to test CGEEV, or
371 *> 'CES' to test CGEES.
372 *>
373 *>-----------------------------------------------------------------------
374 *>
375 *> The CVX data has two parts. The first part is identical to CEV,
376 *> and the second part consists of test matrices with precomputed
377 *> solutions.
378 *>
379 *> line 1: 'CVX' 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 'CVX' 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 CSX data is like CVX. The first part is identical to CEV, and the
422 *> second part consists of test matrices with precomputed solutions.
423 *>
424 *> line 1: 'CSX' 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 'CSX' 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 *> CGG 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 'CGG' for the generalized
526 *> eigenvalue problem routines and driver routines.
527 *>
528 *>-----------------------------------------------------------------------
529 *>
530 *> CGS and CGV input files:
531 *>
532 *> line 1: 'CGS' or 'CGV' 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 'CGS' for the generalized
571 *> eigenvalue problem routines and driver routines.
572 *>
573 *>-----------------------------------------------------------------------
574 *>
575 *> CGX input file:
576 *> line 1: 'CGX' 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 *> CXV input files:
632 *> line 1: 'CXV' 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 *> CHB 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 'CHB'.
717 *>
718 *>-----------------------------------------------------------------------
719 *>
720 *> CBB 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 'CBB'.
762 *>
763 *>-----------------------------------------------------------------------
764 *>
765 *> CEC 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 *> CBL and CBK input files:
781 *>
782 *> line 1: 'CBL' in columns 1-3 to test CGEBAL, or 'CBK' in
783 *> columns 1-3 to test CGEBAK.
784 *>
785 *> The remaining lines consist of specially constructed test cases.
786 *>
787 *>-----------------------------------------------------------------------
788 *>
789 *> CGL and CGK input files:
790 *>
791 *> line 1: 'CGL' in columns 1-3 to test CGGBAL, or 'CGK' in
792 *> columns 1-3 to test CGGBAK.
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 CGG.
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 complex_eig
1033 *
1034 * =====================================================================
1035  PROGRAM cchkee
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 CBB, CBK, CBL, CES, CEV, CGG, CGK, CGL, CGS,
1064  $ cgv, cgx, chb, csd, csx, cvx, cxv, fatal, glm,
1065  $ gqr, gsv, lse, nep, sep, svd, tstchk, tstdif,
1066  $ tstdrv, tsterr
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  REAL 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  REAL ALPHA( nmax ), BETA( nmax ), DR( nmax, 12 ),
1087  $ result( 500 ), rwork( lwork ), s( nmax*nmax )
1088  COMPLEX 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  REAL SECOND, SLAMCH
1096  EXTERNAL lsamen, second, slamch
1097 * ..
1098 * .. External Subroutines ..
1099  EXTERNAL alareq, cchkbb, cchkbd, cchkbk, cchkbl, cchkec,
1105  $ cdrges3, cdrgev3,
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  REAL SELWI( 20 ), SELWR( 20 )
1121 * ..
1122 * .. Common blocks ..
1123  COMMON / cenvir / nproc, nshift, maxb
1124  COMMON / claenv / iparms
1125  COMMON / infoc / infot, nunit, ok, lerr
1126  COMMON / srnamc / srnamt
1127  COMMON / sslct / selopt, seldim, selval, selwr, selwi
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 = second( )
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, 'CHS' )
1152  sep = lsamen( 3, path, 'SEP' ) .OR. lsamen( 3, path, 'CST' ) .OR.
1153  $ lsamen( 3, path, 'CSG' ) .OR. lsamen( 3, path, 'SE2' )
1154  svd = lsamen( 3, path, 'SVD' ) .OR. lsamen( 3, path, 'CBD' )
1155  cev = lsamen( 3, path, 'CEV' )
1156  ces = lsamen( 3, path, 'CES' )
1157  cvx = lsamen( 3, path, 'CVX' )
1158  csx = lsamen( 3, path, 'CSX' )
1159  cgg = lsamen( 3, path, 'CGG' )
1160  cgs = lsamen( 3, path, 'CGS' )
1161  cgx = lsamen( 3, path, 'CGX' )
1162  cgv = lsamen( 3, path, 'CGV' )
1163  cxv = lsamen( 3, path, 'CXV' )
1164  chb = lsamen( 3, path, 'CHB' )
1165  cbb = lsamen( 3, path, 'CBB' )
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  cbl = lsamen( 3, path, 'CBL' )
1172  cbk = lsamen( 3, path, 'CBK' )
1173  cgl = lsamen( 3, path, 'CGL' )
1174  cgk = lsamen( 3, path, 'CGK' )
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( cev ) THEN
1187  WRITE( nout, fmt = 9979 )
1188  ELSE IF( ces ) THEN
1189  WRITE( nout, fmt = 9978 )
1190  ELSE IF( cvx ) THEN
1191  WRITE( nout, fmt = 9977 )
1192  ELSE IF( csx ) THEN
1193  WRITE( nout, fmt = 9976 )
1194  ELSE IF( cgg ) THEN
1195  WRITE( nout, fmt = 9975 )
1196  ELSE IF( cgs ) THEN
1197  WRITE( nout, fmt = 9964 )
1198  ELSE IF( cgx ) THEN
1199  WRITE( nout, fmt = 9965 )
1200  ELSE IF( cgv ) THEN
1201  WRITE( nout, fmt = 9963 )
1202  ELSE IF( cxv ) THEN
1203  WRITE( nout, fmt = 9962 )
1204  ELSE IF( chb ) THEN
1205  WRITE( nout, fmt = 9974 )
1206  ELSE IF( cbb ) 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( cbl ) THEN
1219 *
1220 * CGEBAL: Balancing
1221 *
1222  CALL cchkbl( nin, nout )
1223  GO TO 380
1224  ELSE IF( cbk ) THEN
1225 *
1226 * CGEBAK: Back transformation
1227 *
1228  CALL cchkbk( nin, nout )
1229  GO TO 380
1230  ELSE IF( cgl ) THEN
1231 *
1232 * CGGBAL: Balancing
1233 *
1234  CALL cchkgl( nin, nout )
1235  GO TO 380
1236  ELSE IF( cgk ) THEN
1237 *
1238 * CGGBAK: Back transformation
1239 *
1240  CALL cchkgk( nin, nout )
1241  GO TO 380
1242  ELSE IF( lsamen( 3, path, 'CEC' ) ) THEN
1243 *
1244 * CEC: Eigencondition estimation
1245 *
1246  READ( nin, fmt = * )thresh
1247  CALL xlaenv( 1, 1 )
1248  CALL xlaenv( 12, 1 )
1249  tsterr = .true.
1250  CALL cchkec( 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.( cgx .OR. cxv ) ) 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. cbb .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.( cgx .OR. cxv ) ) 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( chb .OR. cbb ) 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( cev .OR. ces .OR. cvx .OR. csx ) 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( cgs .OR. cgx .OR. cgv .OR. cxv ) 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.chb .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.cbb ) 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. cgg ) 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 CGG) or NRHS (if SVD
1511 * or CBB).
1512 *
1513  IF( svd .OR. cbb .OR. cgg ) 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( cgg ) 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. cgg ) 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( cgg ) 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 = slamch( 'Underflow threshold' )
1669  WRITE( nout, fmt = 9981 )'underflow', eps
1670  eps = slamch( 'Overflow threshold' )
1671  WRITE( nout, fmt = 9981 )'overflow ', eps
1672  eps = slamch( '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. cgg ) 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.( cgx .OR. cxv ) ) 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.( cev .OR. ces .OR. cvx .OR. csx .OR. cgv .OR.
1766  $ cgs ) .AND. ntypes.LE.0 ) THEN
1767  WRITE( nout, fmt = 9990 )c3
1768  GO TO 200
1769  END IF
1770 *
1771  ELSE
1772  IF( cgx )
1773  $ c3 = 'CGX'
1774  IF( cxv )
1775  $ c3 = 'CXV'
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, 'CHS' ) .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 cerrhs( 'CHSEQR', 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 cchkhs( 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 )'CCHKHS', info
1831  270 CONTINUE
1832 *
1833  ELSE IF( lsamen( 3, c3, 'CST' ) .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 cerrst( 'CST', 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 cchkst2stg( 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 cchkst( 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 )'CCHKST', info
1887  END IF
1888  IF( tstdrv ) THEN
1889  IF( lsamen( 3, c3, 'SE2' ) ) THEN
1890  CALL cdrvst2stg( 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 cdrvst( 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 )'CDRVST', info
1906  END IF
1907  290 CONTINUE
1908 *
1909  ELSE IF( lsamen( 3, c3, 'CSG' ) ) THEN
1910 *
1911 * ----------------------------------------------
1912 * CSG: 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 CDRVSG( 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 cdrvsg2stg( 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 )'CDRVSG', info
1950  END IF
1951  310 CONTINUE
1952 *
1953  ELSE IF( lsamen( 3, c3, 'CBD' ) .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 cerrbd( 'CBD', nout )
1974  IF( tsterr .AND. tstdrv )
1975  $ CALL cerred( 'CBD', 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 cchkbd( 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 )'CCHKBD', info
1998  END IF
1999  IF( tstdrv )
2000  $ CALL cdrvbd( 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, 'CEV' ) ) THEN
2009 *
2010 * --------------------------------------------
2011 * CEV: Nonsymmetric Eigenvalue Problem Driver
2012 * CGEEV (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 cerred( c3, nout )
2022  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2023  CALL cdrvev( 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 )'CGEEV', info
2030  END IF
2031  WRITE( nout, fmt = 9973 )
2032  GO TO 10
2033 *
2034  ELSE IF( lsamen( 3, c3, 'CES' ) ) THEN
2035 *
2036 * --------------------------------------------
2037 * CES: Nonsymmetric Eigenvalue Problem Driver
2038 * CGEES (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 cerred( c3, nout )
2048  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2049  CALL cdrves( 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 )'CGEES', info
2056  END IF
2057  WRITE( nout, fmt = 9973 )
2058  GO TO 10
2059 *
2060  ELSE IF( lsamen( 3, c3, 'CVX' ) ) THEN
2061 *
2062 * --------------------------------------------------------------
2063 * CVX: Nonsymmetric Eigenvalue Problem Expert Driver
2064 * CGEEVX (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 cerred( c3, nout )
2074  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2075  CALL cdrvvx( 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 )'CGEEVX', info
2084  END IF
2085  WRITE( nout, fmt = 9973 )
2086  GO TO 10
2087 *
2088  ELSE IF( lsamen( 3, c3, 'CSX' ) ) THEN
2089 *
2090 * ---------------------------------------------------
2091 * CSX: Nonsymmetric Eigenvalue Problem Expert Driver
2092 * CGEESX (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 cerred( c3, nout )
2102  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2103  CALL cdrvsx( 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 )'CGEESX', info
2110  END IF
2111  WRITE( nout, fmt = 9973 )
2112  GO TO 10
2113 *
2114  ELSE IF( lsamen( 3, c3, 'CGG' ) ) THEN
2115 *
2116 * -------------------------------------------------
2117 * CGG: 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 cerrgg( 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.
2150  IF( tstchk ) THEN
2151  CALL cchkgg( 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 )'CCHKGG', info
2161  END IF
2162  350 CONTINUE
2163 *
2164  ELSE IF( lsamen( 3, c3, 'CGS' ) ) THEN
2165 *
2166 * -------------------------------------------------
2167 * CGS: Generalized Nonsymmetric Eigenvalue Problem
2168 * CGGES (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 cerrgg( c3, nout )
2178  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2179  CALL cdrges( 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 )'CDRGES', info
2187 *
2188 * Blocked version
2189 *
2190  CALL xlaenv(16,2)
2191  CALL cdrges3( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2192  $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2193  $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2194  $ dc( 1, 1 ), dc( 1, 2 ), work, lwork, rwork,
2195  $ result, logwrk, info )
2196 *
2197  IF( info.NE.0 )
2198  $ WRITE( nout, fmt = 9980 )'CDRGES3', info
2199  END IF
2200  WRITE( nout, fmt = 9973 )
2201 
2202  GO TO 10
2203 *
2204  ELSE IF( cgx ) THEN
2205 *
2206 * -------------------------------------------------
2207 * CGX Generalized Nonsymmetric Eigenvalue Problem
2208 * CGGESX (Schur form and condition numbers)
2209 * -------------------------------------------------
2210 *
2211  maxtyp = 5
2212  ntypes = maxtyp
2213  IF( nn.LT.0 ) THEN
2214  WRITE( nout, fmt = 9990 )c3
2215  ELSE
2216  IF( tsterr )
2217  $ CALL cerrgg( c3, nout )
2218  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2219  CALL xlaenv( 5, 2 )
2220  CALL cdrgsx( nn, ncmax, thresh, nin, nout, a( 1, 1 ), nmax,
2221  $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
2222  $ a( 1, 6 ), dc( 1, 1 ), dc( 1, 2 ), c,
2223  $ ncmax*ncmax, s, work, lwork, rwork, iwork,
2224  $ liwork, logwrk, info )
2225  IF( info.NE.0 )
2226  $ WRITE( nout, fmt = 9980 )'CDRGSX', info
2227  END IF
2228  WRITE( nout, fmt = 9973 )
2229  GO TO 10
2230 *
2231  ELSE IF( lsamen( 3, c3, 'CGV' ) ) THEN
2232 *
2233 * -------------------------------------------------
2234 * CGV: Generalized Nonsymmetric Eigenvalue Problem
2235 * CGGEV (Eigenvalue/vector form)
2236 * -------------------------------------------------
2237 *
2238  maxtyp = 26
2239  ntypes = min( maxtyp, ntypes )
2240  IF( ntypes.LE.0 ) THEN
2241  WRITE( nout, fmt = 9990 )c3
2242  ELSE
2243  IF( tsterr )
2244  $ CALL cerrgg( c3, nout )
2245  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2246  CALL cdrgev( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2247  $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2248  $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2249  $ a( 1, 9 ), nmax, dc( 1, 1 ), dc( 1, 2 ),
2250  $ dc( 1, 3 ), dc( 1, 4 ), work, lwork, rwork,
2251  $ result, info )
2252  IF( info.NE.0 )
2253  $ WRITE( nout, fmt = 9980 )'CDRGEV', info
2254 *
2255 * Blocked version
2256 *
2257  CALL xlaenv(16,2)
2258  CALL cdrgev3( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2259  $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2260  $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2261  $ a( 1, 9 ), nmax, dc( 1, 1 ), dc( 1, 2 ),
2262  $ dc( 1, 3 ), dc( 1, 4 ), work, lwork, rwork,
2263  $ result, info )
2264  IF( info.NE.0 )
2265  $ WRITE( nout, fmt = 9980 )'CDRGEV3', info
2266  END IF
2267  WRITE( nout, fmt = 9973 )
2268  GO TO 10
2269 *
2270  ELSE IF( cxv ) THEN
2271 *
2272 * -------------------------------------------------
2273 * CXV: Generalized Nonsymmetric Eigenvalue Problem
2274 * CGGEVX (eigenvalue/vector with condition numbers)
2275 * -------------------------------------------------
2276 *
2277  maxtyp = 2
2278  ntypes = maxtyp
2279  IF( nn.LT.0 ) THEN
2280  WRITE( nout, fmt = 9990 )c3
2281  ELSE
2282  IF( tsterr )
2283  $ CALL cerrgg( c3, nout )
2284  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2285  CALL cdrgvx( nn, thresh, nin, nout, a( 1, 1 ), nmax,
2286  $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), dc( 1, 1 ),
2287  $ dc( 1, 2 ), a( 1, 5 ), a( 1, 6 ), iwork( 1 ),
2288  $ iwork( 2 ), dr( 1, 1 ), dr( 1, 2 ), dr( 1, 3 ),
2289  $ dr( 1, 4 ), dr( 1, 5 ), dr( 1, 6 ), work,
2290  $ lwork, rwork, iwork( 3 ), liwork-2, result,
2291  $ logwrk, info )
2292 *
2293  IF( info.NE.0 )
2294  $ WRITE( nout, fmt = 9980 )'CDRGVX', info
2295  END IF
2296  WRITE( nout, fmt = 9973 )
2297  GO TO 10
2298 *
2299  ELSE IF( lsamen( 3, c3, 'CHB' ) ) THEN
2300 *
2301 * ------------------------------
2302 * CHB: Hermitian Band Reduction
2303 * ------------------------------
2304 *
2305  maxtyp = 15
2306  ntypes = min( maxtyp, ntypes )
2307  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2308  IF( tsterr )
2309  $ CALL cerrst( 'CHB', nout )
2310 * CALL CCHKHB( NN, NVAL, NK, KVAL, MAXTYP, DOTYPE, ISEED, THRESH,
2311 * $ NOUT, A( 1, 1 ), NMAX, DR( 1, 1 ), DR( 1, 2 ),
2312 * $ A( 1, 2 ), NMAX, WORK, LWORK, RWORK, RESULT,
2313 * $ INFO )
2314  CALL cchkhb2stg( nn, nval, nk, kval, maxtyp, dotype, iseed,
2315  $ thresh, nout, a( 1, 1 ), nmax, dr( 1, 1 ),
2316  $ dr( 1, 2 ), dr( 1, 3 ), dr( 1, 4 ), dr( 1, 5 ),
2317  $ a( 1, 2 ), nmax, work, lwork, rwork, result,
2318  $ info )
2319  IF( info.NE.0 )
2320  $ WRITE( nout, fmt = 9980 )'CCHKHB', info
2321 *
2322  ELSE IF( lsamen( 3, c3, 'CBB' ) ) THEN
2323 *
2324 * ------------------------------
2325 * CBB: General Band Reduction
2326 * ------------------------------
2327 *
2328  maxtyp = 15
2329  ntypes = min( maxtyp, ntypes )
2330  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2331  DO 370 i = 1, nparms
2332  nrhs = nsval( i )
2333 *
2334  IF( newsd.EQ.0 ) THEN
2335  DO 360 k = 1, 4
2336  iseed( k ) = ioldsd( k )
2337  360 CONTINUE
2338  END IF
2339  WRITE( nout, fmt = 9966 )c3, nrhs
2340  CALL cchkbb( nn, mval, nval, nk, kval, maxtyp, dotype, nrhs,
2341  $ iseed, thresh, nout, a( 1, 1 ), nmax,
2342  $ a( 1, 2 ), 2*nmax, dr( 1, 1 ), dr( 1, 2 ),
2343  $ a( 1, 4 ), nmax, a( 1, 5 ), nmax, a( 1, 6 ),
2344  $ nmax, a( 1, 7 ), work, lwork, rwork, result,
2345  $ info )
2346  IF( info.NE.0 )
2347  $ WRITE( nout, fmt = 9980 )'CCHKBB', info
2348  370 CONTINUE
2349 *
2350  ELSE IF( lsamen( 3, c3, 'GLM' ) ) THEN
2351 *
2352 * -----------------------------------------
2353 * GLM: Generalized Linear Regression Model
2354 * -----------------------------------------
2355 *
2356  CALL xlaenv( 1, 1 )
2357  IF( tsterr )
2358  $ CALL cerrgg( 'GLM', nout )
2359  CALL cckglm( nn, nval, mval, pval, ntypes, iseed, thresh, nmax,
2360  $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), x,
2361  $ work, dr( 1, 1 ), nin, nout, info )
2362  IF( info.NE.0 )
2363  $ WRITE( nout, fmt = 9980 )'CCKGLM', info
2364 *
2365  ELSE IF( lsamen( 3, c3, 'GQR' ) ) THEN
2366 *
2367 * ------------------------------------------
2368 * GQR: Generalized QR and RQ factorizations
2369 * ------------------------------------------
2370 *
2371  CALL xlaenv( 1, 1 )
2372  IF( tsterr )
2373  $ CALL cerrgg( 'GQR', nout )
2374  CALL cckgqr( nn, mval, nn, pval, nn, nval, ntypes, iseed,
2375  $ thresh, nmax, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
2376  $ a( 1, 4 ), taua, b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
2377  $ b( 1, 4 ), b( 1, 5 ), taub, work, dr( 1, 1 ), nin,
2378  $ nout, info )
2379  IF( info.NE.0 )
2380  $ WRITE( nout, fmt = 9980 )'CCKGQR', info
2381 *
2382  ELSE IF( lsamen( 3, c3, 'GSV' ) ) THEN
2383 *
2384 * ----------------------------------------------
2385 * GSV: Generalized Singular Value Decomposition
2386 * ----------------------------------------------
2387 *
2388  CALL xlaenv(1,1)
2389  IF( tsterr )
2390  $ CALL cerrgg( 'GSV', nout )
2391  CALL cckgsv( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2392  $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
2393  $ a( 1, 3 ), b( 1, 3 ), a( 1, 4 ), alpha, beta,
2394  $ b( 1, 4 ), iwork, work, dr( 1, 1 ), nin, nout,
2395  $ info )
2396  IF( info.NE.0 )
2397  $ WRITE( nout, fmt = 9980 )'CCKGSV', info
2398 *
2399  ELSE IF( lsamen( 3, c3, 'CSD' ) ) THEN
2400 *
2401 * ----------------------------------------------
2402 * CSD: CS Decomposition
2403 * ----------------------------------------------
2404 *
2405  CALL xlaenv(1,1)
2406  IF( tsterr )
2407  $ CALL cerrgg( 'CSD', nout )
2408  CALL cckcsd( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2409  $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), a( 1, 4 ),
2410  $ a( 1, 5 ), a( 1, 6 ), rwork, iwork, work,
2411  $ dr( 1, 1 ), nin, nout, info )
2412  IF( info.NE.0 )
2413  $ WRITE( nout, fmt = 9980 )'CCKCSD', info
2414 *
2415  ELSE IF( lsamen( 3, c3, 'LSE' ) ) THEN
2416 *
2417 * --------------------------------------
2418 * LSE: Constrained Linear Least Squares
2419 * --------------------------------------
2420 *
2421  CALL xlaenv( 1, 1 )
2422  IF( tsterr )
2423  $ CALL cerrgg( 'LSE', nout )
2424  CALL ccklse( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2425  $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), x,
2426  $ work, dr( 1, 1 ), nin, nout, info )
2427  IF( info.NE.0 )
2428  $ WRITE( nout, fmt = 9980 )'CCKLSE', info
2429  ELSE
2430  WRITE( nout, fmt = * )
2431  WRITE( nout, fmt = * )
2432  WRITE( nout, fmt = 9992 )c3
2433  END IF
2434  IF( .NOT.( cgx .OR. cxv ) )
2435  $ GO TO 190
2436  380 CONTINUE
2437  WRITE( nout, fmt = 9994 )
2438  s2 = second( )
2439  WRITE( nout, fmt = 9993 )s2 - s1
2440 *
2441  9999 FORMAT( / ' Execution not attempted due to input errors' )
2442  9997 FORMAT( / / 1x, a3, ': NB =', i4, ', NBMIN =', i4, ', NX =', i4 )
2443  9996 FORMAT( / / 1x, a3, ': NB =', i4, ', NBMIN =', i4, ', NS =', i4,
2444  $ ', MAXB =', i4, ', IACC22 =', i4, ', NBCOL =', i4 )
2445  9995 FORMAT( / / 1x, a3, ': NB =', i4, ', NBMIN =', i4, ', NX =', i4,
2446  $ ', NRHS =', i4 )
2447  9994 FORMAT( / / ' End of tests' )
2448  9993 FORMAT( ' Total time used = ', f12.2, ' seconds', / )
2449  9992 FORMAT( 1x, a3, ': Unrecognized path name' )
2450  9991 FORMAT( / / ' *** Invalid integer value in column ', i2,
2451  $ ' of input', ' line:', / a79 )
2452  9990 FORMAT( / / 1x, a3, ' routines were not tested' )
2453  9989 FORMAT( ' Invalid input value: ', a, '=', i6, '; must be >=',
2454  $ i6 )
2455  9988 FORMAT( ' Invalid input value: ', a, '=', i6, '; must be <=',
2456  $ i6 )
2457  9987 FORMAT( ' Tests of the Nonsymmetric Eigenvalue Problem routines' )
2458  9986 FORMAT( ' Tests of the Hermitian Eigenvalue Problem routines' )
2459  9985 FORMAT( ' Tests of the Singular Value Decomposition routines' )
2460  9984 FORMAT( / ' The following parameter values will be used:' )
2461  9983 FORMAT( 4x, a, 10i6, / 10x, 10i6 )
2462  9982 FORMAT( / ' Routines pass computational tests if test ratio is ',
2463  $ 'less than', f8.2, / )
2464  9981 FORMAT( ' Relative machine ', a, ' is taken to be', e16.6 )
2465  9980 FORMAT( ' *** Error code from ', a, ' = ', i4 )
2466  9979 FORMAT( / ' Tests of the Nonsymmetric Eigenvalue Problem Driver',
2467  $ / ' CGEEV (eigenvalues and eigevectors)' )
2468  9978 FORMAT( / ' Tests of the Nonsymmetric Eigenvalue Problem Driver',
2469  $ / ' CGEES (Schur form)' )
2470  9977 FORMAT( / ' Tests of the Nonsymmetric Eigenvalue Problem Expert',
2471  $ ' Driver', / ' CGEEVX (eigenvalues, eigenvectors and',
2472  $ ' condition numbers)' )
2473  9976 FORMAT( / ' Tests of the Nonsymmetric Eigenvalue Problem Expert',
2474  $ ' Driver', / ' CGEESX (Schur form and condition',
2475  $ ' numbers)' )
2476  9975 FORMAT( / ' Tests of the Generalized Nonsymmetric Eigenvalue ',
2477  $ 'Problem routines' )
2478  9974 FORMAT( ' Tests of CHBTRD', / ' (reduction of a Hermitian band ',
2479  $ 'matrix to real tridiagonal form)' )
2480  9973 FORMAT( / 1x, 71( '-' ) )
2481  9972 FORMAT( / ' LAPACK VERSION ', i1, '.', i1, '.', i1 )
2482  9971 FORMAT( / ' Tests of the Generalized Linear Regression Model ',
2483  $ 'routines' )
2484  9970 FORMAT( / ' Tests of the Generalized QR and RQ routines' )
2485  9969 FORMAT( / ' Tests of the Generalized Singular Value',
2486  $ ' Decomposition routines' )
2487  9968 FORMAT( / ' Tests of the Linear Least Squares routines' )
2488  9967 FORMAT( ' Tests of CGBBRD', / ' (reduction of a general band ',
2489  $ 'matrix to real bidiagonal form)' )
2490  9966 FORMAT( / / 1x, a3, ': NRHS =', i4 )
2491  9965 FORMAT( / ' Tests of the Generalized Nonsymmetric Eigenvalue ',
2492  $ 'Problem Expert Driver CGGESX' )
2493  9964 FORMAT( / ' Tests of the Generalized Nonsymmetric Eigenvalue ',
2494  $ 'Problem Driver CGGES' )
2495  9963 FORMAT( / ' Tests of the Generalized Nonsymmetric Eigenvalue ',
2496  $ 'Problem Driver CGGEV' )
2497  9962 FORMAT( / ' Tests of the Generalized Nonsymmetric Eigenvalue ',
2498  $ 'Problem Expert Driver CGGEVX' )
2499  9961 FORMAT( / / 1x, a3, ': NB =', i4, ', NBMIN =', i4, ', NX =', i4,
2500  $ ', INMIN=', i4,
2501  $ ', INWIN =', i4, ', INIBL =', i4, ', ISHFTS =', i4,
2502  $ ', IACC22 =', i4)
2503  9960 FORMAT( / ' Tests of the CS Decomposition routines' )
2504 *
2505 * End of CCHKEE
2506 *
2507  END
subroutine cchkbb(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)
CCHKBB
Definition: cchkbb.f:363
subroutine cdrvbd(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)
CDRVBD
Definition: cdrvbd.f:391
subroutine cerred(PATH, NUNIT)
CERRED
Definition: cerred.f:70
subroutine cdrvvx(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)
CDRVVX
Definition: cdrvvx.f:498
subroutine cdrvsg2stg(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)
CDRVSG2STG
Definition: cdrvsg2stg.f:378
subroutine cchkhb2stg(NSIZES, NN, NWDTHS, KK, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, SD, SE, D1, D2, D3, U, LDU, WORK, LWORK, RWORK, RESULT, INFO)
CCHKHBSTG
Definition: cchkhb2stg.f:325
subroutine cchkhs(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)
CCHKHS
Definition: cchkhs.f:414
subroutine cchkbk(NIN, NOUT)
CCHKBK
Definition: cchkbk.f:57
subroutine cchkgg(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)
CCHKGG
Definition: cchkgg.f:505
subroutine cdrves(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, H, HT, W, WT, VS, LDVS, RESULT, WORK, NWORK, RWORK, IWORK, BWORK, INFO)
CDRVES
Definition: cdrves.f:380
subroutine cdrgsx(NSIZE, NCMAX, THRESH, NIN, NOUT, A, LDA, B, AI, BI, Z, Q, ALPHA, BETA, C, LDC, S, WORK, LWORK, RWORK, IWORK, LIWORK, BWORK, INFO)
CDRGSX
Definition: cdrgsx.f:351
subroutine cckgsv(NM, MVAL, PVAL, NVAL, NMATS, ISEED, THRESH, NMAX, A, AF, B, BF, U, V, Q, ALPHA, BETA, R, IWORK, WORK, RWORK, NIN, NOUT, INFO)
CCKGSV
Definition: cckgsv.f:200
subroutine cdrvsx(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NIUNIT, NOUNIT, A, LDA, H, HT, W, WT, WTMP, VS, LDVS, VS1, RESULT, WORK, LWORK, RWORK, BWORK, INFO)
CDRVSX
Definition: cdrvsx.f:437
subroutine cdrvsg(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)
CDRVSG
Definition: cdrvsg.f:372
subroutine cdrgev3(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)
CDRGEV3
Definition: cdrgev3.f:401
subroutine alareq(PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT)
ALAREQ
Definition: alareq.f:92
subroutine cchkst(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)
CCHKST
Definition: cchkst.f:606
subroutine xlaenv(ISPEC, NVALUE)
XLAENV
Definition: xlaenv.f:83
program cchkee
CCHKEE
Definition: cchkee.f:1035
subroutine cckcsd(NM, MVAL, PVAL, QVAL, NMATS, ISEED, THRESH, MMAX, X, XF, U1, U2, V1T, V2T, THETA, IWORK, WORK, RWORK, NIN, NOUT, INFO)
CCKCSD
Definition: cckcsd.f:186
subroutine cchkst2stg(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)
CCHKST2STG
Definition: cchkst2stg.f:627
logical function lse(RI, RJ, LR)
Definition: sblat2.f:2945
subroutine ccklse(NN, MVAL, PVAL, NVAL, NMATS, ISEED, THRESH, NMAX, A, AF, B, BF, X, WORK, RWORK, NIN, NOUT, INFO)
CCKLSE
Definition: ccklse.f:170
subroutine cchkgk(NIN, NOUT)
CCHKGK
Definition: cchkgk.f:56
subroutine cerrbd(PATH, NUNIT)
CERRBD
Definition: cerrbd.f:56
subroutine cdrvst(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)
CDRVST
Definition: cdrvst.f:340
subroutine cdrges3(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, B, S, T, Q, LDQ, Z, ALPHA, BETA, WORK, LWORK, RWORK, RESULT, BWORK, INFO)
CDRGES3
Definition: cdrges3.f:384
subroutine cdrgvx(NSIZE, THRESH, NIN, NOUT, A, LDA, B, AI, BI, ALPHA, BETA, VL, VR, ILO, IHI, LSCALE, RSCALE, S, STRU, DIF, DIFTRU, WORK, LWORK, RWORK, IWORK, LIWORK, RESULT, BWORK, INFO)
CDRGVX
Definition: cdrgvx.f:300
subroutine cchkec(THRESH, TSTERR, NIN, NOUT)
CCHKEC
Definition: cchkec.f:77
subroutine cchkbl(NIN, NOUT)
CCHKBL
Definition: cchkbl.f:56
subroutine cchkbd(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)
CCHKBD
Definition: cchkbd.f:417
subroutine cdrgev(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)
CDRGEV
Definition: cdrgev.f:401
subroutine cerrhs(PATH, NUNIT)
CERRHS
Definition: cerrhs.f:57
subroutine cckgqr(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)
CCKGQR
Definition: cckgqr.f:213
subroutine cerrgg(PATH, NUNIT)
CERRGG
Definition: cerrgg.f:59
subroutine ilaver(VERS_MAJOR, VERS_MINOR, VERS_PATCH)
ILAVER returns the LAPACK version.
Definition: ilaver.f:50
subroutine cdrvst2stg(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)
CDRVST2STG
Definition: cdrvst2stg.f:340
subroutine cdrvev(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, H, W, W1, VL, LDVL, VR, LDVR, LRE, LDLRE, RESULT, WORK, NWORK, RWORK, IWORK, INFO)
CDRVEV
Definition: cdrvev.f:393
subroutine cdrges(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, B, S, T, Q, LDQ, Z, ALPHA, BETA, WORK, LWORK, RWORK, RESULT, BWORK, INFO)
CDRGES
Definition: cdrges.f:383
subroutine cchkhb(NSIZES, NN, NWDTHS, KK, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, SD, SE, U, LDU, WORK, LWORK, RWORK, RESULT, INFO)
CCHKHB
Definition: cchkhb.f:300
subroutine cchkgl(NIN, NOUT)
CCHKGL
Definition: cchkgl.f:55
subroutine cckglm(NN, NVAL, MVAL, PVAL, NMATS, ISEED, THRESH, NMAX, A, AF, B, BF, X, WORK, RWORK, NIN, NOUT, INFO)
CCKGLM
Definition: cckglm.f:170
subroutine cerrst(PATH, NUNIT)
CERRST
Definition: cerrst.f:63