     //__shared__ int16_t score_i[1024];
     //__shared__ int16_t score_prev_i[1024];
 
-    __shared__ int16_t prev_score[1];
-
     uint32_t thread_idx = threadIdx.x;
 
     long long int start = clock64();

            scores[i * CUDAPOA_MAX_SEQUENCE_SIZE + j3] = score3;
            serial += (clock64() - temp);

            __syncthreads();
        }

        //__syncthreads();


        uint8_t n = nodes[node_id];

        // max_cols is the first warp boundary multiple beyond read_count. This is done
        // so all threads in the warp enter the loop.
        for(uint16_t read_pos = thread_idx * cells_per_thread; read_pos < max_cols; read_pos += blockDim.x * cells_per_thread)
        {
            //printf("updating vertical for pos %d thread %d\n", read_pos, thread_idx);
            int16_t char_profile0 = (n == read[read_pos + 0] ? MATCH : MISMATCH);
