Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 24577)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 24578)
@@ -228,25 +228,5 @@
 void       Penta::DatasetInputCreate(IssmDouble* array,int M,int N,int* individual_enums,int num_inputs,Inputs2* inputs2,IoModel* iomodel,int input_enum){/*{{{*/
 
-	_error_("not implemeted");
-	IssmDouble nodeinputs[NUMVERTICES];
-	if(num_inputs<1) _error_("Cannot create a DatasetInput of size <1");
-	if(M!=iomodel->numberofvertices) _error_("not supported yet");
-	if(N!=num_inputs) _error_("sizes are not consistent");
-
-	int penta_vertex_ids[NUMVERTICES];
-
-	for(int k=0;k<6;k++){
-		penta_vertex_ids[k]=reCast<int>(iomodel->elements[6*this->Sid()+k]); //ids for vertices are in the elements array from Matlab
-	}
-	/*Create inputs and add to DataSetInput*/
-//	DatasetInput* datasetinput=new DatasetInput(input_enum);
-//	for(int i=0;i<num_inputs;i++){
-//		for(int j=0;j<NUMVERTICES;j++)nodeinputs[j]=array[(penta_vertex_ids[j]-1)*N+i];
-//		_error_("not supported");
-//		//datasetinput->AddInput(new PentaInput(input_enum,nodeinputs,P1Enum),individual_enums[i]);
-//	}
-
-	/*Add datasetinput to element inputs*/
-	//this->inputs->AddInput(datasetinput);
+	_error_("Look at Tria :)");
 }
 /*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 24577)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 24578)
@@ -232,24 +232,26 @@
 void       Tria::DatasetInputCreate(IssmDouble* array,int M,int N,int* individual_enums,int num_inputs,Inputs2* inputs2,IoModel* iomodel,int input_enum){/*{{{*/
 
+	/*Intermediaries*/
 	IssmDouble nodeinputs[NUMVERTICES];
-	if(num_inputs<1) _error_("Cannot create a DatasetInput of size <1");
-	if(M!=iomodel->numberofvertices) _error_("not supported yet");
-	if(N!=num_inputs) _error_("sizes are not consistent");
-
-	int  tria_vertex_ids[3];
-
-	for(int k=0;k<3;k++){
-		tria_vertex_ids[k]=reCast<int>(iomodel->elements[3*this->Sid()+k]); //ids for vertices are in the elements array from Matlab
-	}
+	int        vertexlids[NUMVERTICES];
+
+	/*Some sanity checks*/
+	if(num_inputs<1)                 _error_("Cannot create a DatasetInput of size <1");
+	if(M!=iomodel->numberofvertices) _error_("Input size not supported yet");
+	if(N!=num_inputs)                _error_("Sizes are not consistent");
+
+	/*Get indices*/
+	_assert_(iomodel->elements);
+	for(int i=0;i<NUMVERTICES;i++){
+		int vertexid =reCast<int>(iomodel->elements[NUMVERTICES*this->Sid()+i]); //ids for vertices are in the elements array from Matlab
+
+		vertexlids[i]=iomodel->my_vertices_lids[vertexid-1];
+		nodeinputs[i]=array[vertexid*N+i];
+	}
+
 	/*Create inputs and add to DataSetInput*/
-	//DatasetInput* datasetinput=new DatasetInput(input_enum);
 	for(int i=0;i<num_inputs;i++){
-		for(int j=0;j<NUMVERTICES;j++)nodeinputs[j]=array[(tria_vertex_ids[j]-1)*N+i];
-		_error_("not supported");
-		//datasetinput->AddInput(new TriaInput(input_enum,nodeinputs,P1Enum),individual_enums[i]);
-	}
-
-	/*Add datasetinput to element inputs*/
-	//this->inputs->AddInput(datasetinput);
+		this->inputs2->SetTriaDatasetInput(input_enum,individual_enums[i],P1Enum,NUMVERTICES,vertexlids,nodeinputs); break;
+	}
 }
 /*}}}*/
