diff --git a/MDD/mdd.c b/MDD/mdd.c
index 760e7596e25052bfe60af4f711a25e0d38910140..5da9828e8b6ab9b05b834a3cf8fa47dc10351749 100644
--- a/MDD/mdd.c
+++ b/MDD/mdd.c
@@ -431,7 +431,7 @@ int main (int argc, char **argv)
 			hdr[0].ntr = nstationA*nstationB;
 			if (!one_file) {
 				strcpy(filename, file_out);
-				sprintf(number,"Station%03ld\0",jstation+1);
+				sprintf(number,"Station%03ld",jstation+1);
 				name_ext(filename, number);
 				if (verbose>3) fprintf(stderr,"writing to file %s\n", filename);
 				fpout = fopen( filename, "w+" );
diff --git a/fdacrtmc/fdacrtmc.c b/fdacrtmc/fdacrtmc.c
index a574c917568da8f47508c2b5f3726f57b2448662..6d7a087b1ce43dd9640110aca0594023b4543288 100644
--- a/fdacrtmc/fdacrtmc.c
+++ b/fdacrtmc/fdacrtmc.c
@@ -35,6 +35,7 @@ int PlaneWaveDecompositionUpDownRTMImagingCondition(migPar *mig, fftPlansPar *ff
 int initializeFFTwPlans(fftPlansPar* fftPlans);
 int CreateUDPlaneWaveImagingFFTPlans(fftPlansPar *fftPlans,size_t nt,size_t nz);
 int Create1DWavenumberTransformPlans(fftPlansPar *fftPlans,size_t nx,size_t nz);
+int Create2DWavenumberTransformPlan(fftPlansPar *fftPlans,size_t nz,size_t nx);
 int destroyFFTwPlans(fftPlansPar* fftPlans);
 int deallocateCompressionField();
 
diff --git a/fdacrtmc/getParameters.c b/fdacrtmc/getParameters.c
index 514e509b6a624b79a76dd652bc6ffb03111be1e6..62bff0882b082265c9b71c5acaf098517c57b669 100644
--- a/fdacrtmc/getParameters.c
+++ b/fdacrtmc/getParameters.c
@@ -3,6 +3,7 @@
 #include<stdbool.h>
 #include<math.h>
 #include<float.h>
+#include<time.h>
 #include"fdacrtmc.h"
 #include"par.h"
 
@@ -17,6 +18,8 @@ int prepareFDOperators(modPar *mod, bndPar *bnd, decompPar *decomp);
 int setWisdomPath(char *path);
 void printWisdomPath();
 int initFFTW(void);
+int initPML(modPar *mod, bndPar *bnd, int verbose);
+int readRcvCoordinates(modPar *mod, srcPar *rcv, recPar *rec, int verbose);
 
 
 int initializeCompressionField(migPar *mig);
@@ -307,7 +310,7 @@ int getParameters(modPar *mod, srcPar *src, srcPar *rcv, bndPar *bnd, snaPar *sn
 	if(rec->rec)createRcvCoordinates(mod,rcv,rec,*verbose);
 
 	// From File
-	if(rec->file_loc){readRcvCoordinates(mod,rcv,rec,verbose);rec->rec=1;}
+	if(rec->file_loc){readRcvCoordinates(mod,rcv,rec,*verbose);rec->rec=1;}
 
 	/*******************************/
 	/* Read Temporal Sampling Rate */
@@ -646,7 +649,7 @@ if(!getparint("mig_mm",&tmpint))tmpint=0;if(tmpint)mig->mm=true;else mig->mm=fal
 	/******************/
 	/* Initialize PML */
 	/******************/
-	if(bnd->pml) initPML(mod,bnd);
+	if(bnd->pml) initPML(mod,bnd,*verbose);
 
 	/**********************************/
 	/* Dispersion & Stability Factors */
diff --git a/fdacrtmc/mvingAvg.c b/fdacrtmc/mvingAvg.c
index 0d04fa8ae684736a8af860c0549207ff8c8d172d..44cbb651f35c14bb25dbbc2a206d3052bcbf05c5 100644
--- a/fdacrtmc/mvingAvg.c
+++ b/fdacrtmc/mvingAvg.c
@@ -847,7 +847,7 @@ int mvAvg2d9Sgn(size_t n1, size_t n2, float* in, float* out){
  *      Delft University of Technology
  *      21.11.2017
  */
-	float sum[7];
+	float sum[9];
 	size_t i1,i2,j;
 
 	for(i2=0;i2<n2;i2++)out[     i2]=in[     i2]; //Copy Data
@@ -912,7 +912,7 @@ int mvAvg2d9Sgn(size_t n1, size_t n2, float* in, float* out){
 			out[i1*n2+i2]=copysignf(in[i1*n2+i2],sum[0]+sum[1]+sum[2]+sum[3]+sum[4]+sum[5]+sum[6]+sum[7]+sum[8]);i2++;
 		}else continue;
 		if(i2<n2-4){
-			sum[6]==in[(i1-4)*n2+i2+4]+in[(i1-3)*n2+i2+4]+in[(i1-2)*n2+i2+4]+in[(i1-1)*n2+i2+4]+in[i1*n2+i2+4]+in[(i1+1)*n2+i2+4]+in[(i1+2)*n2+i2+4]+in[(i1+3)*n2+i2+4]+in[(i1+4)*n2+i2+4];
+			sum[6]=in[(i1-4)*n2+i2+4]+in[(i1-3)*n2+i2+4]+in[(i1-2)*n2+i2+4]+in[(i1-1)*n2+i2+4]+in[i1*n2+i2+4]+in[(i1+1)*n2+i2+4]+in[(i1+2)*n2+i2+4]+in[(i1+3)*n2+i2+4]+in[(i1+4)*n2+i2+4];
 			out[i1*n2+i2]=copysignf(in[i1*n2+i2],sum[0]+sum[1]+sum[2]+sum[3]+sum[4]+sum[5]+sum[6]+sum[7]+sum[8]);i2++;
 		}
 		out[(i1+1)*n2-4]=in[(i1+1)*n2-4];out[(i1+1)*n2-3]=in[(i1+1)*n2-3];out[(i1+1)*n2-2]=in[(i1+1)*n2-2];out[(i1+1)*n2-1]=in[(i1+1)*n2-1];
diff --git a/fdacrtmc/prepareFDOperators.c b/fdacrtmc/prepareFDOperators.c
index 510c69b1d5253cc051202087e9fc5ac6f98c2aae..803474461be7d9eb84fa2874c4cfdee83db3c544 100644
--- a/fdacrtmc/prepareFDOperators.c
+++ b/fdacrtmc/prepareFDOperators.c
@@ -11,6 +11,11 @@ int mvAvg2d9EmbdSgn(size_t n2, float* in, float* out, size_t s1, size_t s2, size
 int readModelData( modPar *mod,char *filename,float *data);
 int writeModelData(modPar *mod,char* filename,float *data);
 int writesufile(char *filename, float *data, size_t n1, size_t n2, float f1, float f2, float d1, float d2);
+void vwarn(char *fmt, ...);
+int mvAvg2d3(size_t n1, size_t n2, float* in, float* out);
+int mvAvg2d5(size_t n1, size_t n2, float* in, float* out);
+int mvAvg2d7(size_t n1, size_t n2, float* in, float* out);
+int mvAvg2d9(size_t n1, size_t n2, float* in, float* out);
 
 int prepareFDOperators(modPar *mod, bndPar *bnd, decompPar *decomp){
 	float cp2, cs2, cs11, cs12, cs21, cs22, mul, mu, lamda2mu, lamda;
diff --git a/fdacrtmc/readRcvCoordinates.c b/fdacrtmc/readRcvCoordinates.c
index 8db9471bf4ac86205d062dee2d733b86e9021393..4117e6c482ee7865d0cf07d3e1b4ffaf240238a1 100644
--- a/fdacrtmc/readRcvCoordinates.c
+++ b/fdacrtmc/readRcvCoordinates.c
@@ -195,7 +195,7 @@ int readRcvCoordinates(modPar *mod, srcPar *rcv, recPar *rec, int verbose){
 				zTMP[i]     =rcv->z[j];
 				j++;
 			}else if(rcv->ind[j]>arr[k].loc){
-				if(arr[k].ind=(size_t)-1){k++;continue;} //Skip this value!
+				if(arr[k].ind==(size_t)-1){k++;continue;} //Skip this value!
 				locTMP[i]   =arr[k].loc;
 				xiTMP[i]    =xi[arr[k].ind];
 				ziTMP[i]    =zi[arr[k].ind];
@@ -215,7 +215,7 @@ int readRcvCoordinates(modPar *mod, srcPar *rcv, recPar *rec, int verbose){
 					zTMP[i]     =rcv->z[j];
 					j++;
 				}else if((rcv->typ[j]-1)*8+rcv->orient[j]<arr[k].typ){
-					if(arr[k].ind=(size_t)-1){k++;continue;} //Skip this value!
+					if(arr[k].ind==(size_t)-1){k++;continue;} //Skip this value!
 					locTMP[i]   =arr[k].loc;
 					xiTMP[i]    =xi[arr[k].ind];
 					ziTMP[i]    =zi[arr[k].ind];
diff --git a/fdelmodc3D/alloc3D.c b/fdelmodc3D/alloc3D.c
index cda6c8dc5874b4c158f9981295ed733e754593ba..34dae60410e33460ba07ef1200938a71b59d5c9d 100644
--- a/fdelmodc3D/alloc3D.c
+++ b/fdelmodc3D/alloc3D.c
@@ -37,7 +37,7 @@ void ***alloc3float(modPar mod)
         }
 	}
 	else if (mod.nfy==1) { // 2D model
-		fprintf(stderr,"Allocating 2D model ny=%d with nx=%d and nz=%d\n",n3,n2,n1);
+		fprintf(stderr,"Allocating 2D model ny=%ld with nx=%ld and nz=%ld\n",n3,n2,n1);
         if ((p[0][0]=(void*)malloc(n2*n1*size))==NULL) {
             free(p);
             return NULL;
diff --git a/marchenko3D/fmute3D.c b/marchenko3D/fmute3D.c
index 79fbe1cb277ab861259ae44d817a9b1255d6f8f2..56152cf9098553d6db33077e67b9011624cb10d3 100644
--- a/marchenko3D/fmute3D.c
+++ b/marchenko3D/fmute3D.c
@@ -114,8 +114,7 @@ int main (int argc, char **argv)
         tmpdata = (float *)malloc(size*sizeof(float));
         hdrs_in1 = (segy *)calloc(nxmax*nymax,sizeof(segy));
         
-        nx1,ny1 = readData3D(fp_in1, tmpdata, hdrs_in1, nt1);
-        nxy = nx1*ny1;
+        nxy = readData3D(fp_in1, tmpdata, hdrs_in1, nt1);
         if (nxy == 0) {
             fclose(fp_in1);
             if (verbose) vmess("end of file_mute data reached");
@@ -143,8 +142,7 @@ int main (int argc, char **argv)
     else fp_in2=stdin;
     if (fp_in2 == NULL) verr("error on opening input file_shot=%s", file_shot);
     
-    nx2,ny2 = readData3D(fp_in2, tmpdata2, hdrs_in2, nt2);
-    nxy = nx2*ny2;
+    nxy = readData3D(fp_in2, tmpdata2, hdrs_in2, nt2);
     if (nxy == 0) {
         fclose(fp_in2);
         if (verbose) vmess("end of file_shot data reached");
@@ -452,8 +450,7 @@ int main (int argc, char **argv)
 /*================ Read next record for muting ================*/
 
         if (file_mute != NULL) {    
-            nx1, ny1 = readData3D(fp_in1, tmpdata, hdrs_in1, nt1);
-            nxy = nx1*ny1;
+            nxy = readData3D(fp_in1, tmpdata, hdrs_in1, nt1);
             if (nxy == 0) {
                 fclose(fp_in1);
                 if (verbose) vmess("end of file_mute data reached");
@@ -477,8 +474,7 @@ int main (int argc, char **argv)
 
 /*================ Read next shot record(s) ================*/
 
-        nx2,ny2 = readData3D(fp_in2, tmpdata2, hdrs_in2, nt2);
-        nxy = nx2*ny2;
+        nxy = readData3D(fp_in2, tmpdata2, hdrs_in2, nt2);
         if (nxy == 0) {
             if (verbose) vmess("end of file_shot data reached");
             fclose(fp_in2);
diff --git a/marchenko3D/readData3D.c b/marchenko3D/readData3D.c
index 45e827af1fe05806c10cd81d71b7aa6cff5d42b7..bd64d333bcf1bf2db0291eddc82db504046dc7fb 100644
--- a/marchenko3D/readData3D.c
+++ b/marchenko3D/readData3D.c
@@ -50,5 +50,5 @@ long readData3D(FILE *fp, float *data, segy *hdrs, long n1)
 	}
     nx = itrace/ny;
 
-	return nx, ny;
+	return nx*ny;
 }
diff --git a/utils/snap2shot.c b/utils/snap2shot.c
index 18d01081e78b195ff76f541648559d1fbf75be01..227a5762a58e89f7aab7e721618f76348e670c88 100644
--- a/utils/snap2shot.c
+++ b/utils/snap2shot.c
@@ -63,7 +63,7 @@ int main (int argc, char **argv)
     long    nxs, nys, nzs, nts, ntrs, ret, file_det;
 	long	it, ix, iy, iz, ixr, nxr, dnumb, numb, pos, nxmax;
 	long 	nzstart, nzend, dnz;
-	int 	*sx, *sy;
+	int 	*sx, *sy, pf;
 	segy    *hdr_snap, *hdr_rcv;
 
 	initargs(argc, argv);
@@ -85,7 +85,8 @@ int main (int argc, char **argv)
 	ptr  = strstr(file_snap,numb1);
     pos = ptr - file_snap + 1;
 
-    sprintf(fbegin,"%*.*s", pos-1, pos-1, file_snap);
+	pf = pos-1;
+    sprintf(fbegin,"%*.*s", pf, pf, file_snap);
    	sprintf(fend,"%s", file_snap+pos);
 
 	file_det = 1;