toms661, a FORTRAN90 code which interpolates scattered 3D data, also known as "qshep3d", by Robert Renka.

The code takes a set of data values WDAT(XDAT,YDAT,ZDAT), where the points (XDAT,YDAT,ZDAT) are "scattered" in 3D, and constructs an interpolating function W(X,Y,Z) which matches the given data and extends smoothly through 3D space.

The code is primarily a FORTRAN90 "translation" of a FORTRAN77 program which was written by Robert Renka and published in the ACM Transactions on Mathematical Software.

The text of many ACM TOMS algorithms is available online through ACM: or NETLIB:


The computer code and data files made available on this web page are distributed under the MIT license


toms661 is available in a FORTRAN90 version.

Related Data and Programs:

RBF_INTERP_ND, a FORTRAN90 code which defines and evaluates radial basis interpolants to multidimensional data.

TEST_INTERP_ND, a FORTRAN90 code which defines test problems for interpolation of data z(x), depending on an M-dimensional argument.

TOMS526, a FORTRAN90 code which interpolates scattered bivariate data, This is a FORTRAN90 version of ACM TOMS algorithm 526, by Hiroshi Akima;

TOMS660, a FORTRAN90 code which takes scattered 2D data and produces an interpolating function F(X,Y), this is a FORTRAN90 version of ACM TOMS algorithm 660, called qshep2d, by Robert Renka.


TOMS886, a FORTRAN90 code which defines the Padua points for interpolation in a 2D region, including the rectangle, triangle, and ellipse, by Marco Caliari, Stefano de Marchi, Marco Vianello. This is ACM TOMS algorithm 886.


Robert Renka


  1. Richard Franke,
    Scattered Data Interpolation: Tests of Some Methods,
    Mathematics of Computation,
    Volume 38, Number 157, January 1982, pages 181-200.
  2. Robert Renka,
    Algorithm 661: QSHEP3D, Quadratic Shepard method for trivariate interpolation of scattered data,
    ACM Transactions on Mathematical Software,
    Volume 14, 1988, pages 151-152.

Source Code:

Last revised on 14 March 2021.