 	}
 
 
-int main(void)
+int main(int argc, char **argv)
 	{
 	#ifdef ENABLE_CAC_GPU_ID
 	if (!getenv("CAC_GPU_ID"))



//*************** parameters of the benchmark
const unsigned int g_N = 64000;
const float g_Lx = 55.1294f;
const float g_Ly = 55.1294f;
const float g_Lz = 55.1294f;
const float g_rcut = 3.8f;
const unsigned int g_Nmax = 128;	// Maximum number of particles each cell can hold
const float tweak_dist = 0.1f;


		cudaSetDevice(atoi(getenv("CAC_GPU_ID")));
	#endif
	
	// choose defaults if no args specified
	if (argc == 1)
		{
		g_N = 64000;
		g_rcut = 3.8f;
		}
	if (argc == 2)
		{
		g_N = atoi(argv[1]);
		g_rcut = 3.8f;
		}
	if (argc == 3)
		{
		g_N = atoi(argv[1]);
		g_rcut = atof(argv[2]);
		}
		
	float L = pow(float(M_PI/6.0)*float(g_N) / 0.20f, 1.0f/3.0f);
	g_Lx = g_Ly = g_Lz = L;
	
	// setup
	allocate_data();
	initialize_data();
