schkaa.c
Go to the documentation of this file.
00001 /* schkaa.f -- translated by f2c (version 20061008).
00002    You must link the resulting object file with libf2c:
00003         on Microsoft Windows system, link with libf2c.lib;
00004         on Linux or Unix systems, link with .../path/to/libf2c.a -lm
00005         or, if you install libf2c.a in a standard place, with -lf2c -lm
00006         -- in that order, at the end of the command line, as in
00007                 cc *.o -lf2c -lm
00008         Source for libf2c is in /netlib/f2c/libf2c.zip, e.g.,
00009 
00010                 http://www.netlib.org/f2c/libf2c.zip
00011 */
00012 
00013 #include "f2c.h"
00014 #include "blaswrap.h"
00015 
00016 /* Common Block Declarations */
00017 
00018 struct {
00019     integer iparms[100];
00020 } claenv_;
00021 
00022 #define claenv_1 claenv_
00023 
00024 struct {
00025     integer infot, nunit;
00026     logical ok, lerr;
00027 } infoc_;
00028 
00029 #define infoc_1 infoc_
00030 
00031 struct {
00032     char srnamt[32];
00033 } srnamc_;
00034 
00035 #define srnamc_1 srnamc_
00036 
00037 /* Table of constant values */
00038 
00039 static integer c__1 = 1;
00040 static integer c__3 = 3;
00041 static integer c__12 = 12;
00042 static integer c__0 = 0;
00043 static integer c__132 = 132;
00044 static integer c__16 = 16;
00045 static integer c__100 = 100;
00046 static integer c__4 = 4;
00047 static integer c__8 = 8;
00048 static integer c__2 = 2;
00049 static integer c__5 = 5;
00050 static integer c__6 = 6;
00051 
00052 /* Main program */ int MAIN__(void)
00053 {
00054     /* Initialized data */
00055 
00056     static real threq = 2.f;
00057     static char intstr[10] = "0123456789";
00058 
00059     /* Format strings */
00060     static char fmt_9994[] = "(\002 Tests of the REAL LAPACK routines \002,"
00061             "/\002 LAPACK VERSION \002,i1,\002.\002,i1,\002.\002,i1,//\002 Th"
00062             "e following parameter values will be used:\002)";
00063     static char fmt_9996[] = "(\002 Invalid input value: \002,a4,\002=\002,i"
00064             "6,\002; must be >=\002,i6)";
00065     static char fmt_9995[] = "(\002 Invalid input value: \002,a4,\002=\002,i"
00066             "6,\002; must be <=\002,i6)";
00067     static char fmt_9993[] = "(4x,a4,\002:  \002,10i6,/11x,10i6)";
00068     static char fmt_9992[] = "(/\002 Routines pass computational tests if te"
00069             "st ratio is \002,\002less than\002,f8.2,/)";
00070     static char fmt_9999[] = "(/\002 Execution not attempted due to input er"
00071             "rors\002)";
00072     static char fmt_9991[] = "(\002 Relative machine \002,a,\002 is taken to"
00073             " be\002,e16.6)";
00074     static char fmt_9990[] = "(/1x,a3,\002:  Unrecognized path name\002)";
00075     static char fmt_9989[] = "(/1x,a3,\002 routines were not tested\002)";
00076     static char fmt_9988[] = "(/1x,a3,\002 driver routines were not teste"
00077             "d\002)";
00078     static char fmt_9998[] = "(/\002 End of tests\002)";
00079     static char fmt_9997[] = "(\002 Total time used = \002,f12.2,\002 seco"
00080             "nds\002,/)";
00081 
00082     /* System generated locals */
00083     integer i__1, i__2;
00084     real r__1;
00085     cilist ci__1;
00086     cllist cl__1;
00087 
00088     /* Builtin functions */
00089     integer s_rsle(cilist *), e_rsle(void), s_wsfe(cilist *), do_fio(integer *
00090             , char *, ftnlen), e_wsfe(void), do_lio(integer *, integer *, 
00091             char *, ftnlen);
00092     /* Subroutine */ int s_stop(char *, ftnlen);
00093     integer s_wsle(cilist *), e_wsle(void), s_rsfe(cilist *), e_rsfe(void);
00094     /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
00095     integer f_clos(cllist *);
00096 
00097     /* Local variables */
00098     real a[153384]      /* was [21912][7] */, b[8448]   /* was [2112][4] */;
00099     integer i__, j, k;
00100     real s[264];
00101     char c1[1], c2[2];
00102     real s1, s2;
00103     integer ic, la, nb, nm, nn, vers_patch__, vers_major__, vers_minor__, lda,
00104              nnb;
00105     real eps;
00106     integer nns, piv[132], nnb2;
00107     char path[3];
00108     integer mval[12], nval[12], nrhs;
00109     real work[23496]    /* was [132][178] */;
00110     integer lafac;
00111     logical fatal;
00112     char aline[72];
00113     extern logical lsame_(char *, char *);
00114     integer nbval[12], nrank, nmats, nsval[12], nxval[12], iwork[3300];
00115     real rwork[692];
00116     integer nbval2[12];
00117     extern /* Subroutine */ int schkq3_(logical *, integer *, integer *, 
00118             integer *, integer *, integer *, integer *, integer *, real *, 
00119             real *, real *, real *, real *, real *, real *, integer *, 
00120             integer *), schkgb_(logical *, integer *, integer *, integer *, 
00121             integer *, integer *, integer *, integer *, integer *, real *, 
00122             logical *, real *, integer *, real *, integer *, real *, real *, 
00123             real *, real *, real *, integer *, integer *), schkge_(logical *, 
00124             integer *, integer *, integer *, integer *, integer *, integer *, 
00125             integer *, integer *, real *, logical *, integer *, real *, real *
00126 , real *, real *, real *, real *, real *, real *, integer *, 
00127             integer *), alareq_(char *, integer *, logical *, integer *, 
00128             integer *, integer *);
00129     extern doublereal slamch_(char *);
00130     extern /* Subroutine */ int schkpb_(logical *, integer *, integer *, 
00131             integer *, integer *, integer *, integer *, real *, logical *, 
00132             integer *, real *, real *, real *, real *, real *, real *, real *, 
00133              real *, integer *, integer *);
00134     extern doublereal second_(void);
00135     extern /* Subroutine */ int schkeq_(real *, integer *);
00136     extern logical lsamen_(integer *, char *, char *);
00137     extern /* Subroutine */ int schktb_(logical *, integer *, integer *, 
00138             integer *, integer *, real *, logical *, integer *, real *, real *
00139 , real *, real *, real *, real *, real *, integer *, integer *), 
00140             ilaver_(integer *, integer *, integer *), schkgt_(logical *, 
00141             integer *, integer *, integer *, integer *, real *, logical *, 
00142             real *, real *, real *, real *, real *, real *, real *, integer *, 
00143              integer *), schklq_(logical *, integer *, integer *, integer *, 
00144             integer *, integer *, integer *, integer *, integer *, real *, 
00145             logical *, integer *, real *, real *, real *, real *, real *, 
00146             real *, real *, real *, real *, real *, real *, integer *, 
00147             integer *), schkql_(logical *, integer *, integer *, integer *, 
00148             integer *, integer *, integer *, integer *, integer *, real *, 
00149             logical *, integer *, real *, real *, real *, real *, real *, 
00150             real *, real *, real *, real *, real *, real *, integer *, 
00151             integer *), schkpo_(logical *, integer *, integer *, integer *, 
00152             integer *, integer *, integer *, real *, logical *, integer *, 
00153             real *, real *, real *, real *, real *, real *, real *, real *, 
00154             integer *, integer *), schkpp_(logical *, integer *, integer *, 
00155             integer *, integer *, real *, logical *, integer *, real *, real *
00156 , real *, real *, real *, real *, real *, real *, integer *, 
00157             integer *), schkqp_(logical *, integer *, integer *, integer *, 
00158             integer *, real *, logical *, real *, real *, real *, real *, 
00159             real *, real *, integer *, integer *), schkps_(logical *, integer 
00160             *, integer *, integer *, integer *, integer *, integer *, real *, 
00161             logical *, integer *, real *, real *, real *, integer *, real *, 
00162             real *, integer *), schkpt_(logical *, integer *, integer *, 
00163             integer *, integer *, real *, logical *, real *, real *, real *, 
00164             real *, real *, real *, real *, real *, integer *);
00165     real thresh;
00166     extern /* Subroutine */ int schkqr_(logical *, integer *, integer *, 
00167             integer *, integer *, integer *, integer *, integer *, integer *, 
00168             real *, logical *, integer *, real *, real *, real *, real *, 
00169             real *, real *, real *, real *, real *, real *, real *, integer *, 
00170              integer *), schkrq_(logical *, integer *, integer *, integer *, 
00171             integer *, integer *, integer *, integer *, integer *, real *, 
00172             logical *, integer *, real *, real *, real *, real *, real *, 
00173             real *, real *, real *, real *, real *, real *, integer *, 
00174             integer *);
00175     logical tstchk;
00176     extern /* Subroutine */ int schksp_(logical *, integer *, integer *, 
00177             integer *, integer *, real *, logical *, integer *, real *, real *
00178 , real *, real *, real *, real *, real *, real *, integer *, 
00179             integer *), schktp_(logical *, integer *, integer *, integer *, 
00180             integer *, real *, logical *, integer *, real *, real *, real *, 
00181             real *, real *, real *, real *, integer *, integer *);
00182     logical dotype[30];
00183     extern /* Subroutine */ int schksy_(logical *, integer *, integer *, 
00184             integer *, integer *, integer *, integer *, real *, logical *, 
00185             integer *, real *, real *, real *, real *, real *, real *, real *, 
00186              real *, integer *, integer *), schktr_(logical *, integer *, 
00187             integer *, integer *, integer *, integer *, integer *, real *, 
00188             logical *, integer *, real *, real *, real *, real *, real *, 
00189             real *, real *, integer *, integer *), schktz_(logical *, integer 
00190             *, integer *, integer *, integer *, real *, logical *, real *, 
00191             real *, real *, real *, real *, real *, integer *), sdrvgb_(
00192             logical *, integer *, integer *, integer *, real *, logical *, 
00193             real *, integer *, real *, integer *, real *, real *, real *, 
00194             real *, real *, real *, real *, real *, integer *, integer *), 
00195             sdrvge_(logical *, integer *, integer *, integer *, real *, 
00196             logical *, integer *, real *, real *, real *, real *, real *, 
00197             real *, real *, real *, real *, real *, integer *, integer *), 
00198             sdrvgt_(logical *, integer *, integer *, integer *, real *, 
00199             logical *, real *, real *, real *, real *, real *, real *, real *, 
00200              integer *, integer *), sdrvpb_(logical *, integer *, integer *, 
00201             integer *, real *, logical *, integer *, real *, real *, real *, 
00202             real *, real *, real *, real *, real *, real *, real *, integer *, 
00203              integer *), sdrvls_(logical *, integer *, integer *, integer *, 
00204             integer *, integer *, integer *, integer *, integer *, integer *, 
00205             real *, logical *, real *, real *, real *, real *, real *, real *, 
00206              real *, real *, integer *, integer *), sdrvpo_(logical *, 
00207             integer *, integer *, integer *, real *, logical *, integer *, 
00208             real *, real *, real *, real *, real *, real *, real *, real *, 
00209             real *, real *, integer *, integer *), sdrvpp_(logical *, integer 
00210             *, integer *, integer *, real *, logical *, integer *, real *, 
00211             real *, real *, real *, real *, real *, real *, real *, real *, 
00212             real *, integer *, integer *), sdrvsp_(logical *, integer *, 
00213             integer *, integer *, real *, logical *, integer *, real *, real *
00214 , real *, real *, real *, real *, real *, real *, integer *, 
00215             integer *);
00216     integer ntypes;
00217     logical tsterr;
00218     extern /* Subroutine */ int sdrvpt_(logical *, integer *, integer *, 
00219             integer *, real *, logical *, real *, real *, real *, real *, 
00220             real *, real *, real *, real *, integer *);
00221     logical tstdrv;
00222     extern /* Subroutine */ int sdrvsy_(logical *, integer *, integer *, 
00223             integer *, real *, logical *, integer *, real *, real *, real *, 
00224             real *, real *, real *, real *, real *, integer *, integer *);
00225     integer rankval[12];
00226 
00227     /* Fortran I/O blocks */
00228     static cilist io___6 = { 0, 5, 0, 0, 0 };
00229     static cilist io___10 = { 0, 6, 0, fmt_9994, 0 };
00230     static cilist io___11 = { 0, 5, 0, 0, 0 };
00231     static cilist io___13 = { 0, 6, 0, fmt_9996, 0 };
00232     static cilist io___14 = { 0, 6, 0, fmt_9995, 0 };
00233     static cilist io___15 = { 0, 5, 0, 0, 0 };
00234     static cilist io___18 = { 0, 6, 0, fmt_9996, 0 };
00235     static cilist io___19 = { 0, 6, 0, fmt_9995, 0 };
00236     static cilist io___20 = { 0, 6, 0, fmt_9993, 0 };
00237     static cilist io___21 = { 0, 5, 0, 0, 0 };
00238     static cilist io___23 = { 0, 6, 0, fmt_9996, 0 };
00239     static cilist io___24 = { 0, 6, 0, fmt_9995, 0 };
00240     static cilist io___25 = { 0, 5, 0, 0, 0 };
00241     static cilist io___27 = { 0, 6, 0, fmt_9996, 0 };
00242     static cilist io___28 = { 0, 6, 0, fmt_9995, 0 };
00243     static cilist io___29 = { 0, 6, 0, fmt_9993, 0 };
00244     static cilist io___30 = { 0, 5, 0, 0, 0 };
00245     static cilist io___32 = { 0, 6, 0, fmt_9996, 0 };
00246     static cilist io___33 = { 0, 6, 0, fmt_9995, 0 };
00247     static cilist io___34 = { 0, 5, 0, 0, 0 };
00248     static cilist io___36 = { 0, 6, 0, fmt_9996, 0 };
00249     static cilist io___37 = { 0, 6, 0, fmt_9995, 0 };
00250     static cilist io___38 = { 0, 6, 0, fmt_9993, 0 };
00251     static cilist io___39 = { 0, 5, 0, 0, 0 };
00252     static cilist io___41 = { 0, 6, 0, fmt_9996, 0 };
00253     static cilist io___42 = { 0, 6, 0, fmt_9995, 0 };
00254     static cilist io___43 = { 0, 5, 0, 0, 0 };
00255     static cilist io___45 = { 0, 6, 0, fmt_9996, 0 };
00256     static cilist io___46 = { 0, 6, 0, fmt_9993, 0 };
00257     static cilist io___51 = { 0, 5, 0, 0, 0 };
00258     static cilist io___53 = { 0, 6, 0, fmt_9996, 0 };
00259     static cilist io___54 = { 0, 6, 0, fmt_9993, 0 };
00260     static cilist io___55 = { 0, 5, 0, 0, 0 };
00261     static cilist io___57 = { 0, 6, 0, fmt_9996, 0 };
00262     static cilist io___58 = { 0, 6, 0, fmt_9995, 0 };
00263     static cilist io___59 = { 0, 5, 0, 0, 0 };
00264     static cilist io___61 = { 0, 6, 0, fmt_9996, 0 };
00265     static cilist io___62 = { 0, 6, 0, fmt_9995, 0 };
00266     static cilist io___63 = { 0, 6, 0, fmt_9993, 0 };
00267     static cilist io___64 = { 0, 5, 0, 0, 0 };
00268     static cilist io___66 = { 0, 6, 0, fmt_9992, 0 };
00269     static cilist io___67 = { 0, 5, 0, 0, 0 };
00270     static cilist io___69 = { 0, 5, 0, 0, 0 };
00271     static cilist io___71 = { 0, 5, 0, 0, 0 };
00272     static cilist io___73 = { 0, 6, 0, fmt_9999, 0 };
00273     static cilist io___75 = { 0, 6, 0, fmt_9991, 0 };
00274     static cilist io___76 = { 0, 6, 0, fmt_9991, 0 };
00275     static cilist io___77 = { 0, 6, 0, fmt_9991, 0 };
00276     static cilist io___78 = { 0, 6, 0, 0, 0 };
00277     static cilist io___87 = { 0, 6, 0, fmt_9990, 0 };
00278     static cilist io___88 = { 0, 6, 0, fmt_9989, 0 };
00279     static cilist io___96 = { 0, 6, 0, fmt_9989, 0 };
00280     static cilist io___98 = { 0, 6, 0, fmt_9988, 0 };
00281     static cilist io___101 = { 0, 6, 0, fmt_9989, 0 };
00282     static cilist io___102 = { 0, 6, 0, fmt_9988, 0 };
00283     static cilist io___103 = { 0, 6, 0, fmt_9989, 0 };
00284     static cilist io___104 = { 0, 6, 0, fmt_9988, 0 };
00285     static cilist io___105 = { 0, 6, 0, fmt_9989, 0 };
00286     static cilist io___106 = { 0, 6, 0, fmt_9988, 0 };
00287     static cilist io___108 = { 0, 6, 0, fmt_9989, 0 };
00288     static cilist io___109 = { 0, 6, 0, fmt_9989, 0 };
00289     static cilist io___110 = { 0, 6, 0, fmt_9988, 0 };
00290     static cilist io___111 = { 0, 6, 0, fmt_9989, 0 };
00291     static cilist io___112 = { 0, 6, 0, fmt_9988, 0 };
00292     static cilist io___113 = { 0, 6, 0, fmt_9989, 0 };
00293     static cilist io___114 = { 0, 6, 0, fmt_9988, 0 };
00294     static cilist io___115 = { 0, 6, 0, fmt_9989, 0 };
00295     static cilist io___116 = { 0, 6, 0, fmt_9988, 0 };
00296     static cilist io___117 = { 0, 6, 0, fmt_9989, 0 };
00297     static cilist io___118 = { 0, 6, 0, fmt_9988, 0 };
00298     static cilist io___119 = { 0, 6, 0, fmt_9989, 0 };
00299     static cilist io___120 = { 0, 6, 0, fmt_9989, 0 };
00300     static cilist io___121 = { 0, 6, 0, fmt_9989, 0 };
00301     static cilist io___122 = { 0, 6, 0, fmt_9989, 0 };
00302     static cilist io___123 = { 0, 6, 0, fmt_9989, 0 };
00303     static cilist io___124 = { 0, 6, 0, fmt_9989, 0 };
00304     static cilist io___125 = { 0, 6, 0, fmt_9989, 0 };
00305     static cilist io___126 = { 0, 6, 0, fmt_9989, 0 };
00306     static cilist io___127 = { 0, 6, 0, fmt_9989, 0 };
00307     static cilist io___128 = { 0, 6, 0, fmt_9988, 0 };
00308     static cilist io___129 = { 0, 6, 0, fmt_9989, 0 };
00309     static cilist io___130 = { 0, 6, 0, fmt_9990, 0 };
00310     static cilist io___132 = { 0, 6, 0, fmt_9998, 0 };
00311     static cilist io___133 = { 0, 6, 0, fmt_9997, 0 };
00312 
00313 
00314 
00315 /*  -- LAPACK test routine (version 3.1.1) -- */
00316 /*     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. */
00317 /*     January 2007 */
00318 
00319 /*  Purpose */
00320 /*  ======= */
00321 
00322 /*  SCHKAA is the main test program for the REAL LAPACK */
00323 /*  linear equation routines */
00324 
00325 /*  The program must be driven by a short data file. The first 14 records */
00326 /*  specify problem dimensions and program options using list-directed */
00327 /*  input.  The remaining lines specify the LAPACK test paths and the */
00328 /*  number of matrix types to use in testing.  An annotated example of a */
00329 /*  data file can be obtained by deleting the first 3 characters from the */
00330 /*  following 36 lines: */
00331 /*  Data file for testing REAL LAPACK linear eqn. routines */
00332 /*  7                      Number of values of M */
00333 /*  0 1 2 3 5 10 16        Values of M (row dimension) */
00334 /*  7                      Number of values of N */
00335 /*  0 1 2 3 5 10 16        Values of N (column dimension) */
00336 /*  1                      Number of values of NRHS */
00337 /*  2                      Values of NRHS (number of right hand sides) */
00338 /*  5                      Number of values of NB */
00339 /*  1 3 3 3 20             Values of NB (the blocksize) */
00340 /*  1 0 5 9 1              Values of NX (crossover point) */
00341 /*  3                      Number of values of RANK */
00342 /*  30 50 90               Values of rank (as a % of N) */
00343 /*  20.0                   Threshold value of test ratio */
00344 /*  T                      Put T to test the LAPACK routines */
00345 /*  T                      Put T to test the driver routines */
00346 /*  T                      Put T to test the error exits */
00347 /*  SGE   11               List types on next line if 0 < NTYPES < 11 */
00348 /*  SGB    8               List types on next line if 0 < NTYPES <  8 */
00349 /*  SGT   12               List types on next line if 0 < NTYPES < 12 */
00350 /*  SPO    9               List types on next line if 0 < NTYPES <  9 */
00351 /*  SPS    9               List types on next line if 0 < NTYPES <  9 */
00352 /*  SPP    9               List types on next line if 0 < NTYPES <  9 */
00353 /*  SPB    8               List types on next line if 0 < NTYPES <  8 */
00354 /*  SPT   12               List types on next line if 0 < NTYPES < 12 */
00355 /*  SSY   10               List types on next line if 0 < NTYPES < 10 */
00356 /*  SSP   10               List types on next line if 0 < NTYPES < 10 */
00357 /*  STR   18               List types on next line if 0 < NTYPES < 18 */
00358 /*  STP   18               List types on next line if 0 < NTYPES < 18 */
00359 /*  STB   17               List types on next line if 0 < NTYPES < 17 */
00360 /*  SQR    8               List types on next line if 0 < NTYPES <  8 */
00361 /*  SRQ    8               List types on next line if 0 < NTYPES <  8 */
00362 /*  SLQ    8               List types on next line if 0 < NTYPES <  8 */
00363 /*  SQL    8               List types on next line if 0 < NTYPES <  8 */
00364 /*  SQP    6               List types on next line if 0 < NTYPES <  6 */
00365 /*  STZ    3               List types on next line if 0 < NTYPES <  3 */
00366 /*  SLS    6               List types on next line if 0 < NTYPES <  6 */
00367 /*  SEQ */
00368 
00369 /*  Internal Parameters */
00370 /*  =================== */
00371 
00372 /*  NMAX    INTEGER */
00373 /*          The maximum allowable value for N */
00374 
00375 /*  MAXIN   INTEGER */
00376 /*          The number of different values that can be used for each of */
00377 /*          M, N, NRHS, NB, and NX */
00378 
00379 /*  MAXRHS  INTEGER */
00380 /*          The maximum number of right hand sides */
00381 
00382 /*  NIN     INTEGER */
00383 /*          The unit number for input */
00384 
00385 /*  NOUT    INTEGER */
00386 /*          The unit number for output */
00387 
00388 /*  ===================================================================== */
00389 
00390 /*     .. Parameters .. */
00391 /*     .. */
00392 /*     .. Local Scalars .. */
00393 /*     .. */
00394 /*     .. Local Arrays .. */
00395 /*     .. */
00396 /*     .. External Functions .. */
00397 /*     .. */
00398 /*     .. External Subroutines .. */
00399 /*     .. */
00400 /*     .. Scalars in Common .. */
00401 /*     .. */
00402 /*     .. Arrays in Common .. */
00403 /*     .. */
00404 /*     .. Common blocks .. */
00405 /*     .. */
00406 /*     .. Data statements .. */
00407 /*     .. */
00408 /*     .. Executable Statements .. */
00409 
00410     s1 = second_();
00411     lda = 132;
00412     fatal = FALSE_;
00413 
00414 /*     Read a dummy line. */
00415 
00416     s_rsle(&io___6);
00417     e_rsle();
00418 
00419 /*     Report values of parameters. */
00420 
00421     ilaver_(&vers_major__, &vers_minor__, &vers_patch__);
00422     s_wsfe(&io___10);
00423     do_fio(&c__1, (char *)&vers_major__, (ftnlen)sizeof(integer));
00424     do_fio(&c__1, (char *)&vers_minor__, (ftnlen)sizeof(integer));
00425     do_fio(&c__1, (char *)&vers_patch__, (ftnlen)sizeof(integer));
00426     e_wsfe();
00427 
00428 /*     Read the values of M */
00429 
00430     s_rsle(&io___11);
00431     do_lio(&c__3, &c__1, (char *)&nm, (ftnlen)sizeof(integer));
00432     e_rsle();
00433     if (nm < 1) {
00434         s_wsfe(&io___13);
00435         do_fio(&c__1, " NM ", (ftnlen)4);
00436         do_fio(&c__1, (char *)&nm, (ftnlen)sizeof(integer));
00437         do_fio(&c__1, (char *)&c__1, (ftnlen)sizeof(integer));
00438         e_wsfe();
00439         nm = 0;
00440         fatal = TRUE_;
00441     } else if (nm > 12) {
00442         s_wsfe(&io___14);
00443         do_fio(&c__1, " NM ", (ftnlen)4);
00444         do_fio(&c__1, (char *)&nm, (ftnlen)sizeof(integer));
00445         do_fio(&c__1, (char *)&c__12, (ftnlen)sizeof(integer));
00446         e_wsfe();
00447         nm = 0;
00448         fatal = TRUE_;
00449     }
00450     s_rsle(&io___15);
00451     i__1 = nm;
00452     for (i__ = 1; i__ <= i__1; ++i__) {
00453         do_lio(&c__3, &c__1, (char *)&mval[i__ - 1], (ftnlen)sizeof(integer));
00454     }
00455     e_rsle();
00456     i__1 = nm;
00457     for (i__ = 1; i__ <= i__1; ++i__) {
00458         if (mval[i__ - 1] < 0) {
00459             s_wsfe(&io___18);
00460             do_fio(&c__1, " M  ", (ftnlen)4);
00461             do_fio(&c__1, (char *)&mval[i__ - 1], (ftnlen)sizeof(integer));
00462             do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
00463             e_wsfe();
00464             fatal = TRUE_;
00465         } else if (mval[i__ - 1] > 132) {
00466             s_wsfe(&io___19);
00467             do_fio(&c__1, " M  ", (ftnlen)4);
00468             do_fio(&c__1, (char *)&mval[i__ - 1], (ftnlen)sizeof(integer));
00469             do_fio(&c__1, (char *)&c__132, (ftnlen)sizeof(integer));
00470             e_wsfe();
00471             fatal = TRUE_;
00472         }
00473 /* L10: */
00474     }
00475     if (nm > 0) {
00476         s_wsfe(&io___20);
00477         do_fio(&c__1, "M   ", (ftnlen)4);
00478         i__1 = nm;
00479         for (i__ = 1; i__ <= i__1; ++i__) {
00480             do_fio(&c__1, (char *)&mval[i__ - 1], (ftnlen)sizeof(integer));
00481         }
00482         e_wsfe();
00483     }
00484 
00485 /*     Read the values of N */
00486 
00487     s_rsle(&io___21);
00488     do_lio(&c__3, &c__1, (char *)&nn, (ftnlen)sizeof(integer));
00489     e_rsle();
00490     if (nn < 1) {
00491         s_wsfe(&io___23);
00492         do_fio(&c__1, " NN ", (ftnlen)4);
00493         do_fio(&c__1, (char *)&nn, (ftnlen)sizeof(integer));
00494         do_fio(&c__1, (char *)&c__1, (ftnlen)sizeof(integer));
00495         e_wsfe();
00496         nn = 0;
00497         fatal = TRUE_;
00498     } else if (nn > 12) {
00499         s_wsfe(&io___24);
00500         do_fio(&c__1, " NN ", (ftnlen)4);
00501         do_fio(&c__1, (char *)&nn, (ftnlen)sizeof(integer));
00502         do_fio(&c__1, (char *)&c__12, (ftnlen)sizeof(integer));
00503         e_wsfe();
00504         nn = 0;
00505         fatal = TRUE_;
00506     }
00507     s_rsle(&io___25);
00508     i__1 = nn;
00509     for (i__ = 1; i__ <= i__1; ++i__) {
00510         do_lio(&c__3, &c__1, (char *)&nval[i__ - 1], (ftnlen)sizeof(integer));
00511     }
00512     e_rsle();
00513     i__1 = nn;
00514     for (i__ = 1; i__ <= i__1; ++i__) {
00515         if (nval[i__ - 1] < 0) {
00516             s_wsfe(&io___27);
00517             do_fio(&c__1, " N  ", (ftnlen)4);
00518             do_fio(&c__1, (char *)&nval[i__ - 1], (ftnlen)sizeof(integer));
00519             do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
00520             e_wsfe();
00521             fatal = TRUE_;
00522         } else if (nval[i__ - 1] > 132) {
00523             s_wsfe(&io___28);
00524             do_fio(&c__1, " N  ", (ftnlen)4);
00525             do_fio(&c__1, (char *)&nval[i__ - 1], (ftnlen)sizeof(integer));
00526             do_fio(&c__1, (char *)&c__132, (ftnlen)sizeof(integer));
00527             e_wsfe();
00528             fatal = TRUE_;
00529         }
00530 /* L20: */
00531     }
00532     if (nn > 0) {
00533         s_wsfe(&io___29);
00534         do_fio(&c__1, "N   ", (ftnlen)4);
00535         i__1 = nn;
00536         for (i__ = 1; i__ <= i__1; ++i__) {
00537             do_fio(&c__1, (char *)&nval[i__ - 1], (ftnlen)sizeof(integer));
00538         }
00539         e_wsfe();
00540     }
00541 
00542 /*     Read the values of NRHS */
00543 
00544     s_rsle(&io___30);
00545     do_lio(&c__3, &c__1, (char *)&nns, (ftnlen)sizeof(integer));
00546     e_rsle();
00547     if (nns < 1) {
00548         s_wsfe(&io___32);
00549         do_fio(&c__1, " NNS", (ftnlen)4);
00550         do_fio(&c__1, (char *)&nns, (ftnlen)sizeof(integer));
00551         do_fio(&c__1, (char *)&c__1, (ftnlen)sizeof(integer));
00552         e_wsfe();
00553         nns = 0;
00554         fatal = TRUE_;
00555     } else if (nns > 12) {
00556         s_wsfe(&io___33);
00557         do_fio(&c__1, " NNS", (ftnlen)4);
00558         do_fio(&c__1, (char *)&nns, (ftnlen)sizeof(integer));
00559         do_fio(&c__1, (char *)&c__12, (ftnlen)sizeof(integer));
00560         e_wsfe();
00561         nns = 0;
00562         fatal = TRUE_;
00563     }
00564     s_rsle(&io___34);
00565     i__1 = nns;
00566     for (i__ = 1; i__ <= i__1; ++i__) {
00567         do_lio(&c__3, &c__1, (char *)&nsval[i__ - 1], (ftnlen)sizeof(integer))
00568                 ;
00569     }
00570     e_rsle();
00571     i__1 = nns;
00572     for (i__ = 1; i__ <= i__1; ++i__) {
00573         if (nsval[i__ - 1] < 0) {
00574             s_wsfe(&io___36);
00575             do_fio(&c__1, "NRHS", (ftnlen)4);
00576             do_fio(&c__1, (char *)&nsval[i__ - 1], (ftnlen)sizeof(integer));
00577             do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
00578             e_wsfe();
00579             fatal = TRUE_;
00580         } else if (nsval[i__ - 1] > 16) {
00581             s_wsfe(&io___37);
00582             do_fio(&c__1, "NRHS", (ftnlen)4);
00583             do_fio(&c__1, (char *)&nsval[i__ - 1], (ftnlen)sizeof(integer));
00584             do_fio(&c__1, (char *)&c__16, (ftnlen)sizeof(integer));
00585             e_wsfe();
00586             fatal = TRUE_;
00587         }
00588 /* L30: */
00589     }
00590     if (nns > 0) {
00591         s_wsfe(&io___38);
00592         do_fio(&c__1, "NRHS", (ftnlen)4);
00593         i__1 = nns;
00594         for (i__ = 1; i__ <= i__1; ++i__) {
00595             do_fio(&c__1, (char *)&nsval[i__ - 1], (ftnlen)sizeof(integer));
00596         }
00597         e_wsfe();
00598     }
00599 
00600 /*     Read the values of NB */
00601 
00602     s_rsle(&io___39);
00603     do_lio(&c__3, &c__1, (char *)&nnb, (ftnlen)sizeof(integer));
00604     e_rsle();
00605     if (nnb < 1) {
00606         s_wsfe(&io___41);
00607         do_fio(&c__1, "NNB ", (ftnlen)4);
00608         do_fio(&c__1, (char *)&nnb, (ftnlen)sizeof(integer));
00609         do_fio(&c__1, (char *)&c__1, (ftnlen)sizeof(integer));
00610         e_wsfe();
00611         nnb = 0;
00612         fatal = TRUE_;
00613     } else if (nnb > 12) {
00614         s_wsfe(&io___42);
00615         do_fio(&c__1, "NNB ", (ftnlen)4);
00616         do_fio(&c__1, (char *)&nnb, (ftnlen)sizeof(integer));
00617         do_fio(&c__1, (char *)&c__12, (ftnlen)sizeof(integer));
00618         e_wsfe();
00619         nnb = 0;
00620         fatal = TRUE_;
00621     }
00622     s_rsle(&io___43);
00623     i__1 = nnb;
00624     for (i__ = 1; i__ <= i__1; ++i__) {
00625         do_lio(&c__3, &c__1, (char *)&nbval[i__ - 1], (ftnlen)sizeof(integer))
00626                 ;
00627     }
00628     e_rsle();
00629     i__1 = nnb;
00630     for (i__ = 1; i__ <= i__1; ++i__) {
00631         if (nbval[i__ - 1] < 0) {
00632             s_wsfe(&io___45);
00633             do_fio(&c__1, " NB ", (ftnlen)4);
00634             do_fio(&c__1, (char *)&nbval[i__ - 1], (ftnlen)sizeof(integer));
00635             do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
00636             e_wsfe();
00637             fatal = TRUE_;
00638         }
00639 /* L40: */
00640     }
00641     if (nnb > 0) {
00642         s_wsfe(&io___46);
00643         do_fio(&c__1, "NB  ", (ftnlen)4);
00644         i__1 = nnb;
00645         for (i__ = 1; i__ <= i__1; ++i__) {
00646             do_fio(&c__1, (char *)&nbval[i__ - 1], (ftnlen)sizeof(integer));
00647         }
00648         e_wsfe();
00649     }
00650 
00651 /*     Set NBVAL2 to be the set of unique values of NB */
00652 
00653     nnb2 = 0;
00654     i__1 = nnb;
00655     for (i__ = 1; i__ <= i__1; ++i__) {
00656         nb = nbval[i__ - 1];
00657         i__2 = nnb2;
00658         for (j = 1; j <= i__2; ++j) {
00659             if (nb == nbval2[j - 1]) {
00660                 goto L60;
00661             }
00662 /* L50: */
00663         }
00664         ++nnb2;
00665         nbval2[nnb2 - 1] = nb;
00666 L60:
00667         ;
00668     }
00669 
00670 /*     Read the values of NX */
00671 
00672     s_rsle(&io___51);
00673     i__1 = nnb;
00674     for (i__ = 1; i__ <= i__1; ++i__) {
00675         do_lio(&c__3, &c__1, (char *)&nxval[i__ - 1], (ftnlen)sizeof(integer))
00676                 ;
00677     }
00678     e_rsle();
00679     i__1 = nnb;
00680     for (i__ = 1; i__ <= i__1; ++i__) {
00681         if (nxval[i__ - 1] < 0) {
00682             s_wsfe(&io___53);
00683             do_fio(&c__1, " NX ", (ftnlen)4);
00684             do_fio(&c__1, (char *)&nxval[i__ - 1], (ftnlen)sizeof(integer));
00685             do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
00686             e_wsfe();
00687             fatal = TRUE_;
00688         }
00689 /* L70: */
00690     }
00691     if (nnb > 0) {
00692         s_wsfe(&io___54);
00693         do_fio(&c__1, "NX  ", (ftnlen)4);
00694         i__1 = nnb;
00695         for (i__ = 1; i__ <= i__1; ++i__) {
00696             do_fio(&c__1, (char *)&nxval[i__ - 1], (ftnlen)sizeof(integer));
00697         }
00698         e_wsfe();
00699     }
00700 
00701 /*     Read the values of RANKVAL */
00702 
00703     s_rsle(&io___55);
00704     do_lio(&c__3, &c__1, (char *)&nrank, (ftnlen)sizeof(integer));
00705     e_rsle();
00706     if (nn < 1) {
00707         s_wsfe(&io___57);
00708         do_fio(&c__1, " NRANK ", (ftnlen)7);
00709         do_fio(&c__1, (char *)&nrank, (ftnlen)sizeof(integer));
00710         do_fio(&c__1, (char *)&c__1, (ftnlen)sizeof(integer));
00711         e_wsfe();
00712         nrank = 0;
00713         fatal = TRUE_;
00714     } else if (nn > 12) {
00715         s_wsfe(&io___58);
00716         do_fio(&c__1, " NRANK ", (ftnlen)7);
00717         do_fio(&c__1, (char *)&nrank, (ftnlen)sizeof(integer));
00718         do_fio(&c__1, (char *)&c__12, (ftnlen)sizeof(integer));
00719         e_wsfe();
00720         nrank = 0;
00721         fatal = TRUE_;
00722     }
00723     s_rsle(&io___59);
00724     i__1 = nrank;
00725     for (i__ = 1; i__ <= i__1; ++i__) {
00726         do_lio(&c__3, &c__1, (char *)&rankval[i__ - 1], (ftnlen)sizeof(
00727                 integer));
00728     }
00729     e_rsle();
00730     i__1 = nrank;
00731     for (i__ = 1; i__ <= i__1; ++i__) {
00732         if (rankval[i__ - 1] < 0) {
00733             s_wsfe(&io___61);
00734             do_fio(&c__1, " RANK  ", (ftnlen)7);
00735             do_fio(&c__1, (char *)&rankval[i__ - 1], (ftnlen)sizeof(integer));
00736             do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
00737             e_wsfe();
00738             fatal = TRUE_;
00739         } else if (rankval[i__ - 1] > 100) {
00740             s_wsfe(&io___62);
00741             do_fio(&c__1, " RANK  ", (ftnlen)7);
00742             do_fio(&c__1, (char *)&rankval[i__ - 1], (ftnlen)sizeof(integer));
00743             do_fio(&c__1, (char *)&c__100, (ftnlen)sizeof(integer));
00744             e_wsfe();
00745             fatal = TRUE_;
00746         }
00747     }
00748     if (nrank > 0) {
00749         s_wsfe(&io___63);
00750         do_fio(&c__1, "RANK % OF N", (ftnlen)11);
00751         i__1 = nrank;
00752         for (i__ = 1; i__ <= i__1; ++i__) {
00753             do_fio(&c__1, (char *)&rankval[i__ - 1], (ftnlen)sizeof(integer));
00754         }
00755         e_wsfe();
00756     }
00757 
00758 /*     Read the threshold value for the test ratios. */
00759 
00760     s_rsle(&io___64);
00761     do_lio(&c__4, &c__1, (char *)&thresh, (ftnlen)sizeof(real));
00762     e_rsle();
00763     s_wsfe(&io___66);
00764     do_fio(&c__1, (char *)&thresh, (ftnlen)sizeof(real));
00765     e_wsfe();
00766 
00767 /*     Read the flag that indicates whether to test the LAPACK routines. */
00768 
00769     s_rsle(&io___67);
00770     do_lio(&c__8, &c__1, (char *)&tstchk, (ftnlen)sizeof(logical));
00771     e_rsle();
00772 
00773 /*     Read the flag that indicates whether to test the driver routines. */
00774 
00775     s_rsle(&io___69);
00776     do_lio(&c__8, &c__1, (char *)&tstdrv, (ftnlen)sizeof(logical));
00777     e_rsle();
00778 
00779 /*     Read the flag that indicates whether to test the error exits. */
00780 
00781     s_rsle(&io___71);
00782     do_lio(&c__8, &c__1, (char *)&tsterr, (ftnlen)sizeof(logical));
00783     e_rsle();
00784 
00785     if (fatal) {
00786         s_wsfe(&io___73);
00787         e_wsfe();
00788         s_stop("", (ftnlen)0);
00789     }
00790 
00791 /*     Calculate and print the machine dependent constants. */
00792 
00793     eps = slamch_("Underflow threshold");
00794     s_wsfe(&io___75);
00795     do_fio(&c__1, "underflow", (ftnlen)9);
00796     do_fio(&c__1, (char *)&eps, (ftnlen)sizeof(real));
00797     e_wsfe();
00798     eps = slamch_("Overflow threshold");
00799     s_wsfe(&io___76);
00800     do_fio(&c__1, "overflow ", (ftnlen)9);
00801     do_fio(&c__1, (char *)&eps, (ftnlen)sizeof(real));
00802     e_wsfe();
00803     eps = slamch_("Epsilon");
00804     s_wsfe(&io___77);
00805     do_fio(&c__1, "precision", (ftnlen)9);
00806     do_fio(&c__1, (char *)&eps, (ftnlen)sizeof(real));
00807     e_wsfe();
00808     s_wsle(&io___78);
00809     e_wsle();
00810 
00811 L80:
00812 
00813 /*     Read a test path and the number of matrix types to use. */
00814 
00815     ci__1.cierr = 0;
00816     ci__1.ciend = 1;
00817     ci__1.ciunit = 5;
00818     ci__1.cifmt = "(A72)";
00819     i__1 = s_rsfe(&ci__1);
00820     if (i__1 != 0) {
00821         goto L140;
00822     }
00823     i__1 = do_fio(&c__1, aline, (ftnlen)72);
00824     if (i__1 != 0) {
00825         goto L140;
00826     }
00827     i__1 = e_rsfe();
00828     if (i__1 != 0) {
00829         goto L140;
00830     }
00831     s_copy(path, aline, (ftnlen)3, (ftnlen)3);
00832     nmats = 30;
00833     i__ = 3;
00834 L90:
00835     ++i__;
00836     if (i__ > 72) {
00837         nmats = 30;
00838         goto L130;
00839     }
00840     if (*(unsigned char *)&aline[i__ - 1] == ' ') {
00841         goto L90;
00842     }
00843     nmats = 0;
00844 L100:
00845     *(unsigned char *)c1 = *(unsigned char *)&aline[i__ - 1];
00846     for (k = 1; k <= 10; ++k) {
00847         if (*(unsigned char *)c1 == *(unsigned char *)&intstr[k - 1]) {
00848             ic = k - 1;
00849             goto L120;
00850         }
00851 /* L110: */
00852     }
00853     goto L130;
00854 L120:
00855     nmats = nmats * 10 + ic;
00856     ++i__;
00857     if (i__ > 72) {
00858         goto L130;
00859     }
00860     goto L100;
00861 L130:
00862     *(unsigned char *)c1 = *(unsigned char *)path;
00863     s_copy(c2, path + 1, (ftnlen)2, (ftnlen)2);
00864     nrhs = nsval[0];
00865 
00866 /*     Check first character for correct precision. */
00867 
00868     if (! lsame_(c1, "Single precision")) {
00869         s_wsfe(&io___87);
00870         do_fio(&c__1, path, (ftnlen)3);
00871         e_wsfe();
00872 
00873     } else if (nmats <= 0) {
00874 
00875 /*        Check for a positive number of tests requested. */
00876 
00877         s_wsfe(&io___88);
00878         do_fio(&c__1, path, (ftnlen)3);
00879         e_wsfe();
00880 
00881     } else if (lsamen_(&c__2, c2, "GE")) {
00882 
00883 /*        GE:  general matrices */
00884 
00885         ntypes = 11;
00886         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
00887 
00888         if (tstchk) {
00889             schkge_(dotype, &nm, mval, &nn, nval, &nnb2, nbval2, &nns, nsval, 
00890                     &thresh, &tsterr, &lda, a, &a[21912], &a[43824], b, &b[
00891                     2112], &b[4224], work, rwork, iwork, &c__6);
00892         } else {
00893             s_wsfe(&io___96);
00894             do_fio(&c__1, path, (ftnlen)3);
00895             e_wsfe();
00896         }
00897 
00898         if (tstdrv) {
00899             sdrvge_(dotype, &nn, nval, &nrhs, &thresh, &tsterr, &lda, a, &a[
00900                     21912], &a[43824], b, &b[2112], &b[4224], &b[6336], s, 
00901                     work, rwork, iwork, &c__6);
00902         } else {
00903             s_wsfe(&io___98);
00904             do_fio(&c__1, path, (ftnlen)3);
00905             e_wsfe();
00906         }
00907 
00908     } else if (lsamen_(&c__2, c2, "GB")) {
00909 
00910 /*        GB:  general banded matrices */
00911 
00912         la = 43692;
00913         lafac = 65472;
00914         ntypes = 8;
00915         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
00916 
00917         if (tstchk) {
00918             schkgb_(dotype, &nm, mval, &nn, nval, &nnb2, nbval2, &nns, nsval, 
00919                     &thresh, &tsterr, a, &la, &a[43824], &lafac, b, &b[2112], 
00920                     &b[4224], work, rwork, iwork, &c__6);
00921         } else {
00922             s_wsfe(&io___101);
00923             do_fio(&c__1, path, (ftnlen)3);
00924             e_wsfe();
00925         }
00926 
00927         if (tstdrv) {
00928             sdrvgb_(dotype, &nn, nval, &nrhs, &thresh, &tsterr, a, &la, &a[
00929                     43824], &lafac, &a[109560], b, &b[2112], &b[4224], &b[
00930                     6336], s, work, rwork, iwork, &c__6);
00931         } else {
00932             s_wsfe(&io___102);
00933             do_fio(&c__1, path, (ftnlen)3);
00934             e_wsfe();
00935         }
00936 
00937     } else if (lsamen_(&c__2, c2, "GT")) {
00938 
00939 /*        GT:  general tridiagonal matrices */
00940 
00941         ntypes = 12;
00942         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
00943 
00944         if (tstchk) {
00945             schkgt_(dotype, &nn, nval, &nns, nsval, &thresh, &tsterr, a, &a[
00946                     21912], b, &b[2112], &b[4224], work, rwork, iwork, &c__6);
00947         } else {
00948             s_wsfe(&io___103);
00949             do_fio(&c__1, path, (ftnlen)3);
00950             e_wsfe();
00951         }
00952 
00953         if (tstdrv) {
00954             sdrvgt_(dotype, &nn, nval, &nrhs, &thresh, &tsterr, a, &a[21912], 
00955                     b, &b[2112], &b[4224], work, rwork, iwork, &c__6);
00956         } else {
00957             s_wsfe(&io___104);
00958             do_fio(&c__1, path, (ftnlen)3);
00959             e_wsfe();
00960         }
00961 
00962     } else if (lsamen_(&c__2, c2, "PO")) {
00963 
00964 /*        PO:  positive definite matrices */
00965 
00966         ntypes = 9;
00967         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
00968 
00969         if (tstchk) {
00970             schkpo_(dotype, &nn, nval, &nnb2, nbval2, &nns, nsval, &thresh, &
00971                     tsterr, &lda, a, &a[21912], &a[43824], b, &b[2112], &b[
00972                     4224], work, rwork, iwork, &c__6);
00973         } else {
00974             s_wsfe(&io___105);
00975             do_fio(&c__1, path, (ftnlen)3);
00976             e_wsfe();
00977         }
00978 
00979         if (tstdrv) {
00980             sdrvpo_(dotype, &nn, nval, &nrhs, &thresh, &tsterr, &lda, a, &a[
00981                     21912], &a[43824], b, &b[2112], &b[4224], &b[6336], s, 
00982                     work, rwork, iwork, &c__6);
00983         } else {
00984             s_wsfe(&io___106);
00985             do_fio(&c__1, path, (ftnlen)3);
00986             e_wsfe();
00987         }
00988 
00989     } else if (lsamen_(&c__2, c2, "PS")) {
00990 
00991 /*        PS:  positive semi-definite matrices */
00992 
00993         ntypes = 9;
00994 
00995         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
00996 
00997         if (tstchk) {
00998             schkps_(dotype, &nn, nval, &nnb2, nbval2, &nrank, rankval, &
00999                     thresh, &tsterr, &lda, a, &a[21912], &a[43824], piv, work, 
01000                      rwork, &c__6);
01001         } else {
01002             s_wsfe(&io___108);
01003             do_fio(&c__1, path, (ftnlen)3);
01004             e_wsfe();
01005         }
01006 
01007     } else if (lsamen_(&c__2, c2, "PP")) {
01008 
01009 /*        PP:  positive definite packed matrices */
01010 
01011         ntypes = 9;
01012         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01013 
01014         if (tstchk) {
01015             schkpp_(dotype, &nn, nval, &nns, nsval, &thresh, &tsterr, &lda, a, 
01016                      &a[21912], &a[43824], b, &b[2112], &b[4224], work, rwork, 
01017                      iwork, &c__6);
01018         } else {
01019             s_wsfe(&io___109);
01020             do_fio(&c__1, path, (ftnlen)3);
01021             e_wsfe();
01022         }
01023 
01024         if (tstdrv) {
01025             sdrvpp_(dotype, &nn, nval, &nrhs, &thresh, &tsterr, &lda, a, &a[
01026                     21912], &a[43824], b, &b[2112], &b[4224], &b[6336], s, 
01027                     work, rwork, iwork, &c__6);
01028         } else {
01029             s_wsfe(&io___110);
01030             do_fio(&c__1, path, (ftnlen)3);
01031             e_wsfe();
01032         }
01033 
01034     } else if (lsamen_(&c__2, c2, "PB")) {
01035 
01036 /*        PB:  positive definite banded matrices */
01037 
01038         ntypes = 8;
01039         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01040 
01041         if (tstchk) {
01042             schkpb_(dotype, &nn, nval, &nnb2, nbval2, &nns, nsval, &thresh, &
01043                     tsterr, &lda, a, &a[21912], &a[43824], b, &b[2112], &b[
01044                     4224], work, rwork, iwork, &c__6);
01045         } else {
01046             s_wsfe(&io___111);
01047             do_fio(&c__1, path, (ftnlen)3);
01048             e_wsfe();
01049         }
01050 
01051         if (tstdrv) {
01052             sdrvpb_(dotype, &nn, nval, &nrhs, &thresh, &tsterr, &lda, a, &a[
01053                     21912], &a[43824], b, &b[2112], &b[4224], &b[6336], s, 
01054                     work, rwork, iwork, &c__6);
01055         } else {
01056             s_wsfe(&io___112);
01057             do_fio(&c__1, path, (ftnlen)3);
01058             e_wsfe();
01059         }
01060 
01061     } else if (lsamen_(&c__2, c2, "PT")) {
01062 
01063 /*        PT:  positive definite tridiagonal matrices */
01064 
01065         ntypes = 12;
01066         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01067 
01068         if (tstchk) {
01069             schkpt_(dotype, &nn, nval, &nns, nsval, &thresh, &tsterr, a, &a[
01070                     21912], &a[43824], b, &b[2112], &b[4224], work, rwork, &
01071                     c__6);
01072         } else {
01073             s_wsfe(&io___113);
01074             do_fio(&c__1, path, (ftnlen)3);
01075             e_wsfe();
01076         }
01077 
01078         if (tstdrv) {
01079             sdrvpt_(dotype, &nn, nval, &nrhs, &thresh, &tsterr, a, &a[21912], 
01080                     &a[43824], b, &b[2112], &b[4224], work, rwork, &c__6);
01081         } else {
01082             s_wsfe(&io___114);
01083             do_fio(&c__1, path, (ftnlen)3);
01084             e_wsfe();
01085         }
01086 
01087     } else if (lsamen_(&c__2, c2, "SY")) {
01088 
01089 /*        SY:  symmetric indefinite matrices */
01090 
01091         ntypes = 10;
01092         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01093 
01094         if (tstchk) {
01095             schksy_(dotype, &nn, nval, &nnb2, nbval2, &nns, nsval, &thresh, &
01096                     tsterr, &lda, a, &a[21912], &a[43824], b, &b[2112], &b[
01097                     4224], work, rwork, iwork, &c__6);
01098         } else {
01099             s_wsfe(&io___115);
01100             do_fio(&c__1, path, (ftnlen)3);
01101             e_wsfe();
01102         }
01103 
01104         if (tstdrv) {
01105             sdrvsy_(dotype, &nn, nval, &nrhs, &thresh, &tsterr, &lda, a, &a[
01106                     21912], &a[43824], b, &b[2112], &b[4224], work, rwork, 
01107                     iwork, &c__6);
01108         } else {
01109             s_wsfe(&io___116);
01110             do_fio(&c__1, path, (ftnlen)3);
01111             e_wsfe();
01112         }
01113 
01114     } else if (lsamen_(&c__2, c2, "SP")) {
01115 
01116 /*        SP:  symmetric indefinite packed matrices */
01117 
01118         ntypes = 10;
01119         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01120 
01121         if (tstchk) {
01122             schksp_(dotype, &nn, nval, &nns, nsval, &thresh, &tsterr, &lda, a, 
01123                      &a[21912], &a[43824], b, &b[2112], &b[4224], work, rwork, 
01124                      iwork, &c__6);
01125         } else {
01126             s_wsfe(&io___117);
01127             do_fio(&c__1, path, (ftnlen)3);
01128             e_wsfe();
01129         }
01130 
01131         if (tstdrv) {
01132             sdrvsp_(dotype, &nn, nval, &nrhs, &thresh, &tsterr, &lda, a, &a[
01133                     21912], &a[43824], b, &b[2112], &b[4224], work, rwork, 
01134                     iwork, &c__6);
01135         } else {
01136             s_wsfe(&io___118);
01137             do_fio(&c__1, path, (ftnlen)3);
01138             e_wsfe();
01139         }
01140 
01141     } else if (lsamen_(&c__2, c2, "TR")) {
01142 
01143 /*        TR:  triangular matrices */
01144 
01145         ntypes = 18;
01146         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01147 
01148         if (tstchk) {
01149             schktr_(dotype, &nn, nval, &nnb2, nbval2, &nns, nsval, &thresh, &
01150                     tsterr, &lda, a, &a[21912], b, &b[2112], &b[4224], work, 
01151                     rwork, iwork, &c__6);
01152         } else {
01153             s_wsfe(&io___119);
01154             do_fio(&c__1, path, (ftnlen)3);
01155             e_wsfe();
01156         }
01157 
01158     } else if (lsamen_(&c__2, c2, "TP")) {
01159 
01160 /*        TP:  triangular packed matrices */
01161 
01162         ntypes = 18;
01163         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01164 
01165         if (tstchk) {
01166             schktp_(dotype, &nn, nval, &nns, nsval, &thresh, &tsterr, &lda, a, 
01167                      &a[21912], b, &b[2112], &b[4224], work, rwork, iwork, &
01168                     c__6);
01169         } else {
01170             s_wsfe(&io___120);
01171             do_fio(&c__1, path, (ftnlen)3);
01172             e_wsfe();
01173         }
01174 
01175     } else if (lsamen_(&c__2, c2, "TB")) {
01176 
01177 /*        TB:  triangular banded matrices */
01178 
01179         ntypes = 17;
01180         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01181 
01182         if (tstchk) {
01183             schktb_(dotype, &nn, nval, &nns, nsval, &thresh, &tsterr, &lda, a, 
01184                      &a[21912], b, &b[2112], &b[4224], work, rwork, iwork, &
01185                     c__6);
01186         } else {
01187             s_wsfe(&io___121);
01188             do_fio(&c__1, path, (ftnlen)3);
01189             e_wsfe();
01190         }
01191 
01192     } else if (lsamen_(&c__2, c2, "QR")) {
01193 
01194 /*        QR:  QR factorization */
01195 
01196         ntypes = 8;
01197         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01198 
01199         if (tstchk) {
01200             schkqr_(dotype, &nm, mval, &nn, nval, &nnb, nbval, nxval, &nrhs, &
01201                     thresh, &tsterr, &c__132, a, &a[21912], &a[43824], &a[
01202                     65736], &a[87648], b, &b[2112], &b[4224], &b[6336], work, 
01203                     rwork, iwork, &c__6);
01204         } else {
01205             s_wsfe(&io___122);
01206             do_fio(&c__1, path, (ftnlen)3);
01207             e_wsfe();
01208         }
01209 
01210     } else if (lsamen_(&c__2, c2, "LQ")) {
01211 
01212 /*        LQ:  LQ factorization */
01213 
01214         ntypes = 8;
01215         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01216 
01217         if (tstchk) {
01218             schklq_(dotype, &nm, mval, &nn, nval, &nnb, nbval, nxval, &nrhs, &
01219                     thresh, &tsterr, &c__132, a, &a[21912], &a[43824], &a[
01220                     65736], &a[87648], b, &b[2112], &b[4224], &b[6336], work, 
01221                     rwork, iwork, &c__6);
01222         } else {
01223             s_wsfe(&io___123);
01224             do_fio(&c__1, path, (ftnlen)3);
01225             e_wsfe();
01226         }
01227 
01228     } else if (lsamen_(&c__2, c2, "QL")) {
01229 
01230 /*        QL:  QL factorization */
01231 
01232         ntypes = 8;
01233         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01234 
01235         if (tstchk) {
01236             schkql_(dotype, &nm, mval, &nn, nval, &nnb, nbval, nxval, &nrhs, &
01237                     thresh, &tsterr, &c__132, a, &a[21912], &a[43824], &a[
01238                     65736], &a[87648], b, &b[2112], &b[4224], &b[6336], work, 
01239                     rwork, iwork, &c__6);
01240         } else {
01241             s_wsfe(&io___124);
01242             do_fio(&c__1, path, (ftnlen)3);
01243             e_wsfe();
01244         }
01245 
01246     } else if (lsamen_(&c__2, c2, "RQ")) {
01247 
01248 /*        RQ:  RQ factorization */
01249 
01250         ntypes = 8;
01251         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01252 
01253         if (tstchk) {
01254             schkrq_(dotype, &nm, mval, &nn, nval, &nnb, nbval, nxval, &nrhs, &
01255                     thresh, &tsterr, &c__132, a, &a[21912], &a[43824], &a[
01256                     65736], &a[87648], b, &b[2112], &b[4224], &b[6336], work, 
01257                     rwork, iwork, &c__6);
01258         } else {
01259             s_wsfe(&io___125);
01260             do_fio(&c__1, path, (ftnlen)3);
01261             e_wsfe();
01262         }
01263 
01264     } else if (lsamen_(&c__2, c2, "QP")) {
01265 
01266 /*        QP:  QR factorization with pivoting */
01267 
01268         ntypes = 6;
01269         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01270 
01271         if (tstchk) {
01272             schkqp_(dotype, &nm, mval, &nn, nval, &thresh, &tsterr, a, &a[
01273                     21912], b, &b[2112], &b[4224], work, iwork, &c__6);
01274             schkq3_(dotype, &nm, mval, &nn, nval, &nnb, nbval, nxval, &thresh, 
01275                      a, &a[21912], b, &b[2112], &b[4224], work, iwork, &c__6);
01276         } else {
01277             s_wsfe(&io___126);
01278             do_fio(&c__1, path, (ftnlen)3);
01279             e_wsfe();
01280         }
01281 
01282     } else if (lsamen_(&c__2, c2, "TZ")) {
01283 
01284 /*        TZ:  Trapezoidal matrix */
01285 
01286         ntypes = 3;
01287         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01288 
01289         if (tstchk) {
01290             schktz_(dotype, &nm, mval, &nn, nval, &thresh, &tsterr, a, &a[
01291                     21912], b, &b[2112], &b[4224], work, &c__6);
01292         } else {
01293             s_wsfe(&io___127);
01294             do_fio(&c__1, path, (ftnlen)3);
01295             e_wsfe();
01296         }
01297 
01298     } else if (lsamen_(&c__2, c2, "LS")) {
01299 
01300 /*        LS:  Least squares drivers */
01301 
01302         ntypes = 6;
01303         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01304 
01305         if (tstdrv) {
01306             sdrvls_(dotype, &nm, mval, &nn, nval, &nns, nsval, &nnb, nbval, 
01307                     nxval, &thresh, &tsterr, a, &a[21912], b, &b[2112], &b[
01308                     4224], rwork, &rwork[132], work, iwork, &c__6);
01309         } else {
01310             s_wsfe(&io___128);
01311             do_fio(&c__1, path, (ftnlen)3);
01312             e_wsfe();
01313         }
01314 
01315     } else if (lsamen_(&c__2, c2, "EQ")) {
01316 
01317 /*        EQ:  Equilibration routines for general and positive definite */
01318 /*             matrices (THREQ should be between 2 and 10) */
01319 
01320         if (tstchk) {
01321             schkeq_(&threq, &c__6);
01322         } else {
01323             s_wsfe(&io___129);
01324             do_fio(&c__1, path, (ftnlen)3);
01325             e_wsfe();
01326         }
01327 
01328     } else {
01329 
01330         s_wsfe(&io___130);
01331         do_fio(&c__1, path, (ftnlen)3);
01332         e_wsfe();
01333     }
01334 
01335 /*     Go back to get another input line. */
01336 
01337     goto L80;
01338 
01339 /*     Branch to this line when the last record is read. */
01340 
01341 L140:
01342     cl__1.cerr = 0;
01343     cl__1.cunit = 5;
01344     cl__1.csta = 0;
01345     f_clos(&cl__1);
01346     s2 = second_();
01347     s_wsfe(&io___132);
01348     e_wsfe();
01349     s_wsfe(&io___133);
01350     r__1 = s2 - s1;
01351     do_fio(&c__1, (char *)&r__1, (ftnlen)sizeof(real));
01352     e_wsfe();
01353 
01354 
01355 /*     End of SCHKAA */
01356 
01357     return 0;
01358 } /* MAIN__ */
01359 
01360 /* Main program alias */ int schkaa_ () { MAIN__ (); return 0; }


swiftnav
Author(s):
autogenerated on Sat Jun 8 2019 18:55:58