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


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