Index: /issm/trunk/src/c/objects/Loads/Pengrid.cpp
===================================================================
--- /issm/trunk/src/c/objects/Loads/Pengrid.cpp	(revision 5729)
+++ /issm/trunk/src/c/objects/Loads/Pengrid.cpp	(revision 5730)
@@ -443,23 +443,4 @@
 }
 /*}}}*/
-/*FUNCTION Pengrid::GetParameterValue {{{1*/
-void Pengrid::GetParameterValue(double* pvalue,int enumtype){
-
-	/*output: */
-	double value;
-
-	/*dynamic objects pointed to by hooks: */
-	Penta* penta=NULL;
-
-	/*recover objects from hooks: */
-	penta=(Penta*)element;
-
-	/*Get value on Element 1*/
-	penta->GetParameterValue(&value,node,enumtype);
-
-	/*Assign output pointers:*/
-	*pvalue=value;
-}
-/*}}}*/
 /*FUNCTION Pengrid::PenaltyConstrain {{{1*/
 void  Pengrid::PenaltyConstrain(int* punstable){
@@ -502,11 +483,7 @@
 	int    reset_penalties=0;
 	int    stabilize_constraints;
-	GaussPenta* gauss=NULL;
-
-	/*pointers: */
-	Penta* penta=NULL;
 
 	/*recover pointers: */
-	penta=(Penta*)element;
+	Penta* penta=(Penta*)element;
 	
 	/*check that pengrid is not a clone (penalty to be added only once)*/
@@ -518,8 +495,6 @@
 
 	//First recover pressure and temperature values, using the element: */
-	gauss=new GaussPenta();
-	gauss->GaussVertex(penta->GetNodeIndex(node));
-	penta->inputs->GetParameterValue(&pressure,gauss,PressureEnum);
-	penta->inputs->GetParameterValue(&temperature,gauss,TemporaryTemperatureEnum);
+	penta->GetParameterValue(&pressure,node,PressureEnum);
+	penta->GetParameterValue(&temperature,node,TemporaryTemperatureEnum);
 
 	//Recover our data:
@@ -563,7 +538,4 @@
 	//*Assign output pointers:*/
 	*punstable=unstable;
-
-	/*Clean up*/
-	delete gauss;
 }
 /*}}}1*/
@@ -598,6 +570,6 @@
 
 	//recover slope: */
-	this->GetParameterValue(&slope[0],BedSlopeXEnum);
-	this->GetParameterValue(&slope[1],BedSlopeYEnum);
+	penta->inputs->GetParameterValue(&slope[0],BedSlopeXEnum);
+	penta->inputs->GetParameterValue(&slope[1],BedSlopeYEnum);
 	
 	/*recover parameters: */
@@ -628,5 +600,4 @@
 	int*      doflist=NULL;
 	double    meltingpoint;
-	GaussPenta*   gauss=NULL;
 
 	double pressure;
@@ -635,9 +606,6 @@
 	double penalty_offset;
 
-	/*pointers: */
-	Penta* penta=NULL;
-
 	/*recover pointers: */
-	penta=(Penta*)element;
+	Penta* penta=(Penta*)element;
 
 	/*check that pengrid is not a clone (penalty to be added only once)*/
@@ -645,8 +613,6 @@
 
 	//First recover pressure and temperature values, using the element: */
-	gauss=new GaussPenta();
-	gauss->GaussVertex(penta->GetNodeIndex(node));
-	penta->inputs->GetParameterValue(&pressure,gauss,PressureEnum);
-	penta->inputs->GetParameterValue(&temperature,gauss,TemperatureEnum);
+	penta->GetParameterValue(&pressure,node,PressureEnum);
+	penta->GetParameterValue(&temperature,node,TemperatureEnum);
 
 	/*recover parameters: */
@@ -669,5 +635,4 @@
 
 	/*Clean up*/
-	delete gauss;
 	xfree((void**)&doflist);
 }
@@ -720,11 +685,7 @@
 	double t_pmp;
 	double dt,penalty_offset;
-	GaussPenta* gauss=NULL;
-
-	/*pointers: */
-	Penta* penta=NULL;
 
 	/*recover pointers: */
-	penta=(Penta*)element;
+	Penta* penta=(Penta*)element;
 
 	/*check that pengrid is not a clone (penalty to be added only once)*/
@@ -735,8 +696,6 @@
 
 	//First recover pressure and temperature values, using the element: */
-	gauss=new GaussPenta();
-	gauss->GaussVertex(penta->GetNodeIndex(node));
-	penta->inputs->GetParameterValue(&pressure,gauss,PressureEnum);
-	penta->inputs->GetParameterValue(&temperature,gauss,TemperatureEnum);
+	penta->GetParameterValue(&pressure,node,PressureEnum);
+	penta->GetParameterValue(&temperature,node,TemperatureEnum);
 	inputs->GetParameterValue(&melting_offset,MeltingOffsetEnum);
 	parameters->FindParam(&dt,DtEnum);
@@ -771,5 +730,4 @@
 
 	/*Clean up*/
-	delete gauss;
 	xfree((void**)&doflist);
 
@@ -791,11 +749,7 @@
 	double t_pmp;
 	double penalty_offset;
-	GaussPenta* gauss=NULL;
-
-	/*pointers: */
-	Penta* penta=NULL;
 
 	/*recover pointers: */
-	penta=(Penta*)element;
+	Penta* penta=(Penta*)element;
 
 	if(!this->active)return;
@@ -805,7 +759,5 @@
 
 	//First recover pressure  and penalty_offset
-	gauss=new GaussPenta();
-	gauss->GaussVertex(penta->GetNodeIndex(node));
-	penta->inputs->GetParameterValue(&pressure,gauss,PressureEnum);
+	penta->GetParameterValue(&pressure,node,PressureEnum);
 	parameters->FindParam(&penalty_offset,PenaltyOffsetEnum);
 
@@ -822,5 +774,4 @@
 
 	/*Clean up*/
-	delete gauss;
 	xfree((void**)&doflist);
 
Index: /issm/trunk/src/c/objects/Loads/Pengrid.h
===================================================================
--- /issm/trunk/src/c/objects/Loads/Pengrid.h	(revision 5729)
+++ /issm/trunk/src/c/objects/Loads/Pengrid.h	(revision 5730)
@@ -80,5 +80,4 @@
 		void  PenaltyCreateKMatrixDiagnosticStokes(Mat Kgg,double kmax);
 		void  GetDofList(int** pdoflist);
-		void  GetParameterValue(double* pvalue,int enumtype);
 		void  PenaltyCreateKMatrixThermal(Mat Kgg,double kmax);
 		void  PenaltyCreateKMatrixMelting(Mat Kgg,double kmax);
