float XX, YY, ZZ, RR;
double W, WL, WH;
int R, RL, RH;
+ double DR;
double rdata;
double idata;
int flag;
RH = MIN(R+1,linfo.nR-1);
if(linfo.R[R] <= RR) {
if(RR<linfo.R[RH]) {
- W = (R-RL)*linfo.W[RH] + (RH-R)*linfo.W[R];
- DEBUGPRINT2("R: %f W: %f\n", RR, W);
+ DR = (RR - linfo.R[R])/(linfo.R[RH] - linfo.R[R]);
+ W = DR*linfo.W[RH] + (1.0-DR)*linfo.W[R];
+ DEBUGPRINT5("R: %f W: %f DR: %f %f %f\n", RR, W, DR, linfo.W[R], linfo.W[RH]);
flag = 0;
} else {
if(R==RH) {