cchkaa.c
Go to the documentation of this file.
00001 /* cchkaa.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 COMPLEX LAPACK routines "
00061             "\002,/\002 LAPACK VERSION \002,i1,\002.\002,i1,\002.\002,i1,/"
00062             "/\002 The 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     complex 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     complex work[20856] /* was [132][158] */;
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[19832];
00116     extern /* Subroutine */ int cchkq3_(logical *, integer *, integer *, 
00117             integer *, integer *, integer *, integer *, integer *, real *, 
00118             complex *, complex *, real *, real *, complex *, complex *, real *
00119 , integer *, integer *);
00120     integer nbval2[12];
00121     extern /* Subroutine */ int cchkgb_(logical *, integer *, integer *, 
00122             integer *, integer *, integer *, integer *, integer *, integer *, 
00123             real *, logical *, complex *, integer *, complex *, integer *, 
00124             complex *, complex *, complex *, complex *, real *, integer *, 
00125             integer *), cchkge_(logical *, integer *, integer *, integer *, 
00126             integer *, integer *, integer *, integer *, integer *, real *, 
00127             logical *, integer *, complex *, complex *, complex *, complex *, 
00128             complex *, complex *, complex *, real *, integer *, integer *), 
00129             cchkhe_(logical *, integer *, integer *, integer *, integer *, 
00130             integer *, integer *, real *, logical *, integer *, complex *, 
00131             complex *, complex *, complex *, complex *, complex *, complex *, 
00132             real *, integer *, integer *), cchkpb_(logical *, integer *, 
00133             integer *, integer *, integer *, integer *, integer *, real *, 
00134             logical *, integer *, complex *, complex *, complex *, complex *, 
00135             complex *, complex *, complex *, real *, integer *), cchkeq_(real 
00136             *, integer *), cchktb_(logical *, integer *, integer *, integer *, 
00137              integer *, real *, logical *, integer *, complex *, complex *, 
00138             complex *, complex *, complex *, complex *, real *, integer *), 
00139             cchkhp_(logical *, integer *, integer *, integer *, integer *, 
00140             real *, logical *, integer *, complex *, complex *, complex *, 
00141             complex *, complex *, complex *, complex *, real *, integer *, 
00142             integer *), cchkgt_(logical *, integer *, integer *, integer *, 
00143             integer *, real *, logical *, complex *, complex *, complex *, 
00144             complex *, complex *, complex *, real *, integer *, integer *), 
00145             alareq_(char *, integer *, logical *, integer *, integer *, 
00146             integer *), cchklq_(logical *, integer *, integer *, 
00147             integer *, integer *, integer *, integer *, integer *, integer *, 
00148             real *, logical *, integer *, complex *, complex *, complex *, 
00149             complex *, complex *, complex *, complex *, complex *, complex *, 
00150             complex *, real *, integer *, integer *);
00151     extern doublereal slamch_(char *);
00152     extern /* Subroutine */ int cchkpo_(logical *, integer *, integer *, 
00153             integer *, integer *, integer *, integer *, real *, logical *, 
00154             integer *, complex *, complex *, complex *, complex *, complex *, 
00155             complex *, complex *, real *, integer *), cchkpp_(logical *, 
00156             integer *, integer *, integer *, integer *, real *, logical *, 
00157             integer *, complex *, complex *, complex *, complex *, complex *, 
00158             complex *, complex *, real *, integer *), cchkql_(logical *, 
00159             integer *, integer *, integer *, integer *, integer *, integer *, 
00160             integer *, integer *, real *, logical *, integer *, complex *, 
00161             complex *, complex *, complex *, complex *, complex *, complex *, 
00162             complex *, complex *, complex *, real *, integer *, integer *);
00163     extern doublereal second_(void);
00164     extern /* Subroutine */ int cchkps_(logical *, integer *, integer *, 
00165             integer *, integer *, integer *, integer *, real *, logical *, 
00166             integer *, complex *, complex *, complex *, integer *, complex *, 
00167             real *, integer *), cchkpt_(logical *, integer *, integer *, 
00168             integer *, integer *, real *, logical *, complex *, real *, 
00169             complex *, complex *, complex *, complex *, complex *, real *, 
00170             integer *), cchkqp_(logical *, integer *, integer *, integer *, 
00171             integer *, real *, logical *, complex *, complex *, real *, real *
00172 , complex *, complex *, real *, integer *, integer *);
00173     extern logical lsamen_(integer *, char *, char *);
00174     extern /* Subroutine */ int cchkqr_(logical *, integer *, integer *, 
00175             integer *, integer *, integer *, integer *, integer *, integer *, 
00176             real *, logical *, integer *, complex *, complex *, complex *, 
00177             complex *, complex *, complex *, complex *, complex *, complex *, 
00178             complex *, real *, integer *, integer *), cchkrq_(logical *, 
00179             integer *, integer *, integer *, integer *, integer *, integer *, 
00180             integer *, integer *, real *, logical *, integer *, complex *, 
00181             complex *, complex *, complex *, complex *, complex *, complex *, 
00182             complex *, complex *, complex *, real *, integer *, integer *), 
00183             cchksp_(logical *, integer *, integer *, integer *, integer *, 
00184             real *, logical *, integer *, complex *, complex *, complex *, 
00185             complex *, complex *, complex *, complex *, real *, integer *, 
00186             integer *), cchktp_(logical *, integer *, integer *, integer *, 
00187             integer *, real *, logical *, integer *, complex *, complex *, 
00188             complex *, complex *, complex *, complex *, real *, integer *), 
00189             cchksy_(logical *, integer *, integer *, integer *, integer *, 
00190             integer *, integer *, real *, logical *, integer *, complex *, 
00191             complex *, complex *, complex *, complex *, complex *, complex *, 
00192             real *, integer *, integer *), cchktr_(logical *, integer *, 
00193             integer *, integer *, integer *, integer *, integer *, real *, 
00194             logical *, integer *, complex *, complex *, complex *, complex *, 
00195             complex *, complex *, real *, integer *), cchktz_(logical *, 
00196             integer *, integer *, integer *, integer *, real *, logical *, 
00197             complex *, complex *, real *, real *, complex *, complex *, real *
00198 , integer *), cdrvgb_(logical *, integer *, integer *, integer *, 
00199             real *, logical *, complex *, integer *, complex *, integer *, 
00200             complex *, complex *, complex *, complex *, complex *, real *, 
00201             complex *, real *, integer *, integer *), cdrvge_(logical *, 
00202             integer *, integer *, integer *, real *, logical *, integer *, 
00203             complex *, complex *, complex *, complex *, complex *, complex *, 
00204             complex *, real *, complex *, real *, integer *, integer *), 
00205             cdrvgt_(logical *, integer *, integer *, integer *, real *, 
00206             logical *, complex *, complex *, complex *, complex *, complex *, 
00207             complex *, real *, integer *, integer *), cdrvhe_(logical *, 
00208             integer *, integer *, integer *, real *, logical *, integer *, 
00209             complex *, complex *, complex *, complex *, complex *, complex *, 
00210             complex *, real *, integer *, integer *), cdrvhp_(logical *, 
00211             integer *, integer *, integer *, real *, logical *, integer *, 
00212             complex *, complex *, complex *, complex *, complex *, complex *, 
00213             complex *, real *, integer *, integer *);
00214     real thresh;
00215     extern /* Subroutine */ int cdrvls_(logical *, integer *, integer *, 
00216             integer *, integer *, integer *, integer *, integer *, integer *, 
00217             integer *, real *, logical *, complex *, complex *, complex *, 
00218             complex *, complex *, real *, real *, complex *, real *, integer *
00219 , integer *), cdrvpb_(logical *, integer *, integer *, integer *, 
00220             real *, logical *, integer *, complex *, complex *, complex *, 
00221             complex *, complex *, complex *, complex *, real *, complex *, 
00222             real *, integer *);
00223     logical tstchk;
00224     extern /* Subroutine */ int cdrvpo_(logical *, integer *, integer *, 
00225             integer *, real *, logical *, integer *, complex *, complex *, 
00226             complex *, complex *, complex *, complex *, complex *, real *, 
00227             complex *, real *, integer *), cdrvpp_(logical *, integer *, 
00228             integer *, integer *, real *, logical *, integer *, complex *, 
00229             complex *, complex *, complex *, complex *, complex *, complex *, 
00230             real *, complex *, real *, integer *);
00231     logical dotype[30];
00232     extern /* Subroutine */ int cdrvpt_(logical *, integer *, integer *, 
00233             integer *, real *, logical *, complex *, real *, complex *, 
00234             complex *, complex *, complex *, complex *, real *, integer *), 
00235             cdrvsp_(logical *, integer *, integer *, integer *, real *, 
00236             logical *, integer *, complex *, complex *, complex *, complex *, 
00237             complex *, complex *, complex *, real *, integer *, integer *), 
00238             ilaver_(integer *, integer *, integer *), cdrvsy_(logical *, 
00239             integer *, integer *, integer *, real *, logical *, integer *, 
00240             complex *, complex *, complex *, complex *, complex *, complex *, 
00241             complex *, real *, integer *, integer *);
00242     integer ntypes;
00243     logical tsterr, tstdrv;
00244     integer rankval[12];
00245 
00246     /* Fortran I/O blocks */
00247     static cilist io___6 = { 0, 5, 0, 0, 0 };
00248     static cilist io___10 = { 0, 6, 0, fmt_9994, 0 };
00249     static cilist io___11 = { 0, 5, 0, 0, 0 };
00250     static cilist io___13 = { 0, 6, 0, fmt_9996, 0 };
00251     static cilist io___14 = { 0, 6, 0, fmt_9995, 0 };
00252     static cilist io___15 = { 0, 5, 0, 0, 0 };
00253     static cilist io___18 = { 0, 6, 0, fmt_9996, 0 };
00254     static cilist io___19 = { 0, 6, 0, fmt_9995, 0 };
00255     static cilist io___20 = { 0, 6, 0, fmt_9993, 0 };
00256     static cilist io___21 = { 0, 5, 0, 0, 0 };
00257     static cilist io___23 = { 0, 6, 0, fmt_9996, 0 };
00258     static cilist io___24 = { 0, 6, 0, fmt_9995, 0 };
00259     static cilist io___25 = { 0, 5, 0, 0, 0 };
00260     static cilist io___27 = { 0, 6, 0, fmt_9996, 0 };
00261     static cilist io___28 = { 0, 6, 0, fmt_9995, 0 };
00262     static cilist io___29 = { 0, 6, 0, fmt_9993, 0 };
00263     static cilist io___30 = { 0, 5, 0, 0, 0 };
00264     static cilist io___32 = { 0, 6, 0, fmt_9996, 0 };
00265     static cilist io___33 = { 0, 6, 0, fmt_9995, 0 };
00266     static cilist io___34 = { 0, 5, 0, 0, 0 };
00267     static cilist io___36 = { 0, 6, 0, fmt_9996, 0 };
00268     static cilist io___37 = { 0, 6, 0, fmt_9995, 0 };
00269     static cilist io___38 = { 0, 6, 0, fmt_9993, 0 };
00270     static cilist io___39 = { 0, 5, 0, 0, 0 };
00271     static cilist io___41 = { 0, 6, 0, fmt_9996, 0 };
00272     static cilist io___42 = { 0, 6, 0, fmt_9995, 0 };
00273     static cilist io___43 = { 0, 5, 0, 0, 0 };
00274     static cilist io___45 = { 0, 6, 0, fmt_9996, 0 };
00275     static cilist io___46 = { 0, 6, 0, fmt_9993, 0 };
00276     static cilist io___51 = { 0, 5, 0, 0, 0 };
00277     static cilist io___53 = { 0, 6, 0, fmt_9996, 0 };
00278     static cilist io___54 = { 0, 6, 0, fmt_9993, 0 };
00279     static cilist io___55 = { 0, 5, 0, 0, 0 };
00280     static cilist io___57 = { 0, 6, 0, fmt_9996, 0 };
00281     static cilist io___58 = { 0, 6, 0, fmt_9995, 0 };
00282     static cilist io___59 = { 0, 5, 0, 0, 0 };
00283     static cilist io___61 = { 0, 6, 0, fmt_9996, 0 };
00284     static cilist io___62 = { 0, 6, 0, fmt_9995, 0 };
00285     static cilist io___63 = { 0, 6, 0, fmt_9993, 0 };
00286     static cilist io___64 = { 0, 5, 0, 0, 0 };
00287     static cilist io___66 = { 0, 6, 0, fmt_9992, 0 };
00288     static cilist io___67 = { 0, 5, 0, 0, 0 };
00289     static cilist io___69 = { 0, 5, 0, 0, 0 };
00290     static cilist io___71 = { 0, 5, 0, 0, 0 };
00291     static cilist io___73 = { 0, 6, 0, fmt_9999, 0 };
00292     static cilist io___75 = { 0, 6, 0, fmt_9991, 0 };
00293     static cilist io___76 = { 0, 6, 0, fmt_9991, 0 };
00294     static cilist io___77 = { 0, 6, 0, fmt_9991, 0 };
00295     static cilist io___78 = { 0, 6, 0, 0, 0 };
00296     static cilist io___87 = { 0, 6, 0, fmt_9990, 0 };
00297     static cilist io___88 = { 0, 6, 0, fmt_9989, 0 };
00298     static cilist io___96 = { 0, 6, 0, fmt_9989, 0 };
00299     static cilist io___98 = { 0, 6, 0, fmt_9988, 0 };
00300     static cilist io___101 = { 0, 6, 0, fmt_9989, 0 };
00301     static cilist io___102 = { 0, 6, 0, fmt_9988, 0 };
00302     static cilist io___103 = { 0, 6, 0, fmt_9989, 0 };
00303     static cilist io___104 = { 0, 6, 0, fmt_9988, 0 };
00304     static cilist io___105 = { 0, 6, 0, fmt_9989, 0 };
00305     static cilist io___106 = { 0, 6, 0, fmt_9988, 0 };
00306     static cilist io___108 = { 0, 6, 0, fmt_9989, 0 };
00307     static cilist io___109 = { 0, 6, 0, fmt_9989, 0 };
00308     static cilist io___110 = { 0, 6, 0, fmt_9988, 0 };
00309     static cilist io___111 = { 0, 6, 0, fmt_9989, 0 };
00310     static cilist io___112 = { 0, 6, 0, fmt_9988, 0 };
00311     static cilist io___113 = { 0, 6, 0, fmt_9989, 0 };
00312     static cilist io___114 = { 0, 6, 0, fmt_9988, 0 };
00313     static cilist io___115 = { 0, 6, 0, fmt_9989, 0 };
00314     static cilist io___116 = { 0, 6, 0, fmt_9988, 0 };
00315     static cilist io___117 = { 0, 6, 0, fmt_9989, 0 };
00316     static cilist io___118 = { 0, 6, 0, fmt_9988, 0 };
00317     static cilist io___119 = { 0, 6, 0, fmt_9989, 0 };
00318     static cilist io___120 = { 0, 6, 0, fmt_9988, 0 };
00319     static cilist io___121 = { 0, 6, 0, fmt_9989, 0 };
00320     static cilist io___122 = { 0, 6, 0, fmt_9988, 0 };
00321     static cilist io___123 = { 0, 6, 0, fmt_9989, 0 };
00322     static cilist io___124 = { 0, 6, 0, fmt_9989, 0 };
00323     static cilist io___125 = { 0, 6, 0, fmt_9989, 0 };
00324     static cilist io___126 = { 0, 6, 0, fmt_9989, 0 };
00325     static cilist io___127 = { 0, 6, 0, fmt_9989, 0 };
00326     static cilist io___128 = { 0, 6, 0, fmt_9989, 0 };
00327     static cilist io___129 = { 0, 6, 0, fmt_9989, 0 };
00328     static cilist io___130 = { 0, 6, 0, fmt_9989, 0 };
00329     static cilist io___131 = { 0, 6, 0, fmt_9989, 0 };
00330     static cilist io___132 = { 0, 6, 0, fmt_9989, 0 };
00331     static cilist io___133 = { 0, 6, 0, fmt_9989, 0 };
00332     static cilist io___134 = { 0, 6, 0, fmt_9990, 0 };
00333     static cilist io___136 = { 0, 6, 0, fmt_9998, 0 };
00334     static cilist io___137 = { 0, 6, 0, fmt_9997, 0 };
00335 
00336 
00337 
00338 /*  -- LAPACK test routine (version 3.1.1) -- */
00339 /*     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. */
00340 /*     January 2007 */
00341 
00342 /*  Purpose */
00343 /*  ======= */
00344 
00345 /*  CCHKAA is the main test program for the COMPLEX linear equation */
00346 /*  routines. */
00347 
00348 /*  The program must be driven by a short data file. The first 14 records */
00349 /*  specify problem dimensions and program options using list-directed */
00350 /*  input.  The remaining lines specify the LAPACK test paths and the */
00351 /*  number of matrix types to use in testing.  An annotated example of a */
00352 /*  data file can be obtained by deleting the first 3 characters from the */
00353 /*  following 38 lines: */
00354 /*  Data file for testing COMPLEX LAPACK linear equation routines */
00355 /*  7                      Number of values of M */
00356 /*  0 1 2 3 5 10 16        Values of M (row dimension) */
00357 /*  7                      Number of values of N */
00358 /*  0 1 2 3 5 10 16        Values of N (column dimension) */
00359 /*  1                      Number of values of NRHS */
00360 /*  2                      Values of NRHS (number of right hand sides) */
00361 /*  5                      Number of values of NB */
00362 /*  1 3 3 3 20             Values of NB (the blocksize) */
00363 /*  1 0 5 9 1              Values of NX (crossover point) */
00364 /*  3                      Number of values of RANK */
00365 /*  30 50 90               Values of rank (as a % of N) */
00366 /*  30.0                   Threshold value of test ratio */
00367 /*  T                      Put T to test the LAPACK routines */
00368 /*  T                      Put T to test the driver routines */
00369 /*  T                      Put T to test the error exits */
00370 /*  CGE   11               List types on next line if 0 < NTYPES < 11 */
00371 /*  CGB    8               List types on next line if 0 < NTYPES <  8 */
00372 /*  CGT   12               List types on next line if 0 < NTYPES < 12 */
00373 /*  CPO    9               List types on next line if 0 < NTYPES <  9 */
00374 /*  CPO    9               List types on next line if 0 < NTYPES <  9 */
00375 /*  CPP    9               List types on next line if 0 < NTYPES <  9 */
00376 /*  CPB    8               List types on next line if 0 < NTYPES <  8 */
00377 /*  CPT   12               List types on next line if 0 < NTYPES < 12 */
00378 /*  CHE   10               List types on next line if 0 < NTYPES < 10 */
00379 /*  CHP   10               List types on next line if 0 < NTYPES < 10 */
00380 /*  CSY   11               List types on next line if 0 < NTYPES < 11 */
00381 /*  CSP   11               List types on next line if 0 < NTYPES < 11 */
00382 /*  CTR   18               List types on next line if 0 < NTYPES < 18 */
00383 /*  CTP   18               List types on next line if 0 < NTYPES < 18 */
00384 /*  CTB   17               List types on next line if 0 < NTYPES < 17 */
00385 /*  CQR    8               List types on next line if 0 < NTYPES <  8 */
00386 /*  CRQ    8               List types on next line if 0 < NTYPES <  8 */
00387 /*  CLQ    8               List types on next line if 0 < NTYPES <  8 */
00388 /*  CQL    8               List types on next line if 0 < NTYPES <  8 */
00389 /*  CQP    6               List types on next line if 0 < NTYPES <  6 */
00390 /*  CTZ    3               List types on next line if 0 < NTYPES <  3 */
00391 /*  CLS    6               List types on next line if 0 < NTYPES <  6 */
00392 /*  CEQ */
00393 
00394 /*  Internal Parameters */
00395 /*  =================== */
00396 
00397 /*  NMAX    INTEGER */
00398 /*          The maximum allowable value for N. */
00399 
00400 /*  MAXIN   INTEGER */
00401 /*          The number of different values that can be used for each of */
00402 /*          M, N, or NB */
00403 
00404 /*  MAXRHS  INTEGER */
00405 /*          The maximum number of right hand sides */
00406 
00407 /*  NIN     INTEGER */
00408 /*          The unit number for input */
00409 
00410 /*  NOUT    INTEGER */
00411 /*          The unit number for output */
00412 
00413 /*  ===================================================================== */
00414 
00415 /*     .. Parameters .. */
00416 /*     .. */
00417 /*     .. Local Scalars .. */
00418 /*     .. */
00419 /*     .. Local Arrays .. */
00420 /*     .. */
00421 /*     .. External Functions .. */
00422 /*     .. */
00423 /*     .. External Subroutines .. */
00424 /*     .. */
00425 /*     .. Scalars in Common .. */
00426 /*     .. */
00427 /*     .. Arrays in Common .. */
00428 /*     .. */
00429 /*     .. Common blocks .. */
00430 /*     .. */
00431 /*     .. Data statements .. */
00432 /*     .. */
00433 /*     .. Executable Statements .. */
00434 
00435     s1 = second_();
00436     lda = 132;
00437     fatal = FALSE_;
00438 
00439 /*     Read a dummy line. */
00440 
00441     s_rsle(&io___6);
00442     e_rsle();
00443 
00444 /*     Report values of parameters. */
00445 
00446     ilaver_(&vers_major__, &vers_minor__, &vers_patch__);
00447     s_wsfe(&io___10);
00448     do_fio(&c__1, (char *)&vers_major__, (ftnlen)sizeof(integer));
00449     do_fio(&c__1, (char *)&vers_minor__, (ftnlen)sizeof(integer));
00450     do_fio(&c__1, (char *)&vers_patch__, (ftnlen)sizeof(integer));
00451     e_wsfe();
00452 
00453 /*     Read the values of M */
00454 
00455     s_rsle(&io___11);
00456     do_lio(&c__3, &c__1, (char *)&nm, (ftnlen)sizeof(integer));
00457     e_rsle();
00458     if (nm < 1) {
00459         s_wsfe(&io___13);
00460         do_fio(&c__1, " NM ", (ftnlen)4);
00461         do_fio(&c__1, (char *)&nm, (ftnlen)sizeof(integer));
00462         do_fio(&c__1, (char *)&c__1, (ftnlen)sizeof(integer));
00463         e_wsfe();
00464         nm = 0;
00465         fatal = TRUE_;
00466     } else if (nm > 12) {
00467         s_wsfe(&io___14);
00468         do_fio(&c__1, " NM ", (ftnlen)4);
00469         do_fio(&c__1, (char *)&nm, (ftnlen)sizeof(integer));
00470         do_fio(&c__1, (char *)&c__12, (ftnlen)sizeof(integer));
00471         e_wsfe();
00472         nm = 0;
00473         fatal = TRUE_;
00474     }
00475     s_rsle(&io___15);
00476     i__1 = nm;
00477     for (i__ = 1; i__ <= i__1; ++i__) {
00478         do_lio(&c__3, &c__1, (char *)&mval[i__ - 1], (ftnlen)sizeof(integer));
00479     }
00480     e_rsle();
00481     i__1 = nm;
00482     for (i__ = 1; i__ <= i__1; ++i__) {
00483         if (mval[i__ - 1] < 0) {
00484             s_wsfe(&io___18);
00485             do_fio(&c__1, " M  ", (ftnlen)4);
00486             do_fio(&c__1, (char *)&mval[i__ - 1], (ftnlen)sizeof(integer));
00487             do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
00488             e_wsfe();
00489             fatal = TRUE_;
00490         } else if (mval[i__ - 1] > 132) {
00491             s_wsfe(&io___19);
00492             do_fio(&c__1, " M  ", (ftnlen)4);
00493             do_fio(&c__1, (char *)&mval[i__ - 1], (ftnlen)sizeof(integer));
00494             do_fio(&c__1, (char *)&c__132, (ftnlen)sizeof(integer));
00495             e_wsfe();
00496             fatal = TRUE_;
00497         }
00498 /* L10: */
00499     }
00500     if (nm > 0) {
00501         s_wsfe(&io___20);
00502         do_fio(&c__1, "M   ", (ftnlen)4);
00503         i__1 = nm;
00504         for (i__ = 1; i__ <= i__1; ++i__) {
00505             do_fio(&c__1, (char *)&mval[i__ - 1], (ftnlen)sizeof(integer));
00506         }
00507         e_wsfe();
00508     }
00509 
00510 /*     Read the values of N */
00511 
00512     s_rsle(&io___21);
00513     do_lio(&c__3, &c__1, (char *)&nn, (ftnlen)sizeof(integer));
00514     e_rsle();
00515     if (nn < 1) {
00516         s_wsfe(&io___23);
00517         do_fio(&c__1, " NN ", (ftnlen)4);
00518         do_fio(&c__1, (char *)&nn, (ftnlen)sizeof(integer));
00519         do_fio(&c__1, (char *)&c__1, (ftnlen)sizeof(integer));
00520         e_wsfe();
00521         nn = 0;
00522         fatal = TRUE_;
00523     } else if (nn > 12) {
00524         s_wsfe(&io___24);
00525         do_fio(&c__1, " NN ", (ftnlen)4);
00526         do_fio(&c__1, (char *)&nn, (ftnlen)sizeof(integer));
00527         do_fio(&c__1, (char *)&c__12, (ftnlen)sizeof(integer));
00528         e_wsfe();
00529         nn = 0;
00530         fatal = TRUE_;
00531     }
00532     s_rsle(&io___25);
00533     i__1 = nn;
00534     for (i__ = 1; i__ <= i__1; ++i__) {
00535         do_lio(&c__3, &c__1, (char *)&nval[i__ - 1], (ftnlen)sizeof(integer));
00536     }
00537     e_rsle();
00538     i__1 = nn;
00539     for (i__ = 1; i__ <= i__1; ++i__) {
00540         if (nval[i__ - 1] < 0) {
00541             s_wsfe(&io___27);
00542             do_fio(&c__1, " N  ", (ftnlen)4);
00543             do_fio(&c__1, (char *)&nval[i__ - 1], (ftnlen)sizeof(integer));
00544             do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
00545             e_wsfe();
00546             fatal = TRUE_;
00547         } else if (nval[i__ - 1] > 132) {
00548             s_wsfe(&io___28);
00549             do_fio(&c__1, " N  ", (ftnlen)4);
00550             do_fio(&c__1, (char *)&nval[i__ - 1], (ftnlen)sizeof(integer));
00551             do_fio(&c__1, (char *)&c__132, (ftnlen)sizeof(integer));
00552             e_wsfe();
00553             fatal = TRUE_;
00554         }
00555 /* L20: */
00556     }
00557     if (nn > 0) {
00558         s_wsfe(&io___29);
00559         do_fio(&c__1, "N   ", (ftnlen)4);
00560         i__1 = nn;
00561         for (i__ = 1; i__ <= i__1; ++i__) {
00562             do_fio(&c__1, (char *)&nval[i__ - 1], (ftnlen)sizeof(integer));
00563         }
00564         e_wsfe();
00565     }
00566 
00567 /*     Read the values of NRHS */
00568 
00569     s_rsle(&io___30);
00570     do_lio(&c__3, &c__1, (char *)&nns, (ftnlen)sizeof(integer));
00571     e_rsle();
00572     if (nns < 1) {
00573         s_wsfe(&io___32);
00574         do_fio(&c__1, " NNS", (ftnlen)4);
00575         do_fio(&c__1, (char *)&nns, (ftnlen)sizeof(integer));
00576         do_fio(&c__1, (char *)&c__1, (ftnlen)sizeof(integer));
00577         e_wsfe();
00578         nns = 0;
00579         fatal = TRUE_;
00580     } else if (nns > 12) {
00581         s_wsfe(&io___33);
00582         do_fio(&c__1, " NNS", (ftnlen)4);
00583         do_fio(&c__1, (char *)&nns, (ftnlen)sizeof(integer));
00584         do_fio(&c__1, (char *)&c__12, (ftnlen)sizeof(integer));
00585         e_wsfe();
00586         nns = 0;
00587         fatal = TRUE_;
00588     }
00589     s_rsle(&io___34);
00590     i__1 = nns;
00591     for (i__ = 1; i__ <= i__1; ++i__) {
00592         do_lio(&c__3, &c__1, (char *)&nsval[i__ - 1], (ftnlen)sizeof(integer))
00593                 ;
00594     }
00595     e_rsle();
00596     i__1 = nns;
00597     for (i__ = 1; i__ <= i__1; ++i__) {
00598         if (nsval[i__ - 1] < 0) {
00599             s_wsfe(&io___36);
00600             do_fio(&c__1, "NRHS", (ftnlen)4);
00601             do_fio(&c__1, (char *)&nsval[i__ - 1], (ftnlen)sizeof(integer));
00602             do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
00603             e_wsfe();
00604             fatal = TRUE_;
00605         } else if (nsval[i__ - 1] > 16) {
00606             s_wsfe(&io___37);
00607             do_fio(&c__1, "NRHS", (ftnlen)4);
00608             do_fio(&c__1, (char *)&nsval[i__ - 1], (ftnlen)sizeof(integer));
00609             do_fio(&c__1, (char *)&c__16, (ftnlen)sizeof(integer));
00610             e_wsfe();
00611             fatal = TRUE_;
00612         }
00613 /* L30: */
00614     }
00615     if (nns > 0) {
00616         s_wsfe(&io___38);
00617         do_fio(&c__1, "NRHS", (ftnlen)4);
00618         i__1 = nns;
00619         for (i__ = 1; i__ <= i__1; ++i__) {
00620             do_fio(&c__1, (char *)&nsval[i__ - 1], (ftnlen)sizeof(integer));
00621         }
00622         e_wsfe();
00623     }
00624 
00625 /*     Read the values of NB */
00626 
00627     s_rsle(&io___39);
00628     do_lio(&c__3, &c__1, (char *)&nnb, (ftnlen)sizeof(integer));
00629     e_rsle();
00630     if (nnb < 1) {
00631         s_wsfe(&io___41);
00632         do_fio(&c__1, "NNB ", (ftnlen)4);
00633         do_fio(&c__1, (char *)&nnb, (ftnlen)sizeof(integer));
00634         do_fio(&c__1, (char *)&c__1, (ftnlen)sizeof(integer));
00635         e_wsfe();
00636         nnb = 0;
00637         fatal = TRUE_;
00638     } else if (nnb > 12) {
00639         s_wsfe(&io___42);
00640         do_fio(&c__1, "NNB ", (ftnlen)4);
00641         do_fio(&c__1, (char *)&nnb, (ftnlen)sizeof(integer));
00642         do_fio(&c__1, (char *)&c__12, (ftnlen)sizeof(integer));
00643         e_wsfe();
00644         nnb = 0;
00645         fatal = TRUE_;
00646     }
00647     s_rsle(&io___43);
00648     i__1 = nnb;
00649     for (i__ = 1; i__ <= i__1; ++i__) {
00650         do_lio(&c__3, &c__1, (char *)&nbval[i__ - 1], (ftnlen)sizeof(integer))
00651                 ;
00652     }
00653     e_rsle();
00654     i__1 = nnb;
00655     for (i__ = 1; i__ <= i__1; ++i__) {
00656         if (nbval[i__ - 1] < 0) {
00657             s_wsfe(&io___45);
00658             do_fio(&c__1, " NB ", (ftnlen)4);
00659             do_fio(&c__1, (char *)&nbval[i__ - 1], (ftnlen)sizeof(integer));
00660             do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
00661             e_wsfe();
00662             fatal = TRUE_;
00663         }
00664 /* L40: */
00665     }
00666     if (nnb > 0) {
00667         s_wsfe(&io___46);
00668         do_fio(&c__1, "NB  ", (ftnlen)4);
00669         i__1 = nnb;
00670         for (i__ = 1; i__ <= i__1; ++i__) {
00671             do_fio(&c__1, (char *)&nbval[i__ - 1], (ftnlen)sizeof(integer));
00672         }
00673         e_wsfe();
00674     }
00675 
00676 /*     Set NBVAL2 to be the set of unique values of NB */
00677 
00678     nnb2 = 0;
00679     i__1 = nnb;
00680     for (i__ = 1; i__ <= i__1; ++i__) {
00681         nb = nbval[i__ - 1];
00682         i__2 = nnb2;
00683         for (j = 1; j <= i__2; ++j) {
00684             if (nb == nbval2[j - 1]) {
00685                 goto L60;
00686             }
00687 /* L50: */
00688         }
00689         ++nnb2;
00690         nbval2[nnb2 - 1] = nb;
00691 L60:
00692         ;
00693     }
00694 
00695 /*     Read the values of NX */
00696 
00697     s_rsle(&io___51);
00698     i__1 = nnb;
00699     for (i__ = 1; i__ <= i__1; ++i__) {
00700         do_lio(&c__3, &c__1, (char *)&nxval[i__ - 1], (ftnlen)sizeof(integer))
00701                 ;
00702     }
00703     e_rsle();
00704     i__1 = nnb;
00705     for (i__ = 1; i__ <= i__1; ++i__) {
00706         if (nxval[i__ - 1] < 0) {
00707             s_wsfe(&io___53);
00708             do_fio(&c__1, " NX ", (ftnlen)4);
00709             do_fio(&c__1, (char *)&nxval[i__ - 1], (ftnlen)sizeof(integer));
00710             do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
00711             e_wsfe();
00712             fatal = TRUE_;
00713         }
00714 /* L70: */
00715     }
00716     if (nnb > 0) {
00717         s_wsfe(&io___54);
00718         do_fio(&c__1, "NX  ", (ftnlen)4);
00719         i__1 = nnb;
00720         for (i__ = 1; i__ <= i__1; ++i__) {
00721             do_fio(&c__1, (char *)&nxval[i__ - 1], (ftnlen)sizeof(integer));
00722         }
00723         e_wsfe();
00724     }
00725 
00726 /*     Read the values of RANKVAL */
00727 
00728     s_rsle(&io___55);
00729     do_lio(&c__3, &c__1, (char *)&nrank, (ftnlen)sizeof(integer));
00730     e_rsle();
00731     if (nn < 1) {
00732         s_wsfe(&io___57);
00733         do_fio(&c__1, " NRANK ", (ftnlen)7);
00734         do_fio(&c__1, (char *)&nrank, (ftnlen)sizeof(integer));
00735         do_fio(&c__1, (char *)&c__1, (ftnlen)sizeof(integer));
00736         e_wsfe();
00737         nrank = 0;
00738         fatal = TRUE_;
00739     } else if (nn > 12) {
00740         s_wsfe(&io___58);
00741         do_fio(&c__1, " NRANK ", (ftnlen)7);
00742         do_fio(&c__1, (char *)&nrank, (ftnlen)sizeof(integer));
00743         do_fio(&c__1, (char *)&c__12, (ftnlen)sizeof(integer));
00744         e_wsfe();
00745         nrank = 0;
00746         fatal = TRUE_;
00747     }
00748     s_rsle(&io___59);
00749     i__1 = nrank;
00750     for (i__ = 1; i__ <= i__1; ++i__) {
00751         do_lio(&c__3, &c__1, (char *)&rankval[i__ - 1], (ftnlen)sizeof(
00752                 integer));
00753     }
00754     e_rsle();
00755     i__1 = nrank;
00756     for (i__ = 1; i__ <= i__1; ++i__) {
00757         if (rankval[i__ - 1] < 0) {
00758             s_wsfe(&io___61);
00759             do_fio(&c__1, " RANK  ", (ftnlen)7);
00760             do_fio(&c__1, (char *)&rankval[i__ - 1], (ftnlen)sizeof(integer));
00761             do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
00762             e_wsfe();
00763             fatal = TRUE_;
00764         } else if (rankval[i__ - 1] > 100) {
00765             s_wsfe(&io___62);
00766             do_fio(&c__1, " RANK  ", (ftnlen)7);
00767             do_fio(&c__1, (char *)&rankval[i__ - 1], (ftnlen)sizeof(integer));
00768             do_fio(&c__1, (char *)&c__100, (ftnlen)sizeof(integer));
00769             e_wsfe();
00770             fatal = TRUE_;
00771         }
00772     }
00773     if (nrank > 0) {
00774         s_wsfe(&io___63);
00775         do_fio(&c__1, "RANK % OF N", (ftnlen)11);
00776         i__1 = nrank;
00777         for (i__ = 1; i__ <= i__1; ++i__) {
00778             do_fio(&c__1, (char *)&rankval[i__ - 1], (ftnlen)sizeof(integer));
00779         }
00780         e_wsfe();
00781     }
00782 
00783 /*     Read the threshold value for the test ratios. */
00784 
00785     s_rsle(&io___64);
00786     do_lio(&c__4, &c__1, (char *)&thresh, (ftnlen)sizeof(real));
00787     e_rsle();
00788     s_wsfe(&io___66);
00789     do_fio(&c__1, (char *)&thresh, (ftnlen)sizeof(real));
00790     e_wsfe();
00791 
00792 /*     Read the flag that indicates whether to test the LAPACK routines. */
00793 
00794     s_rsle(&io___67);
00795     do_lio(&c__8, &c__1, (char *)&tstchk, (ftnlen)sizeof(logical));
00796     e_rsle();
00797 
00798 /*     Read the flag that indicates whether to test the driver routines. */
00799 
00800     s_rsle(&io___69);
00801     do_lio(&c__8, &c__1, (char *)&tstdrv, (ftnlen)sizeof(logical));
00802     e_rsle();
00803 
00804 /*     Read the flag that indicates whether to test the error exits. */
00805 
00806     s_rsle(&io___71);
00807     do_lio(&c__8, &c__1, (char *)&tsterr, (ftnlen)sizeof(logical));
00808     e_rsle();
00809 
00810     if (fatal) {
00811         s_wsfe(&io___73);
00812         e_wsfe();
00813         s_stop("", (ftnlen)0);
00814     }
00815 
00816 /*     Calculate and print the machine dependent constants. */
00817 
00818     eps = slamch_("Underflow threshold");
00819     s_wsfe(&io___75);
00820     do_fio(&c__1, "underflow", (ftnlen)9);
00821     do_fio(&c__1, (char *)&eps, (ftnlen)sizeof(real));
00822     e_wsfe();
00823     eps = slamch_("Overflow threshold");
00824     s_wsfe(&io___76);
00825     do_fio(&c__1, "overflow ", (ftnlen)9);
00826     do_fio(&c__1, (char *)&eps, (ftnlen)sizeof(real));
00827     e_wsfe();
00828     eps = slamch_("Epsilon");
00829     s_wsfe(&io___77);
00830     do_fio(&c__1, "precision", (ftnlen)9);
00831     do_fio(&c__1, (char *)&eps, (ftnlen)sizeof(real));
00832     e_wsfe();
00833     s_wsle(&io___78);
00834     e_wsle();
00835     nrhs = nsval[0];
00836 
00837 L80:
00838 
00839 /*     Read a test path and the number of matrix types to use. */
00840 
00841     ci__1.cierr = 0;
00842     ci__1.ciend = 1;
00843     ci__1.ciunit = 5;
00844     ci__1.cifmt = "(A72)";
00845     i__1 = s_rsfe(&ci__1);
00846     if (i__1 != 0) {
00847         goto L140;
00848     }
00849     i__1 = do_fio(&c__1, aline, (ftnlen)72);
00850     if (i__1 != 0) {
00851         goto L140;
00852     }
00853     i__1 = e_rsfe();
00854     if (i__1 != 0) {
00855         goto L140;
00856     }
00857     s_copy(path, aline, (ftnlen)3, (ftnlen)3);
00858     nmats = 30;
00859     i__ = 3;
00860 L90:
00861     ++i__;
00862     if (i__ > 72) {
00863         goto L130;
00864     }
00865     if (*(unsigned char *)&aline[i__ - 1] == ' ') {
00866         goto L90;
00867     }
00868     nmats = 0;
00869 L100:
00870     *(unsigned char *)c1 = *(unsigned char *)&aline[i__ - 1];
00871     for (k = 1; k <= 10; ++k) {
00872         if (*(unsigned char *)c1 == *(unsigned char *)&intstr[k - 1]) {
00873             ic = k - 1;
00874             goto L120;
00875         }
00876 /* L110: */
00877     }
00878     goto L130;
00879 L120:
00880     nmats = nmats * 10 + ic;
00881     ++i__;
00882     if (i__ > 72) {
00883         goto L130;
00884     }
00885     goto L100;
00886 L130:
00887     *(unsigned char *)c1 = *(unsigned char *)path;
00888     s_copy(c2, path + 1, (ftnlen)2, (ftnlen)2);
00889 
00890 /*     Check first character for correct precision. */
00891 
00892     if (! lsame_(c1, "Complex precision")) {
00893         s_wsfe(&io___87);
00894         do_fio(&c__1, path, (ftnlen)3);
00895         e_wsfe();
00896 
00897     } else if (nmats <= 0) {
00898 
00899 /*        Check for a positive number of tests requested. */
00900 
00901         s_wsfe(&io___88);
00902         do_fio(&c__1, path, (ftnlen)3);
00903         e_wsfe();
00904 
00905     } else if (lsamen_(&c__2, c2, "GE")) {
00906 
00907 /*        GE:  general matrices */
00908 
00909         ntypes = 11;
00910         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
00911 
00912         if (tstchk) {
00913             cchkge_(dotype, &nm, mval, &nn, nval, &nnb2, nbval2, &nns, nsval, 
00914                     &thresh, &tsterr, &lda, a, &a[21912], &a[43824], b, &b[
00915                     2112], &b[4224], work, rwork, iwork, &c__6);
00916         } else {
00917             s_wsfe(&io___96);
00918             do_fio(&c__1, path, (ftnlen)3);
00919             e_wsfe();
00920         }
00921 
00922         if (tstdrv) {
00923             cdrvge_(dotype, &nn, nval, &nrhs, &thresh, &tsterr, &lda, a, &a[
00924                     21912], &a[43824], b, &b[2112], &b[4224], &b[6336], s, 
00925                     work, rwork, iwork, &c__6);
00926         } else {
00927             s_wsfe(&io___98);
00928             do_fio(&c__1, path, (ftnlen)3);
00929             e_wsfe();
00930         }
00931 
00932     } else if (lsamen_(&c__2, c2, "GB")) {
00933 
00934 /*        GB:  general banded matrices */
00935 
00936         la = 43692;
00937         lafac = 65472;
00938         ntypes = 8;
00939         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
00940 
00941         if (tstchk) {
00942             cchkgb_(dotype, &nm, mval, &nn, nval, &nnb2, nbval2, &nns, nsval, 
00943                     &thresh, &tsterr, a, &la, &a[43824], &lafac, b, &b[2112], 
00944                     &b[4224], work, rwork, iwork, &c__6);
00945         } else {
00946             s_wsfe(&io___101);
00947             do_fio(&c__1, path, (ftnlen)3);
00948             e_wsfe();
00949         }
00950 
00951         if (tstdrv) {
00952             cdrvgb_(dotype, &nn, nval, &nrhs, &thresh, &tsterr, a, &la, &a[
00953                     43824], &lafac, &a[109560], b, &b[2112], &b[4224], &b[
00954                     6336], s, work, rwork, iwork, &c__6);
00955         } else {
00956             s_wsfe(&io___102);
00957             do_fio(&c__1, path, (ftnlen)3);
00958             e_wsfe();
00959         }
00960 
00961     } else if (lsamen_(&c__2, c2, "GT")) {
00962 
00963 /*        GT:  general tridiagonal matrices */
00964 
00965         ntypes = 12;
00966         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
00967 
00968         if (tstchk) {
00969             cchkgt_(dotype, &nn, nval, &nns, nsval, &thresh, &tsterr, a, &a[
00970                     21912], b, &b[2112], &b[4224], work, rwork, iwork, &c__6);
00971         } else {
00972             s_wsfe(&io___103);
00973             do_fio(&c__1, path, (ftnlen)3);
00974             e_wsfe();
00975         }
00976 
00977         if (tstdrv) {
00978             cdrvgt_(dotype, &nn, nval, &nrhs, &thresh, &tsterr, a, &a[21912], 
00979                     b, &b[2112], &b[4224], work, rwork, iwork, &c__6);
00980         } else {
00981             s_wsfe(&io___104);
00982             do_fio(&c__1, path, (ftnlen)3);
00983             e_wsfe();
00984         }
00985 
00986     } else if (lsamen_(&c__2, c2, "PO")) {
00987 
00988 /*        PO:  positive definite matrices */
00989 
00990         ntypes = 9;
00991         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
00992 
00993         if (tstchk) {
00994             cchkpo_(dotype, &nn, nval, &nnb2, nbval2, &nns, nsval, &thresh, &
00995                     tsterr, &lda, a, &a[21912], &a[43824], b, &b[2112], &b[
00996                     4224], work, rwork, &c__6);
00997         } else {
00998             s_wsfe(&io___105);
00999             do_fio(&c__1, path, (ftnlen)3);
01000             e_wsfe();
01001         }
01002 
01003         if (tstdrv) {
01004             cdrvpo_(dotype, &nn, nval, &nrhs, &thresh, &tsterr, &lda, a, &a[
01005                     21912], &a[43824], b, &b[2112], &b[4224], &b[6336], s, 
01006                     work, rwork, &c__6);
01007         } else {
01008             s_wsfe(&io___106);
01009             do_fio(&c__1, path, (ftnlen)3);
01010             e_wsfe();
01011         }
01012 
01013     } else if (lsamen_(&c__2, c2, "PS")) {
01014 
01015 /*        PS:  positive semi-definite matrices */
01016 
01017         ntypes = 9;
01018 
01019         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01020 
01021         if (tstchk) {
01022             cchkps_(dotype, &nn, nval, &nnb2, nbval2, &nrank, rankval, &
01023                     thresh, &tsterr, &lda, a, &a[21912], &a[43824], piv, work, 
01024                      rwork, &c__6);
01025         } else {
01026             s_wsfe(&io___108);
01027             do_fio(&c__1, path, (ftnlen)3);
01028             e_wsfe();
01029         }
01030 
01031     } else if (lsamen_(&c__2, c2, "PP")) {
01032 
01033 /*        PP:  positive definite packed matrices */
01034 
01035         ntypes = 9;
01036         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01037 
01038         if (tstchk) {
01039             cchkpp_(dotype, &nn, nval, &nns, nsval, &thresh, &tsterr, &lda, a, 
01040                      &a[21912], &a[43824], b, &b[2112], &b[4224], work, rwork, 
01041                      &c__6);
01042         } else {
01043             s_wsfe(&io___109);
01044             do_fio(&c__1, path, (ftnlen)3);
01045             e_wsfe();
01046         }
01047 
01048         if (tstdrv) {
01049             cdrvpp_(dotype, &nn, nval, &nrhs, &thresh, &tsterr, &lda, a, &a[
01050                     21912], &a[43824], b, &b[2112], &b[4224], &b[6336], s, 
01051                     work, rwork, &c__6);
01052         } else {
01053             s_wsfe(&io___110);
01054             do_fio(&c__1, path, (ftnlen)3);
01055             e_wsfe();
01056         }
01057 
01058     } else if (lsamen_(&c__2, c2, "PB")) {
01059 
01060 /*        PB:  positive definite banded matrices */
01061 
01062         ntypes = 8;
01063         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01064 
01065         if (tstchk) {
01066             cchkpb_(dotype, &nn, nval, &nnb2, nbval2, &nns, nsval, &thresh, &
01067                     tsterr, &lda, a, &a[21912], &a[43824], b, &b[2112], &b[
01068                     4224], work, rwork, &c__6);
01069         } else {
01070             s_wsfe(&io___111);
01071             do_fio(&c__1, path, (ftnlen)3);
01072             e_wsfe();
01073         }
01074 
01075         if (tstdrv) {
01076             cdrvpb_(dotype, &nn, nval, &nrhs, &thresh, &tsterr, &lda, a, &a[
01077                     21912], &a[43824], b, &b[2112], &b[4224], &b[6336], s, 
01078                     work, rwork, &c__6);
01079         } else {
01080             s_wsfe(&io___112);
01081             do_fio(&c__1, path, (ftnlen)3);
01082             e_wsfe();
01083         }
01084 
01085     } else if (lsamen_(&c__2, c2, "PT")) {
01086 
01087 /*        PT:  positive definite tridiagonal matrices */
01088 
01089         ntypes = 12;
01090         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01091 
01092         if (tstchk) {
01093             cchkpt_(dotype, &nn, nval, &nns, nsval, &thresh, &tsterr, a, s, &
01094                     a[21912], b, &b[2112], &b[4224], work, rwork, &c__6);
01095         } else {
01096             s_wsfe(&io___113);
01097             do_fio(&c__1, path, (ftnlen)3);
01098             e_wsfe();
01099         }
01100 
01101         if (tstdrv) {
01102             cdrvpt_(dotype, &nn, nval, &nrhs, &thresh, &tsterr, a, s, &a[
01103                     21912], b, &b[2112], &b[4224], work, rwork, &c__6);
01104         } else {
01105             s_wsfe(&io___114);
01106             do_fio(&c__1, path, (ftnlen)3);
01107             e_wsfe();
01108         }
01109 
01110     } else if (lsamen_(&c__2, c2, "HE")) {
01111 
01112 /*        HE:  Hermitian indefinite matrices */
01113 
01114         ntypes = 10;
01115         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01116 
01117         if (tstchk) {
01118             cchkhe_(dotype, &nn, nval, &nnb2, nbval2, &nns, nsval, &thresh, &
01119                     tsterr, &lda, a, &a[21912], &a[43824], b, &b[2112], &b[
01120                     4224], work, rwork, iwork, &c__6);
01121         } else {
01122             s_wsfe(&io___115);
01123             do_fio(&c__1, path, (ftnlen)3);
01124             e_wsfe();
01125         }
01126 
01127         if (tstdrv) {
01128             cdrvhe_(dotype, &nn, nval, &nrhs, &thresh, &tsterr, &lda, a, &a[
01129                     21912], &a[43824], b, &b[2112], &b[4224], work, rwork, 
01130                     iwork, &c__6);
01131         } else {
01132             s_wsfe(&io___116);
01133             do_fio(&c__1, path, (ftnlen)3);
01134             e_wsfe();
01135         }
01136 
01137     } else if (lsamen_(&c__2, c2, "HP")) {
01138 
01139 /*        HP:  Hermitian indefinite packed matrices */
01140 
01141         ntypes = 10;
01142         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01143 
01144         if (tstchk) {
01145             cchkhp_(dotype, &nn, nval, &nns, nsval, &thresh, &tsterr, &lda, a, 
01146                      &a[21912], &a[43824], b, &b[2112], &b[4224], work, rwork, 
01147                      iwork, &c__6);
01148         } else {
01149             s_wsfe(&io___117);
01150             do_fio(&c__1, path, (ftnlen)3);
01151             e_wsfe();
01152         }
01153 
01154         if (tstdrv) {
01155             cdrvhp_(dotype, &nn, nval, &nrhs, &thresh, &tsterr, &lda, a, &a[
01156                     21912], &a[43824], b, &b[2112], &b[4224], work, rwork, 
01157                     iwork, &c__6);
01158         } else {
01159             s_wsfe(&io___118);
01160             do_fio(&c__1, path, (ftnlen)3);
01161             e_wsfe();
01162         }
01163 
01164     } else if (lsamen_(&c__2, c2, "SY")) {
01165 
01166 /*        SY:  symmetric indefinite matrices */
01167 
01168         ntypes = 11;
01169         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01170 
01171         if (tstchk) {
01172             cchksy_(dotype, &nn, nval, &nnb2, nbval2, &nns, nsval, &thresh, &
01173                     tsterr, &lda, a, &a[21912], &a[43824], b, &b[2112], &b[
01174                     4224], work, rwork, iwork, &c__6);
01175         } else {
01176             s_wsfe(&io___119);
01177             do_fio(&c__1, path, (ftnlen)3);
01178             e_wsfe();
01179         }
01180 
01181         if (tstdrv) {
01182             cdrvsy_(dotype, &nn, nval, &nrhs, &thresh, &tsterr, &lda, a, &a[
01183                     21912], &a[43824], b, &b[2112], &b[4224], work, rwork, 
01184                     iwork, &c__6);
01185         } else {
01186             s_wsfe(&io___120);
01187             do_fio(&c__1, path, (ftnlen)3);
01188             e_wsfe();
01189         }
01190 
01191     } else if (lsamen_(&c__2, c2, "SP")) {
01192 
01193 /*        SP:  symmetric indefinite packed matrices */
01194 
01195         ntypes = 11;
01196         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01197 
01198         if (tstchk) {
01199             cchksp_(dotype, &nn, nval, &nns, nsval, &thresh, &tsterr, &lda, a, 
01200                      &a[21912], &a[43824], b, &b[2112], &b[4224], work, rwork, 
01201                      iwork, &c__6);
01202         } else {
01203             s_wsfe(&io___121);
01204             do_fio(&c__1, path, (ftnlen)3);
01205             e_wsfe();
01206         }
01207 
01208         if (tstdrv) {
01209             cdrvsp_(dotype, &nn, nval, &nrhs, &thresh, &tsterr, &lda, a, &a[
01210                     21912], &a[43824], b, &b[2112], &b[4224], work, rwork, 
01211                     iwork, &c__6);
01212         } else {
01213             s_wsfe(&io___122);
01214             do_fio(&c__1, path, (ftnlen)3);
01215             e_wsfe();
01216         }
01217 
01218     } else if (lsamen_(&c__2, c2, "TR")) {
01219 
01220 /*        TR:  triangular matrices */
01221 
01222         ntypes = 18;
01223         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01224 
01225         if (tstchk) {
01226             cchktr_(dotype, &nn, nval, &nnb2, nbval2, &nns, nsval, &thresh, &
01227                     tsterr, &lda, a, &a[21912], b, &b[2112], &b[4224], work, 
01228                     rwork, &c__6);
01229         } else {
01230             s_wsfe(&io___123);
01231             do_fio(&c__1, path, (ftnlen)3);
01232             e_wsfe();
01233         }
01234 
01235     } else if (lsamen_(&c__2, c2, "TP")) {
01236 
01237 /*        TP:  triangular packed matrices */
01238 
01239         ntypes = 18;
01240         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01241 
01242         if (tstchk) {
01243             cchktp_(dotype, &nn, nval, &nns, nsval, &thresh, &tsterr, &lda, a, 
01244                      &a[21912], b, &b[2112], &b[4224], work, rwork, &c__6);
01245         } else {
01246             s_wsfe(&io___124);
01247             do_fio(&c__1, path, (ftnlen)3);
01248             e_wsfe();
01249         }
01250 
01251     } else if (lsamen_(&c__2, c2, "TB")) {
01252 
01253 /*        TB:  triangular banded matrices */
01254 
01255         ntypes = 17;
01256         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01257 
01258         if (tstchk) {
01259             cchktb_(dotype, &nn, nval, &nns, nsval, &thresh, &tsterr, &lda, a, 
01260                      &a[21912], b, &b[2112], &b[4224], work, rwork, &c__6);
01261         } else {
01262             s_wsfe(&io___125);
01263             do_fio(&c__1, path, (ftnlen)3);
01264             e_wsfe();
01265         }
01266 
01267     } else if (lsamen_(&c__2, c2, "QR")) {
01268 
01269 /*        QR:  QR factorization */
01270 
01271         ntypes = 8;
01272         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01273 
01274         if (tstchk) {
01275             cchkqr_(dotype, &nm, mval, &nn, nval, &nnb, nbval, nxval, &nrhs, &
01276                     thresh, &tsterr, &c__132, a, &a[21912], &a[43824], &a[
01277                     65736], &a[87648], b, &b[2112], &b[4224], &b[6336], work, 
01278                     rwork, iwork, &c__6);
01279         } else {
01280             s_wsfe(&io___126);
01281             do_fio(&c__1, path, (ftnlen)3);
01282             e_wsfe();
01283         }
01284 
01285     } else if (lsamen_(&c__2, c2, "LQ")) {
01286 
01287 /*        LQ:  LQ factorization */
01288 
01289         ntypes = 8;
01290         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01291 
01292         if (tstchk) {
01293             cchklq_(dotype, &nm, mval, &nn, nval, &nnb, nbval, nxval, &nrhs, &
01294                     thresh, &tsterr, &c__132, a, &a[21912], &a[43824], &a[
01295                     65736], &a[87648], b, &b[2112], &b[4224], &b[6336], work, 
01296                     rwork, iwork, &c__6);
01297         } else {
01298             s_wsfe(&io___127);
01299             do_fio(&c__1, path, (ftnlen)3);
01300             e_wsfe();
01301         }
01302 
01303     } else if (lsamen_(&c__2, c2, "QL")) {
01304 
01305 /*        QL:  QL factorization */
01306 
01307         ntypes = 8;
01308         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01309 
01310         if (tstchk) {
01311             cchkql_(dotype, &nm, mval, &nn, nval, &nnb, nbval, nxval, &nrhs, &
01312                     thresh, &tsterr, &c__132, a, &a[21912], &a[43824], &a[
01313                     65736], &a[87648], b, &b[2112], &b[4224], &b[6336], work, 
01314                     rwork, iwork, &c__6);
01315         } else {
01316             s_wsfe(&io___128);
01317             do_fio(&c__1, path, (ftnlen)3);
01318             e_wsfe();
01319         }
01320 
01321     } else if (lsamen_(&c__2, c2, "RQ")) {
01322 
01323 /*        RQ:  RQ factorization */
01324 
01325         ntypes = 8;
01326         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01327 
01328         if (tstchk) {
01329             cchkrq_(dotype, &nm, mval, &nn, nval, &nnb, nbval, nxval, &nrhs, &
01330                     thresh, &tsterr, &c__132, a, &a[21912], &a[43824], &a[
01331                     65736], &a[87648], b, &b[2112], &b[4224], &b[6336], work, 
01332                     rwork, iwork, &c__6);
01333         } else {
01334             s_wsfe(&io___129);
01335             do_fio(&c__1, path, (ftnlen)3);
01336             e_wsfe();
01337         }
01338 
01339     } else if (lsamen_(&c__2, c2, "EQ")) {
01340 
01341 /*        EQ:  Equilibration routines for general and positive definite */
01342 /*             matrices (THREQ should be between 2 and 10) */
01343 
01344         if (tstchk) {
01345             cchkeq_(&threq, &c__6);
01346         } else {
01347             s_wsfe(&io___130);
01348             do_fio(&c__1, path, (ftnlen)3);
01349             e_wsfe();
01350         }
01351 
01352     } else if (lsamen_(&c__2, c2, "TZ")) {
01353 
01354 /*        TZ:  Trapezoidal matrix */
01355 
01356         ntypes = 3;
01357         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01358 
01359         if (tstchk) {
01360             cchktz_(dotype, &nm, mval, &nn, nval, &thresh, &tsterr, a, &a[
01361                     21912], s, &s[132], b, work, rwork, &c__6);
01362         } else {
01363             s_wsfe(&io___131);
01364             do_fio(&c__1, path, (ftnlen)3);
01365             e_wsfe();
01366         }
01367 
01368     } else if (lsamen_(&c__2, c2, "QP")) {
01369 
01370 /*        QP:  QR factorization with pivoting */
01371 
01372         ntypes = 6;
01373         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01374 
01375         if (tstchk) {
01376             cchkqp_(dotype, &nm, mval, &nn, nval, &thresh, &tsterr, a, &a[
01377                     21912], s, &s[132], b, work, rwork, iwork, &c__6);
01378             cchkq3_(dotype, &nm, mval, &nn, nval, &nnb, nbval, nxval, &thresh, 
01379                      a, &a[21912], s, &s[132], b, work, rwork, iwork, &c__6);
01380         } else {
01381             s_wsfe(&io___132);
01382             do_fio(&c__1, path, (ftnlen)3);
01383             e_wsfe();
01384         }
01385 
01386     } else if (lsamen_(&c__2, c2, "LS")) {
01387 
01388 /*        LS:  Least squares drivers */
01389 
01390         ntypes = 6;
01391         alareq_(path, &nmats, dotype, &ntypes, &c__5, &c__6);
01392 
01393         if (tstdrv) {
01394             cdrvls_(dotype, &nm, mval, &nn, nval, &nns, nsval, &nnb, nbval, 
01395                     nxval, &thresh, &tsterr, a, &a[21912], &a[43824], &a[
01396                     65736], &a[87648], s, &s[132], work, rwork, iwork, &c__6);
01397         } else {
01398             s_wsfe(&io___133);
01399             do_fio(&c__1, path, (ftnlen)3);
01400             e_wsfe();
01401         }
01402 
01403     } else {
01404 
01405         s_wsfe(&io___134);
01406         do_fio(&c__1, path, (ftnlen)3);
01407         e_wsfe();
01408     }
01409 
01410 /*     Go back to get another input line. */
01411 
01412     goto L80;
01413 
01414 /*     Branch to this line when the last record is read. */
01415 
01416 L140:
01417     cl__1.cerr = 0;
01418     cl__1.cunit = 5;
01419     cl__1.csta = 0;
01420     f_clos(&cl__1);
01421     s2 = second_();
01422     s_wsfe(&io___136);
01423     e_wsfe();
01424     s_wsfe(&io___137);
01425     r__1 = s2 - s1;
01426     do_fio(&c__1, (char *)&r__1, (ftnlen)sizeof(real));
01427     e_wsfe();
01428 
01429 
01430 /*     End of CCHKAA */
01431 
01432     return 0;
01433 } /* MAIN__ */
01434 
01435 /* Main program alias */ int cchkaa_ () { MAIN__ (); return 0; }


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