anchor.diff:              use_pointers = .FALSE.
           end if
   
  -        n = size(x, kind=ip) 
  +        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'
  
positive.code:         !!
          !! Type for linear interpolation
          !!
          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(:) 
              !! Pointers to the x/y data used for interpolation.
          integer(ip) :: n
              !! Size of xs/ys
  
negative.code:         class(linear_interpolator_type), target, intent(inout):: linear_interpolator
          real(dp), target, intent(in):: x(:), y(:)
              !! x/y data used for interpolation
          logical, optional, intent(in):: copy_data
              !! If .TRUE., then make a copy of x/y in the class for interpolation. Otherwise
              !! just store pointers to x/y.
          integer(ip):: i, n
          logical:: use_pointers
  
  
          if (present(copy_data)) then
              use_pointers = merge(.FALSE., .TRUE., copy_data)
  