Index: /issm/trunk/src/c/AverageFilterx/AverageFilterx.cpp
===================================================================
--- /issm/trunk/src/c/AverageFilterx/AverageFilterx.cpp	(revision 2776)
+++ /issm/trunk/src/c/AverageFilterx/AverageFilterx.cpp	(revision 2776)
@@ -0,0 +1,44 @@
+/*!\file:  AverageFilterx.cpp
+ * \brief  plug missing values of a double* array, using interpolation techniques. This 
+ * is an adaptation of Dr. Crippen's routine (Jet Propulsion Lab, see AverageFilterCrippen.c
+ * for more details.
+ */ 
+
+#include "./AverageFilterx.h"
+
+#include <stdio.h>
+#include <time.h>
+#include "../shared/shared.h"
+
+int AverageFilterx(double** pimageout,double* image, int lines,int samps,int smooth){
+	
+	double      temp;
+	int         numvalues;
+	long			i, j;
+	int         pix1, pix2;
+
+	/*output: */
+	double*         imageout=NULL;
+
+	imageout=(double*)xmalloc(samps*lines*sizeof(double));
+
+  	for ( i = 0; i < lines; i++ ){
+  		for ( j = 0; j < samps; j++ ){
+			temp=0;
+			numvalues=0;
+			for ( pix1 = -smooth; pix1 < smooth+1; pix1++ ){
+				for ( pix2 = -smooth; pix2 < smooth+1; pix2++ ){
+					if( i+pix1 < 0 || i+pix1 > lines-1 || j+pix2 < 0 || j+pix2 > samps-1) continue;
+					numvalues=numvalues+1;
+					temp=temp+*(image+samps*(i+pix1)+j+pix2);
+				}
+			}
+			*(imageout+samps*(i)+j)=temp/numvalues;
+		}
+	}
+
+	/*Assign output pointers: */
+	*pimageout=imageout;
+
+	return 1;
+}
Index: /issm/trunk/src/c/AverageFilterx/AverageFilterx.h
===================================================================
--- /issm/trunk/src/c/AverageFilterx/AverageFilterx.h	(revision 2776)
+++ /issm/trunk/src/c/AverageFilterx/AverageFilterx.h	(revision 2776)
@@ -0,0 +1,19 @@
+/*
+	AverageFilterx.h
+*/
+
+
+#ifndef AVERAGEFILTERX_H
+#define AVERAGEFILTERX_H
+
+//#define _DEBUG_
+//#define _DEBUG2_
+
+#undef __FUNCT__ 
+#define __FUNCT__ "AverageFilterx"
+
+/* local prototypes: */
+int AverageFilterx(double** pimageout,double* imagein, int lines,int samp,int smooth);
+	
+#endif /* AVERAGEFILTERX_H */
+
Index: /issm/trunk/src/c/Makefile.am
===================================================================
--- /issm/trunk/src/c/Makefile.am	(revision 2775)
+++ /issm/trunk/src/c/Makefile.am	(revision 2776)
@@ -268,4 +268,6 @@
 					./HoleFillerx/HoleFillerx.cpp\
 					./HoleFillerx/HoleFillerx.h\
+					./AverageFilterx/AverageFilterx.cpp\
+					./AverageFilterx/AverageFilterx.h\
 					./MeshPartitionx/MeshPartitionx.cpp\
 					./MeshPartitionx/MeshPartitionx.h\
@@ -594,4 +596,6 @@
 					./HoleFillerx/HoleFillerx.cpp\
 					./HoleFillerx/HoleFillerx.h\
+					./AverageFilterx/AverageFilterx.cpp\
+					./AverageFilterx/AverageFilterx.h\
 					./MeshPartitionx/MeshPartitionx.cpp\
 					./MeshPartitionx/MeshPartitionx.h\
Index: /issm/trunk/src/c/issm.h
===================================================================
--- /issm/trunk/src/c/issm.h	(revision 2775)
+++ /issm/trunk/src/c/issm.h	(revision 2776)
@@ -31,4 +31,5 @@
 #include "./InterpFromMeshToGridx/InterpFromMeshToGridx.h"
 #include "./HoleFillerx/HoleFillerx.h"
+#include "./AverageFilterx/AverageFilterx.h"
 #include "./MeshPartitionx/MeshPartitionx.h"
 #include "./BuildNodeSetsx/BuildNodeSetsx.h"
