diff --git a/gridding.c b/gridding.c
index 55660cc087e10d71df5c7f231b07c82d02f986ff..758317749388280f2f09acd60aee4924b3998c09 100644
--- a/gridding.c
+++ b/gridding.c
@@ -36,39 +36,44 @@ void initialize_array(){
 
     histo_send = (long*) calloc(nsectors+1,sizeof(long));
     int * boundary = (int*) calloc(metaData.Nmeasures,sizeof(int));
-    double uuh,vvh;
+    double vvh;
+    
     for (long iphi = 0; iphi < metaData.Nmeasures; iphi++)
-    {
-     	   boundary[iphi] = -1;
-           vvh = data.vv[iphi];  //less or equal to 0.6
-           int binphi = (int)(vvh*nsectors); //has values expect 0 and nsectors-1. So we use updist and downdist condition
-           // check if the point influence also neighboring slabs
-           double updist = (double)((binphi+1)*yaxis)*dx - vvh;
-           double downdist = vvh - (double)(binphi*yaxis)*dx;
-           //
-           histo_send[binphi]++;
-           if(updist < w_supporth && updist >= 0.0) {histo_send[binphi+1]++; boundary[iphi] = binphi+1;};
-           if(downdist < w_supporth && binphi > 0 && downdist >= 0.0) {histo_send[binphi-1]++; boundary[iphi] = binphi-1;};
-    }
+      {
+	boundary[iphi] = -1;
+	vvh = data.vv[iphi];  //less or equal to 0.6
+	int binphi = (int)(vvh*nsectors); //has values expect 0 and nsectors-1. So we use updist and downdist condition
+	// check if the point influence also neighboring slabs
+	double updist = (double)((binphi+1)*yaxis)*dx - vvh;
+	double downdist = vvh - (double)(binphi*yaxis)*dx;
+	//
+	histo_send[binphi]++;
+	if(updist < w_supporth && updist >= 0.0)
+	  {histo_send[binphi+1]++; boundary[iphi] = binphi+1;};
+	if(downdist < w_supporth && binphi > 0 && downdist >= 0.0)
+	  {histo_send[binphi-1]++; boundary[iphi] = binphi-1;};
+      }
 
     sectorarray = (long**)malloc ((nsectors+1) * sizeof(long*));
     for(int sec=0; sec<(nsectors+1); sec++)
-    {
-      	   sectorarray[sec] = (long*)malloc(histo_send[sec]*sizeof(long));
-    }
-
+      {
+	sectorarray[sec] = (long*)malloc(histo_send[sec]*sizeof(long));
+      }
+    
     long *counter = (long*) calloc(nsectors+1,sizeof(long));
     for (long iphi = 0; iphi < metaData.Nmeasures; iphi++)
-    {
-           vvh = data.vv[iphi];
-           int binphi = (int)(vvh*nsectors);
-           double updist = (double)((binphi+1)*yaxis)*dx - vvh;
-           double downdist = vvh - (double)(binphi*yaxis)*dx;
-           sectorarray[binphi][counter[binphi]] = iphi;
-           counter[binphi]++;
-           if(updist < w_supporth && updist >= 0.0) { sectorarray[binphi+1][counter[binphi+1]] = iphi; counter[binphi+1]++;};
-           if(downdist < w_supporth && binphi > 0 && downdist >= 0.0) { sectorarray[binphi-1][counter[binphi-1]] = iphi; counter[binphi-1]++;};
-    }
+      {
+	vvh = data.vv[iphi];
+	int binphi = (int)(vvh*nsectors);
+	double updist = (double)((binphi+1)*yaxis)*dx - vvh;
+	double downdist = vvh - (double)(binphi*yaxis)*dx;
+	sectorarray[binphi][counter[binphi]] = iphi;
+	counter[binphi]++;
+	if(updist < w_supporth && updist >= 0.0)
+	  { sectorarray[binphi+1][counter[binphi+1]] = iphi; counter[binphi+1]++;};
+	if(downdist < w_supporth && binphi > 0 && downdist >= 0.0)
+	  { sectorarray[binphi-1][counter[binphi-1]] = iphi; counter[binphi-1]++;};
+      }
      
   
     #ifdef VERBOSE
@@ -235,11 +240,11 @@ void gridding_data(){
        int target_rank = (int)(isector % size);
        
       #ifdef ONE_SIDE
-       printf("One Side communication active\n");
-    //   MPI_Win_lock(MPI_LOCK_SHARED,target_rank,0,slabwin);
-      // MPI_Accumulate(gridss,size_of_grid,MPI_DOUBLE,target_rank,0,size_of_grid,MPI_DOUBLE,MPI_SUM,slabwin);
-      // MPI_Win_unlock(target_rank,slabwin);
 
+       //   MPI_Win_lock(MPI_LOCK_SHARED,target_rank,0,slabwin);
+       // MPI_Accumulate(gridss,size_of_grid,MPI_DOUBLE,target_rank,0,size_of_grid,MPI_DOUBLE,MPI_SUM,slabwin);
+       // MPI_Win_unlock(target_rank,slabwin);
+       
        // for every task, gridss coincides with the 
        // that can be avoided if shared window coincides with gridss
        memcpy(Me.win.ptr+isector*size_of_grid, gridss, size_of_grid*sizeof(double));
@@ -247,58 +252,59 @@ void gridding_data(){
        
        reduce( isector, target_rank );  // here the reduce is performed within every host 
 
-
-                                  // here thre reduce is performed among hosts
-       MPI_Barrier(MPI_COMM_WORLD);
-       
-       int Im_in_the_new_communicator = MPI_UNDEFINED;
-       if(global_rank == target_rank)
-	 Im_in_the_new_communicator = 1;
-       else
-	 if( Me.Rank[HOSTS] == 0 )
-	   {
-	     if( Me.Ranks_to_host[ target_rank ] != Me.myhost )
-	       Im_in_the_new_communicator = 1;
-	   }
-
-       MPI_Comm Sector_Comm;
-       MPI_Comm_split( COMM[WORLD], Im_in_the_new_communicator, global_rank, &Sector_Comm);
-
-       if( Sector_Comm != MPI_COMM_NULL )
+       if ( Me.Nhosts > 1 )
 	 {
-	   int sector_size;
-	   int sector_rank = 0;
-	   int sector_target;
+	   // here the reduce is performed among hosts
+	   MPI_Barrier(MPI_COMM_WORLD);
 	   
-	   MPI_Comm_size( Sector_Comm, &sector_size);
-	   MPI_Comm_rank( Sector_Comm, &sector_rank);
-	   if ( global_rank == target_rank)
-	     {
-	       MPI_Send( &sector_rank, 1, MPI_INT, 0, 0, Sector_Comm);
-	       memcpy(grid, Me.swins[Me.Rank[myHOST]].ptr+isector*size_of_grid*sizeof(double), size_of_grid * sizeof(double));    
-	     }
+	   int Im_in_the_new_communicator = MPI_UNDEFINED;
+	   if(global_rank == target_rank)
+	     Im_in_the_new_communicator = 1;
+	   else
+	     if( Me.Rank[HOSTS] == 0 )
+	       {
+		 if( Me.Ranks_to_host[ target_rank ] != Me.myhost )
+		   Im_in_the_new_communicator = 1;
+	       }
 	   
-	   if( sector_rank == 0 )
+	   MPI_Comm Sector_Comm;
+	   MPI_Comm_split( COMM[WORLD], Im_in_the_new_communicator, global_rank, &Sector_Comm);
+	   
+	   if( Sector_Comm != MPI_COMM_NULL )
 	     {
-	       MPI_Status status;
-	       MPI_Recv( &sector_target, 1, MPI_INT, MPI_ANY_SOURCE, 0, Sector_Comm, &status);
+	       int sector_size;
+	       int sector_rank = 0;
+	       int sector_target;
+	       
+	       MPI_Comm_size( Sector_Comm, &sector_size);
+	       MPI_Comm_rank( Sector_Comm, &sector_rank);
+	       if ( global_rank == target_rank)
+		 {
+		   MPI_Send( &sector_rank, 1, MPI_INT, 0, 0, Sector_Comm);
+		   memcpy(grid, Me.swins[Me.Rank[myHOST]].ptr+isector*size_of_grid*sizeof(double), size_of_grid * sizeof(double));    
+		 }
+	       
+	       if( sector_rank == 0 )
+		 {
+		   MPI_Status status;
+		   MPI_Recv( &sector_target, 1, MPI_INT, MPI_ANY_SOURCE, 0, Sector_Comm, &status);
+		 }
+	       
+	       MPI_Bcast( &sector_target, 1, MPI_INT, 0, Sector_Comm );
+	       
+	       MPI_Reduce(grid, grid, size_of_grid, MPI_DOUBLE,MPI_SUM, sector_target, Sector_Comm);
+	       
+	       MPI_Comm_free( &Sector_Comm );
 	     }
-		       
-	   MPI_Bcast( &sector_target, 1, MPI_INT, 0, Sector_Comm );
-
-	   MPI_Reduce(grid, grid, size_of_grid, MPI_DOUBLE,MPI_SUM, sector_target, Sector_Comm);
-
-	   MPI_Comm_free( &Sector_Comm );
 	 }
 
        
-       
+      #else   // relates to #ifdef ONE_SIDE
 
-       //MPI_Put(gridss,size_of_grid,MPI_DOUBLE,target_rank,0,size_of_grid,MPI_DOUBLE,slabwin);
-      #else
+       
        MPI_Reduce(gridss,grid,size_of_grid,MPI_DOUBLE,MPI_SUM,target_rank,MPI_COMM_WORLD);
-      #endif //ONE_SIDE
-      #endif //USE_MPI
+      #endif  //  closes #ifdef ONE_SIDE
+      #endif  //  closes USE_MPI
 	       
        clock_gettime(CLOCK_MONOTONIC, &finishk);
        endk = clock();
@@ -430,6 +436,10 @@ void reduce( int sector, int target_rank )
    int local_rank = Me.Rank[myHOST];
 
    if( Me.Ranks_to_host[ target_rank ] == Me.myhost )
+     // exchange rank 0 with target rank
+     // in this way the following log2 alogorithm,
+     // which reduces to rank 0, will work for
+     // every target rank
      {
 
        int r = 0;
diff --git a/init.c b/init.c
index 919e6feb6268ff6b33831c6aea1c3e10eb50201c..8312a3b439f98e8d8c6faed57ded03c89e2e9c99 100644
--- a/init.c
+++ b/init.c
@@ -132,120 +132,120 @@ void read_parameter_file(char *fname)
    {
      if( (file.pFile = fopen (fname,"r")) != NULL )
    	{
-      		char buf1[30], buf2[100], buf3[30], num[30];
-                int i = 1;
-      		while(fscanf(file.pFile, "%s" "%s", buf1, buf2) != EOF)
-      		{
-       			if(strcmp(buf1, "num_threads") == 0)
-        		{
-           			param.num_threads = atoi(buf2);
-        		}
-        		if(strcmp(buf1, "Datapath1") == 0)
-       			{
-            			strcpy(param.datapath_multi[0], buf2);
- 				i++;
-        		}
-        		if(strcmp(buf1, "ndatasets") == 0)
-        		{
-           			param.ndatasets = atoi(buf2);
-        		}
-    			if(strcmp(buf1, "w_support") == 0)
-                        {
-                                param.w_support = atoi(buf2);
-                        }
-			if(strcmp(buf1, "grid_size_x") == 0)
-                        {
-                                param.grid_size_x = atoi(buf2);
-                        }
-			if(strcmp(buf1, "grid_size_y") == 0)
-                        {
-                                param.grid_size_y = atoi(buf2);
-                        }
-			if(strcmp(buf1, "num_w_planes") == 0)
-                        {
-                                param.num_w_planes = atoi(buf2);
-                        }
-        		if(strcmp(buf1, "ufile") == 0)
-        		{
-            			strcpy(in.ufile, buf2);
-        		}
-        		if(strcmp(buf1, "vfile") == 0)
-        		{
-            			strcpy(in.vfile, buf2);
-        		}
-        		if(strcmp(buf1, "wfile") == 0)
-        		{
-            			strcpy(in.wfile, buf2);
-        		}
-        		if(strcmp(buf1, "weightsfile") == 0)
-        		{
-            			strcpy(in.weightsfile, buf2);
-        		}
-        		if(strcmp(buf1, "visrealfile") == 0)
-        		{
-           			 strcpy(in.visrealfile, buf2);
-        		}
-        		if(strcmp(buf1, "visimgfile") == 0)
-        		{
-            			strcpy(in.visimgfile, buf2);
-        		}
-        		if(strcmp(buf1, "metafile") == 0)
-        		{
-            			strcpy(in.metafile, buf2);
-        		}
-			if(strcmp(buf1, "outfile") == 0)
-                        {
-                                strcpy(outparam.outfile, buf2);
-                        }
-                        if(strcmp(buf1, "outfile1") == 0)
-                        {
-                                strcpy(outparam.outfile1, buf2);
-                        }
-                        if(strcmp(buf1, "outfile2") == 0)
-                        {
-                                strcpy(outparam.outfile2, buf2);
-                        }
-                        if(strcmp(buf1, "outfile3") == 0)
-                        {
-                                strcpy(outparam.outfile3, buf2);
-                        }
-                        if(strcmp(buf1, "fftfile") == 0)
-                        {
-                                strcpy(outparam.fftfile, buf2);
-                        }
-                        if(strcmp(buf1, "fftfile2") == 0)
-                        {
-                                strcpy(outparam.fftfile2, buf2);
-                        }
-                        if(strcmp(buf1, "fftfile3") == 0)
-                        {
-                                strcpy(outparam.fftfile3, buf2);
-                        }
-                        if(strcmp(buf1, "logfile") == 0)
-                        {
-                                strcpy(outparam.logfile, buf2);
-                        }
-                        if(strcmp(buf1, "extension") == 0)
-                        {
-                                strcpy(outparam.extension, buf2);
-                        }
-                        if(strcmp(buf1, "timingfile") == 0)
-                        {
-                                strcpy(outparam.timingfile, buf2);
-                        }
-                        if(param.ndatasets > 1)
-                        {
+	  char buf1[30], buf2[100], buf3[30], num[30];
+	  int i = 1;
+	  while(fscanf(file.pFile, "%s" "%s", buf1, buf2) != EOF)
+	    {
+	      if(strcmp(buf1, "num_threads") == 0)
+		{
+		  param.num_threads = atoi(buf2);
+		}
+	      if(strcmp(buf1, "Datapath1") == 0)
+		{
+		  strcpy(param.datapath_multi[0], buf2);
+		  i++;
+		}
+	      if(strcmp(buf1, "ndatasets") == 0)
+		{
+		  param.ndatasets = atoi(buf2);
+		}
+	      if(strcmp(buf1, "w_support") == 0)
+		{
+		  param.w_support = atoi(buf2);
+		}
+	      if(strcmp(buf1, "grid_size_x") == 0)
+		{
+		  param.grid_size_x = atoi(buf2);
+		}
+	      if(strcmp(buf1, "grid_size_y") == 0)
+		{
+		  param.grid_size_y = atoi(buf2);
+		}
+	      if(strcmp(buf1, "num_w_planes") == 0)
+		{
+		  param.num_w_planes = atoi(buf2);
+		}
+	      if(strcmp(buf1, "ufile") == 0)
+		{
+		  strcpy(in.ufile, buf2);
+		}
+	      if(strcmp(buf1, "vfile") == 0)
+		{
+		  strcpy(in.vfile, buf2);
+		}
+	      if(strcmp(buf1, "wfile") == 0)
+		{
+		  strcpy(in.wfile, buf2);
+		}
+	      if(strcmp(buf1, "weightsfile") == 0)
+		{
+		  strcpy(in.weightsfile, buf2);
+		}
+	      if(strcmp(buf1, "visrealfile") == 0)
+		{
+		  strcpy(in.visrealfile, buf2);
+		}
+	      if(strcmp(buf1, "visimgfile") == 0)
+		{
+		  strcpy(in.visimgfile, buf2);
+		}
+	      if(strcmp(buf1, "metafile") == 0)
+		{
+		  strcpy(in.metafile, buf2);
+		}
+	      if(strcmp(buf1, "outfile") == 0)
+		{
+		  strcpy(outparam.outfile, buf2);
+		}
+	      if(strcmp(buf1, "outfile1") == 0)
+		{
+		  strcpy(outparam.outfile1, buf2);
+		}
+	      if(strcmp(buf1, "outfile2") == 0)
+		{
+		  strcpy(outparam.outfile2, buf2);
+		}
+	      if(strcmp(buf1, "outfile3") == 0)
+		{
+		  strcpy(outparam.outfile3, buf2);
+		}
+	      if(strcmp(buf1, "fftfile") == 0)
+		{
+		  strcpy(outparam.fftfile, buf2);
+		}
+	      if(strcmp(buf1, "fftfile2") == 0)
+		{
+		  strcpy(outparam.fftfile2, buf2);
+		}
+	      if(strcmp(buf1, "fftfile3") == 0)
+		{
+		  strcpy(outparam.fftfile3, buf2);
+		}
+	      if(strcmp(buf1, "logfile") == 0)
+		{
+		  strcpy(outparam.logfile, buf2);
+		}
+	      if(strcmp(buf1, "extension") == 0)
+		{
+		  strcpy(outparam.extension, buf2);
+		}
+	      if(strcmp(buf1, "timingfile") == 0)
+		{
+		  strcpy(outparam.timingfile, buf2);
+		}
+	      if(param.ndatasets > 1)
+		{
                    
-                            sprintf(num, "%d", i);
-                            strcat(strcpy(buf3,"Datapath"),num);
-                            if(strcmp(buf1,buf3) == 0)
-                            {
-   				strcpy(param.datapath_multi[i-1], buf2);
-                                i++;
-                            } 
-                        }
-      		}
-      		fclose(file.pFile);
+		  sprintf(num, "%d", i);
+		  strcat(strcpy(buf3,"Datapath"),num);
+		  if(strcmp(buf1,buf3) == 0)
+		    {
+		      strcpy(param.datapath_multi[i-1], buf2);
+		      i++;
+		    } 
+		}
+	    }
+	  fclose(file.pFile);
       
        }
        else
@@ -278,18 +278,20 @@ void readMetaData(char fileLocal[1000]) {
     {
       if( (file.pFile = fopen (fileLocal,"r")) != NULL )
         {
-	  fscanf(file.pFile,"%ld",&metaData.Nmeasures);
-	  fscanf(file.pFile,"%ld",&metaData.Nvis);
-	  fscanf(file.pFile,"%ld",&metaData.freq_per_chan);
-	  fscanf(file.pFile,"%ld",&metaData.polarisations);
-	  fscanf(file.pFile,"%ld",&metaData.Ntimes);
-	  fscanf(file.pFile,"%lf",&metaData.dt);
-	  fscanf(file.pFile,"%lf",&metaData.thours);
-	  fscanf(file.pFile,"%ld",&metaData.baselines);
-	  fscanf(file.pFile,"%lf",&metaData.uvmin);
-	  fscanf(file.pFile,"%lf",&metaData.uvmax);
-	  fscanf(file.pFile,"%lf",&metaData.wmin);
-	  fscanf(file.pFile,"%lf",&metaData.wmax);
+	  int items = 0;
+	  items += fscanf(file.pFile,"%ld",&metaData.Nmeasures);
+	  items += fscanf(file.pFile,"%ld",&metaData.Nvis);
+	  items += fscanf(file.pFile,"%ld",&metaData.freq_per_chan);
+	  items += fscanf(file.pFile,"%ld",&metaData.polarisations);
+	  items += fscanf(file.pFile,"%ld",&metaData.Ntimes);
+	  items += fscanf(file.pFile,"%lf",&metaData.dt);
+	  items += fscanf(file.pFile,"%lf",&metaData.thours);
+	  items += fscanf(file.pFile,"%ld",&metaData.baselines);
+	  items += fscanf(file.pFile,"%lf",&metaData.uvmin);
+	  items += fscanf(file.pFile,"%lf",&metaData.uvmax);
+	  items += fscanf(file.pFile,"%lf",&metaData.wmin);
+	  items += fscanf(file.pFile,"%lf",&metaData.wmax);
+	  
 	  fclose(file.pFile);
         } 
       else
@@ -315,14 +317,15 @@ void metaData_calculation() {
      metaData.Nvis = metaData.Nmeasures*metaData.freq_per_chan*metaData.polarisations;
 
      // calculate the coordinates of the center
+     #warning why it it not used?
      double uvshift = metaData.uvmin/(metaData.uvmax-metaData.uvmin);
 
      if (global_rank == 0)
-     {
-          printf("N. measurements %ld\n",metaData.Nmeasures);
-          printf("N. visibilities %ld\n",metaData.Nvis);
-     }
-
+       {
+	 printf("N. measurements %ld\n",metaData.Nmeasures);
+	 printf("N. visibilities %ld\n",metaData.Nvis);
+       }
+     
      // Set temporary local size of points
      long nm_pe = (long)(metaData.Nmeasures/size);
      long remaining = metaData.Nmeasures%size;
@@ -330,16 +333,14 @@ void metaData_calculation() {
      startrow = global_rank*nm_pe;
      if (global_rank == size-1)nm_pe = nm_pe+remaining;
 
-     long Nmeasures_tot = metaData.Nmeasures;
      metaData.Nmeasures = nm_pe;
-     long Nvis_tot = metaData.Nvis;
      metaData.Nvis = metaData.Nmeasures*metaData.freq_per_chan*metaData.polarisations;
      metaData.Nweights = metaData.Nmeasures*metaData.polarisations;
 
-     #ifdef VERBOSE
-          printf("N. measurements on %d %ld\n",global_rank,metaData.Nmeasures);
-          printf("N. visibilities on %d %ld\n",global_rank,metaData.Nvis);
-     #endif
+    #ifdef VERBOSE
+     printf("N. measurements on %d %ld\n",global_rank,metaData.Nmeasures);
+     printf("N. visibilities on %d %ld\n",global_rank,metaData.Nvis);
+    #endif
 
 }
 
@@ -391,7 +392,9 @@ void readData() {
      if( (file.pFile = fopen (filename,"rb")) != NULL )
      {
           fseek (file.pFile,startrow*sizeof(double),SEEK_SET);
-          fread(data.uu,metaData.Nmeasures*sizeof(double),1,file.pFile);
+          size_t res = fread(data.uu, sizeof(double), metaData.Nmeasures, file.pFile);
+	  if( res != metaData.Nmeasures )
+	    printf("an error occurred while reading file %s\n", filename);
           fclose(file.pFile);
      }
      else
@@ -405,7 +408,10 @@ void readData() {
      if( (file.pFile = fopen (filename,"rb")) != NULL )
      {
           fseek (file.pFile,startrow*sizeof(double),SEEK_SET);
-          fread(data.vv,metaData.Nmeasures*sizeof(double),1,file.pFile);
+          size_t res = fread(data.vv, sizeof(double), metaData.Nmeasures, file.pFile);
+	  if( res != metaData.Nmeasures )
+	    printf("an error occurred while reading file %s\n", filename);
+	      
           fclose(file.pFile);
      }
      else
@@ -419,7 +425,9 @@ void readData() {
      if( (file.pFile = fopen (filename,"rb")) != NULL )
      {
           fseek (file.pFile,startrow*sizeof(double),SEEK_SET);
-          fread(data.ww,metaData.Nmeasures*sizeof(double),1,file.pFile);
+          size_t res = fread(data.ww,sizeof(double), metaData.Nmeasures, file.pFile);
+	  if( res != metaData.Nmeasures )
+	    printf("an error occurred while reading file %s\n", filename);	      
           fclose(file.pFile);
      }
      else
@@ -433,7 +441,9 @@ void readData() {
      if( (file.pFile = fopen (filename,"rb")) != NULL)
      {
           fseek (file.pFile,startrow*metaData.polarisations*sizeof(float),SEEK_SET);
-          fread(data.weights,(metaData.Nweights)*sizeof(float),1,file.pFile);
+          size_t res = fread(data.weights, sizeof(float), metaData.Nweights, file.pFile);
+	  if( res != metaData.Nweights )
+	    printf("an error occurred while reading file %s\n", filename);
           fclose(file.pFile);
      }
      else
@@ -447,7 +457,9 @@ void readData() {
      if((file.pFile = fopen (filename,"rb")) != NULL )
      {
           fseek (file.pFile,startrow*metaData.freq_per_chan*metaData.polarisations*sizeof(float),SEEK_SET);
-          fread(data.visreal,metaData.Nvis*sizeof(float),1,file.pFile);
+          size_t res = fread(data.visreal, sizeof(float), metaData.Nvis, file.pFile);
+	  if( res != metaData.Nvis )
+	    printf("an error occurred while reading file %s\n", filename);
           fclose(file.pFile);
      }
      else
@@ -461,7 +473,9 @@ void readData() {
      if( (file.pFile = fopen (filename,"rb")) != NULL )
      {
           fseek (file.pFile,startrow*metaData.freq_per_chan*metaData.polarisations*sizeof(float),SEEK_SET);
-          fread(data.visimg,metaData.Nvis*sizeof(float),1,file.pFile);
+          size_t res = fread(data.visimg, sizeof(float), metaData.Nvis, file.pFile);
+	  if( res != metaData.Nvis )
+	    printf("an error occurred while reading file %s\n", filename);
           fclose(file.pFile);
      }
      else
diff --git a/w-stacking.cu b/w-stacking.cu
index 4fe36254789fff354e28fb887a5d4bb6c3b37704..a74718808658643b56602666ec5ad2ebbc2f855a 100644
--- a/w-stacking.cu
+++ b/w-stacking.cu
@@ -140,7 +140,7 @@ void wstack(
      int num_threads)
 {
     long i;
-    long index;
+    //long index;
     long visindex;
 
     // initialize the convolution kernel
@@ -242,7 +242,7 @@ void wstack(
 
         visindex = i*freq_per_chan*polarizations;
 
-        double sum = 0.0;
+        //double sum = 0.0;
         int j, k;
 	//if (i%1000 == 0)printf("%ld\n",i);