 __global__ void downTriangle(REAL *IC, REAL *right, REAL *left)
 {
 
-	__shared__ REAL temper[64];
+	//Now temper needs to accommodate a longer row by 2, one on each side.
+	//since it has two rows that's 4 extra floats.  The last row will still be
+	//32 numbers long.
+	__shared__ REAL temper[68];
 	__shared__ REAL sR[32];
 	__shared__ REAL sL[32];
+	// Maybe __shared__ REAL end_c[32;]
 
 	unsigned int gid = blockDim.x * blockIdx.x + threadIdx.x; //Global Thread ID
 	unsigned int tid = threadIdx.x;

		int sw = (k & 1);
		int shft_rd = 32*((shft_wr+1) & 1);

		if (tid <= (32-k-1) && tid >= k)
		{
			temper[tid + (32*sw)] = fo * (temper[tid+shft-1] + temper[tid+shft+1]) + (1-2.*fo) * temper[tid+shft];
		}

	cudaFree(d_IC2);
	cudaFree(d_coll);

	return 0;

}
