Index: ../trunk-jpl/src/c/classes/Elements/TriaRef.cpp
===================================================================
--- ../trunk-jpl/src/c/classes/Elements/TriaRef.cpp	(revision 20514)
+++ ../trunk-jpl/src/c/classes/Elements/TriaRef.cpp	(revision 20515)
@@ -196,7 +196,7 @@
 	int numnodes = this->NumberofNodes(finiteelement);
 
 	/*Get nodal functions derivatives in reference triangle*/
-	IssmDouble* dbasis_ref=xNew<IssmDouble>(2*numnodes);
+	IssmDouble dbasis_ref[2*NUMNODESMAX];
 	GetNodalFunctionsDerivativesReference(dbasis_ref,gauss,finiteelement); 
 
 	/*Get Jacobian invert: */
@@ -211,9 +211,6 @@
 		dbasis[numnodes*1+i] = Jinv[1][0]*dbasis_ref[0*numnodes+i]+Jinv[1][1]*dbasis_ref[1*numnodes+i];
 	}
 
-	/*Clean up*/
-	xDelete<IssmDouble>(dbasis_ref);
-
 }
 /*}}}*/
 void TriaRef::GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss* gauss_in,int finiteelement){/*{{{*/
Index: ../trunk-jpl/src/c/classes/Elements/PentaRef.cpp
===================================================================
--- ../trunk-jpl/src/c/classes/Elements/PentaRef.cpp	(revision 20514)
+++ ../trunk-jpl/src/c/classes/Elements/PentaRef.cpp	(revision 20515)
@@ -442,7 +442,7 @@
 	int numnodes = this->NumberofNodes(finiteelement);
 
 	/*Get nodal functions derivatives in reference triangle*/
-	IssmDouble* dbasis_ref=xNew<IssmDouble>(3*numnodes);
+	IssmDouble dbasis_ref[3*NUMNODESMAX];
 	GetNodalFunctionsDerivativesReference(dbasis_ref,gauss,finiteelement);
 
 	/*Get Jacobian invert: */
@@ -460,9 +460,6 @@
 		dbasis[numnodes*1+i]=Jinv[1][0]*dbasis_ref[0*numnodes+i]+Jinv[1][1]*dbasis_ref[1*numnodes+i]+Jinv[1][2]*dbasis_ref[2*numnodes+i];
 		dbasis[numnodes*2+i]=Jinv[2][0]*dbasis_ref[0*numnodes+i]+Jinv[2][1]*dbasis_ref[1*numnodes+i]+Jinv[2][2]*dbasis_ref[2*numnodes+i];
 	}
-
-	/*Clean up*/
-	xDelete<IssmDouble>(dbasis_ref);
 }
 /*}}}*/
 void PentaRef::GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss* gauss_in,int finiteelement){/*{{{*/
Index: ../trunk-jpl/src/c/classes/Elements/SegRef.cpp
===================================================================
--- ../trunk-jpl/src/c/classes/Elements/SegRef.cpp	(revision 20514)
+++ ../trunk-jpl/src/c/classes/Elements/SegRef.cpp	(revision 20515)
@@ -145,7 +145,7 @@
 	int numnodes = this->NumberofNodes(finiteelement);
 
 	/*Get nodal functions derivatives in reference triangle*/
-	IssmDouble* dbasis_ref=xNew<IssmDouble>(numnodes);
+	IssmDouble dbasis_ref[1*NUMNODESMAX];
 	GetNodalFunctionsDerivativesReference(dbasis_ref,gauss,finiteelement); 
 
 	/*Get Jacobian invert: */
@@ -157,10 +157,6 @@
 	for(int i=0;i<numnodes;i++){
 		dbasis[i] = Jinv*dbasis_ref[i];
 	}
-
-	/*Clean up*/
-	xDelete<IssmDouble>(dbasis_ref);
-
 }
 /*}}}*/
 void SegRef::GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,GaussSeg* gauss,int finiteelement){/*{{{*/
Index: ../trunk-jpl/src/c/classes/Elements/TetraRef.cpp
===================================================================
--- ../trunk-jpl/src/c/classes/Elements/TetraRef.cpp	(revision 20514)
+++ ../trunk-jpl/src/c/classes/Elements/TetraRef.cpp	(revision 20515)
@@ -224,7 +224,7 @@
 	int numnodes = this->NumberofNodes(finiteelement);
 
 	/*Get nodal functions derivatives in reference triangle*/
-	IssmDouble* dbasis_ref=xNew<IssmDouble>(3*numnodes);
+	IssmDouble dbasis_ref[3*NUMNODESMAX];
 	GetNodalFunctionsDerivativesReference(dbasis_ref,gauss,finiteelement); 
 
 	/*Get Jacobian invert: */
@@ -242,9 +242,6 @@
 		dbasis[numnodes*1+i]=Jinv[1][0]*dbasis_ref[0*numnodes+i]+Jinv[1][1]*dbasis_ref[1*numnodes+i]+Jinv[1][2]*dbasis_ref[2*numnodes+i];
 		dbasis[numnodes*2+i]=Jinv[2][0]*dbasis_ref[0*numnodes+i]+Jinv[2][1]*dbasis_ref[1*numnodes+i]+Jinv[2][2]*dbasis_ref[2*numnodes+i];
 	}
-
-	/*Clean up*/
-	xDelete<IssmDouble>(dbasis_ref);
 }
 /*}}}*/
 void TetraRef::GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,GaussTetra* gauss,int finiteelement){/*{{{*/
