anchor.diff:          !!
           !! Type for linear interpolation
           !!
  -        real(dp), allocatable:: xs_local(:), ys_local(:) 
  +        real(dp), allocatable:: xs_local(:), ys_local(:)
               !! Copies of the x/y data used for interpolation (used if initialised with copy_data=.FALSE.)
  -        real(dp), pointer :: xs(:), ys(:) 
  +        real(dp), pointer :: xs(:) => NULL(), ys(:) => NULL()
               !! Pointers to the x/y data used for interpolation.
           integer(ip) :: n
               !! Size of xs/ys
  
positive.code:             use_pointers = .FALSE.
          end if
  
          n = size(x, kind=ip) 
          linear_interpolator%n = n
          if(n /= size(y, kind=ip)) then
              print*, 'initialise_linear_interpolator error: size of x and y must be equal'
  
negative.code:     end subroutine
  
      !
      ! Suppose input_x, input_y are some data with input_x being sorted and increasing
      ! We are given output_x, and wish to get output_y by linearly interpolating the
      ! original series.
      pure subroutine linear_interpolation(n_input, input_x, input_y, n_output, output_x, output_y)
  