Index: /issm/trunk-jpl/src/c/classes/Elements/Element.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 21872)
@@ -216,5 +216,4 @@
 		virtual int        GetNumberOfVertices(void)=0;
 		virtual void       GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution,int solutionenum)=0;
-		virtual Element*   GetUpperElement(void)=0;
 		virtual void       GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid)=0;
 		virtual void       GetVerticesCoordinatesBase(IssmDouble** xyz_list)=0;
Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 21872)
@@ -1127,31 +1127,4 @@
 }
 /*}}}*/
-Penta*     Penta::GetSurfacePenta(void){/*{{{*/
-
-	/*Output*/
-	Penta* penta=NULL;
-
-	/*Go through all pentas till the surface is reached*/
-	penta=this;
-	for(;;){
-		/*Stop if we have reached the surface, else, take upper penta*/
-		if (penta->IsOnSurface()) break;
-
-		/* get upper Penta*/
-		penta=penta->GetUpperPenta();
-		_assert_(penta->Id()!=this->id);
-	}
-
-	/*return output*/
-	return penta;
-}
-/*}}}*/
-Element*   Penta::GetUpperElement(void){/*{{{*/
-
-	/*Output*/
-	Element* upper_element=this->GetUpperPenta();
-	return upper_element;
-}
-/*}}}*/
 Penta*     Penta::GetUpperPenta(void){/*{{{*/
 
@@ -1320,100 +1293,67 @@
 }
 /*}}}*/
-void       Penta::InputDepthAverageAtBase(int enum_type,int average_enum_type){/*{{{*/
-
-	int  step,i;
+void       Penta::InputDepthAverageAtBase(int original_enum,int average_enum){/*{{{*/
+
+	IssmDouble  Jdet,value;
 	IssmDouble  xyz_list[NUMVERTICES][3];
-	IssmDouble  Helem_list[NUMVERTICES];
-	IssmDouble  zeros_list[NUMVERTICES]={0.0};
-	IssmDouble  p0top1_list[NUMVERTICES];
-	Penta* penta=NULL;
-	Input* original_input=NULL;
-	Input* element_integrated_input=NULL;
-	Input* total_integrated_input=NULL;
-	Input* element_thickness_input=NULL;
-	Input* total_thickness_input=NULL;
-	Input* depth_averaged_input=NULL;
-
-	/*recover parameters: */
+	IssmDouble  xyz_list_line[2][3];
+	IssmDouble  total[NUMVERTICES]       = {0.};
+	IssmDouble  intz[NUMVERTICES]        = {0.};
+	Input      *original_input           = NULL;
+	Input      *depth_averaged_input     = NULL;
 
 	/*Are we on the base? If not, return*/
 	if(!IsOnBase()) return;
 
-	/*OK, we are on bed. Initialize global inputs as 0*/
-	total_thickness_input =new PentaInput(ThicknessEnum,zeros_list,P1Enum);
-
 	/*Now follow all the upper element from the base to the surface to integrate the input*/
-	penta=this;
-	step =0;
+	Penta* penta = this;
+	int    step  = 0;
 	for(;;){
 
-		/*Step1: Get original input (to be depth avegaged): */
-		original_input=(Input*)penta->inputs->GetInput(enum_type);
-		if(!original_input) _error_("could not find input with enum " << EnumToStringx(enum_type));
-
-		/*If first time, initialize total_integrated_input*/
-		if (step==0){
-			if (original_input->ObjectEnum()==PentaInputEnum)
-			 total_integrated_input=new PentaInput(average_enum_type,zeros_list,P1Enum);
-			else if (original_input->ObjectEnum()==ControlInputEnum)
-			 total_integrated_input=new PentaInput(average_enum_type,zeros_list,P1Enum);
-			else if (original_input->ObjectEnum()==DoubleInputEnum)
-			 total_integrated_input=new DoubleInput(average_enum_type,0.0);
-			else{
-			 _error_("object " << EnumToStringx(original_input->ObjectEnum()) << " not supported yet");
-			}
-		}
+		/*Step1: Get original input (to be depth-avegaged): */
+		original_input=(Input*)penta->inputs->GetInput(original_enum);
+		if(!original_input) _error_("could not find input with enum " << EnumToStringx(original_enum));
 
 		/*Step2: Create element thickness input*/
 		::GetVerticesCoordinates(&xyz_list[0][0],penta->vertices,NUMVERTICES);
-		for(i=0;i<3;i++){
-			Helem_list[i]=xyz_list[i+3][2]-xyz_list[i][2];
-			Helem_list[i+3]=Helem_list[i];
-		}
-		element_thickness_input=new PentaInput(ThicknessEnum,Helem_list,P1Enum);
-
-		/*Step3: Vertically integrate A COPY of the original*/
-		if(original_input->ObjectEnum()==PentaInputEnum){
-			if(((PentaInput*)original_input)->interpolation_type==P0Enum){
-				original_input->GetInputValue(&p0top1_list[i]);
-				element_integrated_input= new  PentaInput(original_input->InstanceEnum(),p0top1_list,P1Enum);
-				element_integrated_input->VerticallyIntegrate(element_thickness_input);
+		for(int iv=0;iv<3;iv++){
+			/*Get segment length*/
+			for(int i=0;i<3;i++){
+				xyz_list_line[0][i]=xyz_list[iv][i];
+				xyz_list_line[1][i]=xyz_list[iv+3][i];
 			}
-			else{
-				element_integrated_input= (Input*)original_input->copy();
-				element_integrated_input->VerticallyIntegrate(element_thickness_input);
+			/*Integrate over edge*/
+			Gauss* gauss=penta->NewGaussLine(iv,iv+3,3);
+			for(int ig=gauss->begin();ig<gauss->end();ig++){
+				gauss->GaussPoint(ig);
+				penta->JacobianDeterminantLine(&Jdet,&xyz_list_line[0][0],gauss);
+				original_input->GetInputValue(&value,gauss);
+				total[iv] += value*Jdet*gauss->weight;
+				intz[iv]  += Jdet*gauss->weight;
 			}
-		}
-		else{
-			element_integrated_input= (Input*)original_input->copy();
-			element_integrated_input->VerticallyIntegrate(element_thickness_input);
-		}
-
-		/*Add contributions to global inputs*/
-		total_integrated_input->AXPY(element_integrated_input,1.0);
-		total_thickness_input ->AXPY(element_thickness_input,1.0);
-
-		/*Clean up*/
-		delete element_thickness_input;
-		delete element_integrated_input;
+			delete gauss;
+		}
 
 		/*Stop if we have reached the surface, else, take upper penta*/
-		if (penta->IsOnSurface()) break;
+		if(penta->IsOnSurface()) break;
 
 		/* get upper Penta*/
-		penta=penta->GetUpperPenta();
-		_assert_(penta->Id()!=this->id);
-
-		/*increase couter*/
+		penta=penta->GetUpperPenta(); _assert_(penta->Id()!=this->id);
 		step++;
 	}
 
-	/*OK, now we only need to divide the depth integrated input by the total thickness!*/
-	depth_averaged_input=total_integrated_input->PointwiseDivide(total_thickness_input);
-	depth_averaged_input->ChangeEnum(average_enum_type);
-
-	/*Clean up*/
-	delete total_thickness_input;
-	delete total_integrated_input;
+	/*Now we only need to divide the depth integrated input by the total thickness!*/
+	for(int iv=0;iv<3;iv++){
+		total[iv  ] = total[iv]/intz[iv];
+		total[iv+3] = total[iv];
+	}
+	switch(original_input->ObjectEnum()){
+		case PentaInputEnum:
+		case ControlInputEnum:
+			depth_averaged_input=new PentaInput(average_enum,&total[0],P1Enum); 
+			break;
+		default:
+			_error_("Interpolation " << EnumToStringx(original_input->ObjectEnum()) << " not supported yet");
+	}
 
 	/*Finally, add to inputs*/
Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.h	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.h	(revision 21872)
@@ -85,6 +85,4 @@
 		Penta*         GetLowerPenta(void);
 		void           GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution,int enum_type);
-		Penta*         GetSurfacePenta(void);
-		Element*       GetUpperElement(void);
 		Penta*         GetUpperPenta(void);
 		void           GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid);
Index: /issm/trunk-jpl/src/c/classes/Elements/Seg.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Seg.h	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Elements/Seg.h	(revision 21872)
@@ -73,5 +73,4 @@
 		int         GetNumberOfVertices(void);
 		void        GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution,int enum_type){_error_("not implemented yet");};
-		Element*    GetUpperElement(void){_error_("not implemented yet");};
 		void        GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid){_error_("not implemented yet");};
 		void        GetVerticesCoordinates(IssmDouble** pxyz_list);
Index: /issm/trunk-jpl/src/c/classes/Elements/Tetra.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 21872)
@@ -79,5 +79,4 @@
 		int         GetNumberOfVertices(void);
 		void        GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution,int enum_type){_error_("not implemented yet");};
-		Element*    GetUpperElement(void){_error_("not implemented yet");};
 		void        GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid){_error_("not implemented yet");};
 		void        GetVerticesCoordinatesBase(IssmDouble** pxyz_list);
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 21872)
@@ -84,5 +84,4 @@
 		int         GetNumberOfVertices(void);
 		void        GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution,int enum_type);
-		Element*    GetUpperElement(void){_error_("not implemented yet");};
 		void        GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid);
 		void        GetVerticesCoordinatesBase(IssmDouble** pxyz_list);
Index: /issm/trunk-jpl/src/c/classes/Inputs/BoolInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/BoolInput.cpp	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Inputs/BoolInput.cpp	(revision 21872)
@@ -157,7 +157,2 @@
 }
 /*}}}*/
-void BoolInput::SquareMin(IssmDouble* psquaremin,Parameters* parameters){/*{{{*/
-	/*square of a bool is the bool itself: */
-	*psquaremin=value;
-}
-/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Inputs/BoolInput.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/BoolInput.h	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Inputs/BoolInput.h	(revision 21872)
@@ -69,6 +69,4 @@
 		void Scale(IssmDouble scale_factor);
 		void Set(IssmDouble setvalue){_error_("Set not implemented yet");};
-		void SquareMin(IssmDouble* psquaremin, Parameters* parameters);
-		void VerticallyIntegrate(Input* thickness_input){_error_("not supported yet");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/Inputs/ControlInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/ControlInput.cpp	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Inputs/ControlInput.cpp	(revision 21872)
@@ -282,5 +282,2 @@
 	this->values->AXPY(gradient,scalar);
 }/*}}}*/
-void ControlInput::VerticallyIntegrate(Input* thickness_input){/*{{{*/
-	values->VerticallyIntegrate(thickness_input);
-}/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Inputs/ControlInput.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/ControlInput.h	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Inputs/ControlInput.h	(revision 21872)
@@ -85,7 +85,5 @@
 		void SetGradient(Input* gradient_in);
 		void SetInput(Input* in_input);
-		void SquareMin(IssmDouble* psquaremin,Parameters* parameters){_error_("not implemented yet");};
 		void UpdateValue(IssmDouble scalar);
-		void VerticallyIntegrate(Input* thickness_input);
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/Inputs/DatasetInput.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/DatasetInput.h	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Inputs/DatasetInput.h	(revision 21872)
@@ -80,7 +80,5 @@
 		void Set(IssmDouble setvalue){_error_("Set not implemented yet");};
 		void SetGradient(Input* gradient_in){_error_("not implemented yet");};
-		void SquareMin(IssmDouble* psquaremin,Parameters* parameters){_error_("not implemented yet");};
 		void UpdateValue(IssmDouble scalar){_error_("not implemented yet");};
-		void VerticallyIntegrate(Input* thickness_input){_error_("not implemented yet");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/Inputs/DoubleArrayInput.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/DoubleArrayInput.h	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Inputs/DoubleArrayInput.h	(revision 21872)
@@ -71,6 +71,4 @@
 		void Scale(IssmDouble scale_factor){_error_("not implemented yet");};
 		void Set(IssmDouble setvalue){_error_("Set not implemented yet");};
-		void SquareMin(IssmDouble* psquaremin,Parameters* parameters){_error_("not implemented yet");};
-		void VerticallyIntegrate(Input* thickness_input){_error_("not implemented yet");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/Inputs/DoubleInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/DoubleInput.cpp	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Inputs/DoubleInput.cpp	(revision 21872)
@@ -245,29 +245,2 @@
 }
 /*}}}*/
-void DoubleInput::SquareMin(IssmDouble* psquaremin,Parameters* parameters){/*{{{*/
-
-	/*square min of a IssmDouble is the square of the IssmDouble itself: */
-	*psquaremin=pow(value,2);
-}
-/*}}}*/
-void DoubleInput::VerticallyIntegrate(Input* thickness_input){/*{{{*/
-
-	/*Intermediaries*/
-	IssmDouble thickness_value;
-
-	/*Check that input provided is a thickness*/
-	if (thickness_input->InstanceEnum()!=ThicknessEnum) _error_("Input provided is not a Thickness (enum_type is " << EnumToStringx(thickness_input->InstanceEnum()) << ")");
-
-	/*vertically integrate depending on type:*/
-	switch(thickness_input->ObjectEnum()){
-
-		case PentaInputEnum:
-			thickness_input->GetInputAverage(&thickness_value);
-			this->value=this->value*thickness_value;
-			return;
-
-		default:
-			_error_("not implemented yet");
-	}
-}
-/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Inputs/DoubleInput.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/DoubleInput.h	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Inputs/DoubleInput.h	(revision 21872)
@@ -72,6 +72,4 @@
 		void Scale(IssmDouble scale_factor);
 		void Set(IssmDouble setvalue){_error_("Set not implemented yet");};
-		void SquareMin(IssmDouble* psquaremin,Parameters* parameters);
-		void VerticallyIntegrate(Input* thickness_input);
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/Inputs/Input.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/Input.h	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Inputs/Input.h	(revision 21872)
@@ -53,6 +53,4 @@
 		virtual void   Scale(IssmDouble scale_factor)=0;
 		virtual void   Set(IssmDouble setvalue)=0;
-		virtual void   SquareMin(IssmDouble* psquaremin,Parameters* parameters)=0;
-		virtual void   VerticallyIntegrate(Input* thickness_input)=0;
 
 		virtual int  GetResultArraySize(void)=0;
Index: /issm/trunk-jpl/src/c/classes/Inputs/IntInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/IntInput.cpp	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Inputs/IntInput.cpp	(revision 21872)
@@ -161,8 +161,2 @@
 }
 /*}}}*/
-void IntInput::SquareMin(IssmDouble* psquaremin,Parameters* parameters){/*{{{*/
-
-	/*square min of an integer is the square of the integer itself: */
-	*psquaremin=pow((IssmDouble)value,2);
-}
-/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Inputs/IntInput.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/IntInput.h	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Inputs/IntInput.h	(revision 21872)
@@ -73,6 +73,4 @@
 		void Scale(IssmDouble scale_factor);
 		void Set(IssmDouble setvalue){_error_("Set not implemented yet");};
-		void SquareMin(IssmDouble* psquaremin,Parameters* parameters);
-		void VerticallyIntegrate(Input* thickness_input){_error_("not supported yet");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/Inputs/PentaInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/PentaInput.cpp	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Inputs/PentaInput.cpp	(revision 21872)
@@ -407,48 +407,2 @@
 }
 /*}}}*/
-void PentaInput::SquareMin(IssmDouble* psquaremin,Parameters* parameters){/*{{{*/
-
-	int        numnodes=this->NumberofNodes(this->interpolation_type);
-	IssmDouble squaremin;
-
-	/*Now, figure out minimum of valuescopy: */
-	squaremin=pow(this->values[0],2);
-	for(int i=1;i<numnodes;i++){
-		if(pow(this->values[i],2)<squaremin)squaremin=pow(this->values[i],2);
-	}
-	/*Assign output pointers:*/
-	*psquaremin=squaremin;
-}
-/*}}}*/
-void PentaInput::VerticallyIntegrate(Input* thickness_input){/*{{{*/
-
-	IssmDouble thickness;
-	IssmDouble value=0.;
-
-	/*Check that input provided is a thickness*/
-	if (thickness_input->InstanceEnum()!=ThicknessEnum) _error_("Input provided is not a Thickness (enum_type is " << EnumToStringx(thickness_input->InstanceEnum()) << ")");
-
-	/*vertically integrate depending on type (and use P1 interpolation from now on)*/
-	switch(this->interpolation_type){
-		case P1Enum:
-		case P1bubbleEnum:
-		case P1xP2Enum:
-		case P1xP3Enum:
-		case P2Enum:
-			  {
-				this->interpolation_type=P1Enum;
-				GaussPenta *gauss=new GaussPenta();
-				for(int iv=0;iv<3;iv++){
-					gauss->GaussVertex(iv);
-					thickness_input->GetInputValue(&thickness,gauss);
-					this->values[iv]=0.5*(this->values[iv]+this->values[iv+3]) * thickness;
-					this->values[iv+3]=this->values[iv];
-				}
-				delete gauss;
-				return; 
-			  }
-		default:
-			_error_("not supported yet for type "<<EnumToStringx(this->interpolation_type));
-	}
-}
-/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Inputs/PentaInput.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/PentaInput.h	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Inputs/PentaInput.h	(revision 21872)
@@ -73,6 +73,4 @@
 		Input* SpawnTriaInput(int index1,int index2,int index3);
 		Input* SpawnSegInput(int index1,int index2);
-		void SquareMin(IssmDouble* psquaremin,Parameters* parameters);
-		void VerticallyIntegrate(Input* thickness_input);
 
 };
Index: /issm/trunk-jpl/src/c/classes/Inputs/SegInput.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/SegInput.h	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Inputs/SegInput.h	(revision 21872)
@@ -74,6 +74,4 @@
 		void Scale(IssmDouble scale_factor){_error_("not implemented yet");};
 		void Set(IssmDouble setvalue){_error_("not implemented yet");};
-		void SquareMin(IssmDouble* psquaremin,Parameters* parameters){_error_("not implemented yet");};
-		void VerticallyIntegrate(Input* thickness_input){_error_("not supported yet");};
 
 };
Index: /issm/trunk-jpl/src/c/classes/Inputs/TetraInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/TetraInput.cpp	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Inputs/TetraInput.cpp	(revision 21872)
@@ -418,16 +418,2 @@
 }
 /*}}}*/
-void TetraInput::SquareMin(IssmDouble* psquaremin,Parameters* parameters){/*{{{*/
-
-	int        numnodes=this->NumberofNodes(this->interpolation_type);
-	IssmDouble squaremin;
-
-	/*Now, figure out minimum of valuescopy: */
-	squaremin=pow(this->values[0],2);
-	for(int i=1;i<numnodes;i++){
-		if(pow(this->values[i],2)<squaremin)squaremin=pow(this->values[i],2);
-	}
-	/*Assign output pointers:*/
-	*psquaremin=squaremin;
-}
-/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Inputs/TetraInput.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/TetraInput.h	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Inputs/TetraInput.h	(revision 21872)
@@ -74,6 +74,4 @@
 		void Scale(IssmDouble scale_factor);
 		void Set(IssmDouble setvalue);
-		void SquareMin(IssmDouble* psquaremin,Parameters* parameters);
-		void VerticallyIntegrate(Input* thickness_input){_error_("not supported yet");};
 
 };
Index: /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp	(revision 21872)
@@ -535,19 +535,2 @@
 }
 /*}}}*/
-void TransientInput::SquareMin(IssmDouble* psquaremin,Parameters* parameters){/*{{{*/
-
-	IssmDouble time;
-
-	/*First, recover current time from parameters: */
-	parameters->FindParam(&time,TimeEnum);
-
-   /*Retrieve interpolated values for this time step: */
-	Input* input=GetTimeInput(time);
-
-	/*Call input function*/
-	input->SquareMin(psquaremin,parameters);
-
-	delete input;
-
-}
-/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.h	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.h	(revision 21872)
@@ -80,6 +80,4 @@
 		void Scale(IssmDouble scale_factor){_error_("not implemented yet");};
 		void Set(IssmDouble setvalue){_error_("Set not implemented yet");};
-		void SquareMin(IssmDouble* psquaremin,Parameters* parameters);
-		void VerticallyIntegrate(Input* thickness_forcing){_error_("not supported yet");};
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/classes/Inputs/TriaInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/TriaInput.cpp	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Inputs/TriaInput.cpp	(revision 21872)
@@ -451,16 +451,2 @@
 }
 /*}}}*/
-void TriaInput::SquareMin(IssmDouble* psquaremin,Parameters* parameters){/*{{{*/
-
-	int        numnodes=this->NumberofNodes(this->interpolation_type);
-	IssmDouble squaremin;
-
-	/*Now, figure out minimum of valuescopy: */
-	squaremin=pow(this->values[0],2);
-	for(int i=1;i<numnodes;i++){
-		if(pow(this->values[i],2)<squaremin)squaremin=pow(this->values[i],2);
-	}
-	/*Assign output pointers:*/
-	*psquaremin=squaremin;
-}
-/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Inputs/TriaInput.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/TriaInput.h	(revision 21871)
+++ /issm/trunk-jpl/src/c/classes/Inputs/TriaInput.h	(revision 21872)
@@ -74,6 +74,4 @@
 		void Scale(IssmDouble scale_factor);
 		void Set(IssmDouble setvalue);
-		void SquareMin(IssmDouble* psquaremin,Parameters* parameters);
-		void VerticallyIntegrate(Input* thickness_input){_error_("not supported yet");};
 
 };
