         {
             int nonzero_idx = threadIdx.x + (ITEM * BLOCK_THREADS);
 
+            ColumnIndicesIteratorT ci = wd_column_indices + tile_start_coord.y + nonzero_idx;
+            ValueIteratorT a = wd_values + tile_start_coord.y + nonzero_idx;
+
             if (nonzero_idx < tile_num_nonzeros)
             {
 

            // Smem needed for block exchange
            typename BlockExchangeT::TempStorage exchange;

        };

        union 
        {
            // Smem needed for block-wide reduction
            typename BlockReduceT::TempStorage reduce;


            scan_item.key = row_indices[0];
            scan_item.value = 0.0;
        }

        __syncthreads();

        // Scan downsweep and scatter
        ValueT* s_partials = &temp_storage.merge_items[0].nonzero;
