Index: /issm/trunk-jpl/src/c/classes/Node.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Node.cpp	(revision 15037)
+++ /issm/trunk-jpl/src/c/classes/Node.cpp	(revision 15038)
@@ -18,7 +18,7 @@
 /*FUNCTION Node::Node() default constructor {{{*/
 Node::Node(){
-		 this->inputs=NULL;
-		 this->hvertex=NULL;
-		 return;
+	this->approximation=0;
+	this->inputs=NULL;
+	this->hvertex=NULL;
 }
 /*}}}*/
@@ -49,4 +49,9 @@
 	/*Hooks*/
 	this->hvertex=new Hook(&vertex_id,1); //node id is the same as the vertex id, continuous galerkin!
+
+	if (analysis_type==DiagnosticHorizAnalysisEnum)
+	 this->approximation=reCast<int>(iomodel->Data(FlowequationVertexEquationEnum)[io_index]);
+	else
+	 this->approximation=0;
 
 	//intialize inputs, and add as many inputs per element as requested: 
@@ -57,5 +62,5 @@
 	  this->inputs->AddInput(new BoolInput(MaskVertexongroundediceEnum,reCast<bool>(iomodel->Data(MaskVertexongroundediceEnum)[io_index])));
 	if (analysis_type==DiagnosticHorizAnalysisEnum)
-	 this->inputs->AddInput(new IntInput(ApproximationEnum,reCast<IssmInt>(iomodel->Data(FlowequationVertexEquationEnum)[io_index])));
+	 this->approximation=reCast<int>(iomodel->Data(FlowequationVertexEquationEnum)[io_index]);
 	/*set single point constraints: */
 
@@ -525,9 +530,4 @@
 /*FUNCTION Node::GetApproximation {{{*/
 int   Node::GetApproximation(){
-
-	int approximation;
-
-	/*recover parameters: */
-	inputs->GetInputValue(&approximation,ApproximationEnum);
 
 	return approximation;
Index: /issm/trunk-jpl/src/c/classes/Node.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Node.h	(revision 15037)
+++ /issm/trunk-jpl/src/c/classes/Node.h	(revision 15038)
@@ -24,4 +24,7 @@
 
 class Node: public Object ,public Update{
+
+	private:
+		int approximation; //For ice flow models, we need to know what ice flow approximation is employed on this node
 
 	public: 
