diff --git a/w-stacking-fftw.c b/w-stacking-fftw.c
index 26e8018c14dac343cbb20ffefcc188bb585532a1..fc8eb047c6702cda089ad120fd175ca3edb68b0b 100644
--- a/w-stacking-fftw.c
+++ b/w-stacking-fftw.c
@@ -39,33 +39,32 @@ void Push(struct sectorlist** headRef, long data) {
 // Main Code
 int main(int argc, char * argv[])
 {
+        // Main MPI parameters
 	int rank;
 	int size;
 
+        // Define main filenames
 	FILE * pFile;
 	FILE * pFile1;
 	FILE * pFilereal;
 	FILE * pFileimg;
+	// Global filename to be composed
 	char filename[1000];
-	//char datapath[900] = "/m100_scratch/userexternal/cgheller/gridding/old/data/gauss2_t201806301100_SBL180.binMS/";
-	//char datapath[900] = "/m100_scratch/userexternal/cgheller/gridding/newgauss2noconj_t201806301100_SBL180.binMS/";
-	//char datapath[900] = "/m100_scratch/userexternal/cgheller/gridding/gauss1_t201806301100_SBL180.binMS/";
-	//char datapath[900] = "/m100_scratch/userexternal/cgheller/gridding/newgauss4_t201806301100_SBL180.binMS/";
-	//char datapath[900] = "/m100_scratch/userexternal/cgheller/gridding/gauss4_t201806301100_SBL180.binMS/";
-	//char datapath[900] = "/m100_scratch/userexternal/cgheller/gridding/hba-8hrs_t201806301100_SBH255i-test.binMS/";
-	//
-	//char datapath[900] = "/m100_scratch/userexternal/cgheller/gridding/hba-8hrs_gauss4new.binMS/";
-	//char datapath[900] = "/m100_scratch/userexternal/cgheller/Lofar/Observations/L798046_SB244_uv.uncorr_130B27932t_146MHz.pre-cal.binMS/";
+	
+	// MS paths
 	char datapath[900];
 	char datapath_multi[NFILES][900];
 
+        // Bin MS files
 	char ufile[30] = "ucoord.bin";
-  char vfile[30] = "vcoord.bin";
-  char wfile[30] = "wcoord.bin";
-  char weightsfile[30] = "weights.bin";
-  char visrealfile[30] = "visibilities_real.bin";
-  char visimgfile[30] = "visibilities_img.bin";
-  char metafile[30] = "meta.txt";
+        char vfile[30] = "vcoord.bin";
+        char wfile[30] = "wcoord.bin";
+        char weightsfile[30] = "weights.bin";
+        char visrealfile[30] = "visibilities_real.bin";
+        char visimgfile[30] = "visibilities_img.bin";
+        char metafile[30] = "meta.txt";
+
+        // Mesh related files 
 	char outfile[30] = "grid.txt";
 	char outfile1[30] = "coords.txt";
 	char outfile2[30] = "grid_real.bin";
@@ -78,6 +77,7 @@ int main(int argc, char * argv[])
 	char srank[4];
 	char timingfile[30] = "timings.dat";
 
+	// Visibilities related variables
 	double * uu;
 	double * vv;
 	double * ww;
@@ -100,58 +100,74 @@ int main(int argc, char * argv[])
 	double wmax,wmax0;
 	double resolution;
 
-  // MESH SIZE
+        // Mesh related parameters: global size
 	int grid_size_x = 2048;
 	int grid_size_y = 2048;
-	int local_grid_size_x;// = 8;
-	int local_grid_size_y;// = 8;
+	// Split Mesh size (auto-calculated)
+	int local_grid_size_x;
+	int local_grid_size_y;
 	int xaxis;
 	int yaxis;
+
+	// Number of planes in the w direction
 	int num_w_planes = 8;
 
-	// DAV: the corresponding KernelLen is calculated within the wstack function. It can be anyway hardcoded for optimization
+	// Size of the convoutional kernel support
 	int w_support = 7;
-	int num_threads;// = 4;
+
+	// Number of OpenMP threads (input parameter)
+	int num_threads;
+
+        // Resolution 
 	double dx = 1.0/(double)grid_size_x;
 	double dw = 1.0/(double)num_w_planes;
+	// Half support size
 	double w_supporth = (double)((w_support-1)/2)*dx;
 
+	// Internal profiling parameters 
 	clock_t start, end, start0, startk, endk;
 	double setup_time, process_time, mpi_time, fftw_time, tot_time, kernel_time, reduce_time, compose_time, phase_time;
 	double setup_time1, process_time1, mpi_time1, fftw_time1, tot_time1, kernel_time1, reduce_time1, compose_time1, phase_time1;
 	double writetime, writetime1;
-
 	struct timespec begin, finish, begin0, begink, finishk;
 	double elapsed;
-	long nsectors;
-  /* GT get nymber of threads exit if not given */
-  if(argc == 1) {
-    fprintf(stderr, "Usage: %s number_of_OMP_Threads \n", argv[0]);
-    exit(1);
-  }
-  // Set the number of OpenMP threads
-  num_threads = atoi(argv[1]);
-
-  if ( num_threads == 0 )
-  {
-    fprintf(stderr, "Wrong parameter: %s\n\n", argv[1]);
-    fprintf(stderr, "Usage: %s number_of_OMP_Threads \n", argv[0]);
-    exit(1);
-  }
 
+        // Number of sectors in which the mesh is divided along the v direction
+	// IF nsectors < 0, nsectors = NUMBER OF MPI RANKS
+	long nsectors = NUM_OF_SECTORS;
+
+
+        /* Get number of threads, exit if not given */
+        if (argc == 1) {
+          fprintf(stderr, "Usage: %s number_of_OMP_Threads \n", argv[0]);
+          exit(1);
+        }
+        // Set the number of OpenMP threads
+        num_threads = atoi(argv[1]);
+
+        // Number of threads <= 0 not acceptable
+        if (num_threads <= 0) {
+           fprintf(stderr, "Wrong parameter: %s\n\n", argv[1]);
+           fprintf(stderr, "Usage: %s number_of_OMP_Threads \n", argv[0]);
+           exit(1);
+        }
+
+	// Internal profiling
 	clock_gettime(CLOCK_MONOTONIC, &begin0);
 	start0 = clock();
 
-	// Intialize MPI environment
 #ifdef USE_MPI
+	// Intialize MPI environment
 	MPI_Init(&argc,&argv);
 	MPI_Comm_rank(MPI_COMM_WORLD, &rank);
 	MPI_Comm_size(MPI_COMM_WORLD, &size);
 	if(rank == 0)printf("Running with %d MPI tasks\n",size);
   #ifdef USE_FFTW
+	// Initialize FFTW environment
 	fftw_mpi_init();
   #endif
 #else
+	// If MPI is not used the two parameters are set for consistency
 	rank = 0;
 	size = 1;
 #endif
@@ -173,7 +189,6 @@ if(rank == 0){
 
 	// set the local size of the image
 	local_grid_size_x = grid_size_x;
-	nsectors = NUM_OF_SECTORS;
 	if (nsectors < 0) nsectors = size;
 	local_grid_size_y = grid_size_y/nsectors;
 	//nsectors = size;
@@ -185,7 +200,7 @@ if(rank == 0){
 	clock_gettime(CLOCK_MONOTONIC, &begin);
 	start = clock();
 
-	// INPUT FILES (only the first ndatasets entries are used)
+        // INPUT FILES (only the first ndatasets entries are used)
 	int ndatasets = 1;
         //strcpy(datapath_multi[0],"data/newgauss2noconj_t201806301100_SBL180.binMS/");
         //strcpy(datapath_multi[0],"/m100_scratch/userexternal/cgheller/gridding/newgauss4_t201806301100_SBL180.binMS/");