anchor.diff:      subroutine accumulate_counts(i_x_vd, p_arr, p_var_arr, j_arr)
         ! Method that actually updates virtual detector counts
         !
  -      ! i_x :: spatial grid index
  +      ! i_x_vd :: spatial grid index *with respect to the other arguments*, not
  +      !   the overall spatial grid
         ! p_arr :: local momentum array, indexed by i_x
         ! p_var_arr :: local variance array, indexed by i_x
         ! j_arr :: local current array, indexed by i_x
  
positive.code:   subroutine vd_update(this, psi_arr)
      ! Update virtual detector counts
      !
      ! this :: vd_obj instance
      ! psi_arr :: 1D slice of wavefunction along the same grid as vd_obj
      !
      ! For multi-dimensional propagations, this routine should be called for
      ! each slice along the grid of vd_obj
      class(vd_obj), intent(inout) :: this
      complex(fp), intent(in) :: psi_arr(:)
  
      call this%fill_arrays(psi_arr)
      call this%bin()
    end subroutine vd_update
  
    subroutine vd_fill_arrays(this, psi_arr)
      class(vd_obj), intent(inout) :: this
      complex(fp), intent(in) :: psi_arr(:)
  
  
negative.code:     real(fp), intent(in) :: hbar
      real(fp), intent(in) :: m
  
      ! Validate spatial grid parameters
      call vd_validate_spatial_input(nx, nxl_ext, nxr_ext, nxl_vd, nxr_vd)
  
      ! Validate momentum grid parameters
      call vd_validate_momentum_input(p_min, p_max)
  
      ! Assign VD scalar parameters
      this%dx = dx
  