6
double rdelta, delta, delo2;
8
double exprjh(double x)
10
//$Id: integ.F,v 1.1 2005-03-08 23:58:03 d3g293 Exp $
13
// dumb solution to underflow problems on sun
29
double et[2001], rr, tt;
36
MAXm = 3; //Fortran Array Index 1==> C Array Index 0==>
38
for (i = 0; i < 2001; i++) {
39
tt = delta * (double)i; //i-1 ---> i
42
fm[i][MAXm + 1] = 0.0;
45
for (i = 199; i > MAXm; i--) {
46
rr = 1.0 / (double)(2 * i + 1); //+1 ---> +1
47
for (ii = 0; ii < 2001; ii++) {
48
fm[ii][MAXm + 1] = (et[ii] + t[ii] * fm[ii][MAXm + 1]) * rr;
52
for (i = MAXm; i >= 0; i--) {
53
rr = 1.0 / (double) (2 * i + 1); //-1 ---> +1
54
for (ii = 0; ii < 2001; ii++) {
55
fm[ii][i] = (et[ii] + t[ii] * fm[ii][i+1]) * rr;
62
void f0(double *value, double t)
64
const double fac0 = 0.88622692545276;
65
const double rhalf = 0.5;
66
const double rthird = (1.0 / 3.0);
67
const double rquart = 0.25;
69
double t0 = 28.0; //fortran: data --> C: long double or double?
74
// computes f0 to a relative accuracy of better than 4.e-13 for all t.
75
// uses 4th order taylor expansion on grid out to t=28.0
76
// asymptotic expansion accurate for t greater than 28
79
*value = fac0 / sqrt(t);
81
n = (int) ((t + delo2) * rdelta);
82
x = delta * (double) n - t;
83
//n=n+1; //c index 0, fortran index 1
84
*value = fm[n][0] + x * (fm[n][1] + x * rhalf *
85
(fm[n][2] + x * rthird * (fm[n][3] + x * rquart * fm[n][4])));
91
void addin(double *g, int *i, int *j, int *k, int *l, double *fock, double *dens, int *iky) //seems unused
93
static double g2, g4, gg;
94
static int ij, ik, il, jk, jl, kl;
95
static double aij, aik, ajk, ail, gil;
103
jk = iky[MAX(*j,*k)] + MIN(*j,*k);
104
jl = iky[MAX(*j,*l)] + MIN(*j,*l);
106
aij = g4 * dens[kl] + fock[ij];
107
fock[kl] = g4 * dens[ij] + fock[kl];
110
if (*i == *k || *j == *l)
118
ajk = fock[jk] - gil * dens[il];
119
ail = fock[il] - gil * dens[jk];
120
aik = fock[ik] - gg * dens[jl];
121
fock[jl] -= gg * dens[ik];
129
void dfill(int *n, double *val, double *a, int *ia) //seems unused
135
for (i = 0; i < *n; i++)
142
for (i = 0; i < (*n - 1) * (*ia) + 1; i += *ia)