--------------------------------------------------------------
            Argument | Type    |  Mode  | Dimension
--------------------------------------------------------------
CALL CURV1 (N,       | Integer | Input  |
            X,       | Real    | Input  | N
            Y,       | Real    | Input  | N
            SLP1,    | Real    | Input  | 
            SLPN,    | Real    | Input  | 
            ISLPSW,  | Integer | Input  |
            YP,      | Real    | Output | N
            TEMP,    | Real    | Input  | N
            SIGMA,   | Real    | Input  | 
            IER)     | Integer | Output | 
--------------------------------------------------------------
--------------------------------------------------------------
                Argument | Type    |  Mode  | Dimension
--------------------------------------------------------------
FUNCTION CURV2 (T,       | Real    | Input  |
                N,       | Integer | Input  |
                X,       | Real    | Input  | N
                Y,       | Real    | Input  | N
                YP,      | Real    | Input  | N
                SIGMA)   | Real    | Input  | 
--------------------------------------------------------------
--------------------------------------------------------------
                Argument | Type    |  Mode  | Dimension
--------------------------------------------------------------
FUNCTION CURVD (T,       | Real    | Input  |
                N,       | Integer | Input  |
                X,       | Real    | Input  | N
                Y,       | Real    | Input  | N
                YP,      | Real    | Input  | N
                SIGMA)   | Real    | Input  | 
--------------------------------------------------------------
--------------------------------------------------------------
                Argument | Type    |  Mode  | Dimension
--------------------------------------------------------------
FUNCTION CURVI (XL,      | Real    | Input  |
                XU,      | Real    | Input  |
                N,       | Integer | Input  |
                X,       | Real    | Input  | N
                Y,       | Real    | Input  | N
                YP,      | Real    | Input  | N
                SIGMA)   | Real    | Input  | 
--------------------------------------------------------------
--------------------------------------------------------------
             Argument | Type    |  Mode  | Dimension
--------------------------------------------------------------
CALL CURVP1 (N,       | Integer | Input  |
             X,       | Real    | Input  | N
             Y,       | Real    | Input  | N
             P,       | Real    | Input  | 
             YP,      | Real    | Output | N
             TEMP,    | Real    | Input  | N x 2
             SIGMA,   | Real    | Input  | 
             IER)     | Integer | Output | 
--------------------------------------------------------------
--------------------------------------------------------------
                 Argument | Type    |  Mode  | Dimension
--------------------------------------------------------------
FUNCTION CURVP2 (T,       | Real    | Input  |
                 N,       | Integer | Input  |
                 X,       | Real    | Input  | N
                 Y,       | Real    | Input  | N
                 P,       | Real    | Input  |
                 YP,      | Real    | Input  | N
                 SIGMA)   | Real    | Input  | 
--------------------------------------------------------------
--------------------------------------------------------------
                Argument | Type    |  Mode  | Dimension
--------------------------------------------------------------
FUNCTION CURVI (XL,      | Real    | Input  |
                XU,      | Real    | Input  |
                N,       | Integer | Input  |
                X,       | Real    | Input  | N
                Y,       | Real    | Input  | N
                P,       | Real    | Input  |
                YP,      | Real    | Input  | N
                SIGMA)   | Real    | Input  | 
--------------------------------------------------------------
Three parameters are used to control the degree of smoothness -- D, S, and EPS.
The parameter D is a value indicating the degree of confidence in the accuracy of the input function values -- it should be an approximation of the standard deviation of error. Effectively the value of D controls how close the smoothed curve comes to the input data points. If D is small then the interpolated curve will pass close to the input data. The larger the value of D, the more freedom the smooth curve has in how close it comes to the input data values.
S is a more subtle global smoothing parameter. S must be non-negative. For small values of S, the interpolated curve approximates the tension spline and for larger values of S, the curve is smoother. A reasonable value for EPS is REAL(N).
EPS controls the precision to which S is interpreted; EPS must be between 0. and 1. inclusive. A reasonable value for S is SQRT(2./REAL(N)).
--------------------------------------------------------------
            Argument | Type    |  Mode  | Dimension
--------------------------------------------------------------
CALL CURVS (N,       | Integer | Input  |
            X,       | Real    | Input  | N
            Y,       | Real    | Input  | N
            D,       | Real    | Input  | N 
            ISW,     | Integer | Input  | 
            S,       | Real    | Input  | 
            EPS,     | Real    | Input  | 
            YS,      | Real    | Output | N
            YSP,     | Real    | Output | N
            SIGMA,   | Real    | Input  | 
            TEMP,    | Real    | Input  | N x 9
            IER)     | Integer | Output | 
--------------------------------------------------------------
Three parameters are used to control the degree of smoothness -- D, S, and EPS.
The parameter D is a value indicating the degree of confidence in the accuracy of the input function values -- it should be an approximation of the standard deviation of error. Effectively the value of D controls how close the smoothed curve comes to the input data points. If D is small then the interpolated curve will pass close to the input data. The larger the value of D, the more freedom the smooth curve has in how close it comes to the input data values.
S is a more subtle global smoothing parameter. S must be non-negative. For small values of S, the curve approximates the tension spline and for larger values of S, the curve is smoother. A reasonable value for S is REAL(N).
EPS controls the precision to which S is interpreted; EPS must be between 0. and 1. inclusive. A reasonable value for EPS is SQRT(2./REAL(N)).
--------------------------------------------------------------
             Argument | Type    |  Mode  | Dimension
--------------------------------------------------------------
CALL CURVPS (N,       | Integer | Input  |
             X,       | Real    | Input  | N
             Y,       | Real    | Input  | N
             P,       | Real    | Input  |
             D,       | Real    | Input  | N 
             ISW,     | Integer | Input  | 
             S,       | Real    | Input  | 
             EPS,     | Real    | Input  | 
             YS,      | Real    | Output | N
             YSP,     | Real    | Output | N
             SIGMA,   | Real    | Input  | 
             TEMP,    | Real    | Input  | N x 11
             IER)     | Integer | Output | 
--------------------------------------------------------------
--------------------------------------------------------------
            Argument | Type    |  Mode  | Dimension
--------------------------------------------------------------
CALL KURV1 (N,       | Integer | Input  |
            X,       | Real    | Input  | N
            Y,       | Real    | Input  | N
            SLP1,    | Real    | Input  | 
            SLPN,    | Real    | Input  | 
            ISLPSW,  | Integer | Input  |
            XP,      | Real    | Output | N
            YP,      | Real    | Output | N
            TEMP,    | Real    | Input  | N
            S,       | Real    | Output | N
            SIGMA,   | Real    | Input  | 
            IER)     | Integer | Output | 
--------------------------------------------------------------
--------------------------------------------------------------
            Argument | Type    |  Mode  | Dimension
--------------------------------------------------------------
CALL KURV2 (T,       | Real    | Input  |
            XS,      | Real    | Output |
            YS,      | Real    | Output |
            N,       | Integer | Input  |
            X,       | Real    | Input  | N
            Y,       | Real    | Input  | N
            XP,      | Real    | Input  | N
            YP,      | Real    | Input  | N
            S,       | Real    | Input  | N
            SIGMA)   | Real    | Input  | 
--------------------------------------------------------------
--------------------------------------------------------------
            Argument | Type    |  Mode  | Dimension
--------------------------------------------------------------
CALL KURVD (T,       | Real    | Input  |
            XS,      | Real    | Output |
            YS,      | Real    | Output |
            XST,     | Real    | Output |
            YST,     | Real    | Output |
            XSTT,    | Real    | Output |
            YSTT,    | Real    | Output |
            N,       | Integer | Input  |
            X,       | Real    | Input  | N
            Y,       | Real    | Input  | N
            XP,      | Real    | Input  | N
            YP,      | Real    | Input  | N
            S,       | Real    | Input  | N
            SIGMA)   | Real    | Input  | 
--------------------------------------------------------------
--------------------------------------------------------------
             Argument | Type    |  Mode  | Dimension
--------------------------------------------------------------
CALL KURVP1 (N,       | Integer | Input  |
             X,       | Real    | Input  | N
             Y,       | Real    | Input  | N
             XP,      | Real    | Output | N
             YP,      | Real    | Output | N
             TEMP,    | Real    | Input  | N x 2
             S,       | Real    | Output | N
             SIGMA,   | Real    | Input  | 
             IER)     | Integer | Output | 
--------------------------------------------------------------
--------------------------------------------------------------
             Argument | Type    |  Mode  | Dimension
--------------------------------------------------------------
CALL KURVP2 (T,       | Real    | Input  |
             XS,      | Real    | Output |
             YS,      | Real    | Output |
             N,       | Integer | Input  |
             X,       | Real    | Input  | N
             Y,       | Real    | Input  | N
             XP,      | Real    | Input  | N
             YP,      | Real    | Input  | N
             S,       | Real    | Input  | N
             SIGMA)   | Real    | Input  | 
--------------------------------------------------------------
--------------------------------------------------------------
             Argument | Type    |  Mode  | Dimension
--------------------------------------------------------------
CALL KURVPD (T,       | Real    | Input  |
             XS,      | Real    | Output |
             YS,      | Real    | Output |
             XST,     | Real    | Output |
             YST,     | Real    | Output |
             XSTT,    | Real    | Output |
             YSTT,    | Real    | Output |
             N,       | Integer | Input  |
             X,       | Real    | Input  | N
             Y,       | Real    | Input  | N
             XP,      | Real    | Input  | N
             YP,      | Real    | Input  | N
             S,       | Real    | Input  | N
             SIGMA)   | Real    | Input  | 
--------------------------------------------------------------
--------------------------------------------------------------
            Argument | Type    |  Mode  | Dimension
--------------------------------------------------------------
CALL SURF1 (M,       | Integer | Input  |
            N,       | Integer | Input  |
            X,       | Real    | Input  | M
            Y,       | Real    | Input  | N
            Z,       | Real    | Input  | IZ x N
            IZ,      | Integer | Input  |  
            ZX1,     | Real    | Input  | N
            ZXM,     | Real    | Input  | N
            ZY1,     | Real    | Input  | M
            ZYN,     | Real    | Input  | M
            ZXY11,   | Real    | Input  | 
            ZXYM1,   | Real    | Input  | 
            ZXY1N,   | Real    | Input  | 
            ZXYMN,   | Real    | Input  | 
            ISLPSW,  | Integer | Input  |
            ZP,      | Real    | Output | M x N x 3
            TEMP,    | Real    | Input  | N + N + M
            SIGMA,   | Real    | Input  | 
            IER)     | Integer | Output | 
--------------------------------------------------------------
set ISLPSW = I1 + 2*I2 + 4*I3 +8*I4 +16*I5 +32*I6 + 64*I7 + 128*I8. Then, for example, if ISLPSW=0, then all derivative information is user-supplied and if ISLPSW=255, then all derivative information is to be internally estimated.
--------------------------------------------------------------
                Argument | Type    |  Mode  | Dimension
--------------------------------------------------------------
FUNCTION SURF2 (XX,      | Real    | Input  |
                YY,      | Real    | Input  |
                M,       | Integer | Input  |
                N,       | Integer | Input  |
                X,       | Real    | Input  | M
                Y,       | Real    | Input  | N
                Z,       | Real    | Input  | IZ x N
                IZ,      | Integer | Input  |  
                ZP,      | Real    | Input  | M x N x 3
                SIGMA)   | Real    | Input  | 
--------------------------------------------------------------
c_ftcurv is called after all of the desired values for control parameters have been set using the procedures c_ftseti, c_ftsetr, c_ftsetc. Control parameters that apply to c_ftcurv are: sig, sl1, sln, sf1.
The value for the parameter sig specifies the tension factor. Values near zero result in a cubic spline; large values (e.g. 50) result in nearly a polygonal line. A typical value is 1. (the default).
The values for sl1 and sln specify the slope of the curve at the first point and last point, respectively.
The value of sf1 controls whether to use the values for sl1 and sln, or compute those values internally. Specifically, sf1
Function prototype:
int c_ftcurv (int, float [], float [], int, float [], float []);Return value:
c_ftcurv returns an error value as per:
Argument description:
-------------------------------------------------
              Argument | Type     |  Size
-------------------------------------------------
int c_ftcurv (n,       | int      |
              xi,      | float [] | n
              yi,      | float [] | n
              m,       | int      | 
              xo,      | float [] | m
              yo       | float [] | m
             );
-------------------------------------------------
c_ftcurvd is called after all of the desired values for control parameters have been set using the procedures c_ftseti, c_ftsetr, c_ftsetc. Control parameters that apply to c_ftcurvd are: sig, sl1, sln, sf1.
The value for the parameter sig specifies the tension factor. Values near zero result in a cubic spline; large values (e.g. 50) result in nearly a polygonal line. A typical value is 1. (the default).
The values for sl1 and sln specify the slope of the curve at the first point and last point, respectively.
The value of sf1 controls whether to use the values for sl1 and sln, or compute those values internally. Specifically, sf1
Function prototype:
int c_ftcurvd (int, float [], float [], int, float [], float []);Return value:
c_ftcurvd returns an error value as per:
Argument description:
-------------------------------------------------
               Argument | Type     |  Size
-------------------------------------------------
int c_ftcurvd (n,       | int      |
               xi,      | float [] | n
               yi,      | float [] | n
               m,       | int      | 
               xo,      | float [] | m
               yo       | float [] | m
              );
-------------------------------------------------
c_ftcurvi is called after all of the desired values for control parameters have been set using the procedures c_ftseti, c_ftsetr, c_ftsetc. Control parameters that apply to c_ftcurvd are: sig, sl1, sln, sf1.
The value for the parameter sig specifies the tension factor. Values near zero result in a cubic spline; large values (e.g. 50) result in nearly a polygonal line. A typical value is 1. (the default).
The values for sl1 and sln specify the slope of the curve at the first point and last point, respectively.
The value of sf1 controls whether to use the values for sl1 and sln, or compute those values internally. Specifically, sf1
Function prototype:
int c_ftcurvi (float, float, int, float [], float [], float *);Return value:
c_ftcurvi returns an error value as per:
Argument description:
-------------------------------------------------
               Argument | Type     |  Size
-------------------------------------------------
int c_ftcurvi (xl,      | float    |
               xr,      | float    |
               n,       | int      | 
               xi,      | float [] | n
               yi,      | float [] | n
               integral | float *  | 
              );
-------------------------------------------------
c_ftcurvp is called after all of the desired values for control parameters have been set using the procedures c_ftseti, c_ftsetr, c_ftsetc. The only control parameter that applies to c_ftcurvp is: sig.
The value for the parameter sig specifies the tension factor. Values near zero result in a cubic spline; large values (e.g. 50) result in nearly a polygonal line. A typical value is 1. (the default).
Function prototype:
int c_ftcurvp (int, float [], float [], float, int, float [], float []);Return value:
c_ftcurvp returns an error value as per:
Argument description:
-------------------------------------------------
               Argument | Type     |  Size
-------------------------------------------------
int c_ftcurvp (n,       | int      |
               xi,      | float [] | n
               yi,      | float [] | n
               p,       | float    |
               m,       | int      | 
               xo,      | float [] | m
               yo       | float [] | m
              );
-------------------------------------------------
c_ftcurvpi is called after all of the desired values for control parameters have been set using the procedures c_ftseti, c_ftsetr, c_ftsetc. The only control parameter that applies to c_ftcurvpi is: sig.
The value for the parameter sig specifies the tension factor. Values near zero result in a cubic spline; large values (e.g. 50) result in nearly a polygonal line. A typical value is 1. (the default).
Function prototype:
int c_ftcurvpi (float, float, float, int, float [], float [], float *);Return value:
c_ftcurpi returns an error value as per:
Argument description:
-------------------------------------------------
                Argument | Type     |  Size
-------------------------------------------------
int c_ftcurvpi (xl,      | float    |
                xr,      | float    |
                p,       | float    |
                m,       | int      | 
                xi,      | float [] | m
                yi,      | float [] | m
                integral | float *  |
               );
-------------------------------------------------
Two parameters and one function argument used to control the degree of smoothness -- the parameters are smt, and eps and the function argument is d.
The argument d is a value indicating the degree of confidence in the accuracy of the input function values -- it should be an approximation of the standard deviation of error. Effectively the value of d controls how close the smoothed curve comes to the input data points. If d is small, then the interpolated curve will pass close to the input data. The larger the value of d, the more freedom the smooth curve has in how close it comes to the input data values.
The parameter smt is a more subtle global smoothing parameter; smt must be non-negative. For small values of smt, the curve approximates the tension spline and for larger values of smt, the curve is smoother. A reasonable value for smt is (float) n.
The parameter eps controls the precision to which smt is interpreted; eps must be between 0. and 1. inclusive. A reasonable value for eps is sqrt( 2./(float) n ).
c_ftcurvs is called after all of the desired values for control parameters have been set using the procedures c_ftseti, c_ftsetr, c_ftsetc. Control parameters that apply to c_ftcurvs are: sig, smt, eps, sf2.
The value for the parameter sig specifies the tension factor. Values near zero result in a cubic spline; large values (e.g. 50) result in nearly a polygonal line. A typical value is 1. (the default).
Function prototype:
   int c_ftcurvs (int, float [], float [], int, float [], int, 
                  float [], float []);
Return value:
c_ftcurvs returns an error value as per:
Argument description:
--------------------------------------------------------------
               Argument | Type     |  size
--------------------------------------------------------------
int c_ftcurvs (n,       | int      |
               xi,      | float [] | n
               yi,      | float [] | n
               dflg,    | int      |
               d,       | float [] | n
               m,       | int      |  
               xo,      | float [] | m
               yo       | float [] | m
              );
--------------------------------------------------------------
Two parameters and one function argument used to control the degree of smoothness -- the parameters are smt, and eps and the function argument is d.
The argument d is a value indicating the degree of confidence in the accuracy of the input function values -- it should be an approximation of the standard deviation of error. Effectively the value of d controls how close the smoothed curve comes to the input data points. If d is small, then the interpolated curve will pass close to the input data. The larger the value of d, the more freedom the smooth curve has in how close it must come to the input data values.
The parameter smt is a more subtle global smoothing parameter; smt must be positive. For small values of smt, the curve approximates the tension spline and for larger values of smt, the curve is smoother. A reasonable value for smt is (float) n.
The parameter eps controls the precision to which smt is interpreted; eps must be between 0. and 1. inclusive. A reasonable value for eps sqrt( 2./(float) n ).
c_ftcurvps is called after all of the desired values for control parameters have been set using the procedures c_ftseti, c_ftsetr, c_ftsetc. Control parameters that apply to c_ftcurvps are: sig, smt, eps, sf2.
The value for the parameter sig specifies the tension factor. Values near zero result in a cubic spline; large values (e.g. 50) result in nearly a polygonal line. A typical value is 1. (the default).
Function prototype:
   int c_ftcurvps (int, float [], float [], float, int, float [], int, 
                  float [], float []);
Return value:
c_ftcurvps returns an error value as per:
Argument description:
--------------------------------------------------------------
                Argument | Type     |  size
--------------------------------------------------------------
int c_ftcurvps (n,       | int      |
                xi,      | float [] | n
                yi,      | float [] | n
                p,       | float    |
                dflg,    | int      |
                d,       | float [] | n
                m,       | m        |  
                xo,      | float [] | m
                yo       | float [] | m
               );
--------------------------------------------------------------
Given a sequence of input points ( (x[0],y[0]), ... , (x[n-1],y[n-1]), the interpolated curve is parameterized by mapping points in the interval [0.,1.] onto the interpolated curve. The resulting curve has a parametric representation both of whose components are splines under tension and functions of the polygonal arc length. The value 0. is mapped onto (x[0],y[0]) and the value 1. is mapped onto (x[n-1],y[n-1]).
c_ftkurv is called after all of the desired values for control parameters have been set using the procedures c_ftseti, c_ftsetr, c_ftsetc. Control parameters that apply to c_ftkurv are: sig, sl1, sln, sf1.
The value for the parameter sig specifies the tension factor. Values near zero result in a cubic spline; large values (e.g. 50) result in nearly a polygonal line. A typical value is 1. (the default).
The value for parameter sl1 is in radians and contains the slope at (x[0],y[0]). The angle is measured counter-clockwise from the X axis and the positive sense of the curve is assumed to be that moving from point 0 to point n-1. A value for sl1 may be omitted as indicated by the switch sf1.
The value for parameter sln is in radians and contains the slope at (x[n-1],y[n-1]). The angle is measured counter-clockwise from the X axis and the positive sense of the curve is assumed to be that moving from point 0 to point n-1. A value for sln may be omitted as indicated by the switch sf1.
The value of sf1 controls whether to use the values for sl1 and sln, or compute those values internally. Specifically, sf1
Function prototype:
int c_ftkurv (int, float [], float [], int, float [], float [], float []);Return value:
c_ftkurv returns an error value as per:
Argument description:
-------------------------------------------------
              Argument | Type     |  Size
-------------------------------------------------
int c_ftkurv (n,       | int      |
              xi,      | float [] | n
              yi,      | float [] | n
              m,       | int      | 
              t,       | float [] | m
              xo,      | float [] | m
              yo       | float [] | m
             );
-------------------------------------------------
Given a sequence of distinct input points ( (x[0],y[0]), ... , (x[n-1],y[n-1]), the interpolated curve is parameterized by mapping points in the interval [0.,1.] onto the interpolated curve. The resulting curve has a parametric representation both of whose components are splines under tension and functions of the polygonal arc length. The value 0. is mapped onto (x[0],y[0]) and the value 1. is mapped onto (x[0],y[0]) as well (completing the closed curve).
c_ftkurvp is called after all of the desired values for control parameters have been set using the procedures c_ftseti, c_ftsetr, c_ftsetc. The only control parameter that applies to c_ftkurvp is: sig.
The value for the parameter sig specifies the tension factor. Values near zero result in a cubic spline; large values (e.g. 50) result in nearly a polygonal line. A typical value is 1. (the default).
Function prototype:
int c_ftkurvp (int, float [], float [], int, float [], float [], float []);Return value:
c_ftkurvp returns an error value as per:
Argument description:
-------------------------------------------------
              Argument | Type     |  Size
-------------------------------------------------
int c_ftkurv (n,       | int      |
              xi,      | float [] | n
              yi,      | float [] | n
              m,       | int      | 
              t,       | float [] | m
              xo,      | float [] | m
              yo       | float [] | m
             );
-------------------------------------------------
Given a sequence of input points ( (x[0],y[0]), ... , (x[n-1],y[n-1]), the interpolated curve is parameterized by mapping points in the interval [0.,1.] onto the interpolated curve. The resulting curve has a parametric representation both of whose components are splines under tension and functions of the polygonal arc length. The value 0. is mapped onto (x[0],y[0]) and the value 1. is mapped onto (x[n-1],y[n-1]).
c_ftkurvd is called after all of the desired values for control parameters have been set using the procedures c_ftseti, c_ftsetr, c_ftsetc. Control parameters that apply to c_ftkurvd are: sig, sl1, sln, sf1.
The value for the parameter sig specifies the tension factor. Values near zero result in a cubic spline; large values (e.g. 50) result in nearly a polygonal line. A typical value is 1. (the default).
The value for parameter sl1 is in radians and contains the slope at (x[0],y[0]). The angle is measured counter-clockwise from the X axis and the positive sense of the curve is assumed to be that moving from point 0 to point n-1. A value for sl1 may be omitted as indicated by the switch sf1.
The value for parameter sln is in radians and contains the slope at (x[n-1],y[n-1]). The angle is measured counter-clockwise from the X axis and the positive sense of the curve is assumed to be that moving from point 0 to point n-1. A value for sln may be omitted as indicated by the switch sf1.
The value of sf1 controls whether to use the values for sl1 and sln, or compute those values internally. Specifically, sf1
Function prototype:
  int c_ftkurvd (int, float [], float [], int, float [], float [], float [],
                  float [], float [], float [], float []);
Return value:
c_ftkurvd returns an error value as per:
Argument description:
-------------------------------------------------
               Argument | Type     |  Size
-------------------------------------------------
int c_ftkurvd (n,       | int      |
               xi,      | float [] | n
               yi,      | float [] | n
               m,       | int      | 
               t,       | float [] | m
               xo,      | float [] | m
               yo,      | float [] | m
               xd,      | float [] | m
               yd,      | float [] | m
               xdd,     | float [] | m
               ydd      | float [] | m
              );
-------------------------------------------------
Given a sequence of distinct input points ( (x[0],y[0]), ... , (x[n-1],y[n-1]), the interpolated curve is parameterized by mapping points in the interval [0.,1.] onto the interpolated curve. The resulting curve has a parametric representation both of whose components are splines under tension and functions of the polygonal arc length. The value 0. is mapped onto (x[0],y[0]) and the value 1. is mapped onto (x[0],y[0]) as well (completing the closed curve).
c_ftkurvpd is called after all of the desired values for control parameters have been set using the procedures c_ftseti, c_ftsetr, c_ftsetc. The only control parameter that applies to c_ftkurvpd is: sig.
The value for the parameter sig specifies the tension factor. Values near zero result in a cubic spline; large values (e.g. 50) result in nearly a polygonal line. A typical value is 1. (the default).
Function prototype:
  int c_ftkurvpd (int, float [], float [], int, float [], float [], float [],
                  float [], float [], float [], float []);
Return value:
c_ftkurvpd returns an error value as per:
Argument description:
-------------------------------------------------
                Argument | Type     |  Size
-------------------------------------------------
int c_ftkurvpd (n,       | int      |
                xi,      | float [] | n
                yi,      | float [] | n
                m,       | int      | 
                t,       | float [] | m
                xo,      | float [] | m
                yo       | float [] | m
                xd,      | float [] | m
                yd       | float [] | m
                xdd,     | float [] | m
                ydd      | float [] | m
               );
-------------------------------------------------
c_ftsurf is called after all of the desired values for control parameters have been set using the procedures c_ftseti, c_ftsetr, c_ftsetc, c_ftsetfa. The control parameters that apply to c_ftsurf are: sig, zx1, zxm, zy1, zyn, z11, zm1, z1n, zmn, df1, df2, df3, df4, df5, df6, df7, df8
The value for the parameter sig specifies the tension factor. Values near zero result in a cubic spline; large values (e.g. 50) result in nearly a polygonal line. A typical value is 1. (the default).
zx1 is an array containing ni X-partial derivatives of the function along the line xi[0], that is zx1[j] is the X-partial derivative at point (x[0],y[j]) for j=0,ni-1. This parameter may be defaulted by setting the value for df1 appropriately. The default is to compute zx1 internally. Values for zx1 can be set using the procedure c_ftsetfa.
zxm is an array containing ni X-partial derivatives of the function along the line xi[mi-1], that is zxm[j] is the X-partial derivative at point (xi[mi-1],yi[j]) for j=0,ni-1. This parameter may be defaulted by setting the value for df2 appropriately. The default is to compute zx2 internally. Values for zxm can be set using the procedure c_ftsetfa.
zy1 is an array containing mi Y-partial derivatives of the function along the line yi[0], that is zy1[j] is the Y-partial derivative at point (x[i],y[0]) for i=0,mi-1. This parameter may be defaulted by setting the value for df3 appropriately. The default is to compute zy1 internally. Values for zy1 can be set using the procedure c_ftsetfa.
zyn is an array containing mi Y-partial derivatives of the function along the line yi[ni-1], that is zyn[j] is the Y-partial derivative at point (x[i],y[ni-1]) for i=0,mi-1. This parameter may be defaulted by setting the value for df4 appropriately. The default is to compute zyn internally. Values for zyn can be set using the procedure c_ftsetfa.
z11, zm1, z1n, zmn specify X-Y-partial derivatives of the function at the four corners (xi[0],yi[0]), (xi[mi-1],yi[0]), (xi[0],yi[ni-1]), (xi[mi-1],yi[ni-1]), These parameters may be defaulted by setting the values for df5, df6, df7, df8, appropriately. The default is to compute z11, zm1, z1n, zmn internally.
Function prototype:
  float *c_ftsurf (int, int, float *, float *, float *, 
                   int, int, float *, float *, int *);
 
Return value:
c_ftsurf returns a pointer to an array containing mo x no floats which are the interpolated values on the grid specified by the arrays xo and yo.
Argument description:
---------------------------------------------------------------
                 Argument | Type     |  Size
---------------------------------------------------------------
float *c_ftsurf (mi,      | int      |
                 ni,      | int      |
                 xi,      | float *  | pointer to m floats
                 yi,      | float *  | pointer to n floats
                 zi,      | float *  | pointer to m * n floats
                 mo,      | int      |
                 no,      | int      |
                 xo,      | float *  | pointer to mo floats
                 yo,      | float *  | pointer to no floats
                 ier      | int *    |
                );
---------------------------------------------------------------
Function prototype:
void c_ftseti(char *, int);Argument description:
-------------------------------------------
              Argument | Type    |  Size  
-------------------------------------------
void c_ftseti (pnam,   | char *  |        
               ival);  | int     |
-------------------------------------------
Function prototype:
void c_ftgeti(char *, int *);Argument description:
-------------------------------------------
              Argument | Type    |  Size  
-------------------------------------------
void c_ftgeti (pnam,   | char *  |        
               ival);  | int  *  |
-------------------------------------------
Function prototype:
void c_ftsetr(char *, float);Argument description:
-------------------------------------------
              Argument | Type    |  Size  
-------------------------------------------
void c_ftsetr (pnam,   | char *  |        
               fval);  | float   |
-------------------------------------------
Function prototype:
void c_ftgetr(char *, float *);Argument description:
-------------------------------------------
              Argument | Type    |  Size  
-------------------------------------------
void c_ftgetr (pnam,   | char *  |        
               fval);  | float * |
-------------------------------------------
Function prototype:
void c_ftsetc(char *, char *);Argument description:
-------------------------------------------
              Argument | Type    |  Size  
-------------------------------------------
void c_ftsetc (pnam,   | char *  |        
               cval);  | char *  |
-------------------------------------------
Function prototype:
void c_ftgetc(char *, char *);Argument description:
-------------------------------------------
              Argument | Type    |  Size  
-------------------------------------------
void c_ftgetc (pnam,   | char *  |        
               cval);  | char *  |
-------------------------------------------
Function prototype:
int c_ftsetfa(char *pnam, int n, float *far);Argument description:
-------------------------------------------
              Argument | Type    |  Size  
-------------------------------------------
int c_ftsetfa (pnam,   | char *  |        
               n,      | int     |
               far);   | float * |
-------------------------------------------
Function prototype:
int c_ftgetfa_size(char *);Return value:
c_ftgetfa_size returns the size of the array (or returns a zero if an error occurs).
Argument description:
----------------------------------------------
                     Argument | Type    |  Size  
----------------------------------------------
int c_ftgetfa_size (pnam   | char *  |
                       );     |         |        
----------------------------------------------
Function prototype:
float *c_ftgetfa_data(char *);Return value:
c_ftgetfa_data returns a pointer to a array of data (or returns a -1 if an error occurs). The size of the array can be obtained by using c_ftgetfa_size.
Argument description:
------------------------------------------------
                      Argument | Type    |  Size  
------------------------------------------------
float *c_ftgetfa_data (pnam)   | char *  |        
------------------------------------------------