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