anchor.diff:      procedure :: Values => TInterpGrid2D_Values !array of points
       procedure :: Clear => TInterpGrid2D_Clear
       procedure, private :: InitInterp => TInterpGrid2D_InitInterp
  -    FINAL :: TInterpGrid2D_Free
       end Type TInterpGrid2D
   
   
  
positive.code:     if (allocated(this%X)) deallocate(this%X)
  
      end subroutine TCubicSpline_Clear
  
      subroutine TCubicSpline_Free(this)
      Type(TCubicSpline) :: this
  
      call this%Clear()
  
      end subroutine TCubicSpline_Free
  
      subroutine TCubicSpline_FindNext(this, x, llo, xlo, xhi)
      !No error checking, assumes x>= x at point point llo, updating llo
  
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
  