spline *spline_read(FILE *fp) { int i, length; spline *s; /* read header */ if ( fscanf(fp," Spline: length:%u",&length) < 1) return NULL; s = spline_create(length); /* read xlist */ fscanf(fp," xlist:"); for ( i = 0; i < length; i++ ) if ( fscanf(fp,"%lf",&(s->xlist[i])) < 1 ) spline_error("spline_read: fscanf error"); /* read ylist */ fscanf(fp," ylist:"); for ( i = 0; i < length; i++ ) if ( fscanf(fp,"%lf",&(s->ylist[i])) < 1 ) spline_error("spline_read: fscanf error"); /* read Mlist */ fscanf(fp," Mlist:"); for ( i = 0; i < length; i++ ) if ( fscanf(fp,"%lf",&(s->Mlist[i])) < 1 ) spline_error("spline_read: fscanf error"); return s; }