Index: /issm/trunk/src/c/objects/Elements/Sing.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Sing.cpp	(revision 3919)
+++ /issm/trunk/src/c/objects/Elements/Sing.cpp	(revision 3920)
@@ -185,4 +185,13 @@
 	printf("   inputs\n");
 	inputs->Echo();
+}
+/*}}}*/
+/*FUNCTION Sing::IsInput{{{1*/
+bool Sing::IsInput(int name){
+	if (name==SurfaceSlopexEnum ||
+				name==SurfaceSlopeyEnum){
+		return true;
+	}
+	else return false;
 }
 /*}}}*/
@@ -551,5 +560,27 @@
 /*FUNCTION Sing::UpdateInputsFromVector(double* vector, int name, int type);{{{1*/
 void  Sing::UpdateInputsFromVector(double* vector, int name, int type){
-	ISSMERROR(" not supported yet!");
+
+	Node*  node=NULL;
+	/*Check that name is an element input*/
+	if (!IsInput(name)) return;
+
+	switch(type){
+
+		case VertexEnum:
+
+			/*New SingVertexInpu*/
+			double value;
+
+			/*Get values on the 6 vertices*/
+			node=(Node*)this->hnodes.delivers();
+			value=vector[node->GetVertexDof()];
+
+			/*update input*/
+			this->inputs->AddInput(new SingVertexInput(name,value));
+			return;
+
+		default:
+			ISSMERROR("type %i (%s) not implemented yet",type,EnumAsString(type));
+	}
 }
 /*}}}*/
Index: /issm/trunk/src/c/objects/Elements/Sing.h
===================================================================
--- /issm/trunk/src/c/objects/Elements/Sing.h	(revision 3919)
+++ /issm/trunk/src/c/objects/Elements/Sing.h	(revision 3920)
@@ -26,5 +26,5 @@
 		int id;
 
-		Hook hnodes;  //hook to 2 nodes
+		Hook hnodes;  //hook to 1 nodes
 		Hook hmatice; //hook to 1 matice
 		Hook hmatpar; //hook to 1 matpar
@@ -48,4 +48,5 @@
 		int   Enum();
 		int   Id(); 
+		bool  IsInput(int name);
 		void  Marshall(char** pmarshalled_dataset);
 		int   MarshallSize();
@@ -55,11 +56,11 @@
 		void  UpdateInputsFromVector(int* vector, int name, int type);
 		void  UpdateInputsFromVector(bool* vector, int name, int type);
-		void    UpdateInputsFromConstant(double constant, int name){ISSMERROR("Not implemented yet!");}
-		void    UpdateInputsFromConstant(int constant, int name){ISSMERROR("Not implemented yet!");}
-		void    UpdateInputsFromConstant(bool constant, int name){ISSMERROR("Not implemented yet!");}
+		void  UpdateInputsFromConstant(double constant, int name){ISSMERROR("Not implemented yet!");}
+		void  UpdateInputsFromConstant(int constant, int name){ISSMERROR("Not implemented yet!");}
+		void  UpdateInputsFromConstant(bool constant, int name){ISSMERROR("Not implemented yet!");}
 
 		void  UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type);
 
-		void   DepthAverageInputAtBase(int enum_type){ISSMERROR("not implemented yet");};
+		void  DepthAverageInputAtBase(int enum_type){ISSMERROR("not implemented yet");};
 		/*}}}*/
 		/*numerics: {{{1*/
Index: /issm/trunk/src/c/objects/Elements/Tria.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Tria.cpp	(revision 3919)
+++ /issm/trunk/src/c/objects/Elements/Tria.cpp	(revision 3920)
@@ -300,4 +300,13 @@
 void Tria::Echo(void){
 	this->DeepEcho();
+}
+/*}}}*/
+/*FUNCTION Tria::IsInput{{{1*/
+bool Tria::IsInput(int name){
+	if (name==SurfaceSlopexEnum ||
+				name==SurfaceSlopeyEnum){
+		return true;
+	}
+	else return false;
 }
 /*}}}*/
@@ -4666,5 +4675,28 @@
 /*FUNCTION Tria::UpdateInputsFromVector(double* vector, int name, int type);{{{1*/
 void  Tria::UpdateInputsFromVector(double* vector, int name, int type){
-	ISSMERROR(" not supported yet!");
+
+	/*Check that name is an element input*/
+	if (!IsInput(name)) return;
+
+	switch(type){
+
+		case VertexEnum:
+
+			/*New PentaVertexInpu*/
+			double values[3];
+
+			/*Get values on the 6 vertices*/
+			for (int i=0;i<3;i++){
+				values[i]=vector[this->nodes[i]->GetVertexDof()];
+			}
+
+			/*update input*/
+			this->inputs->AddInput(new TriaVertexInput(name,values));
+			return;
+
+		default:
+
+			ISSMERROR("type %i (%s) not implemented yet",type,EnumAsString(type));
+	}
 }
 /*}}}*/
Index: /issm/trunk/src/c/objects/Elements/Tria.h
===================================================================
--- /issm/trunk/src/c/objects/Elements/Tria.h	(revision 3919)
+++ /issm/trunk/src/c/objects/Elements/Tria.h	(revision 3920)
@@ -48,4 +48,5 @@
 		int   Enum();
 		int   Id(); 
+		bool  IsInput(int name);
 		void  Marshall(char** pmarshalled_dataset);
 		int   MarshallSize();
Index: /issm/trunk/src/c/objects/Inputs/SingVertexInput.cpp
===================================================================
--- /issm/trunk/src/c/objects/Inputs/SingVertexInput.cpp	(revision 3919)
+++ /issm/trunk/src/c/objects/Inputs/SingVertexInput.cpp	(revision 3920)
@@ -145,5 +145,7 @@
 /*}}}*/
 /*FUNCTION SingVertexInput::GetParameterValue(double* pvalue){{{1*/
-void SingVertexInput::GetParameterValue(double* pvalue){ISSMERROR(" not supported yet!");}
+void SingVertexInput::GetParameterValue(double* pvalue){
+	*pvalue=value;
+}
 /*}}}*/
 /*FUNCTION SingVertexInput::GetParameterValue(double* pvalue,Node* node){{{1*/
