1c1
< /* mc64ad.f -- translated by f2c (version 20100827).
---
> /* mc64ad.f -- translated by f2c (version 20061008).
13c13
< #include "slu_ddefs.h"
---
> #include "superlu_ddefs.h"
15,16d14
< #define abs(a) ((a) > 0) ? (a) : -(a)
< #define min(a,b) ((a) < (b)) ? (a) : (b)
22c20,22
<
---
> /* extern double dlamch_(char *, int); */
> #define abs(a) ((a) > 0) ? (a) : -(a)
> #define min(a,b) ((a) < (b)) ? (a) : (b)
51c51
< /* Subroutine */ int mc64id_(int_t *icntl)
---
> /* Subroutine */ int_t mc64id(int_t *icntl)
53c53
< int_t i__;
---
> static int_t i__;
115c115
< /* Subroutine */ int mc64ad_(int_t *job, int_t *n, int_t *ne, int_t *
---
> /* Subroutine */ int_t mc64ad(int_t *job, int_t *n, int_t *ne, int_t *
128,131c128,131
< int_t i__, j, k;
< double fact, rinf;
< extern /* Subroutine */ int_t mc21ad_(int_t *, int_t *, int_t *,
< int_t *, int_t *, int_t *, int_t *, int_t *), mc64bd_(
---
> static int_t i__, j, k;
> static double fact, rinf;
> extern /* Subroutine */ int_t mc21ad(int_t *, int_t *, int_t *,
> int_t *, int_t *, int_t *, int_t *, int_t *), mc64bd(
133,140c133,140
< *, int_t *, int_t *, int_t *, int_t *, int_t *, double *),
< mc64rd_(int_t *, int_t *, int_t *, int_t *, double *),
< mc64sd_(int_t *, int_t *, int_t *, int_t *, double *, int_t *,
< int_t *, int_t *, int_t *,
< int_t *, int_t *, int_t *, int_t *, int_t *),
< mc64wd_(int_t *, int_t *, int_t *, int_t *, double *, int_t *,
< int_t *, int_t *, int_t *, int_t *, int_t *, int_t *,
< double *, double *);
---
> *, int_t *, int_t *, int_t *, int_t *, int_t *,
> double *), mc64rd(int_t *, int_t *, int_t *, int_t *,
> double *), mc64sd(int_t *, int_t *, int_t *, int_t *
> , double *, int_t *, int_t *, int_t *, int_t *,
> int_t *, int_t *, int_t *, int_t *, int_t *), mc64wd(
> int_t *, int_t *, int_t *, int_t *, double *, int_t
> *, int_t *, int_t *, int_t *, int_t *, int_t *, int_t
> *, double *, double *);
341,344c341
< if (icntl[1] >= 0) {
< printf(" ****** Error in MC64A/AD. INFO(1) = %2d", info[1],
< " because JOB = %d\n", *job);
< }
---
> /* IF (ICNTL(1).GE.0) WRITE(ICNTL(1),9001) INFO(1),'JOB',JOB */
351,354c348
< if (icntl[1] >= 0) {
< printf(" ****** Error in MC64A/AD. INFO(1) = %2d", info[1],
< " because N = %d\n", *job);
< }
---
> /* IF (ICNTL(1).GE.0) WRITE(ICNTL(1),9001) INFO(1),'N',N */
361,364c355
< if (icntl[1] >= 0) {
< printf(" ****** Error in MC64A/AD. INFO(1) = %2d", info[1],
< " because NE = %d\n", *job);
< }
---
> /* IF (ICNTL(1).GE.0) WRITE(ICNTL(1),9001) INFO(1),'NE',NE */
386,389c377
< if (icntl[1] >= 0) {
< printf(" ****** Error in MC64A/AD. INFO(1) = %2d", info[1],
< " LIW too small, must be at least %8d\n", k);
< }
---
> /* IF (ICNTL(1).GE.0) WRITE(ICNTL(1),9004) INFO(1),K */
410,413c398
< if (icntl[1] >= 0) {
< printf(" ****** Error in MC64A/AD. INFO(1) = %2d", info[1],
< " LDW too small, must be at least %8d\n", k);
< }
---
> /* IF (ICNTL(1).GE.0) WRITE(ICNTL(1),9005) INFO(1),K */
433,437c418
< if (icntl[1] >= 0) {
< printf(" ****** Error in MC64A/AD. INFO(1) = %2d",
< info[1], " Column %8d", j,
< " contains an entry with invalid row index %8d\n", i__);
< }
---
> /* IF (ICNTL(1).GE.0) WRITE(ICNTL(1),9006) INFO(1),J,I */
444,447c425
< if (icntl[1] >= 0) {
< printf(" ****** Error in MC64A/AD. INFO(1) = %2d", info[1],
< " Column %8d", j,
< " contains two or more entries with row index %8d\n", i__);
---
> /* IF (ICNTL(1).GE.0) WRITE(ICNTL(1),9007) INFO(1),J,I */
459,480c437,440
< printf(" ****** Input parameters for MC64A/AD: JOB = %8d,"
< " N = %d, NE = %8d\n", *job, *n, *ne);
< printf(" IP(1:N+1) = ");
< for (j=1; j<=(*n+1); ++j) {
< printf("%8d", ip[j]);
< if (j%8 == 0) printf("\n");
< }
< printf("\n IRN(1:NE) = ");
< for (j=1; j<=(*ne); ++j) {
< printf("%8d", irn[j]);
< if (j%8 == 0) printf("\n");
< }
< printf("\n");
<
< if (*job > 1) {
< printf(" A(1:NE) = ");
< for (j=1; j<=(*ne); ++j) {
< printf("%f14.4", a[j]);
< if (j%4 == 0) printf("\n");
< }
< printf("\n");
< }
---
> /* WRITE(ICNTL(3),9020) JOB,N,NE */
> /* WRITE(ICNTL(3),9021) (IP(J),J=1,N+1) */
> /* WRITE(ICNTL(3),9022) (IRN(J),J=1,NE) */
> /* IF (JOB.GT.1) WRITE(ICNTL(3),9023) (A(J),J=1,NE) */
496c456
< mc21ad_(n, &irn[1], ne, &ip[1], &iw[1], &cperm[1], num, &iw[*n + 1]);
---
> mc21ad(n, &irn[1], ne, &ip[1], &iw[1], &cperm[1], num, &iw[*n + 1]);
502c462
< mc64bd_(n, ne, &ip[1], &irn[1], &a[1], &cperm[1], num, &iw[1], &iw[*n
---
> mc64bd(n, ne, &ip[1], &irn[1], &a[1], &cperm[1], num, &iw[1], &iw[*n
516c476
< mc64rd_(n, ne, &ip[1], &iw[1], &dw[1]);
---
> mc64rd(n, ne, &ip[1], &iw[1], &dw[1]);
518c478
< mc64sd_(n, ne, &ip[1], &iw[1], &dw[1], &cperm[1], num, &iw[*ne + 1], &
---
> mc64sd(n, ne, &ip[1], &iw[1], &dw[1], &cperm[1], num, &iw[*ne + 1], &
543c503
< mc64wd_(n, ne, &ip[1], &irn[1], &dw[(*n << 1) + 1], &cperm[1], num, &
---
> mc64wd(n, ne, &ip[1], &irn[1], &dw[(*n << 1) + 1], &cperm[1], num, &
578c538
< mc64wd_(n, ne, &ip[1], &irn[1], &dw[*n * 3 + 1], &cperm[1], num, &iw[
---
> mc64wd(n, ne, &ip[1], &irn[1], &dw[*n * 3 + 1], &cperm[1], num, &iw[
610,613c570
< if (icntl[2] >= 0) {
< printf(" ****** Warning from MC64A/AD. INFO(1) = %2d", info[1],
< " The matrix is structurally singular.\n");
< }
---
> /* IF (ICNTL(2).GE.0) WRITE(ICNTL(2),9011) INFO(1) */
617,620c574
< if (icntl[2] >= 0) {
< printf(" ****** Warning from MC64A/AD. INFO(1) = %2d\n", info[1],
< " Some scaling factors may be too large.\n");
< }
---
> /* IF (ICNTL(2).GE.0) WRITE(ICNTL(2),9012) INFO(1) */
624,644c578,584
< printf(" ****** Output parameters for MC64A/AD: INFO(1:2) = %8d%8d\n",
< info[1], info[2]);
< printf(" NUM = ", *num);
< printf(" CPERM(1:N) = ");
< for (j=1; j<=*n; ++j) {
< printf("%8d", cperm[j]);
< if (j%8 == 0) printf("\n");
< }
< if (*job == 5) {
< printf("\n DW(1:N) = ");
< for (j=1; j<=*n; ++j) {
< printf("%11.3f", dw[j]);
< if (j%5 == 0) printf("\n");
< }
< printf("\n DW(N+1:2N) = ");
< for (j=1; j<=*n; ++j) {
< printf("%11.3f", dw[*n+j]);
< if (j%5 == 0) printf("\n");
< }
< printf("\n");
< }
---
> /* WRITE(ICNTL(3),9030) (INFO(J),J=1,2) */
> /* WRITE(ICNTL(3),9031) NUM */
> /* WRITE(ICNTL(3),9032) (CPERM(J),J=1,N) */
> /* IF (JOB.EQ.5) THEN */
> /* WRITE(ICNTL(3),9033) (DW(J),J=1,N) */
> /* WRITE(ICNTL(3),9034) (DW(N+J),J=1,N) */
> /* ENDIF */
648a589,604
> /* L9001: */
> /* L9004: */
> /* L9005: */
> /* L9006: */
> /* L9007: */
> /* L9011: */
> /* L9012: */
> /* L9020: */
> /* L9021: */
> /* L9022: */
> /* L9023: */
> /* L9030: */
> /* L9031: */
> /* L9032: */
> /* L9033: */
> /* L9034: */
652c608
< /* Subroutine */ int_t mc64bd_(int_t *n, int_t *ne, int_t *ip, int_t *
---
> /* Subroutine */ int_t mc64bd(int_t *n, int_t *ne, int_t *ip, int_t *
661,678c617,635
< int_t i__, j, k;
< double a0;
< int_t i0, q0;
< double ai, di;
< int_t ii, jj, kk;
< double bv;
< int_t up;
< double dq0;
< int_t kk1, kk2;
< double csp;
< int_t isp, jsp, low;
< double dnew;
< int_t jord, qlen, idum, jdum;
< double rinf;
< extern /* Subroutine */ int mc64dd_(int_t *, int_t *, int_t *,
< double *, int_t *, int_t *), mc64ed_(int_t *, int_t *,
< int_t *, double *, int_t *, int_t *), mc64fd_(int_t *
< , int_t *, int_t *, int_t *, double *, int_t *, int_t *);
---
> static int_t i__, j, k;
> static double a0;
> static int_t i0, q0;
> static double ai, di;
> static int_t ii, jj, kk;
> static double bv;
> static int_t up;
> static double dq0;
> static int_t kk1, kk2;
> static double csp;
> static int_t isp, jsp, low;
> static double dnew;
> static int_t jord, qlen, idum, jdum;
> static double rinf;
> extern /* Subroutine */ int_t mc64dd(int_t *, int_t *, int_t *,
> double *, int_t *, int_t *), mc64ed(int_t *, int_t *,
> int_t *, double *, int_t *, int_t *), mc64fd(int_t *
> , int_t *, int_t *, int_t *, double *, int_t *,
> int_t *);
892c849
< mc64dd_(&i__, n, &q[1], &d__[1], &l[1], &c__1);
---
> mc64dd(&i__, n, &q[1], &d__[1], &l[1], &c__1);
914c871
< mc64ed_(&qlen, n, &q[1], &d__[1], &l[1], &c__1);
---
> mc64ed(&qlen, n, &q[1], &d__[1], &l[1], &c__1);
967c924
< mc64fd_(&l[i__], &qlen, n, &q[1], &d__[1], &l[1],
---
> mc64fd(&l[i__], &qlen, n, &q[1], &d__[1], &l[1],
979c936
< mc64dd_(&i__, n, &q[1], &d__[1], &l[1], &c__1);
---
> mc64dd(&i__, n, &q[1], &d__[1], &l[1], &c__1);
1079c1036
< /* Subroutine */ int_t mc64dd_(int_t *i__, int_t *n, int_t *q, double
---
> /* Subroutine */ int_t mc64dd(int_t *i__, int_t *n, int_t *q, double
1086,1087c1043,1044
< double di;
< int_t qk, pos, idum, posk;
---
> static double di;
> static int_t qk, pos, idum, posk;
1157c1114
< /* Subroutine */ int_t mc64ed_(int_t *qlen, int_t *n, int_t *q,
---
> /* Subroutine */ int_t mc64ed(int_t *qlen, int_t *n, int_t *q,
1164,1166c1121,1123
< int_t i__;
< double di, dk, dr;
< int_t pos, idum, posk;
---
> static int_t i__;
> static double di, dk, dr;
> static int_t pos, idum, posk;
1252c1209
< /* Subroutine */ int_t mc64fd_(int_t *pos0, int_t *qlen, int_t *n,
---
> /* Subroutine */ int_t mc64fd(int_t *pos0, int_t *qlen, int_t *n,
1259,1261c1216,1218
< int_t i__;
< double di, dk, dr;
< int_t qk, pos, idum, posk;
---
> static int_t i__;
> static double di, dk, dr;
> static int_t qk, pos, idum, posk;
1390c1347
< /* Subroutine */ int_t mc64rd_(int_t *n, int_t *ne, int_t *ip, int_t *
---
> /* Subroutine */ int_t mc64rd(int_t *n, int_t *ne, int_t *ip, int_t *
1397,1401c1354,1358
< int_t j, k, r__, s;
< double ha;
< int_t hi, td, mid, len, ipj;
< double key;
< int_t last, todo[50], first;
---
> static int_t j, k, r__, s;
> static double ha;
> static int_t hi, td, mid, len, ipj;
> static double key;
> static int_t last, todo[50], first;
1538c1495
< /* Subroutine */ int_t mc64sd_(int_t *n, int_t *ne, int_t *ip, int_t *
---
> /* Subroutine */ int_t mc64sd(int_t *n, int_t *ne, int_t *ip, int_t *
1547,1550c1504,1507
< int_t i__, j, k, l, ii, mod, cnt, num;
< double bval, bmin, bmax, rinf;
< int_t nval, wlen, idum1, idum2, idum3;
< extern /* Subroutine */ int_t mc64qd_(int_t *, int_t *, int_t *,
---
> static int_t i__, j, k, l, ii, mod, cnt, num;
> static double bval, bmin, bmax, rinf;
> static int_t nval, wlen, idum1, idum2, idum3;
> extern /* Subroutine */ int_t mc64qd(int_t *, int_t *, int_t *,
1552c1509
< mc64ud_(int_t *, int_t *, int_t *, int_t *, int_t *,
---
> mc64ud(int_t *, int_t *, int_t *, int_t *, int_t *,
1555a1513
>
1627c1585
< mc64ud_(&cnt, &mod, n, &irn[1], ne, &ip[1], &len[1], &fc[1], &iw[1], numx,
---
> mc64ud(&cnt, &mod, n, &irn[1], ne, &ip[1], &len[1], &fc[1], &iw[1], numx,
1706c1664
< mc64qd_(&ip[1], &lenl[1], &len[1], &w[1], &wlen, &a[1], &nval,
---
> mc64qd(&ip[1], &lenl[1], &len[1], &w[1], &wlen, &a[1], &nval,
1767c1725
< mc64qd_(&ip[1], &len[1], &lenh[1], &w[1], &wlen, &a[1], &nval, &
---
> mc64qd(&ip[1], &len[1], &lenh[1], &w[1], &wlen, &a[1], &nval, &
1806c1764
< mc64ud_(&cnt, &mod, n, &irn[1], ne, &ip[1], &len[1], &fc[1], &iw[1], &
---
> mc64ud(&cnt, &mod, n, &irn[1], ne, &ip[1], &len[1], &fc[1], &iw[1], &
1854c1812
< /* Subroutine */ int_t mc64qd_(int_t *ip, int_t *lenl, int_t *lenh,
---
> /* Subroutine */ int_t mc64qd(int_t *ip, int_t *lenl, int_t *lenh,
1862,1865c1820,1823
< int_t j, k, s;
< double ha;
< int_t ii, pos;
< double split[10];
---
> static int_t j, k, s;
> static double ha;
> static int_t ii, pos;
> static double split[10];
1949c1907
< /* Subroutine */ int mc64ud_(int_t *id, int_t *mod, int_t *n, int_t *
---
> /* Subroutine */ int_t mc64ud(int_t *id, int_t *mod, int_t *n, int_t *
1958,1959c1916,1917
< int_t i__, j, k, j1, ii, kk, id0, id1, in1, in2, nfc, num0, num1, num2,
< jord, last;
---
> static int_t i__, j, k, j1, ii, kk, id0, id1, in1, in2, nfc, num0, num1,
> num2, jord, last;
2028c1986
< /* Integers ID0+1 to ID0+N are unique numbers for call ID to MC64U/UD, */
---
> /* Ints ID0+1 to ID0+N are unique numbers for call ID to MC64U/UD, */
2152c2110
< /* Subroutine */ int_t mc64wd_(int_t *n, int_t *ne, int_t *ip, int_t *
---
> /* Subroutine */ int_t mc64wd(int_t *n, int_t *ne, int_t *ip, int_t *
2161,2175c2119,2133
< int_t i__, j, k, i0, k0, k1, k2, q0;
< double di;
< int_t ii, jj, kk;
< double vj;
< int_t up;
< double dq0;
< int_t kk1, kk2;
< double csp;
< int_t isp, jsp, low;
< double dmin__, dnew;
< int_t jord, qlen, jdum;
< double rinf;
< extern /* Subroutine */ int_t mc64dd_(int_t *, int_t *, int_t *,
< double *, int_t *, int_t *), mc64ed_(int_t *, int_t *,
< int_t *, double *, int_t *, int_t *), mc64fd_(int_t *
---
> static int_t i__, j, k, i0, k0, k1, k2, q0;
> static double di;
> static int_t ii, jj, kk;
> static double vj;
> static int_t up;
> static double dq0;
> static int_t kk1, kk2;
> static double csp;
> static int_t isp, jsp, low;
> static double dmin__, dnew;
> static int_t jord, qlen, jdum;
> static double rinf;
> extern /* Subroutine */ int_t mc64dd(int_t *, int_t *, int_t *,
> double *, int_t *, int_t *), mc64ed(int_t *, int_t *,
> int_t *, double *, int_t *, int_t *), mc64fd(int_t *
2432c2390
< mc64dd_(&i__, n, &q[1], &d__[1], &l[1], &c__2);
---
> mc64dd(&i__, n, &q[1], &d__[1], &l[1], &c__2);
2454c2412
< mc64ed_(&qlen, n, &q[1], &d__[1], &l[1], &c__2);
---
> mc64ed(&qlen, n, &q[1], &d__[1], &l[1], &c__2);
2508c2466
< mc64fd_(&l[i__], &qlen, n, &q[1], &d__[1], &l[1],
---
> mc64fd(&l[i__], &qlen, n, &q[1], &d__[1], &l[1],
2519c2477
< mc64dd_(&i__, n, &q[1], &d__[1], &l[1], &c__2);
---
> mc64dd(&i__, n, &q[1], &d__[1], &l[1], &c__2);