Index: /issm/trunk-jpl/src/c/classes/Elements/Element.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 16911)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 16912)
@@ -19,4 +19,9 @@
 	this->inputs     = NULL;
 	this->nodes      = NULL;
+	this->vertices   = NULL;
+	this->material   = NULL;
+	this->matpar     = NULL;
+	this->inputs     = NULL;
+	this->parameters = NULL;
 }/*}}}*/
 Element::~Element(){/*{{{*/
@@ -48,4 +53,19 @@
 	return false;
 }/*}}}*/
+void Element::DeleteMaterials(void){/*{{{*/
+	delete this->material;
+}/*}}}*/
+void Element::FindParam(bool* pvalue,int paramenum){/*{{{*/
+	this->parameters->FindParam(pvalue,paramenum);
+}/*}}}*/
+void Element::FindParam(int* pvalue,int paramenum){/*{{{*/
+	this->parameters->FindParam(pvalue,paramenum);
+}/*}}}*/
+void Element::FindParam(IssmDouble* pvalue,int paramenum){/*{{{*/
+	this->parameters->FindParam(pvalue,paramenum);
+}/*}}}*/
+void Element::FindParam(int** pvalues,int* psize,int paramenum){/*{{{*/
+	this->parameters->FindParam(pvalues,psize,paramenum);
+}/*}}}*/
 Input* Element::GetInput(int inputenum){/*{{{*/
 	return inputs->GetInput(inputenum);
Index: /issm/trunk-jpl/src/c/classes/Elements/Element.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 16911)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 16912)
@@ -15,13 +15,16 @@
 class DataSet;
 class Parameters;
+class Parameter;
 class Elements;
 class Loads;
+class Nodes;
 class Node;
-class Nodes;
 class Vertices;
+class Vertex;
 class Materials;
+class Material;
 class Matpar;
+class Inputs;
 class Input;
-class Inputs;
 class Gauss;
 class ElementVector;
@@ -35,6 +38,10 @@
 
 	public:
-		Inputs   *inputs;
-		Node    **nodes;
+		Inputs      *inputs;
+		Node       **nodes;
+		Vertex     **vertices;
+		Material    *material;
+		Matpar      *matpar;
+		Parameters  *parameters;
 
 	public: 
@@ -47,27 +54,28 @@
 		bool   AllActive(void);
 		bool   AnyActive(void);
+		void   DeleteMaterials(void);
+		void   FindParam(bool* pvalue,int paramenum);
+		void   FindParam(int* pvalue,int paramenum);
+		void   FindParam(IssmDouble* pvalue,int paramenum);
+		void   FindParam(int** pvalues,int* psize,int paramenum);
 		Input* GetInput(int inputenum);
 
 		/*Virtual functions*/
-		virtual void   AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum)=0;
-		virtual void   AddInput(int input_enum, IssmDouble* values, int interpolation_enum)=0;
-		virtual void   AddMaterialInput(int input_enum, IssmDouble* values, int interpolation_enum)=0;
+		virtual void       AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum)=0;
+		virtual void       AddInput(int input_enum, IssmDouble* values, int interpolation_enum)=0;
+		virtual void       AddMaterialInput(int input_enum, IssmDouble* values, int interpolation_enum)=0;
 		virtual IssmDouble CharacteristicLength(void)=0;
-		virtual void   Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters)=0;
-		virtual void   SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters)=0;
-		virtual void   SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum)=0;
+		virtual void       Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters)=0;
+		virtual void       SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters)=0;
+		virtual void       SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum)=0;
 		virtual ElementMatrix* CreateKMatrix(void)=0;
 		virtual void   CreateDVector(Vector<IssmDouble>* df)=0;
 		virtual ElementVector* CreatePVector(void)=0;
 		virtual void   CreateJacobianMatrix(Matrix<IssmDouble>* Jff)=0;
-		virtual void   DeleteMaterials(void)=0;
 		virtual void   ElementSizes(IssmDouble* phx,IssmDouble* phy,IssmDouble* phz)=0;
 		virtual void   EnthalpyToThermal(IssmDouble* ptemperature,IssmDouble* pwaterfraction,IssmDouble enthalpy,IssmDouble pressure)=0;
 		virtual IssmDouble EnthalpyDiffusionParameter(IssmDouble enthalpy,IssmDouble pressure)=0;
 		virtual IssmDouble EnthalpyDiffusionParameterVolume(int numvertices,IssmDouble* enthalpy,IssmDouble* pressure)=0;
-		virtual void   FindParam(bool* pvalue,int paramenum)=0;
-		virtual void   FindParam(int* pvalue,int paramenum)=0;
-		virtual void   FindParam(IssmDouble* pvalue,int paramenum)=0;
-		virtual void   FindParam(int** pvalues,int* psize,int paramenum)=0;
+
 		virtual int    FiniteElement(void)=0;
 		virtual IssmDouble GetMaterialParameter(int enum_in)=0;
Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 16911)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 16912)
@@ -20,14 +20,4 @@
 
 /*Constructors/destructor/copy*/
-/*FUNCTION Penta::Penta(){{{*/
-Penta::Penta(){
-	this->vertices          = NULL;
-	this->material          = NULL;
-	this->matpar            = NULL;
-	this->verticalneighbors = NULL;
-	this->inputs            = NULL;
-	this->parameters        = NULL;
-}
-/*}}}*/
 /*FUNCTION Penta::~Penta(){{{*/
 Penta::~Penta(){
@@ -856,24 +846,4 @@
 IssmDouble Penta::EnthalpyDiffusionParameterVolume(int numvertices,IssmDouble* enthalpy,IssmDouble* pressure){
 	return matpar->GetEnthalpyDiffusionParameterVolume(numvertices,enthalpy,pressure);
-}
-/*}}}*/
-/*FUNCTION Penta::FindParam(bool* pvalue,int paramenum){{{*/
-void Penta::FindParam(bool* pvalue,int paramenum){
-	this->parameters->FindParam(pvalue,paramenum);
-}
-/*}}}*/
-/*FUNCTION Penta::FindParam(int* pvalue,int paramenum){{{*/
-void Penta::FindParam(int* pvalue,int paramenum){
-	this->parameters->FindParam(pvalue,paramenum);
-}
-/*}}}*/
-/*FUNCTION Penta::FindParam(IssmDouble* pvalue,int paramenum){{{*/
-void Penta::FindParam(IssmDouble* pvalue,int paramenum){
-	this->parameters->FindParam(pvalue,paramenum);
-}
-/*}}}*/
-/*FUNCTION Penta::FindParam(int** pvalues,int* psize,int paramenum){{{*/
-void Penta::FindParam(int** pvalues,int* psize,int paramenum){
-	this->parameters->FindParam(pvalues,psize,paramenum);
 }
 /*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.h	(revision 16911)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.h	(revision 16912)
@@ -32,16 +32,11 @@
 	public:
 
-		int          id;
-		int          sid;
-
-		Vertex     **vertices;                    // 6 vertices
-		Material    *material;                    // 1 material ice
-		Matpar      *matpar;                      // 1 material parameter
+		int id;
+		int sid;
+
 		Penta      **verticalneighbors;           // 2 neighbors: first one under, second one above
 
-		Parameters  *parameters;                  //pointer to solution parameters
-
 		/*Penta constructors and destructor: {{{*/
-		Penta();
+		Penta(){};
 		Penta(int penta_id,int penta_sid,int i, IoModel* iomodel,int nummodels);
 		~Penta();
@@ -72,10 +67,5 @@
 		void   ComputeStressTensor();
 		void   Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters);
-		void   DeleteMaterials(void){_error_("not implemented yet");};
 		void   ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz);
-		void   FindParam(bool* pvalue,int paramenum);
-		void   FindParam(int* pvalue,int paramenum);
-		void   FindParam(IssmDouble* pvalue,int paramenum);
-		void   FindParam(int** pvalues,int* psize,int paramenum);
 		int    FiniteElement(void);
 		void   SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters);
Index: /issm/trunk-jpl/src/c/classes/Elements/Seg.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Seg.cpp	(revision 16911)
+++ /issm/trunk-jpl/src/c/classes/Elements/Seg.cpp	(revision 16912)
@@ -19,13 +19,4 @@
 #define NUMVERTICES 2
 /*Constructors/destructor/copy*/
-/*FUNCTION Seg::Seg(){{{*/
-Seg::Seg(){
-	this->vertices   = NULL;
-	this->material   = NULL;
-	this->matpar     = NULL;
-	this->inputs     = NULL;
-	this->parameters = NULL;
-}
-/*}}}*/
 /*FUNCTION Seg::Seg(int id, int sid,int index, IoModel* iomodel,int nummodels){{{*/
 Seg::Seg(int seg_id, int seg_sid, int index, IoModel* iomodel,int nummodels)
@@ -85,24 +76,4 @@
 }
 /*}}}*/
-/*FUNCTION Seg::FindParam(bool* pvalue,int paramenum){{{*/
-void Seg::FindParam(bool* pvalue,int paramenum){
-	this->parameters->FindParam(pvalue,paramenum);
-}
-/*}}}*/
-/*FUNCTION Seg::FindParam(int* pvalue,int paramenum){{{*/
-void Seg::FindParam(int* pvalue,int paramenum){
-	this->parameters->FindParam(pvalue,paramenum);
-}
-/*}}}*/
-/*FUNCTION Seg::FindParam(IssmDouble* pvalue,int paramenum){{{*/
-void Seg::FindParam(IssmDouble* pvalue,int paramenum){
-	this->parameters->FindParam(pvalue,paramenum);
-}
-/*}}}*/
-/*FUNCTION Seg::FindParam(int** pvalues,int* psize,int paramenum){{{*/
-void Seg::FindParam(int** pvalues,int* psize,int paramenum){
-	this->parameters->FindParam(pvalues,psize,paramenum);
-}
-/*}}}*/
 /*FUNCTION Seg::FiniteElement{{{*/
 int Seg::FiniteElement(void){
@@ -516,9 +487,4 @@
 }
 /*}}}*/
-/*FUNCTION Seg::DeleteMaterials{{{*/
-void Seg::DeleteMaterials(void){
-	delete this->material;
-}
-/*}}}*/
 /*FUNCTION Seg::GetNumberOfNodes;{{{*/
 int Seg::GetNumberOfNodes(void){
Index: /issm/trunk-jpl/src/c/classes/Elements/Seg.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Seg.h	(revision 16911)
+++ /issm/trunk-jpl/src/c/classes/Elements/Seg.h	(revision 16912)
@@ -30,15 +30,9 @@
 	public:
 
-		int          id;
-		int          sid;
-
-		Vertex     **vertices;                    // 3 vertices
-		Material    *material;                    // 1 material ice
-		Matpar      *matpar;                      // 1 material parameter
-
-		Parameters  *parameters;                  //pointer to solution parameters
+		int id;
+		int sid;
 
 		/*Seg constructors, destructors {{{*/
-		Seg();
+		Seg(){};
 		Seg(int seg_id,int seg_sid,int i, IoModel* iomodel,int nummodels);
 		~Seg();
@@ -73,5 +67,4 @@
 		void        ComputeStressTensor(){_error_("not implemented yet");};
 		void        Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters){_error_("not implemented yet");};
-		void        DeleteMaterials(void);
 		void        SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters){_error_("not implemented yet");};
 		void        SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum){_error_("not implemented yet");};
@@ -86,8 +79,4 @@
 		IssmDouble  EnthalpyDiffusionParameter(IssmDouble enthalpy,IssmDouble pressure){_error_("not implemented");};
 		IssmDouble  EnthalpyDiffusionParameterVolume(int numvertices,IssmDouble* enthalpy,IssmDouble* pressure){_error_("not implemented");};
-		void        FindParam(bool* pvalue,int paramenum);
-		void        FindParam(int* pvalue,int paramenum);
-		void        FindParam(IssmDouble* pvalue,int paramenum);
-		void        FindParam(int** pvalues,int* psize,int paramenum);
 		int         FiniteElement(void);
 		Element*    GetBasalElement(void){_error_("not implemented yet");};
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 16911)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 16912)
@@ -24,13 +24,4 @@
 
 /*Constructors/destructor/copy*/
-/*FUNCTION Tria::Tria(){{{*/
-Tria::Tria(){
-	this->vertices   = NULL;
-	this->material   = NULL;
-	this->matpar     = NULL;
-	this->inputs     = NULL;
-	this->parameters = NULL;
-}
-/*}}}*/
 /*FUNCTION Tria::Tria(int id, int sid,int index, IoModel* iomodel,int nummodels){{{*/
 Tria::Tria(int tria_id, int tria_sid, int index, IoModel* iomodel,int nummodels)
@@ -734,9 +725,4 @@
 }
 /*}}}*/
-/*FUNCTION Tria::DeleteMaterials{{{*/
-void Tria::DeleteMaterials(void){
-	delete this->material;
-}
-/*}}}*/
 /*FUNCTION Tria::Delta18oParameterization{{{*/
 void  Tria::Delta18oParameterization(void){
@@ -834,24 +820,4 @@
 	if (inputs) inputs->Echo();
 	else _printf_("inputs=NULL\n");
-}
-/*}}}*/
-/*FUNCTION Tria::FindParam(bool* pvalue,int paramenum){{{*/
-void Tria::FindParam(bool* pvalue,int paramenum){
-	this->parameters->FindParam(pvalue,paramenum);
-}
-/*}}}*/
-/*FUNCTION Tria::FindParam(int* pvalue,int paramenum){{{*/
-void Tria::FindParam(int* pvalue,int paramenum){
-	this->parameters->FindParam(pvalue,paramenum);
-}
-/*}}}*/
-/*FUNCTION Tria::FindParam(IssmDouble* pvalue,int paramenum){{{*/
-void Tria::FindParam(IssmDouble* pvalue,int paramenum){
-	this->parameters->FindParam(pvalue,paramenum);
-}
-/*}}}*/
-/*FUNCTION Tria::FindParam(int** pvalues,int* psize,int paramenum){{{*/
-void Tria::FindParam(int** pvalues,int* psize,int paramenum){
-	this->parameters->FindParam(pvalues,psize,paramenum);
 }
 /*}}}*/
@@ -6286,5 +6252,5 @@
 	/*Get input (either in element or material)*/
 	if(control_enum==MaterialsRheologyBbarEnum || control_enum==DamageDbarEnum){
-		input=(Input*)material->inputs->GetInput(control_enum); _assert_(input);
+		input=(Input*)this->material->inputs->GetInput(control_enum); _assert_(input);
 	}
 	else{
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 16911)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 16912)
@@ -32,15 +32,9 @@
 	public:
 
-		int          id;
-		int          sid;
-
-		Vertex     **vertices;                    // 3 vertices
-		Material    *material;                    // 1 material ice
-		Matpar      *matpar;                      // 1 material parameter
-
-		Parameters  *parameters;                  //pointer to solution parameters
+		int id;
+		int sid;
 
 		/*Tria constructors, destructors {{{*/
-		Tria();
+		Tria(){};
 		Tria(int tria_id,int tria_sid,int i, IoModel* iomodel,int nummodels);
 		~Tria();
@@ -75,12 +69,7 @@
 		void        CreateDVector(Vector<IssmDouble>* df);
 		void        CreateJacobianMatrix(Matrix<IssmDouble>* Jff);
-		void        DeleteMaterials(void);
 		void        Delta18oParameterization(void);
 		void        ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz){_error_("not implemented yet");};
 		void        EnthalpyToThermal(IssmDouble* ptemperature,IssmDouble* pwaterfraction,IssmDouble enthalpy,IssmDouble pressure){_error_("not implemented yet");};
-		void        FindParam(bool* pvalue,int paramenum);
-		void        FindParam(int* pvalue,int paramenum);
-		void        FindParam(IssmDouble* pvalue,int paramenum);
-		void        FindParam(int** pvalues,int* psize,int paramenum);
 		int         FiniteElement(void);
 		Element*    GetBasalElement(void){_error_("not implemented yet");};
