diff --git a/src/include/sph_subs.h b/src/include/sph_subs.h index 8d06ba949feedaf460bc0c15eb765c8f4a88e712..484472df369d3419d1873b9867c5975095fd8527 100644 --- a/src/include/sph_subs.h +++ b/src/include/sph_subs.h @@ -1353,18 +1353,18 @@ void wmasp( void dme( int li, int i, int npnt, int npntts, double vk, double exdc, double exri, C1 *c1, C2 *c2, int &jer, int &lcalc, std::complex<double> &arg) { - double *rfj = new double[42]; - double *rfn = new double[42]; - std::complex<double> cfj[42], fbi[42], fb[42], fn[42]; - std::complex<double> rmf[40], drmf[40], ref[40], dref[40]; + const int lipo = li + 1; + const int lipt = li + 2; + double *rfj = new double[lipt]; + double *rfn = new double[lipt]; + std::complex<double> cfj[lipt], fbi[lipt], fb[lipt], fn[lipt]; + std::complex<double> rmf[li], drmf[li], ref[li], dref[li]; std::complex<double> dfbi, dfb, dfn, ccna, ccnb, ccnc, ccnd; std::complex<double> y1, dy1, y2, dy2, arin, cri, uim; jer = 0; uim = std::complex<double>(0.0, 1.0); int nstp = npnt - 1; int nstpts = npntts - 1; - int lipo = li + 1; - int lipt = li + 2; double sz = vk * c1->ros[i - 1]; c2->vsz[i - 1] = sz; double vkr1 = vk * c1->rc[i - 1][0]; @@ -1429,6 +1429,7 @@ void dme( ccnb = fn[lpo - 1] * dfbi; ccnc = fbi[lpo - 1] * dfb; ccnd = fb[lpo - 1] * dfbi; + // CLUSTER terminated in this loop with li = 8. c1->rmi[l60 - 1][i - 1] = 1.0 + uim * (ccna - ccnb) / (ccnc - ccnd); c1->rei[l60 - 1][i - 1] = 1.0 + uim * (cri * ccna - ccnb) / (cri * ccnc - ccnd); }