anchor.diff:      ! t :: current time parameter
       ! dt :: time step
       !
  -    ! Note that the state array is overwritten during propagation.
  -    complex(dp), intent(inout) :: y(:)
  +    ! Note that the state array y is overwritten during propagation.
  +    real(dp), intent(inout) :: y(:)
       real(dp), intent(in) :: t
       real(dp), intent(in) :: dt
   
  -    complex(dp), dimension(size(y)) :: k1, k2, k3, k4
  +    real(dp), dimension(size(y)) :: k1, k2, k3, k4
   
       ! Explicit interface for external differential equation system
       interface
   
          function f(y, t) result(val)
            import dp
  +         real(dp) :: y(:)
            real(dp) :: t
  -         complex(dp) :: y(:), val(size(y))
  +         real(dp) :: val(size(y))
          end function f
   
       end interface
  
positive.code: 
      d_arr(:) = scale * d_arr(:)
  
    end subroutine numerics_d1
  
    subroutine numerics_d2(arr, d2_arr, dx)
      ! Calculate the 2nd derivative of a complex array-valued function with
      ! respect to a real-valued coordinate with constant spacing:
      !
      !   f''(x) ~= (f(x - dx) - 2 f(x) + f(x + dx)) / (dx**2)
      !
      ! arr :: function array
      ! d2_arr :: array to populate
      ! dx :: coordinate spacing
      complex(dp), intent(in) :: arr(:)
      complex(dp), intent(inout) :: d2_arr(:)
      real(dp), intent(in) :: dx
  
negative.code: 
    end subroutine numerics_linspace
  
    subroutine numerics_d1_real(arr, d_arr, dx)
      ! Calculate the 1st derivative of an real array-valued function with
      ! respect to a real-valued coordinate grid with constant grid spacing.
      !
      ! arr :: function array
      ! d_arr :: array to populate with 1st derivative values
      ! dx :: coordinate spacing
      real(dp), intent(in) :: arr(:)
      real(dp), intent(out) :: d_arr(:)
      real(dp), intent(in) :: dx
  
      integer :: i_x, n_x
      real(dp) :: scale
  
  