 ***********************************************
 * EZspline test drive using for _R4 precision *
 ***********************************************
 This program performs 1-d, 2-d and 3-d data interpolation
 and derivative evaluations based on both spline and Akima
 Hermite representations. The Akima Hermite interpolation is
 a Hermite interpolation for which the derivatives of the
 function at the nodes are internally evaluated. Boundary 
 conditions such as "not-a-knot", periodic, 1st and 2nd 
 derivative imposed are tested, and so are interpolations
 performed on a set of isolated points, on a cloud of points
 and on a grid array of points (grid).
  
 If you have MATLAB installed on your system, you can view
 the interpolation results saved in the netCDF files *.nc
 provided you also have access to MEXCDF, a netCDF to MATLAB
 interface package freely available at
 http://crusty.er.usgs.gov/~cdenham/MexCDF/nc4ml5.html
 To run the MATLAB script ezspline_test.m, simply type
 "ezspline_test" at the matlab prompt.
 
 > 1-D splines
 
 >> not-a-knot boundary conditions
 grid size           11
  point interpolation (x, f, f-exact, error)
  0.000000  0.000000  0.000000 ERROR=>  0.00E+00
  1.570796  0.999740  1.000000 ERROR=> -0.26E-03
  6.283185  0.000000  0.000000 ERROR=>  0.00E+00
  cloud interpolation =>"spline1_not.nc" & "spline1_notx.nc" (exact)
 >> periodic boundary conditions
 grid size           11
  point interpolation (x, f, f-exact, error)
  0.000000  0.000000  0.000000 ERROR=>  0.00E+00
  1.570796  0.999553  1.000000 ERROR=> -0.45E-03
  6.283185  0.000000  0.000000 ERROR=>  0.00E+00
  cloud interpolation => "spline1_per.nc" & "spline1_perx.nc" (exact)
 >> 1st derivative boundary conditions
 grid size           11
  point interpolation (x, f, f-exact, error)
  0.000000  0.000000  0.000000 ERROR=>  0.00E+00
  1.570796  0.999559  1.000000 ERROR=> -0.44E-03
  6.283185  0.000000  0.000000 ERROR=>  0.00E+00
  cloud interpolation => "spline1_1st.nc" & "spline_1stx.nc" (exact)
 >> 2nd derivative boundary conditions
 grid size           11
  point interpolation (x, f, f-exact, error)
  0.000000  0.000000  0.000000 ERROR=>  0.00E+00
  1.570796  0.999553  1.000000 ERROR=> -0.45E-03
  6.283185  0.000000  0.000000 ERROR=>  0.00E+00
  cloud interpolation => "spline1_2nd.nc" & "spline1_2nd.nc" (exact)
  point derivative (x, fx, fx-exact, error)
  2.805149 -0.944383 -0.943935 ERROR=> -0.45E-03
  point derivative (x, fxx, fxx-exact, error)
  2.805149 -0.325224 -0.330132 ERROR=>  0.49E-02
  gradient  (x, fx)
  2.805149 -0.944383
  2.805149 -0.943935
 save 1-D spline object in file "spline1.nc"
 
 > 2-D splines
 
 >> not-a-knot boundary conditions
 sizes  11* 11=      121
  point interpolation (x, y, f, f-exact, error)
  2.677615  4.603673  1.031898  1.034118 ERROR=> -0.22E-02
  cloud interpolation => "spline2_not_c.nc" & "spline2_not_cx.nc" (exact)
  array interpolation  => "spline2_not_a.nc" & "spline2_not_ax.nc" (exact)
  point derivative (x, y, fx, fx-exact, error)
  2.677615  4.603673 -0.201755 -0.191732 ERROR=> -0.10E-01
  point derivative (x, y, fy, fy-exact, error)
  2.677615  4.603673 -0.211005 -0.210192 ERROR=> -0.81E-03
  point derivative (x, y, fxx, fxx-exact, error)
  2.677615  4.603673  0.850295  0.783676 ERROR=>  0.67E-01
  point derivative (x, y, fyy, fyy-exact, error)
  2.677615  4.603673 -0.022987 -0.022942 ERROR=> -0.46E-04
  point derivative (x, y, fxy, fxy-exact, error)
  2.677615  4.603673  0.886933  0.889733 ERROR=> -0.28E-02
 gradient (x, y, fx, fy)
  2.677615  4.603673 -0.201755 -0.211005
  2.677615  4.603673 -0.191732 -0.210192
 >> periodic boundary conditions
 sizes  11* 11=      121
  point interpolation (x, y, f, f-exact, error)
  2.677615  4.603673  1.031856  1.034118 ERROR=> -0.23E-02
  cloud interpolation => "spline2_per_c.nc" & "spline2_per_cx.nc"
  array interpolation "spline2_per_a.nc" & "spline2_per_ax.nc"
 >> mixed boundary conditions
 sizes  11* 11=      121
  point interpolation (x, y, f, f-exact, error)
  2.677615  4.603673  1.031920  1.034118 ERROR=> -0.22E-02
  cloud interpolation => "spline2_mix_c.nc" & "spline2_mix_cx.nc"
  array interpolation "spline2_mix_a.nc" & "spline2_mix_ax.nc"
 save spline object in file "spline2.nc"
 
 > 3-D splines
 
 >> mixed boundary conditions
 sizes  11* 11* 11=     1331
  point interpolation (x, y, z, f, f-exact, error)
  2.677615  4.603673  0.202576  1.856588  1.856409 ERROR=>  0.18E-03
  cloud interpolation => "spline3_mix_c.nc" & "spline3_mix_cx.nc"
  array interpolation => "spline3_mix_a.nc" & "spline3_mix_ax.nc"
 >> mixed boundary conditions 2
 sizes  11* 11* 11=     1331
  point interpolation (x, y, z, f, f-exact, error)
  2.677615  4.603673  0.202576  1.856298  1.856409 ERROR=> -0.11E-03
 gradient (x, y, z, fx, fy, fz)
  2.677615  4.603673  0.202576 -0.200067 -1.629961 -1.576566
  2.677615  4.603673  0.202576 -0.200981 -1.628012 -1.577469
  cloud interpolation => "spline3_mox__c.nc" & "spline3_mox_cx.nc"
  array interpolation => "spline3_mox__a.nc" & "spline3_mox_ax.nc"
 
 > 1-D Akima Hermite
 
 grid size           11
  point interpolation (x, f, f-exact, error)
  0.000000  0.000000  0.000000 ERROR=>  0.00E+00
  1.570796  1.007185  1.000000 ERROR=>  0.72E-02
  6.283185  0.000000  0.000000 ERROR=>  0.00E+00
  cloud interpolation =>"akima1__not.nc"
  gradient  (x, fx)
  6.283185  1.114152
  6.283185  1.000000
 >> periodic boundary conditions
 grid size           11
  point interpolation (x, f, f-exact, error)
  0.000000  0.000000  0.000000 ERROR=>  0.00E+00
  1.570796  1.007185  1.000000 ERROR=>  0.72E-02
  6.283185  0.000000  0.000000 ERROR=>  0.00E+00
  gradient  (x, fx)
  6.283185  1.114152
  6.283185  1.000000
  cloud interpolation => "akima1__per.nc"
 
 > 2-D Akima Hermite
 
 sizes  11* 11=      121
  point interpolation (x, y, f, f-exact, error)
  2.677615  4.603673  1.037053  1.034118 ERROR=>  0.29E-02
  cloud interpolation => "akima2_not__c.nc"
  array interpolation  => "akima2_not__a.nc"
  point derivative (x, y, fx, fx-exact, error)
  2.677615  4.603673 -0.193959 -0.191732 ERROR=> -0.22E-02
  point derivative (x, y, fy, fy-exact, error)
  2.677615  4.603673 -0.232534 -0.210192 ERROR=> -0.22E-01
 gradient (x, y, fx, fy)
  2.677615  4.603673 -0.193959 -0.232534
  2.677615  4.603673 -0.191732 -0.210192
 >> periodic boundary conditions
 sizes  11* 11=      121
  point interpolation (x, y, f, f-exact, error)
  2.677615  4.603673  1.037053  1.034118 ERROR=>  0.29E-02
  cloud interpolation => "akima2_per__c.nc"
  array interpolation "akima2_per__a.nc"
 gradient (x, y, fx, fy)
  2.677615  4.603673 -0.193959 -0.232534
  2.677615  4.603673 -0.191732 -0.210192
 
 > 3-D Akima Hermite
 
 >> mixed boundary conditions
 sizes  11* 11* 11=     1331
  point interpolation (x, y, z, f, f-exact, error)
  2.677615  4.603673  0.202576  1.854314  1.856409 ERROR=> -0.21E-02
  cloud interpolation => "akima3_mix__c.nc"
  array interpolation => "akima3_mix__a.nc"
 gradient (x, y, z, fx, fy, fz)
  2.677615  4.603673  0.202576 -0.206907 -1.634872 -1.596882
  2.677615  4.603673  0.202576 -0.200981 -1.628012 -1.577469
 *successful end of EZspline test drive*
