anchor.diff:      procedure :: SaveState => TCubicSpline_SaveState
       procedure :: IntegralArray => TCubicSpline_IntegralArray
       generic :: Init => TCubicSpline_Init, TCubicSpline_InitInt
  -    FINAL :: TCubicSpline_Free !not needed in standard, just for compiler bugs
       end Type
   
       Type, extends(TSpline1D) :: TRegularCubicSpline
  
positive.code:     procedure :: Values => TInterpGrid2D_Values !array of points
      procedure :: Clear => TInterpGrid2D_Clear
      procedure, private :: InitInterp => TInterpGrid2D_InitInterp
      FINAL :: TInterpGrid2D_Free
      end Type TInterpGrid2D
  
  
  
negative.code:     this%Initialized = .false.
  
      end subroutine TInterpGrid2D_Clear
  
      function TInterpGrid2D_Value(this,x,y,error) result (res)
      !Z matrix not stored internally to save mem, so must pass again
  