LAPACK  3.8.0
LAPACK: Linear Algebra PACKage
schkee.f
Go to the documentation of this file.
1 *> \brief \b SCHKEE
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 SCHKEE
12 *
13 *
14 *> \par Purpose:
15 * =============
16 *>
17 *> \verbatim
18 *>
19 *> SCHKEE tests the REAL LAPACK subroutines for the matrix
20 *> eigenvalue problem. The test paths in this version are
21 *>
22 *> NEP (Nonsymmetric Eigenvalue Problem):
23 *> Test SGEHRD, SORGHR, SHSEQR, STREVC, SHSEIN, and SORMHR
24 *>
25 *> SEP (Symmetric Eigenvalue Problem):
26 *> Test SSYTRD, SORGTR, SSTEQR, SSTERF, SSTEIN, SSTEDC,
27 *> and drivers SSYEV(X), SSBEV(X), SSPEV(X), SSTEV(X),
28 *> SSYEVD, SSBEVD, SSPEVD, SSTEVD
29 *>
30 *> SVD (Singular Value Decomposition):
31 *> Test SGEBRD, SORGBR, SBDSQR, SBDSDC
32 *> and the drivers SGESVD, SGESDD
33 *>
34 *> SEV (Nonsymmetric Eigenvalue/eigenvector Driver):
35 *> Test SGEEV
36 *>
37 *> SES (Nonsymmetric Schur form Driver):
38 *> Test SGEES
39 *>
40 *> SVX (Nonsymmetric Eigenvalue/eigenvector Expert Driver):
41 *> Test SGEEVX
42 *>
43 *> SSX (Nonsymmetric Schur form Expert Driver):
44 *> Test SGEESX
45 *>
46 *> SGG (Generalized Nonsymmetric Eigenvalue Problem):
47 *> Test SGGHD3, SGGBAL, SGGBAK, SHGEQZ, and STGEVC
48 *>
49 *> SGS (Generalized Nonsymmetric Schur form Driver):
50 *> Test SGGES
51 *>
52 *> SGV (Generalized Nonsymmetric Eigenvalue/eigenvector Driver):
53 *> Test SGGEV
54 *>
55 *> SGX (Generalized Nonsymmetric Schur form Expert Driver):
56 *> Test SGGESX
57 *>
58 *> SXV (Generalized Nonsymmetric Eigenvalue/eigenvector Expert Driver):
59 *> Test SGGEVX
60 *>
61 *> SSG (Symmetric Generalized Eigenvalue Problem):
62 *> Test SSYGST, SSYGV, SSYGVD, SSYGVX, SSPGST, SSPGV, SSPGVD,
63 *> SSPGVX, SSBGST, SSBGV, SSBGVD, and SSBGVX
64 *>
65 *> SSB (Symmetric Band Eigenvalue Problem):
66 *> Test SSBTRD
67 *>
68 *> SBB (Band Singular Value Decomposition):
69 *> Test SGBBRD
70 *>
71 *> SEC (Eigencondition estimation):
72 *> Test SLALN2, SLASY2, SLAEQU, SLAEXC, STRSYL, STREXC, STRSNA,
73 *> STRSEN, and SLAQTR
74 *>
75 *> SBL (Balancing a general matrix)
76 *> Test SGEBAL
77 *>
78 *> SBK (Back transformation on a balanced matrix)
79 *> Test SGEBAK
80 *>
81 *> SGL (Balancing a matrix pair)
82 *> Test SGGBAL
83 *>
84 *> SGK (Back transformation on a matrix pair)
85 *> Test SGGBAK
86 *>
87 *> GLM (Generalized Linear Regression Model):
88 *> Tests SGGGLM
89 *>
90 *> GQR (Generalized QR and RQ factorizations):
91 *> Tests SGGQRF and SGGRQF
92 *>
93 *> GSV (Generalized Singular Value Decomposition):
94 *> Tests SGGSVD, SGGSVP, STGSJA, SLAGS2, SLAPLL, and SLAPMT
95 *>
96 *> CSD (CS decomposition):
97 *> Tests SORCSD
98 *>
99 *> LSE (Constrained Linear Least Squares):
100 *> Tests SGGLSE
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 *> SHS or NEP 21 SCHKHS
115 *> SST or SEP 21 SCHKST (routines)
116 *> 18 SDRVST (drivers)
117 *> SBD or SVD 16 SCHKBD (routines)
118 *> 5 SDRVBD (drivers)
119 *> SEV 21 SDRVEV
120 *> SES 21 SDRVES
121 *> SVX 21 SDRVVX
122 *> SSX 21 SDRVSX
123 *> SGG 26 SCHKGG (routines)
124 *> SGS 26 SDRGES
125 *> SGX 5 SDRGSX
126 *> SGV 26 SDRGEV
127 *> SXV 2 SDRGVX
128 *> SSG 21 SDRVSG
129 *> SSB 15 SCHKSB
130 *> SBB 15 SCHKBB
131 *> SEC - SCHKEC
132 *> SBL - SCHKBL
133 *> SBK - SCHKBK
134 *> SGL - SCHKGL
135 *> SGK - SCHKGK
136 *> GLM 8 SCKGLM
137 *> GQR 8 SCKGQR
138 *> GSV 8 SCKGSV
139 *> CSD 3 SCKCSD
140 *> LSE 8 SCKLSE
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 SSG 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 *> 'SSG' 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 *> SEV and SES data files:
333 *>
334 *> line 1: 'SEV' or 'SES' 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 'SEV' to test SGEEV, or
375 *> 'SES' to test SGEES.
376 *>
377 *>-----------------------------------------------------------------------
378 *>
379 *> The SVX data has two parts. The first part is identical to SEV,
380 *> and the second part consists of test matrices with precomputed
381 *> solutions.
382 *>
383 *> line 1: 'SVX' 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 'SVX' 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 SSX data is like SVX. The first part is identical to SEV, and the
425 *> second part consists of test matrices with precomputed solutions.
426 *>
427 *> line 1: 'SSX' 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 'SSX' 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 *> SGG 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 'SGG' for the generalized
530 *> eigenvalue problem routines and driver routines.
531 *>
532 *>-----------------------------------------------------------------------
533 *>
534 *> SGS and SGV input files:
535 *>
536 *> line 1: 'SGS' or 'SGV' 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 'SGS' for the generalized
575 *> eigenvalue problem routines and driver routines.
576 *>
577 *>-----------------------------------------------------------------------
578 *>
579 *> SXV input files:
580 *>
581 *> line 1: 'SXV' 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 *> SGX input files:
634 *>
635 *> line 1: 'SGX' 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 *> SSB 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 'SSB'.
723 *>
724 *>-----------------------------------------------------------------------
725 *>
726 *> SBB 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 'SBB'.
768 *>
769 *>-----------------------------------------------------------------------
770 *>
771 *> SEC 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 *> SBL and SBK input files:
787 *>
788 *> line 1: 'SBL' in columns 1-3 to test SGEBAL, or 'SBK' in
789 *> columns 1-3 to test SGEBAK.
790 *>
791 *> The remaining lines consist of specially constructed test cases.
792 *>
793 *>-----------------------------------------------------------------------
794 *>
795 *> SGL and SGK input files:
796 *>
797 *> line 1: 'SGL' in columns 1-3 to test SGGBAL, or 'SGK' in
798 *> columns 1-3 to test SGGBAK.
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 SGG.
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 single_eig
1039 *
1040 * =====================================================================
1041  PROGRAM schkee
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, FATAL, GLM, GQR, GSV, LSE, NEP, SBB, SBK,
1070  $ sbl, sep, ses, sev, sgg, sgk, sgl, sgs, sgv,
1071  $ sgx, ssb, ssx, svd, svx, sxv, 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  REAL 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  REAL 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  REAL SECOND, SLAMCH
1100  EXTERNAL lsamen, second, slamch
1101 * ..
1102 * .. External Subroutines ..
1103  EXTERNAL alareq, schkbb, schkbd, schkbk, schkbl, schkec,
1109  $ sdrges3, sdrgev3,
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  REAL SELWI( 20 ), SELWR( 20 )
1125 * ..
1126 * .. Common blocks ..
1127  COMMON / cenvir / nproc, nshift, maxb
1128  COMMON / claenv / iparms
1129  COMMON / infoc / infot, nunit, ok, lerr
1130  COMMON / srnamc / srnamt
1131  COMMON / sslct / selopt, seldim, selval, selwr, selwi
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 = second( )
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, 'SHS' )
1156  sep = lsamen( 3, path, 'SEP' ) .OR. lsamen( 3, path, 'SST' ) .OR.
1157  $ lsamen( 3, path, 'SSG' ) .OR. lsamen( 3, path, 'SE2' )
1158  svd = lsamen( 3, path, 'SVD' ) .OR. lsamen( 3, path, 'DBD' )
1159  svd = lsamen( 3, path, 'SVD' ) .OR. lsamen( 3, path, 'SBD' )
1160  sev = lsamen( 3, path, 'SEV' )
1161  ses = lsamen( 3, path, 'SES' )
1162  svx = lsamen( 3, path, 'SVX' )
1163  ssx = lsamen( 3, path, 'SSX' )
1164  sgg = lsamen( 3, path, 'SGG' )
1165  sgs = lsamen( 3, path, 'SGS' )
1166  sgx = lsamen( 3, path, 'SGX' )
1167  sgv = lsamen( 3, path, 'SGV' )
1168  sxv = lsamen( 3, path, 'SXV' )
1169  ssb = lsamen( 3, path, 'SSB' )
1170  sbb = lsamen( 3, path, 'SBB' )
1171  glm = lsamen( 3, path, 'GLM' )
1172  gqr = lsamen( 3, path, 'GQR' ) .OR. lsamen( 3, path, 'GRQ' )
1173  gsv = lsamen( 3, path, 'GSV' )
1174  csd = lsamen( 3, path, 'CSD' )
1175  lse = lsamen( 3, path, 'LSE' )
1176  sbl = lsamen( 3, path, 'SBL' )
1177  sbk = lsamen( 3, path, 'SBK' )
1178  sgl = lsamen( 3, path, 'SGL' )
1179  sgk = lsamen( 3, path, 'SGK' )
1180 *
1181 * Report values of parameters.
1182 *
1183  IF( path.EQ.' ' ) THEN
1184  GO TO 10
1185  ELSE IF( nep ) THEN
1186  WRITE( nout, fmt = 9987 )
1187  ELSE IF( sep ) THEN
1188  WRITE( nout, fmt = 9986 )
1189  ELSE IF( svd ) THEN
1190  WRITE( nout, fmt = 9985 )
1191  ELSE IF( sev ) THEN
1192  WRITE( nout, fmt = 9979 )
1193  ELSE IF( ses ) THEN
1194  WRITE( nout, fmt = 9978 )
1195  ELSE IF( svx ) THEN
1196  WRITE( nout, fmt = 9977 )
1197  ELSE IF( ssx ) THEN
1198  WRITE( nout, fmt = 9976 )
1199  ELSE IF( sgg ) THEN
1200  WRITE( nout, fmt = 9975 )
1201  ELSE IF( sgs ) THEN
1202  WRITE( nout, fmt = 9964 )
1203  ELSE IF( sgx ) THEN
1204  WRITE( nout, fmt = 9965 )
1205  ELSE IF( sgv ) THEN
1206  WRITE( nout, fmt = 9963 )
1207  ELSE IF( sxv ) THEN
1208  WRITE( nout, fmt = 9962 )
1209  ELSE IF( ssb ) THEN
1210  WRITE( nout, fmt = 9974 )
1211  ELSE IF( sbb ) THEN
1212  WRITE( nout, fmt = 9967 )
1213  ELSE IF( glm ) THEN
1214  WRITE( nout, fmt = 9971 )
1215  ELSE IF( gqr ) THEN
1216  WRITE( nout, fmt = 9970 )
1217  ELSE IF( gsv ) THEN
1218  WRITE( nout, fmt = 9969 )
1219  ELSE IF( csd ) THEN
1220  WRITE( nout, fmt = 9960 )
1221  ELSE IF( lse ) THEN
1222  WRITE( nout, fmt = 9968 )
1223  ELSE IF( sbl ) THEN
1224 *
1225 * SGEBAL: Balancing
1226 *
1227  CALL schkbl( nin, nout )
1228  GO TO 10
1229  ELSE IF( sbk ) THEN
1230 *
1231 * SGEBAK: Back transformation
1232 *
1233  CALL schkbk( nin, nout )
1234  GO TO 10
1235  ELSE IF( sgl ) THEN
1236 *
1237 * SGGBAL: Balancing
1238 *
1239  CALL schkgl( nin, nout )
1240  GO TO 10
1241  ELSE IF( sgk ) THEN
1242 *
1243 * SGGBAK: Back transformation
1244 *
1245  CALL schkgk( nin, nout )
1246  GO TO 10
1247  ELSE IF( lsamen( 3, path, 'SEC' ) ) THEN
1248 *
1249 * SEC: Eigencondition estimation
1250 *
1251  READ( nin, fmt = * )thresh
1252  CALL xlaenv( 1, 1 )
1253  CALL xlaenv( 12, 11 )
1254  CALL xlaenv( 13, 2 )
1255  CALL xlaenv( 14, 0 )
1256  CALL xlaenv( 15, 2 )
1257  CALL xlaenv( 16, 2 )
1258  tsterr = .true.
1259  CALL schkec( thresh, tsterr, nin, nout )
1260  GO TO 10
1261  ELSE
1262  WRITE( nout, fmt = 9992 )path
1263  GO TO 10
1264  END IF
1265  CALL ilaver( vers_major, vers_minor, vers_patch )
1266  WRITE( nout, fmt = 9972 ) vers_major, vers_minor, vers_patch
1267  WRITE( nout, fmt = 9984 )
1268 *
1269 * Read the number of values of M, P, and N.
1270 *
1271  READ( nin, fmt = * )nn
1272  IF( nn.LT.0 ) THEN
1273  WRITE( nout, fmt = 9989 )' NN ', nn, 1
1274  nn = 0
1275  fatal = .true.
1276  ELSE IF( nn.GT.maxin ) THEN
1277  WRITE( nout, fmt = 9988 )' NN ', nn, maxin
1278  nn = 0
1279  fatal = .true.
1280  END IF
1281 *
1282 * Read the values of M
1283 *
1284  IF( .NOT.( sgx .OR. sxv ) ) THEN
1285  READ( nin, fmt = * )( mval( i ), i = 1, nn )
1286  IF( svd ) THEN
1287  vname = ' M '
1288  ELSE
1289  vname = ' N '
1290  END IF
1291  DO 20 i = 1, nn
1292  IF( mval( i ).LT.0 ) THEN
1293  WRITE( nout, fmt = 9989 )vname, mval( i ), 0
1294  fatal = .true.
1295  ELSE IF( mval( i ).GT.nmax ) THEN
1296  WRITE( nout, fmt = 9988 )vname, mval( i ), nmax
1297  fatal = .true.
1298  END IF
1299  20 CONTINUE
1300  WRITE( nout, fmt = 9983 )'M: ', ( mval( i ), i = 1, nn )
1301  END IF
1302 *
1303 * Read the values of P
1304 *
1305  IF( glm .OR. gqr .OR. gsv .OR. csd .OR. lse ) THEN
1306  READ( nin, fmt = * )( pval( i ), i = 1, nn )
1307  DO 30 i = 1, nn
1308  IF( pval( i ).LT.0 ) THEN
1309  WRITE( nout, fmt = 9989 )' P ', pval( i ), 0
1310  fatal = .true.
1311  ELSE IF( pval( i ).GT.nmax ) THEN
1312  WRITE( nout, fmt = 9988 )' P ', pval( i ), nmax
1313  fatal = .true.
1314  END IF
1315  30 CONTINUE
1316  WRITE( nout, fmt = 9983 )'P: ', ( pval( i ), i = 1, nn )
1317  END IF
1318 *
1319 * Read the values of N
1320 *
1321  IF( svd .OR. sbb .OR. glm .OR. gqr .OR. gsv .OR. csd .OR.
1322  $ lse ) THEN
1323  READ( nin, fmt = * )( nval( i ), i = 1, nn )
1324  DO 40 i = 1, nn
1325  IF( nval( i ).LT.0 ) THEN
1326  WRITE( nout, fmt = 9989 )' N ', nval( i ), 0
1327  fatal = .true.
1328  ELSE IF( nval( i ).GT.nmax ) THEN
1329  WRITE( nout, fmt = 9988 )' N ', nval( i ), nmax
1330  fatal = .true.
1331  END IF
1332  40 CONTINUE
1333  ELSE
1334  DO 50 i = 1, nn
1335  nval( i ) = mval( i )
1336  50 CONTINUE
1337  END IF
1338  IF( .NOT.( sgx .OR. sxv ) ) THEN
1339  WRITE( nout, fmt = 9983 )'N: ', ( nval( i ), i = 1, nn )
1340  ELSE
1341  WRITE( nout, fmt = 9983 )'N: ', nn
1342  END IF
1343 *
1344 * Read the number of values of K, followed by the values of K
1345 *
1346  IF( ssb .OR. sbb ) THEN
1347  READ( nin, fmt = * )nk
1348  READ( nin, fmt = * )( kval( i ), i = 1, nk )
1349  DO 60 i = 1, nk
1350  IF( kval( i ).LT.0 ) THEN
1351  WRITE( nout, fmt = 9989 )' K ', kval( i ), 0
1352  fatal = .true.
1353  ELSE IF( kval( i ).GT.nmax ) THEN
1354  WRITE( nout, fmt = 9988 )' K ', kval( i ), nmax
1355  fatal = .true.
1356  END IF
1357  60 CONTINUE
1358  WRITE( nout, fmt = 9983 )'K: ', ( kval( i ), i = 1, nk )
1359  END IF
1360 *
1361  IF( sev .OR. ses .OR. svx .OR. ssx ) THEN
1362 *
1363 * For the nonsymmetric QR driver routines, only one set of
1364 * parameters is allowed.
1365 *
1366  READ( nin, fmt = * )nbval( 1 ), nbmin( 1 ), nxval( 1 ),
1367  $ inmin( 1 ), inwin( 1 ), inibl(1), ishfts(1), iacc22(1)
1368  IF( nbval( 1 ).LT.1 ) THEN
1369  WRITE( nout, fmt = 9989 )' NB ', nbval( 1 ), 1
1370  fatal = .true.
1371  ELSE IF( nbmin( 1 ).LT.1 ) THEN
1372  WRITE( nout, fmt = 9989 )'NBMIN ', nbmin( 1 ), 1
1373  fatal = .true.
1374  ELSE IF( nxval( 1 ).LT.1 ) THEN
1375  WRITE( nout, fmt = 9989 )' NX ', nxval( 1 ), 1
1376  fatal = .true.
1377  ELSE IF( inmin( 1 ).LT.1 ) THEN
1378  WRITE( nout, fmt = 9989 )' INMIN ', inmin( 1 ), 1
1379  fatal = .true.
1380  ELSE IF( inwin( 1 ).LT.1 ) THEN
1381  WRITE( nout, fmt = 9989 )' INWIN ', inwin( 1 ), 1
1382  fatal = .true.
1383  ELSE IF( inibl( 1 ).LT.1 ) THEN
1384  WRITE( nout, fmt = 9989 )' INIBL ', inibl( 1 ), 1
1385  fatal = .true.
1386  ELSE IF( ishfts( 1 ).LT.1 ) THEN
1387  WRITE( nout, fmt = 9989 )' ISHFTS ', ishfts( 1 ), 1
1388  fatal = .true.
1389  ELSE IF( iacc22( 1 ).LT.0 ) THEN
1390  WRITE( nout, fmt = 9989 )' IACC22 ', iacc22( 1 ), 0
1391  fatal = .true.
1392  END IF
1393  CALL xlaenv( 1, nbval( 1 ) )
1394  CALL xlaenv( 2, nbmin( 1 ) )
1395  CALL xlaenv( 3, nxval( 1 ) )
1396  CALL xlaenv(12, max( 11, inmin( 1 ) ) )
1397  CALL xlaenv(13, inwin( 1 ) )
1398  CALL xlaenv(14, inibl( 1 ) )
1399  CALL xlaenv(15, ishfts( 1 ) )
1400  CALL xlaenv(16, iacc22( 1 ) )
1401  WRITE( nout, fmt = 9983 )'NB: ', nbval( 1 )
1402  WRITE( nout, fmt = 9983 )'NBMIN:', nbmin( 1 )
1403  WRITE( nout, fmt = 9983 )'NX: ', nxval( 1 )
1404  WRITE( nout, fmt = 9983 )'INMIN: ', inmin( 1 )
1405  WRITE( nout, fmt = 9983 )'INWIN: ', inwin( 1 )
1406  WRITE( nout, fmt = 9983 )'INIBL: ', inibl( 1 )
1407  WRITE( nout, fmt = 9983 )'ISHFTS: ', ishfts( 1 )
1408  WRITE( nout, fmt = 9983 )'IACC22: ', iacc22( 1 )
1409 *
1410  ELSE IF( sgs .OR. sgx .OR. sgv .OR. sxv ) THEN
1411 *
1412 * For the nonsymmetric generalized driver routines, only one set
1413 * of parameters is allowed.
1414 *
1415  READ( nin, fmt = * )nbval( 1 ), nbmin( 1 ), nxval( 1 ),
1416  $ nsval( 1 ), mxbval( 1 )
1417  IF( nbval( 1 ).LT.1 ) THEN
1418  WRITE( nout, fmt = 9989 )' NB ', nbval( 1 ), 1
1419  fatal = .true.
1420  ELSE IF( nbmin( 1 ).LT.1 ) THEN
1421  WRITE( nout, fmt = 9989 )'NBMIN ', nbmin( 1 ), 1
1422  fatal = .true.
1423  ELSE IF( nxval( 1 ).LT.1 ) THEN
1424  WRITE( nout, fmt = 9989 )' NX ', nxval( 1 ), 1
1425  fatal = .true.
1426  ELSE IF( nsval( 1 ).LT.2 ) THEN
1427  WRITE( nout, fmt = 9989 )' NS ', nsval( 1 ), 2
1428  fatal = .true.
1429  ELSE IF( mxbval( 1 ).LT.1 ) THEN
1430  WRITE( nout, fmt = 9989 )' MAXB ', mxbval( 1 ), 1
1431  fatal = .true.
1432  END IF
1433  CALL xlaenv( 1, nbval( 1 ) )
1434  CALL xlaenv( 2, nbmin( 1 ) )
1435  CALL xlaenv( 3, nxval( 1 ) )
1436  CALL xlaenv( 4, nsval( 1 ) )
1437  CALL xlaenv( 8, mxbval( 1 ) )
1438  WRITE( nout, fmt = 9983 )'NB: ', nbval( 1 )
1439  WRITE( nout, fmt = 9983 )'NBMIN:', nbmin( 1 )
1440  WRITE( nout, fmt = 9983 )'NX: ', nxval( 1 )
1441  WRITE( nout, fmt = 9983 )'NS: ', nsval( 1 )
1442  WRITE( nout, fmt = 9983 )'MAXB: ', mxbval( 1 )
1443 *
1444  ELSE IF( .NOT.ssb .AND. .NOT.glm .AND. .NOT.gqr .AND. .NOT.
1445  $ gsv .AND. .NOT.csd .AND. .NOT.lse ) THEN
1446 *
1447 * For the other paths, the number of parameters can be varied
1448 * from the input file. Read the number of parameter values.
1449 *
1450  READ( nin, fmt = * )nparms
1451  IF( nparms.LT.1 ) THEN
1452  WRITE( nout, fmt = 9989 )'NPARMS', nparms, 1
1453  nparms = 0
1454  fatal = .true.
1455  ELSE IF( nparms.GT.maxin ) THEN
1456  WRITE( nout, fmt = 9988 )'NPARMS', nparms, maxin
1457  nparms = 0
1458  fatal = .true.
1459  END IF
1460 *
1461 * Read the values of NB
1462 *
1463  IF( .NOT.sbb ) THEN
1464  READ( nin, fmt = * )( nbval( i ), i = 1, nparms )
1465  DO 70 i = 1, nparms
1466  IF( nbval( i ).LT.0 ) THEN
1467  WRITE( nout, fmt = 9989 )' NB ', nbval( i ), 0
1468  fatal = .true.
1469  ELSE IF( nbval( i ).GT.nmax ) THEN
1470  WRITE( nout, fmt = 9988 )' NB ', nbval( i ), nmax
1471  fatal = .true.
1472  END IF
1473  70 CONTINUE
1474  WRITE( nout, fmt = 9983 )'NB: ',
1475  $ ( nbval( i ), i = 1, nparms )
1476  END IF
1477 *
1478 * Read the values of NBMIN
1479 *
1480  IF( nep .OR. sep .OR. svd .OR. sgg ) THEN
1481  READ( nin, fmt = * )( nbmin( i ), i = 1, nparms )
1482  DO 80 i = 1, nparms
1483  IF( nbmin( i ).LT.0 ) THEN
1484  WRITE( nout, fmt = 9989 )'NBMIN ', nbmin( i ), 0
1485  fatal = .true.
1486  ELSE IF( nbmin( i ).GT.nmax ) THEN
1487  WRITE( nout, fmt = 9988 )'NBMIN ', nbmin( i ), nmax
1488  fatal = .true.
1489  END IF
1490  80 CONTINUE
1491  WRITE( nout, fmt = 9983 )'NBMIN:',
1492  $ ( nbmin( i ), i = 1, nparms )
1493  ELSE
1494  DO 90 i = 1, nparms
1495  nbmin( i ) = 1
1496  90 CONTINUE
1497  END IF
1498 *
1499 * Read the values of NX
1500 *
1501  IF( nep .OR. sep .OR. svd ) THEN
1502  READ( nin, fmt = * )( nxval( i ), i = 1, nparms )
1503  DO 100 i = 1, nparms
1504  IF( nxval( i ).LT.0 ) THEN
1505  WRITE( nout, fmt = 9989 )' NX ', nxval( i ), 0
1506  fatal = .true.
1507  ELSE IF( nxval( i ).GT.nmax ) THEN
1508  WRITE( nout, fmt = 9988 )' NX ', nxval( i ), nmax
1509  fatal = .true.
1510  END IF
1511  100 CONTINUE
1512  WRITE( nout, fmt = 9983 )'NX: ',
1513  $ ( nxval( i ), i = 1, nparms )
1514  ELSE
1515  DO 110 i = 1, nparms
1516  nxval( i ) = 1
1517  110 CONTINUE
1518  END IF
1519 *
1520 * Read the values of NSHIFT (if SGG) or NRHS (if SVD
1521 * or SBB).
1522 *
1523  IF( svd .OR. sbb .OR. sgg ) THEN
1524  READ( nin, fmt = * )( nsval( i ), i = 1, nparms )
1525  DO 120 i = 1, nparms
1526  IF( nsval( i ).LT.0 ) THEN
1527  WRITE( nout, fmt = 9989 )' NS ', nsval( i ), 0
1528  fatal = .true.
1529  ELSE IF( nsval( i ).GT.nmax ) THEN
1530  WRITE( nout, fmt = 9988 )' NS ', nsval( i ), nmax
1531  fatal = .true.
1532  END IF
1533  120 CONTINUE
1534  WRITE( nout, fmt = 9983 )'NS: ',
1535  $ ( nsval( i ), i = 1, nparms )
1536  ELSE
1537  DO 130 i = 1, nparms
1538  nsval( i ) = 1
1539  130 CONTINUE
1540  END IF
1541 *
1542 * Read the values for MAXB.
1543 *
1544  IF( sgg ) THEN
1545  READ( nin, fmt = * )( mxbval( i ), i = 1, nparms )
1546  DO 140 i = 1, nparms
1547  IF( mxbval( i ).LT.0 ) THEN
1548  WRITE( nout, fmt = 9989 )' MAXB ', mxbval( i ), 0
1549  fatal = .true.
1550  ELSE IF( mxbval( i ).GT.nmax ) THEN
1551  WRITE( nout, fmt = 9988 )' MAXB ', mxbval( i ), nmax
1552  fatal = .true.
1553  END IF
1554  140 CONTINUE
1555  WRITE( nout, fmt = 9983 )'MAXB: ',
1556  $ ( mxbval( i ), i = 1, nparms )
1557  ELSE
1558  DO 150 i = 1, nparms
1559  mxbval( i ) = 1
1560  150 CONTINUE
1561  END IF
1562 *
1563 * Read the values for INMIN.
1564 *
1565  IF( nep ) THEN
1566  READ( nin, fmt = * )( inmin( i ), i = 1, nparms )
1567  DO 540 i = 1, nparms
1568  IF( inmin( i ).LT.0 ) THEN
1569  WRITE( nout, fmt = 9989 )' INMIN ', inmin( i ), 0
1570  fatal = .true.
1571  END IF
1572  540 CONTINUE
1573  WRITE( nout, fmt = 9983 )'INMIN: ',
1574  $ ( inmin( i ), i = 1, nparms )
1575  ELSE
1576  DO 550 i = 1, nparms
1577  inmin( i ) = 1
1578  550 CONTINUE
1579  END IF
1580 *
1581 * Read the values for INWIN.
1582 *
1583  IF( nep ) THEN
1584  READ( nin, fmt = * )( inwin( i ), i = 1, nparms )
1585  DO 560 i = 1, nparms
1586  IF( inwin( i ).LT.0 ) THEN
1587  WRITE( nout, fmt = 9989 )' INWIN ', inwin( i ), 0
1588  fatal = .true.
1589  END IF
1590  560 CONTINUE
1591  WRITE( nout, fmt = 9983 )'INWIN: ',
1592  $ ( inwin( i ), i = 1, nparms )
1593  ELSE
1594  DO 570 i = 1, nparms
1595  inwin( i ) = 1
1596  570 CONTINUE
1597  END IF
1598 *
1599 * Read the values for INIBL.
1600 *
1601  IF( nep ) THEN
1602  READ( nin, fmt = * )( inibl( i ), i = 1, nparms )
1603  DO 580 i = 1, nparms
1604  IF( inibl( i ).LT.0 ) THEN
1605  WRITE( nout, fmt = 9989 )' INIBL ', inibl( i ), 0
1606  fatal = .true.
1607  END IF
1608  580 CONTINUE
1609  WRITE( nout, fmt = 9983 )'INIBL: ',
1610  $ ( inibl( i ), i = 1, nparms )
1611  ELSE
1612  DO 590 i = 1, nparms
1613  inibl( i ) = 1
1614  590 CONTINUE
1615  END IF
1616 *
1617 * Read the values for ISHFTS.
1618 *
1619  IF( nep ) THEN
1620  READ( nin, fmt = * )( ishfts( i ), i = 1, nparms )
1621  DO 600 i = 1, nparms
1622  IF( ishfts( i ).LT.0 ) THEN
1623  WRITE( nout, fmt = 9989 )' ISHFTS ', ishfts( i ), 0
1624  fatal = .true.
1625  END IF
1626  600 CONTINUE
1627  WRITE( nout, fmt = 9983 )'ISHFTS: ',
1628  $ ( ishfts( i ), i = 1, nparms )
1629  ELSE
1630  DO 610 i = 1, nparms
1631  ishfts( i ) = 1
1632  610 CONTINUE
1633  END IF
1634 *
1635 * Read the values for IACC22.
1636 *
1637  IF( nep .OR. sgg ) THEN
1638  READ( nin, fmt = * )( iacc22( i ), i = 1, nparms )
1639  DO 620 i = 1, nparms
1640  IF( iacc22( i ).LT.0 ) THEN
1641  WRITE( nout, fmt = 9989 )' IACC22 ', iacc22( i ), 0
1642  fatal = .true.
1643  END IF
1644  620 CONTINUE
1645  WRITE( nout, fmt = 9983 )'IACC22: ',
1646  $ ( iacc22( i ), i = 1, nparms )
1647  ELSE
1648  DO 630 i = 1, nparms
1649  iacc22( i ) = 1
1650  630 CONTINUE
1651  END IF
1652 *
1653 * Read the values for NBCOL.
1654 *
1655  IF( sgg ) THEN
1656  READ( nin, fmt = * )( nbcol( i ), i = 1, nparms )
1657  DO 160 i = 1, nparms
1658  IF( nbcol( i ).LT.0 ) THEN
1659  WRITE( nout, fmt = 9989 )'NBCOL ', nbcol( i ), 0
1660  fatal = .true.
1661  ELSE IF( nbcol( i ).GT.nmax ) THEN
1662  WRITE( nout, fmt = 9988 )'NBCOL ', nbcol( i ), nmax
1663  fatal = .true.
1664  END IF
1665  160 CONTINUE
1666  WRITE( nout, fmt = 9983 )'NBCOL:',
1667  $ ( nbcol( i ), i = 1, nparms )
1668  ELSE
1669  DO 170 i = 1, nparms
1670  nbcol( i ) = 1
1671  170 CONTINUE
1672  END IF
1673  END IF
1674 *
1675 * Calculate and print the machine dependent constants.
1676 *
1677  WRITE( nout, fmt = * )
1678  eps = slamch( 'Underflow threshold' )
1679  WRITE( nout, fmt = 9981 )'underflow', eps
1680  eps = slamch( 'Overflow threshold' )
1681  WRITE( nout, fmt = 9981 )'overflow ', eps
1682  eps = slamch( 'Epsilon' )
1683  WRITE( nout, fmt = 9981 )'precision', eps
1684 *
1685 * Read the threshold value for the test ratios.
1686 *
1687  READ( nin, fmt = * )thresh
1688  WRITE( nout, fmt = 9982 )thresh
1689  IF( sep .OR. svd .OR. sgg ) THEN
1690 *
1691 * Read the flag that indicates whether to test LAPACK routines.
1692 *
1693  READ( nin, fmt = * )tstchk
1694 *
1695 * Read the flag that indicates whether to test driver routines.
1696 *
1697  READ( nin, fmt = * )tstdrv
1698  END IF
1699 *
1700 * Read the flag that indicates whether to test the error exits.
1701 *
1702  READ( nin, fmt = * )tsterr
1703 *
1704 * Read the code describing how to set the random number seed.
1705 *
1706  READ( nin, fmt = * )newsd
1707 *
1708 * If NEWSD = 2, read another line with 4 integers for the seed.
1709 *
1710  IF( newsd.EQ.2 )
1711  $ READ( nin, fmt = * )( ioldsd( i ), i = 1, 4 )
1712 *
1713  DO 180 i = 1, 4
1714  iseed( i ) = ioldsd( i )
1715  180 CONTINUE
1716 *
1717  IF( fatal ) THEN
1718  WRITE( nout, fmt = 9999 )
1719  stop
1720  END IF
1721 *
1722 * Read the input lines indicating the test path and its parameters.
1723 * The first three characters indicate the test path, and the number
1724 * of test matrix types must be the first nonblank item in columns
1725 * 4-80.
1726 *
1727  190 CONTINUE
1728 *
1729  IF( .NOT.( sgx .OR. sxv ) ) THEN
1730 *
1731  200 CONTINUE
1732  READ( nin, fmt = '(A80)', end = 380 )line
1733  c3 = line( 1: 3 )
1734  lenp = len( line )
1735  i = 3
1736  itmp = 0
1737  i1 = 0
1738  210 CONTINUE
1739  i = i + 1
1740  IF( i.GT.lenp ) THEN
1741  IF( i1.GT.0 ) THEN
1742  GO TO 240
1743  ELSE
1744  ntypes = maxt
1745  GO TO 240
1746  END IF
1747  END IF
1748  IF( line( i: i ).NE.' ' .AND. line( i: i ).NE.',' ) THEN
1749  i1 = i
1750  c1 = line( i1: i1 )
1751 *
1752 * Check that a valid integer was read
1753 *
1754  DO 220 k = 1, 10
1755  IF( c1.EQ.intstr( k: k ) ) THEN
1756  ic = k - 1
1757  GO TO 230
1758  END IF
1759  220 CONTINUE
1760  WRITE( nout, fmt = 9991 )i, line
1761  GO TO 200
1762  230 CONTINUE
1763  itmp = 10*itmp + ic
1764  GO TO 210
1765  ELSE IF( i1.GT.0 ) THEN
1766  GO TO 240
1767  ELSE
1768  GO TO 210
1769  END IF
1770  240 CONTINUE
1771  ntypes = itmp
1772 *
1773 * Skip the tests if NTYPES is <= 0.
1774 *
1775  IF( .NOT.( sev .OR. ses .OR. svx .OR. ssx .OR. sgv .OR.
1776  $ sgs ) .AND. ntypes.LE.0 ) THEN
1777  WRITE( nout, fmt = 9990 )c3
1778  GO TO 200
1779  END IF
1780 *
1781  ELSE
1782  IF( sxv )
1783  $ c3 = 'SXV'
1784  IF( sgx )
1785  $ c3 = 'SGX'
1786  END IF
1787 *
1788 * Reset the random number seed.
1789 *
1790  IF( newsd.EQ.0 ) THEN
1791  DO 250 k = 1, 4
1792  iseed( k ) = ioldsd( k )
1793  250 CONTINUE
1794  END IF
1795 *
1796  IF( lsamen( 3, c3, 'SHS' ) .OR. lsamen( 3, c3, 'NEP' ) ) THEN
1797 *
1798 * -------------------------------------
1799 * NEP: Nonsymmetric Eigenvalue Problem
1800 * -------------------------------------
1801 * Vary the parameters
1802 * NB = block size
1803 * NBMIN = minimum block size
1804 * NX = crossover point
1805 * NS = number of shifts
1806 * MAXB = minimum submatrix size
1807 *
1808  maxtyp = 21
1809  ntypes = min( maxtyp, ntypes )
1810  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1811  CALL xlaenv( 1, 1 )
1812  IF( tsterr )
1813  $ CALL serrhs( 'SHSEQR', nout )
1814  DO 270 i = 1, nparms
1815  CALL xlaenv( 1, nbval( i ) )
1816  CALL xlaenv( 2, nbmin( i ) )
1817  CALL xlaenv( 3, nxval( i ) )
1818  CALL xlaenv(12, max( 11, inmin( i ) ) )
1819  CALL xlaenv(13, inwin( i ) )
1820  CALL xlaenv(14, inibl( i ) )
1821  CALL xlaenv(15, ishfts( i ) )
1822  CALL xlaenv(16, iacc22( i ) )
1823 *
1824  IF( newsd.EQ.0 ) THEN
1825  DO 260 k = 1, 4
1826  iseed( k ) = ioldsd( k )
1827  260 CONTINUE
1828  END IF
1829  WRITE( nout, fmt = 9961 )c3, nbval( i ), nbmin( i ),
1830  $ nxval( i ), max( 11, inmin(i)),
1831  $ inwin( i ), inibl( i ), ishfts( i ), iacc22( i )
1832  CALL schkhs( nn, nval, maxtyp, dotype, iseed, thresh, nout,
1833  $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
1834  $ a( 1, 4 ), a( 1, 5 ), nmax, a( 1, 6 ),
1835  $ a( 1, 7 ), d( 1, 1 ), d( 1, 2 ), d( 1, 3 ),
1836  $ d( 1, 4 ), d( 1, 5 ), d( 1, 6 ), a( 1, 8 ),
1837  $ a( 1, 9 ), a( 1, 10 ), a( 1, 11 ), a( 1, 12 ),
1838  $ d( 1, 7 ), work, lwork, iwork, logwrk, result,
1839  $ info )
1840  IF( info.NE.0 )
1841  $ WRITE( nout, fmt = 9980 )'SCHKHS', info
1842  270 CONTINUE
1843 *
1844  ELSE IF( lsamen( 3, c3, 'SST' ) .OR. lsamen( 3, c3, 'SEP' )
1845  $ .OR. lsamen( 3, c3, 'SE2' ) ) THEN
1846 *
1847 * ----------------------------------
1848 * SEP: Symmetric Eigenvalue Problem
1849 * ----------------------------------
1850 * Vary the parameters
1851 * NB = block size
1852 * NBMIN = minimum block size
1853 * NX = crossover point
1854 *
1855  maxtyp = 21
1856  ntypes = min( maxtyp, ntypes )
1857  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1858  CALL xlaenv( 1, 1 )
1859  CALL xlaenv( 9, 25 )
1860  IF( tsterr )
1861  $ CALL serrst( 'SST', nout )
1862  DO 290 i = 1, nparms
1863  CALL xlaenv( 1, nbval( i ) )
1864  CALL xlaenv( 2, nbmin( i ) )
1865  CALL xlaenv( 3, nxval( i ) )
1866 *
1867  IF( newsd.EQ.0 ) THEN
1868  DO 280 k = 1, 4
1869  iseed( k ) = ioldsd( k )
1870  280 CONTINUE
1871  END IF
1872  WRITE( nout, fmt = 9997 )c3, nbval( i ), nbmin( i ),
1873  $ nxval( i )
1874  IF( tstchk ) THEN
1875  IF( lsamen( 3, c3, 'SE2' ) ) THEN
1876  CALL schkst2stg( nn, nval, maxtyp, dotype, iseed, thresh,
1877  $ nout, a( 1, 1 ), nmax, a( 1, 2 ), d( 1, 1 ),
1878  $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), d( 1, 5 ),
1879  $ d( 1, 6 ), d( 1, 7 ), d( 1, 8 ), d( 1, 9 ),
1880  $ d( 1, 10 ), d( 1, 11 ), a( 1, 3 ), nmax,
1881  $ a( 1, 4 ), a( 1, 5 ), d( 1, 12 ), a( 1, 6 ),
1882  $ work, lwork, iwork, liwork, result, info )
1883  ELSE
1884  CALL schkst( nn, nval, maxtyp, dotype, iseed, thresh,
1885  $ nout, a( 1, 1 ), nmax, a( 1, 2 ), d( 1, 1 ),
1886  $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), d( 1, 5 ),
1887  $ d( 1, 6 ), d( 1, 7 ), d( 1, 8 ), d( 1, 9 ),
1888  $ d( 1, 10 ), d( 1, 11 ), a( 1, 3 ), nmax,
1889  $ a( 1, 4 ), a( 1, 5 ), d( 1, 12 ), a( 1, 6 ),
1890  $ work, lwork, iwork, liwork, result, info )
1891  ENDIF
1892  IF( info.NE.0 )
1893  $ WRITE( nout, fmt = 9980 )'SCHKST', info
1894  END IF
1895  IF( tstdrv ) THEN
1896  IF( lsamen( 3, c3, 'SE2' ) ) THEN
1897  CALL sdrvst2stg( nn, nval, 18, dotype, iseed, thresh,
1898  $ nout, a( 1, 1 ), nmax, d( 1, 3 ), d( 1, 4 ),
1899  $ d( 1, 5 ), d( 1, 6 ), d( 1, 8 ), d( 1, 9 ),
1900  $ d( 1, 10 ), d( 1, 11), a( 1, 2 ), nmax,
1901  $ a( 1, 3 ), d( 1, 12 ), a( 1, 4 ), work,
1902  $ lwork, iwork, liwork, result, info )
1903  ELSE
1904  CALL sdrvst( nn, nval, 18, dotype, iseed, thresh,
1905  $ nout, a( 1, 1 ), nmax, d( 1, 3 ), d( 1, 4 ),
1906  $ d( 1, 5 ), d( 1, 6 ), d( 1, 8 ), d( 1, 9 ),
1907  $ d( 1, 10 ), d( 1, 11), a( 1, 2 ), nmax,
1908  $ a( 1, 3 ), d( 1, 12 ), a( 1, 4 ), work,
1909  $ lwork, iwork, liwork, result, info )
1910  ENDIF
1911  IF( info.NE.0 )
1912  $ WRITE( nout, fmt = 9980 )'SDRVST', info
1913  END IF
1914  290 CONTINUE
1915 *
1916  ELSE IF( lsamen( 3, c3, 'SSG' ) ) THEN
1917 *
1918 * ----------------------------------------------
1919 * SSG: Symmetric Generalized Eigenvalue Problem
1920 * ----------------------------------------------
1921 * Vary the parameters
1922 * NB = block size
1923 * NBMIN = minimum block size
1924 * NX = crossover point
1925 *
1926  maxtyp = 21
1927  ntypes = min( maxtyp, ntypes )
1928  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1929  CALL xlaenv( 9, 25 )
1930  DO 310 i = 1, nparms
1931  CALL xlaenv( 1, nbval( i ) )
1932  CALL xlaenv( 2, nbmin( i ) )
1933  CALL xlaenv( 3, nxval( i ) )
1934 *
1935  IF( newsd.EQ.0 ) THEN
1936  DO 300 k = 1, 4
1937  iseed( k ) = ioldsd( k )
1938  300 CONTINUE
1939  END IF
1940  WRITE( nout, fmt = 9997 )c3, nbval( i ), nbmin( i ),
1941  $ nxval( i )
1942  IF( tstchk ) THEN
1943 * CALL SDRVSG( NN, NVAL, MAXTYP, DOTYPE, ISEED, THRESH,
1944 * $ NOUT, A( 1, 1 ), NMAX, A( 1, 2 ), NMAX,
1945 * $ D( 1, 3 ), A( 1, 3 ), NMAX, A( 1, 4 ),
1946 * $ A( 1, 5 ), A( 1, 6 ), A( 1, 7 ), WORK,
1947 * $ LWORK, IWORK, LIWORK, RESULT, INFO )
1948  CALL sdrvsg2stg( nn, nval, maxtyp, dotype, iseed, thresh,
1949  $ nout, a( 1, 1 ), nmax, a( 1, 2 ), nmax,
1950  $ d( 1, 3 ), d( 1, 3 ), a( 1, 3 ), nmax,
1951  $ a( 1, 4 ), a( 1, 5 ), a( 1, 6 ),
1952  $ a( 1, 7 ), work, lwork, iwork, liwork,
1953  $ result, info )
1954  IF( info.NE.0 )
1955  $ WRITE( nout, fmt = 9980 )'SDRVSG', info
1956  END IF
1957  310 CONTINUE
1958 *
1959  ELSE IF( lsamen( 3, c3, 'SBD' ) .OR. lsamen( 3, c3, 'SVD' ) ) THEN
1960 *
1961 * ----------------------------------
1962 * SVD: Singular Value Decomposition
1963 * ----------------------------------
1964 * Vary the parameters
1965 * NB = block size
1966 * NBMIN = minimum block size
1967 * NX = crossover point
1968 * NRHS = number of right hand sides
1969 *
1970  maxtyp = 16
1971  ntypes = min( maxtyp, ntypes )
1972  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1973  CALL xlaenv( 1, 1 )
1974  CALL xlaenv( 9, 25 )
1975 *
1976 * Test the error exits
1977 *
1978  IF( tsterr .AND. tstchk )
1979  $ CALL serrbd( 'SBD', nout )
1980  IF( tsterr .AND. tstdrv )
1981  $ CALL serred( 'SBD', nout )
1982 *
1983  DO 330 i = 1, nparms
1984  nrhs = nsval( i )
1985  CALL xlaenv( 1, nbval( i ) )
1986  CALL xlaenv( 2, nbmin( i ) )
1987  CALL xlaenv( 3, nxval( i ) )
1988  IF( newsd.EQ.0 ) THEN
1989  DO 320 k = 1, 4
1990  iseed( k ) = ioldsd( k )
1991  320 CONTINUE
1992  END IF
1993  WRITE( nout, fmt = 9995 )c3, nbval( i ), nbmin( i ),
1994  $ nxval( i ), nrhs
1995  IF( tstchk ) THEN
1996  CALL schkbd( nn, mval, nval, maxtyp, dotype, nrhs, iseed,
1997  $ thresh, a( 1, 1 ), nmax, d( 1, 1 ),
1998  $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), a( 1, 2 ),
1999  $ nmax, a( 1, 3 ), a( 1, 4 ), a( 1, 5 ), nmax,
2000  $ a( 1, 6 ), nmax, a( 1, 7 ), a( 1, 8 ), work,
2001  $ lwork, iwork, nout, info )
2002  IF( info.NE.0 )
2003  $ WRITE( nout, fmt = 9980 )'SCHKBD', info
2004  END IF
2005  IF( tstdrv )
2006  $ CALL sdrvbd( nn, mval, nval, maxtyp, dotype, iseed,
2007  $ thresh, a( 1, 1 ), nmax, a( 1, 2 ), nmax,
2008  $ a( 1, 3 ), nmax, a( 1, 4 ), a( 1, 5 ),
2009  $ a( 1, 6 ), d( 1, 1 ), d( 1, 2 ), d( 1, 3 ),
2010  $ work, lwork, iwork, nout, info )
2011  330 CONTINUE
2012 *
2013  ELSE IF( lsamen( 3, c3, 'SEV' ) ) THEN
2014 *
2015 * --------------------------------------------
2016 * SEV: Nonsymmetric Eigenvalue Problem Driver
2017 * SGEEV (eigenvalues and eigenvectors)
2018 * --------------------------------------------
2019 *
2020  maxtyp = 21
2021  ntypes = min( maxtyp, ntypes )
2022  IF( ntypes.LE.0 ) THEN
2023  WRITE( nout, fmt = 9990 )c3
2024  ELSE
2025  IF( tsterr )
2026  $ CALL serred( c3, nout )
2027  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2028  CALL sdrvev( nn, nval, ntypes, dotype, iseed, thresh, nout,
2029  $ a( 1, 1 ), nmax, a( 1, 2 ), d( 1, 1 ),
2030  $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), a( 1, 3 ),
2031  $ nmax, a( 1, 4 ), nmax, a( 1, 5 ), nmax, result,
2032  $ work, lwork, iwork, info )
2033  IF( info.NE.0 )
2034  $ WRITE( nout, fmt = 9980 )'SGEEV', info
2035  END IF
2036  WRITE( nout, fmt = 9973 )
2037  GO TO 10
2038 *
2039  ELSE IF( lsamen( 3, c3, 'SES' ) ) THEN
2040 *
2041 * --------------------------------------------
2042 * SES: Nonsymmetric Eigenvalue Problem Driver
2043 * SGEES (Schur form)
2044 * --------------------------------------------
2045 *
2046  maxtyp = 21
2047  ntypes = min( maxtyp, ntypes )
2048  IF( ntypes.LE.0 ) THEN
2049  WRITE( nout, fmt = 9990 )c3
2050  ELSE
2051  IF( tsterr )
2052  $ CALL serred( c3, nout )
2053  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2054  CALL sdrves( nn, nval, ntypes, dotype, iseed, thresh, nout,
2055  $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2056  $ d( 1, 1 ), d( 1, 2 ), d( 1, 3 ), d( 1, 4 ),
2057  $ a( 1, 4 ), nmax, result, work, lwork, iwork,
2058  $ logwrk, info )
2059  IF( info.NE.0 )
2060  $ WRITE( nout, fmt = 9980 )'SGEES', info
2061  END IF
2062  WRITE( nout, fmt = 9973 )
2063  GO TO 10
2064 *
2065  ELSE IF( lsamen( 3, c3, 'SVX' ) ) THEN
2066 *
2067 * --------------------------------------------------------------
2068 * SVX: Nonsymmetric Eigenvalue Problem Expert Driver
2069 * SGEEVX (eigenvalues, eigenvectors and condition numbers)
2070 * --------------------------------------------------------------
2071 *
2072  maxtyp = 21
2073  ntypes = min( maxtyp, ntypes )
2074  IF( ntypes.LT.0 ) THEN
2075  WRITE( nout, fmt = 9990 )c3
2076  ELSE
2077  IF( tsterr )
2078  $ CALL serred( c3, nout )
2079  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2080  CALL sdrvvx( nn, nval, ntypes, dotype, iseed, thresh, nin,
2081  $ nout, a( 1, 1 ), nmax, a( 1, 2 ), d( 1, 1 ),
2082  $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), a( 1, 3 ),
2083  $ nmax, a( 1, 4 ), nmax, a( 1, 5 ), nmax,
2084  $ d( 1, 5 ), d( 1, 6 ), d( 1, 7 ), d( 1, 8 ),
2085  $ d( 1, 9 ), d( 1, 10 ), d( 1, 11 ), d( 1, 12 ),
2086  $ result, work, lwork, iwork, info )
2087  IF( info.NE.0 )
2088  $ WRITE( nout, fmt = 9980 )'SGEEVX', info
2089  END IF
2090  WRITE( nout, fmt = 9973 )
2091  GO TO 10
2092 *
2093  ELSE IF( lsamen( 3, c3, 'SSX' ) ) THEN
2094 *
2095 * ---------------------------------------------------
2096 * SSX: Nonsymmetric Eigenvalue Problem Expert Driver
2097 * SGEESX (Schur form and condition numbers)
2098 * ---------------------------------------------------
2099 *
2100  maxtyp = 21
2101  ntypes = min( maxtyp, ntypes )
2102  IF( ntypes.LT.0 ) THEN
2103  WRITE( nout, fmt = 9990 )c3
2104  ELSE
2105  IF( tsterr )
2106  $ CALL serred( c3, nout )
2107  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2108  CALL sdrvsx( nn, nval, ntypes, dotype, iseed, thresh, nin,
2109  $ nout, a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2110  $ d( 1, 1 ), d( 1, 2 ), d( 1, 3 ), d( 1, 4 ),
2111  $ d( 1, 5 ), d( 1, 6 ), a( 1, 4 ), nmax,
2112  $ a( 1, 5 ), result, work, lwork, iwork, logwrk,
2113  $ info )
2114  IF( info.NE.0 )
2115  $ WRITE( nout, fmt = 9980 )'SGEESX', info
2116  END IF
2117  WRITE( nout, fmt = 9973 )
2118  GO TO 10
2119 *
2120  ELSE IF( lsamen( 3, c3, 'SGG' ) ) THEN
2121 *
2122 * -------------------------------------------------
2123 * SGG: Generalized Nonsymmetric Eigenvalue Problem
2124 * -------------------------------------------------
2125 * Vary the parameters
2126 * NB = block size
2127 * NBMIN = minimum block size
2128 * NS = number of shifts
2129 * MAXB = minimum submatrix size
2130 * IACC22: structured matrix multiply
2131 * NBCOL = minimum column dimension for blocks
2132 *
2133  maxtyp = 26
2134  ntypes = min( maxtyp, ntypes )
2135  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2136  CALL xlaenv(1,1)
2137  IF( tstchk .AND. tsterr )
2138  & CALL serrgg( c3, nout )
2139  DO 350 i = 1, nparms
2140  CALL xlaenv( 1, nbval( i ) )
2141  CALL xlaenv( 2, nbmin( i ) )
2142  CALL xlaenv( 4, nsval( i ) )
2143  CALL xlaenv( 8, mxbval( i ) )
2144  CALL xlaenv( 16, iacc22( i ) )
2145  CALL xlaenv( 5, nbcol( i ) )
2146 *
2147  IF( newsd.EQ.0 ) THEN
2148  DO 340 k = 1, 4
2149  iseed( k ) = ioldsd( k )
2150  340 CONTINUE
2151  END IF
2152  WRITE( nout, fmt = 9996 )c3, nbval( i ), nbmin( i ),
2153  $ nsval( i ), mxbval( i ), iacc22( i ), nbcol( i )
2154  tstdif = .false.
2155  thrshn = 10.
2156  IF( tstchk ) THEN
2157  CALL schkgg( nn, nval, maxtyp, dotype, iseed, thresh,
2158  $ tstdif, thrshn, nout, a( 1, 1 ), nmax,
2159  $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
2160  $ a( 1, 6 ), a( 1, 7 ), a( 1, 8 ), a( 1, 9 ),
2161  $ nmax, a( 1, 10 ), a( 1, 11 ), a( 1, 12 ),
2162  $ d( 1, 1 ), d( 1, 2 ), d( 1, 3 ), d( 1, 4 ),
2163  $ d( 1, 5 ), d( 1, 6 ), a( 1, 13 ),
2164  $ a( 1, 14 ), work, lwork, logwrk, result,
2165  $ info )
2166  IF( info.NE.0 )
2167  $ WRITE( nout, fmt = 9980 )'SCHKGG', info
2168  END IF
2169  350 CONTINUE
2170 *
2171  ELSE IF( lsamen( 3, c3, 'SGS' ) ) THEN
2172 *
2173 * -------------------------------------------------
2174 * SGS: Generalized Nonsymmetric Eigenvalue Problem
2175 * SGGES (Schur form)
2176 * -------------------------------------------------
2177 *
2178  maxtyp = 26
2179  ntypes = min( maxtyp, ntypes )
2180  IF( ntypes.LE.0 ) THEN
2181  WRITE( nout, fmt = 9990 )c3
2182  ELSE
2183  IF( tsterr )
2184  $ CALL serrgg( c3, nout )
2185  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2186  CALL sdrges( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2187  $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2188  $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2189  $ d( 1, 1 ), d( 1, 2 ), d( 1, 3 ), work, lwork,
2190  $ result, logwrk, info )
2191 *
2192  IF( info.NE.0 )
2193  $ WRITE( nout, fmt = 9980 )'SDRGES', info
2194 *
2195 * Blocked version
2196 *
2197  CALL xlaenv(16,1)
2198  CALL sdrges3( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2199  $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2200  $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2201  $ d( 1, 1 ), d( 1, 2 ), d( 1, 3 ), work, lwork,
2202  $ result, logwrk, info )
2203 *
2204  IF( info.NE.0 )
2205  $ WRITE( nout, fmt = 9980 )'SDRGES3', info
2206  END IF
2207  WRITE( nout, fmt = 9973 )
2208  GO TO 10
2209 *
2210  ELSE IF( sgx ) THEN
2211 *
2212 * -------------------------------------------------
2213 * SGX: Generalized Nonsymmetric Eigenvalue Problem
2214 * SGGESX (Schur form and condition numbers)
2215 * -------------------------------------------------
2216 *
2217  maxtyp = 5
2218  ntypes = maxtyp
2219  IF( nn.LT.0 ) THEN
2220  WRITE( nout, fmt = 9990 )c3
2221  ELSE
2222  IF( tsterr )
2223  $ CALL serrgg( c3, nout )
2224  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2225  CALL xlaenv( 5, 2 )
2226  CALL sdrgsx( nn, ncmax, thresh, nin, nout, a( 1, 1 ), nmax,
2227  $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
2228  $ a( 1, 6 ), d( 1, 1 ), d( 1, 2 ), d( 1, 3 ),
2229  $ c( 1, 1 ), ncmax*ncmax, a( 1, 12 ), work,
2230  $ lwork, iwork, liwork, logwrk, info )
2231  IF( info.NE.0 )
2232  $ WRITE( nout, fmt = 9980 )'SDRGSX', info
2233  END IF
2234  WRITE( nout, fmt = 9973 )
2235  GO TO 10
2236 *
2237  ELSE IF( lsamen( 3, c3, 'SGV' ) ) THEN
2238 *
2239 * -------------------------------------------------
2240 * SGV: Generalized Nonsymmetric Eigenvalue Problem
2241 * SGGEV (Eigenvalue/vector form)
2242 * -------------------------------------------------
2243 *
2244  maxtyp = 26
2245  ntypes = min( maxtyp, ntypes )
2246  IF( ntypes.LE.0 ) THEN
2247  WRITE( nout, fmt = 9990 )c3
2248  ELSE
2249  IF( tsterr )
2250  $ CALL serrgg( c3, nout )
2251  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2252  CALL sdrgev( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2253  $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2254  $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2255  $ a( 1, 9 ), nmax, d( 1, 1 ), d( 1, 2 ),
2256  $ d( 1, 3 ), d( 1, 4 ), d( 1, 5 ), d( 1, 6 ),
2257  $ work, lwork, result, info )
2258  IF( info.NE.0 )
2259  $ WRITE( nout, fmt = 9980 )'SDRGEV', info
2260 *
2261 * Blocked version
2262 *
2263  CALL sdrgev3( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2264  $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2265  $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2266  $ a( 1, 9 ), nmax, d( 1, 1 ), d( 1, 2 ),
2267  $ d( 1, 3 ), d( 1, 4 ), d( 1, 5 ), d( 1, 6 ),
2268  $ work, lwork, result, info )
2269  IF( info.NE.0 )
2270  $ WRITE( nout, fmt = 9980 )'SDRGEV3', info
2271  END IF
2272  WRITE( nout, fmt = 9973 )
2273  GO TO 10
2274 *
2275  ELSE IF( sxv ) THEN
2276 *
2277 * -------------------------------------------------
2278 * SXV: Generalized Nonsymmetric Eigenvalue Problem
2279 * SGGEVX (eigenvalue/vector with condition numbers)
2280 * -------------------------------------------------
2281 *
2282  maxtyp = 2
2283  ntypes = maxtyp
2284  IF( nn.LT.0 ) THEN
2285  WRITE( nout, fmt = 9990 )c3
2286  ELSE
2287  IF( tsterr )
2288  $ CALL serrgg( c3, nout )
2289  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2290  CALL sdrgvx( nn, thresh, nin, nout, a( 1, 1 ), nmax,
2291  $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), d( 1, 1 ),
2292  $ d( 1, 2 ), d( 1, 3 ), a( 1, 5 ), a( 1, 6 ),
2293  $ iwork( 1 ), iwork( 2 ), d( 1, 4 ), d( 1, 5 ),
2294  $ d( 1, 6 ), d( 1, 7 ), d( 1, 8 ), d( 1, 9 ),
2295  $ work, lwork, iwork( 3 ), liwork-2, result,
2296  $ logwrk, info )
2297 *
2298  IF( info.NE.0 )
2299  $ WRITE( nout, fmt = 9980 )'SDRGVX', info
2300  END IF
2301  WRITE( nout, fmt = 9973 )
2302  GO TO 10
2303 *
2304  ELSE IF( lsamen( 3, c3, 'SSB' ) ) THEN
2305 *
2306 * ------------------------------
2307 * SSB: Symmetric Band Reduction
2308 * ------------------------------
2309 *
2310  maxtyp = 15
2311  ntypes = min( maxtyp, ntypes )
2312  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2313  IF( tsterr )
2314  $ CALL serrst( 'SSB', nout )
2315 * CALL SCHKSB( NN, NVAL, NK, KVAL, MAXTYP, DOTYPE, ISEED, THRESH,
2316 * $ NOUT, A( 1, 1 ), NMAX, D( 1, 1 ), D( 1, 2 ),
2317 * $ A( 1, 2 ), NMAX, WORK, LWORK, RESULT, INFO )
2318  CALL schksb2stg( nn, nval, nk, kval, maxtyp, dotype, iseed,
2319  $ thresh, nout, a( 1, 1 ), nmax, d( 1, 1 ),
2320  $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), d( 1, 5 ),
2321  $ a( 1, 2 ), nmax, work, lwork, result, info )
2322  IF( info.NE.0 )
2323  $ WRITE( nout, fmt = 9980 )'SCHKSB', info
2324 *
2325  ELSE IF( lsamen( 3, c3, 'SBB' ) ) THEN
2326 *
2327 * ------------------------------
2328 * SBB: General Band Reduction
2329 * ------------------------------
2330 *
2331  maxtyp = 15
2332  ntypes = min( maxtyp, ntypes )
2333  CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2334  DO 370 i = 1, nparms
2335  nrhs = nsval( i )
2336 *
2337  IF( newsd.EQ.0 ) THEN
2338  DO 360 k = 1, 4
2339  iseed( k ) = ioldsd( k )
2340  360 CONTINUE
2341  END IF
2342  WRITE( nout, fmt = 9966 )c3, nrhs
2343  CALL schkbb( nn, mval, nval, nk, kval, maxtyp, dotype, nrhs,
2344  $ iseed, thresh, nout, a( 1, 1 ), nmax,
2345  $ a( 1, 2 ), 2*nmax, d( 1, 1 ), d( 1, 2 ),
2346  $ a( 1, 4 ), nmax, a( 1, 5 ), nmax, a( 1, 6 ),
2347  $ nmax, a( 1, 7 ), work, lwork, result, info )
2348  IF( info.NE.0 )
2349  $ WRITE( nout, fmt = 9980 )'SCHKBB', info
2350  370 CONTINUE
2351 *
2352  ELSE IF( lsamen( 3, c3, 'GLM' ) ) THEN
2353 *
2354 * -----------------------------------------
2355 * GLM: Generalized Linear Regression Model
2356 * -----------------------------------------
2357 *
2358  CALL xlaenv( 1, 1 )
2359  IF( tsterr )
2360  $ CALL serrgg( 'GLM', nout )
2361  CALL sckglm( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2362  $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), x,
2363  $ work, d( 1, 1 ), nin, nout, info )
2364  IF( info.NE.0 )
2365  $ WRITE( nout, fmt = 9980 )'SCKGLM', info
2366 *
2367  ELSE IF( lsamen( 3, c3, 'GQR' ) ) THEN
2368 *
2369 * ------------------------------------------
2370 * GQR: Generalized QR and RQ factorizations
2371 * ------------------------------------------
2372 *
2373  CALL xlaenv( 1, 1 )
2374  IF( tsterr )
2375  $ CALL serrgg( 'GQR', nout )
2376  CALL sckgqr( nn, mval, nn, pval, nn, nval, ntypes, iseed,
2377  $ thresh, nmax, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
2378  $ a( 1, 4 ), taua, b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
2379  $ b( 1, 4 ), b( 1, 5 ), taub, work, d( 1, 1 ), nin,
2380  $ nout, info )
2381  IF( info.NE.0 )
2382  $ WRITE( nout, fmt = 9980 )'SCKGQR', info
2383 *
2384  ELSE IF( lsamen( 3, c3, 'GSV' ) ) THEN
2385 *
2386 * ----------------------------------------------
2387 * GSV: Generalized Singular Value Decomposition
2388 * ----------------------------------------------
2389 *
2390  CALL xlaenv( 1, 1 )
2391  IF( tsterr )
2392  $ CALL serrgg( 'GSV', nout )
2393  CALL sckgsv( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2394  $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
2395  $ a( 1, 3 ), b( 1, 3 ), a( 1, 4 ), taua, taub,
2396  $ b( 1, 4 ), iwork, work, d( 1, 1 ), nin, nout,
2397  $ info )
2398  IF( info.NE.0 )
2399  $ WRITE( nout, fmt = 9980 )'SCKGSV', info
2400 *
2401  ELSE IF( lsamen( 3, c3, 'CSD' ) ) THEN
2402 *
2403 * ----------------------------------------------
2404 * CSD: CS Decomposition
2405 * ----------------------------------------------
2406 *
2407  CALL xlaenv(1,1)
2408  IF( tsterr )
2409  $ CALL serrgg( 'CSD', nout )
2410  CALL sckcsd( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2411  $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), a( 1, 4 ),
2412  $ a( 1, 5 ), a( 1, 6 ), a( 1, 7 ), iwork, work,
2413  $ d( 1, 1 ), nin, nout, info )
2414  IF( info.NE.0 )
2415  $ WRITE( nout, fmt = 9980 )'SCKCSD', info
2416 *
2417  ELSE IF( lsamen( 3, c3, 'LSE' ) ) THEN
2418 *
2419 * --------------------------------------
2420 * LSE: Constrained Linear Least Squares
2421 * --------------------------------------
2422 *
2423  CALL xlaenv( 1, 1 )
2424  IF( tsterr )
2425  $ CALL serrgg( 'LSE', nout )
2426  CALL scklse( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2427  $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), x,
2428  $ work, d( 1, 1 ), nin, nout, info )
2429  IF( info.NE.0 )
2430  $ WRITE( nout, fmt = 9980 )'SCKLSE', info
2431 *
2432  ELSE
2433  WRITE( nout, fmt = * )
2434  WRITE( nout, fmt = * )
2435  WRITE( nout, fmt = 9992 )c3
2436  END IF
2437  IF( .NOT.( sgx .OR. sxv ) )
2438  $ GO TO 190
2439  380 CONTINUE
2440  WRITE( nout, fmt = 9994 )
2441  s2 = second( )
2442  WRITE( nout, fmt = 9993 )s2 - s1
2443 *
2444  9999 FORMAT( / ' Execution not attempted due to input errors' )
2445  9997 FORMAT( / / 1x, a3, ': NB =', i4, ', NBMIN =', i4, ', NX =', i4 )
2446  9996 FORMAT( / / 1x, a3, ': NB =', i4, ', NBMIN =', i4, ', NS =', i4,
2447  $ ', MAXB =', i4, ', IACC22 =', i4, ', NBCOL =', i4 )
2448  9995 FORMAT( / / 1x, a3, ': NB =', i4, ', NBMIN =', i4, ', NX =', i4,
2449  $ ', NRHS =', i4 )
2450  9994 FORMAT( / / ' End of tests' )
2451  9993 FORMAT( ' Total time used = ', f12.2, ' seconds', / )
2452  9992 FORMAT( 1x, a3, ': Unrecognized path name' )
2453  9991 FORMAT( / / ' *** Invalid integer value in column ', i2,
2454  $ ' of input', ' line:', / a79 )
2455  9990 FORMAT( / / 1x, a3, ' routines were not tested' )
2456  9989 FORMAT( ' Invalid input value: ', a, '=', i6, '; must be >=',
2457  $ i6 )
2458  9988 FORMAT( ' Invalid input value: ', a, '=', i6, '; must be <=',
2459  $ i6 )
2460  9987 FORMAT( ' Tests of the Nonsymmetric Eigenvalue Problem routines' )
2461  9986 FORMAT( ' Tests of the Symmetric Eigenvalue Problem routines' )
2462  9985 FORMAT( ' Tests of the Singular Value Decomposition routines' )
2463  9984 FORMAT( / ' The following parameter values will be used:' )
2464  9983 FORMAT( 4x, a, 10i6, / 10x, 10i6 )
2465  9982 FORMAT( / ' Routines pass computational tests if test ratio is ',
2466  $ 'less than', f8.2, / )
2467  9981 FORMAT( ' Relative machine ', a, ' is taken to be', e16.6 )
2468  9980 FORMAT( ' *** Error code from ', a, ' = ', i4 )
2469  9979 FORMAT( / ' Tests of the Nonsymmetric Eigenvalue Problem Driver',
2470  $ / ' SGEEV (eigenvalues and eigevectors)' )
2471  9978 FORMAT( / ' Tests of the Nonsymmetric Eigenvalue Problem Driver',
2472  $ / ' SGEES (Schur form)' )
2473  9977 FORMAT( / ' Tests of the Nonsymmetric Eigenvalue Problem Expert',
2474  $ ' Driver', / ' SGEEVX (eigenvalues, eigenvectors and',
2475  $ ' condition numbers)' )
2476  9976 FORMAT( / ' Tests of the Nonsymmetric Eigenvalue Problem Expert',
2477  $ ' Driver', / ' SGEESX (Schur form and condition',
2478  $ ' numbers)' )
2479  9975 FORMAT( / ' Tests of the Generalized Nonsymmetric Eigenvalue ',
2480  $ 'Problem routines' )
2481  9974 FORMAT( ' Tests of SSBTRD', / ' (reduction of a symmetric band ',
2482  $ 'matrix to tridiagonal form)' )
2483  9973 FORMAT( / 1x, 71( '-' ) )
2484  9972 FORMAT( / ' LAPACK VERSION ', i1, '.', i1, '.', i1 )
2485  9971 FORMAT( / ' Tests of the Generalized Linear Regression Model ',
2486  $ 'routines' )
2487  9970 FORMAT( / ' Tests of the Generalized QR and RQ routines' )
2488  9969 FORMAT( / ' Tests of the Generalized Singular Value',
2489  $ ' Decomposition routines' )
2490  9968 FORMAT( / ' Tests of the Linear Least Squares routines' )
2491  9967 FORMAT( ' Tests of SGBBRD', / ' (reduction of a general band ',
2492  $ 'matrix to real bidiagonal form)' )
2493  9966 FORMAT( / / 1x, a3, ': NRHS =', i4 )
2494  9965 FORMAT( / ' Tests of the Generalized Nonsymmetric Eigenvalue ',
2495  $ 'Problem Expert Driver SGGESX' )
2496  9964 FORMAT( / ' Tests of the Generalized Nonsymmetric Eigenvalue ',
2497  $ 'Problem Driver SGGES' )
2498  9963 FORMAT( / ' Tests of the Generalized Nonsymmetric Eigenvalue ',
2499  $ 'Problem Driver SGGEV' )
2500  9962 FORMAT( / ' Tests of the Generalized Nonsymmetric Eigenvalue ',
2501  $ 'Problem Expert Driver SGGEVX' )
2502  9961 FORMAT( / / 1x, a3, ': NB =', i4, ', NBMIN =', i4, ', NX =', i4,
2503  $ ', INMIN=', i4,
2504  $ ', INWIN =', i4, ', INIBL =', i4, ', ISHFTS =', i4,
2505  $ ', IACC22 =', i4)
2506  9960 FORMAT( / ' Tests of the CS Decomposition routines' )
2507 *
2508 * End of SCHKEE
2509 *
2510  END
subroutine schkhs(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)
SCHKHS
Definition: schkhs.f:414
subroutine schkec(THRESH, TSTERR, NIN, NOUT)
SCHKEC
Definition: schkec.f:78
subroutine sdrges3(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, B, S, T, Q, LDQ, Z, ALPHAR, ALPHAI, BETA, WORK, LWORK, RESULT, BWORK, INFO)
SDRGES3
Definition: sdrges3.f:405
subroutine sdrgev(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)
SDRGEV
Definition: sdrgev.f:410
subroutine sdrvev(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)
SDRVEV
Definition: sdrvev.f:408
subroutine schkgk(NIN, NOUT)
SCHKGK
Definition: schkgk.f:56
subroutine schksb2stg(NSIZES, NN, NWDTHS, KK, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, SD, SE, D1, D2, D3, U, LDU, WORK, LWORK, RESULT, INFO)
SCHKSBSTG
Definition: schksb2stg.f:318
subroutine sdrvsg2stg(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)
SDRVSG2STG
Definition: sdrvsg2stg.f:364
subroutine sdrges(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, B, S, T, Q, LDQ, Z, ALPHAR, ALPHAI, BETA, WORK, LWORK, RESULT, BWORK, INFO)
SDRGES
Definition: sdrges.f:405
subroutine serred(PATH, NUNIT)
SERRED
Definition: serred.f:70
subroutine serrst(PATH, NUNIT)
SERRST
Definition: serrst.f:63
subroutine schkst(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)
SCHKST
Definition: schkst.f:593
subroutine schkbk(NIN, NOUT)
SCHKBK
Definition: schkbk.f:57
program schkee
SCHKEE
Definition: schkee.f:1041
subroutine sdrvvx(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)
SDRVVX
Definition: sdrvvx.f:522
subroutine schkgg(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)
SCHKGG
Definition: schkgg.f:513
subroutine sckgqr(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)
SCKGQR
Definition: sckgqr.f:212
subroutine alareq(PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT)
ALAREQ
Definition: alareq.f:92
subroutine xlaenv(ISPEC, NVALUE)
XLAENV
Definition: xlaenv.f:83
subroutine sdrvst2stg(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)
SDRVST2STG
Definition: sdrvst2stg.f:455
subroutine sdrgev3(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)
SDRGEV3
Definition: sdrgev3.f:410
subroutine schkst2stg(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)
SCHKST2STG
Definition: schkst2stg.f:614
subroutine sdrgvx(NSIZE, THRESH, NIN, NOUT, A, LDA, B, AI, BI, ALPHAR, ALPHAI, BETA, VL, VR, ILO, IHI, LSCALE, RSCALE, S, STRU, DIF, DIFTRU, WORK, LWORK, IWORK, LIWORK, RESULT, BWORK, INFO)
SDRGVX
Definition: sdrgvx.f:303
subroutine scklse(NN, MVAL, PVAL, NVAL, NMATS, ISEED, THRESH, NMAX, A, AF, B, BF, X, WORK, RWORK, NIN, NOUT, INFO)
SCKLSE
Definition: scklse.f:169
subroutine sdrgsx(NSIZE, NCMAX, THRESH, NIN, NOUT, A, LDA, B, AI, BI, Z, Q, ALPHAR, ALPHAI, BETA, C, LDC, S, WORK, LWORK, IWORK, LIWORK, BWORK, INFO)
SDRGSX
Definition: sdrgsx.f:361
subroutine ilaver(VERS_MAJOR, VERS_MINOR, VERS_PATCH)
ILAVER returns the LAPACK version.
Definition: ilaver.f:50
subroutine serrgg(PATH, NUNIT)
SERRGG
Definition: serrgg.f:59
subroutine schkbb(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)
SCHKBB
Definition: schkbb.f:357
subroutine schksb(NSIZES, NN, NWDTHS, KK, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, SD, SE, U, LDU, WORK, LWORK, RESULT, INFO)
SCHKSB
Definition: schksb.f:295
subroutine schkbd(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)
SCHKBD
Definition: schkbd.f:495
subroutine schkgl(NIN, NOUT)
SCHKGL
Definition: schkgl.f:55
subroutine sdrves(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, H, HT, WR, WI, WRT, WIT, VS, LDVS, RESULT, WORK, NWORK, IWORK, BWORK, INFO)
SDRVES
Definition: sdrves.f:390
subroutine sdrvsg(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, B, LDB, D, Z, LDZ, AB, BB, AP, BP, WORK, NWORK, IWORK, LIWORK, RESULT, INFO)
SDRVSG
Definition: sdrvsg.f:357
subroutine schkbl(NIN, NOUT)
SCHKBL
Definition: schkbl.f:56
subroutine serrbd(PATH, NUNIT)
SERRBD
Definition: serrbd.f:57
subroutine sdrvsx(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)
SDRVSX
Definition: sdrvsx.f:456
subroutine sdrvst(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)
SDRVST
Definition: sdrvst.f:455
subroutine sdrvbd(NSIZES, MM, NN, NTYPES, DOTYPE, ISEED, THRESH, A, LDA, U, LDU, VT, LDVT, ASAV, USAV, VTSAV, S, SSAV, E, WORK, LWORK, IWORK, NOUT, INFO)
SDRVBD
Definition: sdrvbd.f:357
subroutine sckcsd(NM, MVAL, PVAL, QVAL, NMATS, ISEED, THRESH, MMAX, X, XF, U1, U2, V1T, V2T, THETA, IWORK, WORK, RWORK, NIN, NOUT, INFO)
SCKCSD
Definition: sckcsd.f:186
subroutine sckgsv(NM, MVAL, PVAL, NVAL, NMATS, ISEED, THRESH, NMAX, A, AF, B, BF, U, V, Q, ALPHA, BETA, R, IWORK, WORK, RWORK, NIN, NOUT, INFO)
SCKGSV
Definition: sckgsv.f:200
subroutine sckglm(NN, MVAL, PVAL, NVAL, NMATS, ISEED, THRESH, NMAX, A, AF, B, BF, X, WORK, RWORK, NIN, NOUT, INFO)
SCKGLM
Definition: sckglm.f:169
subroutine serrhs(PATH, NUNIT)
SERRHS
Definition: serrhs.f:57