Index: /issm/trunk-jpl/src/c/Makefile.am
===================================================================
--- /issm/trunk-jpl/src/c/Makefile.am	(revision 18124)
+++ /issm/trunk-jpl/src/c/Makefile.am	(revision 18125)
@@ -175,4 +175,5 @@
 					./shared/shared.h\
 					./shared/MemOps/MemOps.h\
+					./shared/MemOps/MemOps.cpp\
 					./shared/Matrix/matrix.h\
 					./shared/Matrix/MatrixUtils.cpp\
@@ -203,4 +204,5 @@
 					./shared/Numerics/cross.cpp\
 					./shared/Numerics/isnan.h\
+					./shared/Numerics/isnan.cpp\
 					./shared/Numerics/cubic.cpp\
 					./shared/Numerics/NewtonSolveDnorm.cpp\
Index: /issm/trunk-jpl/src/c/shared/MemOps/MemOps.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/MemOps/MemOps.cpp	(revision 18125)
+++ /issm/trunk-jpl/src/c/shared/MemOps/MemOps.cpp	(revision 18125)
@@ -0,0 +1,23 @@
+/*
+ * MemOps.cpp
+ *
+ *  Created on: Sep 10, 2013
+ *      Author: utke
+ */
+
+#ifdef HAVE_CONFIG_H
+   #include <config.h>
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include "MemOps.h"
+
+#if defined(_HAVE_ADOLC_) && !defined(_WRAPPERS_)
+template <> adouble*  xNew(unsigned int size) {
+	ensureContiguousLocations(size);
+	adouble* aT_p=new adouble[size];
+	assert(aT_p);
+	return aT_p;
+}
+#endif
Index: /issm/trunk-jpl/src/c/shared/MemOps/MemOps.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/MemOps/MemOps.h	(revision 18124)
+++ /issm/trunk-jpl/src/c/shared/MemOps/MemOps.h	(revision 18125)
@@ -144,10 +144,5 @@
 #if defined(_HAVE_ADOLC_) && !defined(_WRAPPERS_)
 #include "../Numerics/types.h"
-template <> adouble*  xNew(unsigned int size) {
-	ensureContiguousLocations(size);
-	adouble* aT_p=new adouble[size];
-	assert(aT_p);
-	return aT_p;
-}
+template <> adouble*  xNew(unsigned int size);
 #endif
 
Index: /issm/trunk-jpl/src/c/shared/Numerics/isnan.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Numerics/isnan.cpp	(revision 18125)
+++ /issm/trunk-jpl/src/c/shared/Numerics/isnan.cpp	(revision 18125)
@@ -0,0 +1,15 @@
+/*This routine only used by Intel compler: */
+
+#ifdef HAVE_CONFIG_H
+   #include <config.h>
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include "isnan.h"
+
+#if defined(_HAVE_ADOLC_) && !defined(_WRAPPERS_)
+template <> int xIsNan<adouble> (const adouble& X){
+  return isnan(X.getValue());
+}
+#endif
Index: /issm/trunk-jpl/src/c/shared/Numerics/isnan.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Numerics/isnan.h	(revision 18124)
+++ /issm/trunk-jpl/src/c/shared/Numerics/isnan.h	(revision 18125)
@@ -25,7 +25,5 @@
 #if defined(_HAVE_ADOLC_) && !defined(_WRAPPERS_)
 #include "./types.h"
-template <> int xIsNan<adouble> (const adouble& X){
-  return isnan(X.getValue());
-}
+template <> int xIsNan<adouble> (const adouble& X);
 #endif
 
