 // height - The height of the area that is calculated
 //******************************************************************************
 __global__
-void fixRhoGridTopBottom(float rhoe[], float rhoi[],
+void fixRhoGridTopBottom(float* __restrict__ rhoe, float* __restrict__ rhoi,
                          const unsigned int width, 
                          const unsigned int height
                          )

// a4Sum[] - The array containing the sums for a4
//******************************************************************************
__global__
void sumArea(float a1Sum[], float a2Sum[], float a3Sum[], float a4Sum[],
             const unsigned int bucketBeg[], const unsigned int bucketEnd[],
             uint2 maxMinArray[],
             const float a1[], const float a2[], 
             const float a3[], const float a4[],
             unsigned int numGridBins, unsigned int numParticles,
             int bufferSize=4)
{

// rho[] - The charge array for the grid points
//******************************************************************************
__global__
void densGridPoints(float* __restrict__ rho,
                    const unsigned int bucketWidth,
                    const unsigned int bucketHeight,
                    const float* __restrict__ area1,
                    const float* __restrict__ area2,
                    const float* __restrict__ area3,
                    const float* __restrict__ area4,
                    const bool cold,
                    const unsigned int particlesToBuffer,
                    const unsigned int NIJ
                    )
{
   extern __shared__ char sharedBase[];
   // Calculate all of the shared memory offsets
