dchkab.c
Go to the documentation of this file.
00001 /* dchkab.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 /* Table of constant values */
00032 
00033 static integer c__1 = 1;
00034 static integer c__3 = 3;
00035 static integer c__12 = 12;
00036 static integer c__0 = 0;
00037 static integer c__132 = 132;
00038 static integer c__16 = 16;
00039 static integer c__5 = 5;
00040 static integer c__8 = 8;
00041 static integer c__2 = 2;
00042 static integer c__6 = 6;
00043 
00044 /* Main program */ int MAIN__(void)
00045 {
00046     /* Initialized data */
00047 
00048     static char intstr[10] = "0123456789";
00049 
00050     /* Format strings */
00051     static char fmt_9994[] = "(\002 Tests of the DOUBLE PRECISION LAPACK DSG"
00052             "ESV/DSPOSV\002,\002 routines \002,/\002 LAPACK VERSION \002,i1"
00053             ",\002.\002,i1,\002.\002,i1,//\002 The following parameter values"
00054             " will be used:\002)";
00055     static char fmt_9996[] = "(\002 Invalid input value: \002,a4,\002=\002,i"
00056             "6,\002; must be >=\002,i6)";
00057     static char fmt_9995[] = "(\002 Invalid input value: \002,a4,\002=\002,i"
00058             "6,\002; must be <=\002,i6)";
00059     static char fmt_9993[] = "(4x,a4,\002:  \002,10i6,/11x,10i6)";
00060     static char fmt_9992[] = "(/\002 Routines pass computational tests if te"
00061             "st ratio is \002,\002less than\002,f8.2,/)";
00062     static char fmt_9999[] = "(/\002 Execution not attempted due to input er"
00063             "rors\002)";
00064     static char fmt_9991[] = "(\002 Relative machine \002,a,\002 is taken to"
00065             " be\002,d16.6)";
00066     static char fmt_9990[] = "(/1x,a6,\002 routines were not tested\002)";
00067     static char fmt_9989[] = "(/1x,a6,\002 driver routines were not teste"
00068             "d\002)";
00069     static char fmt_9998[] = "(/\002 End of tests\002)";
00070     static char fmt_9997[] = "(\002 Total time used = \002,f12.2,\002 seco"
00071             "nds\002,/)";
00072 
00073     /* System generated locals */
00074     integer i__1;
00075     doublereal d__1;
00076     cilist ci__1;
00077     cllist cl__1;
00078 
00079     /* Builtin functions */
00080     integer s_rsle(cilist *), e_rsle(void), s_wsfe(cilist *), do_fio(integer *
00081             , char *, ftnlen), e_wsfe(void), do_lio(integer *, integer *, 
00082             char *, ftnlen);
00083     /* Subroutine */ int s_stop(char *, ftnlen);
00084     integer s_wsle(cilist *), e_wsle(void), s_rsfe(cilist *), e_rsfe(void);
00085     /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen);
00086     integer f_clos(cllist *);
00087 
00088     /* Local variables */
00089     doublereal a[34848] /* was [17424][2] */, b[4224]   /* was [2112][2] */;
00090     integer i__, k;
00091     char c1[1], c2[2];
00092     doublereal s1, s2;
00093     integer ic, nm, vers_patch__, vers_major__, vers_minor__, lda;
00094     doublereal eps;
00095     integer nns;
00096     char path[3];
00097     integer mval[12], nrhs;
00098     real seps;
00099     doublereal work[4224];
00100     logical fatal;
00101     char aline[72];
00102     extern logical lsame_(char *, char *);
00103     integer nmats, nsval[12], iwork[132];
00104     doublereal rwork[132];
00105     real swork[19536];
00106     extern doublereal dlamch_(char *);
00107     extern /* Subroutine */ int derrab_(integer *);
00108     extern doublereal dsecnd_(void);
00109     extern /* Subroutine */ int derrac_(integer *), ddrvab_(logical *, 
00110             integer *, integer *, integer *, integer *, doublereal *, integer 
00111             *, doublereal *, doublereal *, doublereal *, doublereal *, 
00112             doublereal *, doublereal *, real *, integer *, integer *), 
00113             ddrvac_(logical *, integer *, integer *, integer *, integer *, 
00114             doublereal *, integer *, doublereal *, doublereal *, doublereal *, 
00115              doublereal *, doublereal *, doublereal *, real *, integer *), 
00116             alareq_(char *, integer *, logical *, integer *, integer *, 
00117             integer *);
00118     extern doublereal slamch_(char *);
00119     extern logical lsamen_(integer *, char *, char *);
00120     extern /* Subroutine */ int ilaver_(integer *, integer *, integer *);
00121     doublereal thresh;
00122     logical dotype[30];
00123     integer ntypes;
00124     logical tsterr, tstdrv;
00125 
00126     /* Fortran I/O blocks */
00127     static cilist io___5 = { 0, 5, 0, 0, 0 };
00128     static cilist io___9 = { 0, 6, 0, fmt_9994, 0 };
00129     static cilist io___10 = { 0, 5, 0, 0, 0 };
00130     static cilist io___12 = { 0, 6, 0, fmt_9996, 0 };
00131     static cilist io___13 = { 0, 6, 0, fmt_9995, 0 };
00132     static cilist io___14 = { 0, 5, 0, 0, 0 };
00133     static cilist io___17 = { 0, 6, 0, fmt_9996, 0 };
00134     static cilist io___18 = { 0, 6, 0, fmt_9995, 0 };
00135     static cilist io___19 = { 0, 6, 0, fmt_9993, 0 };
00136     static cilist io___20 = { 0, 5, 0, 0, 0 };
00137     static cilist io___22 = { 0, 6, 0, fmt_9996, 0 };
00138     static cilist io___23 = { 0, 6, 0, fmt_9995, 0 };
00139     static cilist io___24 = { 0, 5, 0, 0, 0 };
00140     static cilist io___26 = { 0, 6, 0, fmt_9996, 0 };
00141     static cilist io___27 = { 0, 6, 0, fmt_9995, 0 };
00142     static cilist io___28 = { 0, 6, 0, fmt_9993, 0 };
00143     static cilist io___29 = { 0, 5, 0, 0, 0 };
00144     static cilist io___31 = { 0, 6, 0, fmt_9992, 0 };
00145     static cilist io___32 = { 0, 5, 0, 0, 0 };
00146     static cilist io___34 = { 0, 5, 0, 0, 0 };
00147     static cilist io___36 = { 0, 6, 0, fmt_9999, 0 };
00148     static cilist io___38 = { 0, 6, 0, fmt_9991, 0 };
00149     static cilist io___39 = { 0, 6, 0, fmt_9991, 0 };
00150     static cilist io___40 = { 0, 6, 0, fmt_9991, 0 };
00151     static cilist io___41 = { 0, 6, 0, 0, 0 };
00152     static cilist io___43 = { 0, 6, 0, fmt_9991, 0 };
00153     static cilist io___44 = { 0, 6, 0, fmt_9991, 0 };
00154     static cilist io___45 = { 0, 6, 0, fmt_9991, 0 };
00155     static cilist io___46 = { 0, 6, 0, 0, 0 };
00156     static cilist io___55 = { 0, 6, 0, fmt_9990, 0 };
00157     static cilist io___56 = { 0, 6, 0, fmt_9989, 0 };
00158     static cilist io___65 = { 0, 6, 0, fmt_9989, 0 };
00159     static cilist io___66 = { 0, 6, 0, fmt_9989, 0 };
00160     static cilist io___68 = { 0, 6, 0, fmt_9998, 0 };
00161     static cilist io___69 = { 0, 6, 0, fmt_9997, 0 };
00162 
00163 
00164 
00165 /*  -- LAPACK test routine (version 3.1.1) -- */
00166 /*     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. */
00167 /*     January 2007 */
00168 
00169 /*  Purpose */
00170 /*  ======= */
00171 
00172 /*  DCHKAB is the test program for the DOUBLE PRECISION LAPACK */
00173 /*  DSGESV/DSPOSV routine */
00174 
00175 /*  The program must be driven by a short data file. The first 5 records */
00176 /*  specify problem dimensions and program options using list-directed */
00177 /*  input. The remaining lines specify the LAPACK test paths and the */
00178 /*  number of matrix types to use in testing.  An annotated example of a */
00179 /*  data file can be obtained by deleting the first 3 characters from the */
00180 /*  following 10 lines: */
00181 /*  Data file for testing DOUBLE PRECISION LAPACK DSGESV */
00182 /*  7                      Number of values of M */
00183 /*  0 1 2 3 5 10 16        Values of M (row dimension) */
00184 /*  1                      Number of values of NRHS */
00185 /*  2                      Values of NRHS (number of right hand sides) */
00186 /*  20.0                   Threshold value of test ratio */
00187 /*  T                      Put T to test the LAPACK routines */
00188 /*  T                      Put T to test the error exits */
00189 /*  DGE    11              List types on next line if 0 < NTYPES < 11 */
00190 /*  DPO    9               List types on next line if 0 < NTYPES <  9 */
00191 
00192 /*  Internal Parameters */
00193 /*  =================== */
00194 
00195 /*  NMAX    INTEGER */
00196 /*          The maximum allowable value for N */
00197 
00198 /*  MAXIN   INTEGER */
00199 /*          The number of different values that can be used for each of */
00200 /*          M, N, NRHS, NB, and NX */
00201 
00202 /*  MAXRHS  INTEGER */
00203 /*          The maximum number of right hand sides */
00204 
00205 /*  NIN     INTEGER */
00206 /*          The unit number for input */
00207 
00208 /*  NOUT    INTEGER */
00209 /*          The unit number for output */
00210 
00211 /*  ===================================================================== */
00212 
00213 /*     .. Parameters .. */
00214 /*     .. */
00215 /*     .. Local Scalars .. */
00216 /*     .. */
00217 /*     .. Local Arrays .. */
00218 /*     .. */
00219 /*     .. External Functions .. */
00220 /*     .. */
00221 /*     .. External Subroutines .. */
00222 /*     .. */
00223 /*     .. Scalars in Common .. */
00224 /*     .. */
00225 /*     .. Common blocks .. */
00226 /*     .. */
00227 /*     .. Data statements .. */
00228 /*     .. */
00229 /*     .. Executable Statements .. */
00230 
00231     s1 = dsecnd_();
00232     lda = 132;
00233     fatal = FALSE_;
00234 
00235 /*     Read a dummy line. */
00236 
00237     s_rsle(&io___5);
00238     e_rsle();
00239 
00240 /*     Report values of parameters. */
00241 
00242     ilaver_(&vers_major__, &vers_minor__, &vers_patch__);
00243     s_wsfe(&io___9);
00244     do_fio(&c__1, (char *)&vers_major__, (ftnlen)sizeof(integer));
00245     do_fio(&c__1, (char *)&vers_minor__, (ftnlen)sizeof(integer));
00246     do_fio(&c__1, (char *)&vers_patch__, (ftnlen)sizeof(integer));
00247     e_wsfe();
00248 
00249 /*     Read the values of M */
00250 
00251     s_rsle(&io___10);
00252     do_lio(&c__3, &c__1, (char *)&nm, (ftnlen)sizeof(integer));
00253     e_rsle();
00254     if (nm < 1) {
00255         s_wsfe(&io___12);
00256         do_fio(&c__1, " NM ", (ftnlen)4);
00257         do_fio(&c__1, (char *)&nm, (ftnlen)sizeof(integer));
00258         do_fio(&c__1, (char *)&c__1, (ftnlen)sizeof(integer));
00259         e_wsfe();
00260         nm = 0;
00261         fatal = TRUE_;
00262     } else if (nm > 12) {
00263         s_wsfe(&io___13);
00264         do_fio(&c__1, " NM ", (ftnlen)4);
00265         do_fio(&c__1, (char *)&nm, (ftnlen)sizeof(integer));
00266         do_fio(&c__1, (char *)&c__12, (ftnlen)sizeof(integer));
00267         e_wsfe();
00268         nm = 0;
00269         fatal = TRUE_;
00270     }
00271     s_rsle(&io___14);
00272     i__1 = nm;
00273     for (i__ = 1; i__ <= i__1; ++i__) {
00274         do_lio(&c__3, &c__1, (char *)&mval[i__ - 1], (ftnlen)sizeof(integer));
00275     }
00276     e_rsle();
00277     i__1 = nm;
00278     for (i__ = 1; i__ <= i__1; ++i__) {
00279         if (mval[i__ - 1] < 0) {
00280             s_wsfe(&io___17);
00281             do_fio(&c__1, " M  ", (ftnlen)4);
00282             do_fio(&c__1, (char *)&mval[i__ - 1], (ftnlen)sizeof(integer));
00283             do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
00284             e_wsfe();
00285             fatal = TRUE_;
00286         } else if (mval[i__ - 1] > 132) {
00287             s_wsfe(&io___18);
00288             do_fio(&c__1, " M  ", (ftnlen)4);
00289             do_fio(&c__1, (char *)&mval[i__ - 1], (ftnlen)sizeof(integer));
00290             do_fio(&c__1, (char *)&c__132, (ftnlen)sizeof(integer));
00291             e_wsfe();
00292             fatal = TRUE_;
00293         }
00294 /* L10: */
00295     }
00296     if (nm > 0) {
00297         s_wsfe(&io___19);
00298         do_fio(&c__1, "M   ", (ftnlen)4);
00299         i__1 = nm;
00300         for (i__ = 1; i__ <= i__1; ++i__) {
00301             do_fio(&c__1, (char *)&mval[i__ - 1], (ftnlen)sizeof(integer));
00302         }
00303         e_wsfe();
00304     }
00305 
00306 /*     Read the values of NRHS */
00307 
00308     s_rsle(&io___20);
00309     do_lio(&c__3, &c__1, (char *)&nns, (ftnlen)sizeof(integer));
00310     e_rsle();
00311     if (nns < 1) {
00312         s_wsfe(&io___22);
00313         do_fio(&c__1, " NNS", (ftnlen)4);
00314         do_fio(&c__1, (char *)&nns, (ftnlen)sizeof(integer));
00315         do_fio(&c__1, (char *)&c__1, (ftnlen)sizeof(integer));
00316         e_wsfe();
00317         nns = 0;
00318         fatal = TRUE_;
00319     } else if (nns > 12) {
00320         s_wsfe(&io___23);
00321         do_fio(&c__1, " NNS", (ftnlen)4);
00322         do_fio(&c__1, (char *)&nns, (ftnlen)sizeof(integer));
00323         do_fio(&c__1, (char *)&c__12, (ftnlen)sizeof(integer));
00324         e_wsfe();
00325         nns = 0;
00326         fatal = TRUE_;
00327     }
00328     s_rsle(&io___24);
00329     i__1 = nns;
00330     for (i__ = 1; i__ <= i__1; ++i__) {
00331         do_lio(&c__3, &c__1, (char *)&nsval[i__ - 1], (ftnlen)sizeof(integer))
00332                 ;
00333     }
00334     e_rsle();
00335     i__1 = nns;
00336     for (i__ = 1; i__ <= i__1; ++i__) {
00337         if (nsval[i__ - 1] < 0) {
00338             s_wsfe(&io___26);
00339             do_fio(&c__1, "NRHS", (ftnlen)4);
00340             do_fio(&c__1, (char *)&nsval[i__ - 1], (ftnlen)sizeof(integer));
00341             do_fio(&c__1, (char *)&c__0, (ftnlen)sizeof(integer));
00342             e_wsfe();
00343             fatal = TRUE_;
00344         } else if (nsval[i__ - 1] > 16) {
00345             s_wsfe(&io___27);
00346             do_fio(&c__1, "NRHS", (ftnlen)4);
00347             do_fio(&c__1, (char *)&nsval[i__ - 1], (ftnlen)sizeof(integer));
00348             do_fio(&c__1, (char *)&c__16, (ftnlen)sizeof(integer));
00349             e_wsfe();
00350             fatal = TRUE_;
00351         }
00352 /* L30: */
00353     }
00354     if (nns > 0) {
00355         s_wsfe(&io___28);
00356         do_fio(&c__1, "NRHS", (ftnlen)4);
00357         i__1 = nns;
00358         for (i__ = 1; i__ <= i__1; ++i__) {
00359             do_fio(&c__1, (char *)&nsval[i__ - 1], (ftnlen)sizeof(integer));
00360         }
00361         e_wsfe();
00362     }
00363 
00364 /*     Read the threshold value for the test ratios. */
00365 
00366     s_rsle(&io___29);
00367     do_lio(&c__5, &c__1, (char *)&thresh, (ftnlen)sizeof(doublereal));
00368     e_rsle();
00369     s_wsfe(&io___31);
00370     do_fio(&c__1, (char *)&thresh, (ftnlen)sizeof(doublereal));
00371     e_wsfe();
00372 
00373 /*     Read the flag that indicates whether to test the driver routine. */
00374 
00375     s_rsle(&io___32);
00376     do_lio(&c__8, &c__1, (char *)&tstdrv, (ftnlen)sizeof(logical));
00377     e_rsle();
00378 
00379 /*     Read the flag that indicates whether to test the error exits. */
00380 
00381     s_rsle(&io___34);
00382     do_lio(&c__8, &c__1, (char *)&tsterr, (ftnlen)sizeof(logical));
00383     e_rsle();
00384 
00385     if (fatal) {
00386         s_wsfe(&io___36);
00387         e_wsfe();
00388         s_stop("", (ftnlen)0);
00389     }
00390 
00391 /*     Calculate and print the machine dependent constants. */
00392 
00393     seps = slamch_("Underflow threshold");
00394     s_wsfe(&io___38);
00395     do_fio(&c__1, "(single precision) underflow", (ftnlen)28);
00396     do_fio(&c__1, (char *)&seps, (ftnlen)sizeof(real));
00397     e_wsfe();
00398     seps = slamch_("Overflow threshold");
00399     s_wsfe(&io___39);
00400     do_fio(&c__1, "(single precision) overflow ", (ftnlen)28);
00401     do_fio(&c__1, (char *)&seps, (ftnlen)sizeof(real));
00402     e_wsfe();
00403     seps = slamch_("Epsilon");
00404     s_wsfe(&io___40);
00405     do_fio(&c__1, "(single precision) precision", (ftnlen)28);
00406     do_fio(&c__1, (char *)&seps, (ftnlen)sizeof(real));
00407     e_wsfe();
00408     s_wsle(&io___41);
00409     e_wsle();
00410 
00411     eps = dlamch_("Underflow threshold");
00412     s_wsfe(&io___43);
00413     do_fio(&c__1, "(double precision) underflow", (ftnlen)28);
00414     do_fio(&c__1, (char *)&eps, (ftnlen)sizeof(doublereal));
00415     e_wsfe();
00416     eps = dlamch_("Overflow threshold");
00417     s_wsfe(&io___44);
00418     do_fio(&c__1, "(double precision) overflow ", (ftnlen)28);
00419     do_fio(&c__1, (char *)&eps, (ftnlen)sizeof(doublereal));
00420     e_wsfe();
00421     eps = dlamch_("Epsilon");
00422     s_wsfe(&io___45);
00423     do_fio(&c__1, "(double precision) precision", (ftnlen)28);
00424     do_fio(&c__1, (char *)&eps, (ftnlen)sizeof(doublereal));
00425     e_wsfe();
00426     s_wsle(&io___46);
00427     e_wsle();
00428 
00429 L80:
00430 
00431 /*     Read a test path and the number of matrix types to use. */
00432 
00433     ci__1.cierr = 0;
00434     ci__1.ciend = 1;
00435     ci__1.ciunit = 5;
00436     ci__1.cifmt = "(A72)";
00437     i__1 = s_rsfe(&ci__1);
00438     if (i__1 != 0) {
00439         goto L140;
00440     }
00441     i__1 = do_fio(&c__1, aline, (ftnlen)72);
00442     if (i__1 != 0) {
00443         goto L140;
00444     }
00445     i__1 = e_rsfe();
00446     if (i__1 != 0) {
00447         goto L140;
00448     }
00449     s_copy(path, aline, (ftnlen)3, (ftnlen)3);
00450     nmats = 30;
00451     i__ = 3;
00452 L90:
00453     ++i__;
00454     if (i__ > 72) {
00455         nmats = 30;
00456         goto L130;
00457     }
00458     if (*(unsigned char *)&aline[i__ - 1] == ' ') {
00459         goto L90;
00460     }
00461     nmats = 0;
00462 L100:
00463     *(unsigned char *)c1 = *(unsigned char *)&aline[i__ - 1];
00464     for (k = 1; k <= 10; ++k) {
00465         if (*(unsigned char *)c1 == *(unsigned char *)&intstr[k - 1]) {
00466             ic = k - 1;
00467             goto L120;
00468         }
00469 /* L110: */
00470     }
00471     goto L130;
00472 L120:
00473     nmats = nmats * 10 + ic;
00474     ++i__;
00475     if (i__ > 72) {
00476         goto L130;
00477     }
00478     goto L100;
00479 L130:
00480     *(unsigned char *)c1 = *(unsigned char *)path;
00481     s_copy(c2, path + 1, (ftnlen)2, (ftnlen)2);
00482     nrhs = nsval[0];
00483 
00484 /*     Check first character for correct precision. */
00485 
00486     if (! lsame_(c1, "Double precision")) {
00487         s_wsfe(&io___55);
00488         do_fio(&c__1, path, (ftnlen)3);
00489         e_wsfe();
00490 
00491     } else if (nmats <= 0) {
00492 
00493 /*        Check for a positive number of tests requested. */
00494 
00495         s_wsfe(&io___56);
00496         do_fio(&c__1, path, (ftnlen)3);
00497         e_wsfe();
00498         goto L140;
00499 
00500     } else if (lsamen_(&c__2, c2, "GE")) {
00501 
00502 /*        GE:  general matrices */
00503 
00504         ntypes = 11;
00505         alareq_("DGE", &nmats, dotype, &ntypes, &c__5, &c__6);
00506 
00507 /*        Test the error exits */
00508 
00509         if (tsterr) {
00510             derrab_(&c__6);
00511         }
00512 
00513         if (tstdrv) {
00514             ddrvab_(dotype, &nm, mval, &nns, nsval, &thresh, &lda, a, &a[
00515                     17424], b, &b[2112], work, rwork, swork, iwork, &c__6);
00516         } else {
00517             s_wsfe(&io___65);
00518             do_fio(&c__1, "DSGESV", (ftnlen)6);
00519             e_wsfe();
00520         }
00521 
00522     } else if (lsamen_(&c__2, c2, "PO")) {
00523 
00524 /*        PO:  positive definite matrices */
00525 
00526         ntypes = 9;
00527         alareq_("DPO", &nmats, dotype, &ntypes, &c__5, &c__6);
00528 
00529 
00530         if (tsterr) {
00531             derrac_(&c__6);
00532         }
00533 
00534 
00535         if (tstdrv) {
00536             ddrvac_(dotype, &nm, mval, &nns, nsval, &thresh, &lda, a, &a[
00537                     17424], b, &b[2112], work, rwork, swork, &c__6);
00538         } else {
00539             s_wsfe(&io___66);
00540             do_fio(&c__1, path, (ftnlen)3);
00541             e_wsfe();
00542         }
00543     } else {
00544 
00545     }
00546 
00547 /*     Go back to get another input line. */
00548 
00549     goto L80;
00550 
00551 /*     Branch to this line when the last record is read. */
00552 
00553 L140:
00554     cl__1.cerr = 0;
00555     cl__1.cunit = 5;
00556     cl__1.csta = 0;
00557     f_clos(&cl__1);
00558     s2 = dsecnd_();
00559     s_wsfe(&io___68);
00560     e_wsfe();
00561     s_wsfe(&io___69);
00562     d__1 = s2 - s1;
00563     do_fio(&c__1, (char *)&d__1, (ftnlen)sizeof(doublereal));
00564     e_wsfe();
00565 
00566 /* L9988: */
00567 
00568 /*     End of DCHKAB */
00569 
00570     return 0;
00571 } /* MAIN__ */
00572 
00573 /* Main program alias */ int dchkab_ () { MAIN__ (); return 0; }


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