Index: ../trunk-jpl/src/c/analyses/Balancethickness2Analysis.cpp
===================================================================
--- ../trunk-jpl/src/c/analyses/Balancethickness2Analysis.cpp	(revision 18449)
+++ ../trunk-jpl/src/c/analyses/Balancethickness2Analysis.cpp	(revision 18450)
@@ -201,7 +201,7 @@
 
 	/*Intermediaries */
 	int         Hinterpolation;
-	IssmDouble  vx,vy,vbar,nu,normdphi,dphi[2];
+	IssmDouble  vx,vy,vbar,nu,normdphi,dphi[2],H;
 	IssmDouble* xyz_list = NULL;
 	int       * doflist  = NULL;
 
@@ -232,6 +232,7 @@
 	Input* vx_input        = element->GetInput(BalancethicknessVxObsEnum); _assert_(vx_input);
 	Input* vy_input        = element->GetInput(BalancethicknessVyObsEnum); _assert_(vy_input);
 	Input* nu_input        = element->GetInput(BalancethicknessNuEnum);    _assert_(nu_input);
+	Input* thickness_input = element->GetInput(BalancethicknessThicknessObsEnum);             _assert_(thickness_input);
 
 	switch(element->GetElementType()){
 		case P1Enum: Hinterpolation = P0Enum; break;
@@ -245,6 +246,7 @@
 		vx_input->GetInputValue(&vx,gauss);
 		vy_input->GetInputValue(&vy,gauss);
 		nu_input->GetInputValue(&nu,gauss);
+		thickness_input->GetInputValue(&H,gauss);
 		potential_input->GetInputDerivativeValue(&dphi[0],xyz_list,gauss);
 
 		vx = vx*nu; vy = vy*nu;
@@ -252,8 +254,8 @@
 		normdphi = sqrt(dphi[0]*dphi[0] + dphi[1]*dphi[1]);
 
 		thickness_list[iv] = normdphi/vbar;
-		vx_list[iv]        = -1./thickness_list[iv] * dphi[0];
-		vy_list[iv]        = -1./thickness_list[iv] * dphi[1];
+		vx_list[iv]        = -1./H * dphi[0];
+		vy_list[iv]        = -1./H * dphi[1];
 	}
 	element->AddInput(ThicknessEnum,thickness_list,Hinterpolation);
 	element->AddInput(VxEnum,vx_list,Hinterpolation);
Index: ../trunk-jpl/src/c/modules/InputExtrudex/InputExtrudex.cpp
===================================================================
--- ../trunk-jpl/src/c/modules/InputExtrudex/InputExtrudex.cpp	(revision 18449)
+++ ../trunk-jpl/src/c/modules/InputExtrudex/InputExtrudex.cpp	(revision 18450)
@@ -7,9 +7,9 @@
 #include "../../classes/classes.h"
 #include "../../toolkits/toolkits.h"
 
-void InputExtrudex(FemModel* femmodel,int input_enum){
+void InputExtrudex(FemModel* femmodel,int input_enum,int start){
 	for(int i=0;i<femmodel->elements->Size();i++){
 		Element* element=dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));
-		element->InputExtrude(input_enum);
+		element->InputExtrude(input_enum,start);
 	}
 }
Index: ../trunk-jpl/src/c/modules/InputExtrudex/InputExtrudex.h
===================================================================
--- ../trunk-jpl/src/c/modules/InputExtrudex/InputExtrudex.h	(revision 18449)
+++ ../trunk-jpl/src/c/modules/InputExtrudex/InputExtrudex.h	(revision 18450)
@@ -8,6 +8,6 @@
 #include "../../classes/classes.h"
 
 /* local prototypes: */
-void InputExtrudex(FemModel* femmodel,int input_enum);
+void InputExtrudex(FemModel* femmodel,int input_enum,int start);
 
 #endif  /* _INPUTDUPLICATEX_H */
Index: ../trunk-jpl/src/c/cores/extrudefrombase_core.cpp
===================================================================
--- ../trunk-jpl/src/c/cores/extrudefrombase_core.cpp	(revision 18449)
+++ ../trunk-jpl/src/c/cores/extrudefrombase_core.cpp	(revision 18450)
@@ -26,7 +26,7 @@
 	/*Special method for Penta, otherwise call solution sequence*/
 	if(elementtype==PentaEnum){
 		int inputenum; femmodel->parameters->FindParam(&inputenum,InputToExtrudeEnum);
-		InputExtrudex(femmodel,inputenum);
+		InputExtrudex(femmodel,inputenum,-1);
 	}
 	else{
 		/*Call on core computations: */
Index: ../trunk-jpl/src/c/classes/Elements/Element.h
===================================================================
--- ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 18449)
+++ ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 18450)
@@ -219,7 +219,7 @@
 		virtual void   ComputeDeviatoricStressTensor(void)=0;
 
 		virtual void   Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finite_element)=0;
-		virtual void   InputExtrude(int input_enum)=0;
+		virtual void   InputExtrude(int input_enum,int start)=0;
 		virtual void   InputUpdateFromSolutionOneDofCollapsed(IssmDouble* solution,int inputenum)=0;
 		virtual void   InputUpdateFromSolutionOneDof(IssmDouble* solution,int inputenum)=0;
 
Index: ../trunk-jpl/src/c/classes/Elements/Tria.h
===================================================================
--- ../trunk-jpl/src/c/classes/Elements/Tria.h	(revision 18449)
+++ ../trunk-jpl/src/c/classes/Elements/Tria.h	(revision 18450)
@@ -85,7 +85,7 @@
 		void        GetVerticesCoordinatesBase(IssmDouble** pxyz_list);
 		void        GetVerticesCoordinatesTop(IssmDouble** pxyz_list);
 		void        InputDepthAverageAtBase(int enum_type,int average_enum_type);
-		void        InputExtrude(int enum_type){_error_("not implemented"); /*For penta only*/};
+		void        InputExtrude(int enum_type,int start){_error_("not implemented"); /*For penta only*/};
 		void        InputScale(int enum_type,IssmDouble scale_factor);
 		void        MaterialUpdateFromTemperature(void){_error_("not implemented yet");};
 		int         NodalValue(IssmDouble* pvalue, int index, int natureofdataenum);
Index: ../trunk-jpl/src/c/classes/Elements/Penta.cpp
===================================================================
--- ../trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 18449)
+++ ../trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 18450)
@@ -446,8 +446,8 @@
 	this->inputs->AddInput(NewTemperatureInput);
 	this->inputs->AddInput(NewPrecipitationInput);
 
-	this->InputExtrude(SurfaceforcingsMonthlytemperaturesEnum);
-	this->InputExtrude(SurfaceforcingsPrecipitationEnum);
+	this->InputExtrude(SurfaceforcingsMonthlytemperaturesEnum,-1);
+	this->InputExtrude(SurfaceforcingsPrecipitationEnum,-1);
 
 	/*clean-up*/
 	delete gauss;
@@ -1190,32 +1190,38 @@
 	this->inputs->AddInput((Input*)depth_averaged_input);
 }
 /*}}}*/
-void       Penta::InputExtrude(int enum_type){/*{{{*/
+void       Penta::InputExtrude(int enum_type,int start){/*{{{*/
 
-	/*Are we on the base, not on the surface?:*/
-	if(!IsOnBase()) return;
+	_assert_(start==-1 || start==+1);
 
+	/*Are we on the the boundary we want to be?*/
+	if(start==-1 && !IsOnBase())    return;
+	if(start==+1 && !IsOnSurface()) return;
+
 	/*Step1: Get and Extrude original input: */
 	Input* base_input=(Input*)this->inputs->GetInput(enum_type);
 	if(!base_input) _error_("could not find input with enum " << EnumToStringx(enum_type));
-	base_input->Extrude();
+	base_input->Extrude(start);
 
 	/*Stop if there is only one layer of element*/
-	if(this->IsOnSurface()) return;
+	if(start==-1 && this->IsOnSurface()) return;
+	if(start==+1 && this->IsOnBase())    return;
 
 	/*Step 2: this input has been extruded for this element, now follow the upper element*/
 	Penta* penta=this;
 	for(;;){
-		/* get upper Penta*/
-		penta=penta->GetUpperPenta();
+		/*get upper/lower Penta*/
+		if(start==-1) penta=penta->GetUpperPenta();
+		else          penta=penta->GetLowerPenta();
 		_assert_(penta->Id()!=this->id);
 
 		/*Add input of the basal element to penta->inputs*/
 		Input* copy=(Input*)base_input->copy();
 		penta->inputs->AddInput((Input*)copy);
 
-		/*Stop if we have reached the surface*/
-		if(penta->IsOnSurface()) break;
+		/*Stop if we have reached the surface/base*/
+		if(start==-1 && penta->IsOnSurface()) break;
+		if(start==+1 && penta->IsOnBase())    break;
 	}
 }
 /*}}}*/
@@ -1784,7 +1790,7 @@
    /*Update inputs*/    
    this->inputs->AddInput(new PentaInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
    //this->inputs->AddInput(new PentaVertexInput(ThermalSpcTemperatureEnum,&Tsurf[0]));
-   this->InputExtrude(SurfaceforcingsMassBalanceEnum);
+   this->InputExtrude(SurfaceforcingsMassBalanceEnum,-1);
 
 	/*clean-up*/
 	delete gauss;
@@ -2859,10 +2865,10 @@
 		if (save_parameter) ((ControlInput*)input)->SaveValue();
 
 		if(control_type[i]==MaterialsRheologyBbarEnum){
-			this->InputExtrude(MaterialsRheologyBEnum);
+			this->InputExtrude(MaterialsRheologyBEnum,-1);
 		}
 		else if(control_type[i]==DamageDbarEnum){
-			this->InputExtrude(DamageDEnum);
+			this->InputExtrude(DamageDEnum,-1);
 		}
 	}
 
@@ -2929,10 +2935,10 @@
 	((ControlInput*)input)->SetInput(new_input);
 
 	if(control_init==MaterialsRheologyBbarEnum){
-		this->InputExtrude(control_enum);
+		this->InputExtrude(control_enum,-1);
 	}
 	if(control_init==DamageDbarEnum){
-		this->InputExtrude(control_enum);
+		this->InputExtrude(control_enum,-1);
 	}
 }
 /*}}}*/
@@ -3170,15 +3176,15 @@
 		else phi[i]=h[i]+r[i]/density;
 	}
 	this->inputs->AddInput(new PentaInput(MaskGroundediceLevelsetEnum,&phi[0],P1Enum));
-	this->InputExtrude(MaskGroundediceLevelsetEnum);
+	this->InputExtrude(MaskGroundediceLevelsetEnum,-1);
 
 	/*Update inputs*/
 	this->inputs->AddInput(new PentaInput(SurfaceEnum,&s[0],P1Enum));
 	this->inputs->AddInput(new PentaInput(BaseEnum,&b[0],P1Enum));
 
 	/*Extrude inputs*/
-	this->InputExtrude(SurfaceEnum);
-	this->InputExtrude(BaseEnum);
+	this->InputExtrude(SurfaceEnum,-1);
+	this->InputExtrude(BaseEnum,-1);
 }
 /*}}}*/
 void       Penta::PotentialUngrounding(Vector<IssmDouble>* potential_ungrounding){/*{{{*/
Index: ../trunk-jpl/src/c/classes/Elements/Penta.h
===================================================================
--- ../trunk-jpl/src/c/classes/Elements/Penta.h	(revision 18449)
+++ ../trunk-jpl/src/c/classes/Elements/Penta.h	(revision 18450)
@@ -143,7 +143,7 @@
 		int            GetElementType(void);
 		void           GetInputValue(IssmDouble* pvalue,Node* node,int enumtype);
 		Node*          GetNode(int node_number);
-		void	         InputExtrude(int enum_type);
+		void	         InputExtrude(int enum_type,int start);
 		void           InputUpdateFromSolutionOneDof(IssmDouble* solutiong,int enum_type);
 		void           InputUpdateFromSolutionOneDofCollapsed(IssmDouble* solutiong,int enum_type);
 		bool	         IsOnSurface(void);
Index: ../trunk-jpl/src/c/classes/Elements/Seg.h
===================================================================
--- ../trunk-jpl/src/c/classes/Elements/Seg.h	(revision 18449)
+++ ../trunk-jpl/src/c/classes/Elements/Seg.h	(revision 18450)
@@ -129,7 +129,7 @@
 
 		void        GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution,int enum_type){_error_("not implemented yet");};
 		void        InputDepthAverageAtBase(int enum_type,int average_enum_type){_error_("not implemented yet");};
-		void        InputExtrude(int enum_type){_error_("not implemented"); /*For penta only*/};
+		void        InputExtrude(int enum_type,int start){_error_("not implemented"); /*For penta only*/};
 		void        InputScale(int enum_type,IssmDouble scale_factor){_error_("not implemented yet");};
 		void        MaterialUpdateFromTemperature(void){_error_("not implemented yet");};
 		int         NodalValue(IssmDouble* pvalue, int index, int natureofdataenum){_error_("not implemented yet");};
Index: ../trunk-jpl/src/c/classes/Elements/Tetra.h
===================================================================
--- ../trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 18449)
+++ ../trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 18450)
@@ -133,7 +133,7 @@
 		void		   GetLevelCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum,IssmDouble level){_error_("not implemented yet");};
 		void        GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution,int enum_type){_error_("not implemented yet");};
 		void        InputDepthAverageAtBase(int enum_type,int average_enum_type){_error_("not implemented yet");};
-		void        InputExtrude(int enum_type){_error_("not implemented"); /*For penta only*/};
+		void        InputExtrude(int enum_type,int start){_error_("not implemented"); /*For penta only*/};
 		void        InputScale(int enum_type,IssmDouble scale_factor){_error_("not implemented yet");};
 		void        MaterialUpdateFromTemperature(void){_error_("not implemented yet");};
 		int         NodalValue(IssmDouble* pvalue, int index, int natureofdataenum){_error_("not implemented yet");};
Index: ../trunk-jpl/src/c/classes/Inputs/DoubleInput.h
===================================================================
--- ../trunk-jpl/src/c/classes/Inputs/DoubleInput.h	(revision 18449)
+++ ../trunk-jpl/src/c/classes/Inputs/DoubleInput.h	(revision 18450)
@@ -66,7 +66,7 @@
 		IssmDouble MaxAbs(void);
 		IssmDouble Min(void);
 		IssmDouble MinAbs(void);
-		void Extrude(void){_error_("not supported yet");};
+		void Extrude(int start){_error_("not supported yet");};
 		void VerticallyIntegrate(Input* thickness_input);
 		void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist);
 		/*}}}*/
Index: ../trunk-jpl/src/c/classes/Inputs/ControlInput.cpp
===================================================================
--- ../trunk-jpl/src/c/classes/Inputs/ControlInput.cpp	(revision 18449)
+++ ../trunk-jpl/src/c/classes/Inputs/ControlInput.cpp	(revision 18450)
@@ -120,9 +120,9 @@
 void ControlInput::Constrain(IssmDouble min, IssmDouble max){/*{{{*/
 	   values->Constrain(min,max);
 }/*}}}*/
-void ControlInput::Extrude(void){/*{{{*/
-	values->Extrude();
-	savedvalues->Extrude();
+void ControlInput::Extrude(int start){/*{{{*/
+	values->Extrude(start);
+	savedvalues->Extrude(start);
 	//gradient->Extrude();
 }/*}}}*/
 int  ControlInput::GetResultInterpolation(void){/*{{{*/
Index: ../trunk-jpl/src/c/classes/Inputs/SegInput.h
===================================================================
--- ../trunk-jpl/src/c/classes/Inputs/SegInput.h	(revision 18449)
+++ ../trunk-jpl/src/c/classes/Inputs/SegInput.h	(revision 18450)
@@ -68,7 +68,7 @@
 		IssmDouble MaxAbs(void){_error_("not implemented yet");};
 		IssmDouble Min(void);
 		IssmDouble MinAbs(void){_error_("not implemented yet");};
-		void Extrude(void){_error_("not supported yet");};
+		void Extrude(int start){_error_("not supported yet");};
 		void VerticallyIntegrate(Input* thickness_input){_error_("not supported yet");};
 		void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){_error_("not implemented yet");};
 
Index: ../trunk-jpl/src/c/classes/Inputs/TetraInput.h
===================================================================
--- ../trunk-jpl/src/c/classes/Inputs/TetraInput.h	(revision 18449)
+++ ../trunk-jpl/src/c/classes/Inputs/TetraInput.h	(revision 18450)
@@ -68,7 +68,7 @@
 		IssmDouble MaxAbs(void);
 		IssmDouble Min(void);
 		IssmDouble MinAbs(void);
-		void Extrude(void){_error_("not supported yet");};
+		void Extrude(int start){_error_("not supported yet");};
 		void VerticallyIntegrate(Input* thickness_input){_error_("not supported yet");};
 		void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist);
 
Index: ../trunk-jpl/src/c/classes/Inputs/Input.h
===================================================================
--- ../trunk-jpl/src/c/classes/Inputs/Input.h	(revision 18449)
+++ ../trunk-jpl/src/c/classes/Inputs/Input.h	(revision 18450)
@@ -50,7 +50,7 @@
 		virtual void   AXPY(Input* xinput,IssmDouble scalar)=0;
 		virtual void   Constrain(IssmDouble cm_min, IssmDouble cm_max)=0;
 		virtual void   VerticallyIntegrate(Input* thickness_input)=0;
-		virtual void   Extrude()=0;
+		virtual void   Extrude(int start)=0;
 		virtual void   GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist)=0;
 
 		virtual Input* SpawnTriaInput(int index1,int index2,int index3)=0;
Index: ../trunk-jpl/src/c/classes/Inputs/ControlInput.h
===================================================================
--- ../trunk-jpl/src/c/classes/Inputs/ControlInput.h	(revision 18449)
+++ ../trunk-jpl/src/c/classes/Inputs/ControlInput.h	(revision 18450)
@@ -71,7 +71,7 @@
 		IssmDouble MaxAbs(void){_error_("not implemented yet");};
 		IssmDouble Min(void);
 		IssmDouble MinAbs(void){_error_("not implemented yet");};
-		void Extrude(void);
+		void Extrude(int start);
 		void VerticallyIntegrate(Input* thickness_input);
 		void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist,const char* data);
 		void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist);
Index: ../trunk-jpl/src/c/classes/Inputs/DatasetInput.h
===================================================================
--- ../trunk-jpl/src/c/classes/Inputs/DatasetInput.h	(revision 18449)
+++ ../trunk-jpl/src/c/classes/Inputs/DatasetInput.h	(revision 18450)
@@ -67,7 +67,7 @@
 		IssmDouble MaxAbs(void){_error_("not implemented yet");};
 		IssmDouble Min(void){_error_("not implemented yet");};
 		IssmDouble MinAbs(void){_error_("not implemented yet");};
-		void Extrude(void){_error_("not implemented yet");};
+		void Extrude(int start){_error_("not implemented yet");};
 		void VerticallyIntegrate(Input* thickness_input){_error_("not implemented yet");};
 		void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){_error_("not implemented yet");};
 		int GetResultInterpolation(void){_error_("not implemented yet");};
Index: ../trunk-jpl/src/c/classes/Inputs/BoolInput.cpp
===================================================================
--- ../trunk-jpl/src/c/classes/Inputs/BoolInput.cpp	(revision 18449)
+++ ../trunk-jpl/src/c/classes/Inputs/BoolInput.cpp	(revision 18450)
@@ -132,7 +132,7 @@
 
 }
 /*}}}*/
-void BoolInput::Extrude(void){/*{{{*/
+void BoolInput::Extrude(int start){/*{{{*/
 
 	/*do nothing*/
 	return;
Index: ../trunk-jpl/src/c/classes/Inputs/IntInput.h
===================================================================
--- ../trunk-jpl/src/c/classes/Inputs/IntInput.h	(revision 18449)
+++ ../trunk-jpl/src/c/classes/Inputs/IntInput.h	(revision 18450)
@@ -67,7 +67,7 @@
 		IssmDouble MaxAbs(void){_error_("Max not implemented for integers");};
 		IssmDouble Min(void){_error_("Min not implemented for integers");};
 		IssmDouble MinAbs(void){_error_("Min not implemented for integers");};
-		void Extrude(void){_error_("not supported yet");};
+		void Extrude(int start){_error_("not supported yet");};
 		void VerticallyIntegrate(Input* thickness_input){_error_("not supported yet");};
 		void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist);
 		/*}}}*/
Index: ../trunk-jpl/src/c/classes/Inputs/BoolInput.h
===================================================================
--- ../trunk-jpl/src/c/classes/Inputs/BoolInput.h	(revision 18449)
+++ ../trunk-jpl/src/c/classes/Inputs/BoolInput.h	(revision 18450)
@@ -63,7 +63,7 @@
 		void Scale(IssmDouble scale_factor);
 		void AXPY(Input* xinput,IssmDouble scalar);
 		void Constrain(IssmDouble cm_min, IssmDouble cm_max){_error_("Constrain not implemented for booleans");};
-		void Extrude(void);
+		void Extrude(int start);
 		void VerticallyIntegrate(Input* thickness_input){_error_("not supported yet");};
 		void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist);
 		/*}}}*/
Index: ../trunk-jpl/src/c/classes/Inputs/TriaInput.h
===================================================================
--- ../trunk-jpl/src/c/classes/Inputs/TriaInput.h	(revision 18449)
+++ ../trunk-jpl/src/c/classes/Inputs/TriaInput.h	(revision 18450)
@@ -68,7 +68,7 @@
 		IssmDouble MaxAbs(void);
 		IssmDouble Min(void);
 		IssmDouble MinAbs(void);
-		void Extrude(void){_error_("not supported yet");};
+		void Extrude(int start){_error_("not supported yet");};
 		void VerticallyIntegrate(Input* thickness_input){_error_("not supported yet");};
 		void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist);
 
Index: ../trunk-jpl/src/c/classes/Inputs/PentaInput.cpp
===================================================================
--- ../trunk-jpl/src/c/classes/Inputs/PentaInput.cpp	(revision 18449)
+++ ../trunk-jpl/src/c/classes/Inputs/PentaInput.cpp	(revision 18450)
@@ -290,11 +290,16 @@
 
 }
 /*}}}*/
-void PentaInput::Extrude(void){/*{{{*/
+void PentaInput::Extrude(int start){/*{{{*/
 
 	switch(this->interpolation_type){
 		case P1Enum:
-			for(int i=0;i<3;i++) this->values[3+i]=this->values[i];
+			if(start==-1){
+				for(int i=0;i<3;i++) this->values[3+i]=this->values[i];
+			}
+			else{
+				for(int i=3;i<6;i++) this->values[i]  =this->values[3+i];
+			}
 			break;
 		default:
 			_error_("not supported yet for type "<<EnumToStringx(this->interpolation_type));
Index: ../trunk-jpl/src/c/classes/Inputs/TransientInput.cpp
===================================================================
--- ../trunk-jpl/src/c/classes/Inputs/TransientInput.cpp	(revision 18449)
+++ ../trunk-jpl/src/c/classes/Inputs/TransientInput.cpp	(revision 18450)
@@ -344,10 +344,10 @@
 
 }
 /*}}}*/
-void TransientInput::Extrude(void){/*{{{*/
+void TransientInput::Extrude(int start){/*{{{*/
 
 	for(int i=0;i<this->numtimesteps;i++){
-		((Input*)this->inputs->GetObjectByOffset(i))->Extrude();
+		((Input*)this->inputs->GetObjectByOffset(i))->Extrude(start);
 	}
 }
 /*}}}*/
Index: ../trunk-jpl/src/c/classes/Inputs/PentaInput.h
===================================================================
--- ../trunk-jpl/src/c/classes/Inputs/PentaInput.h	(revision 18449)
+++ ../trunk-jpl/src/c/classes/Inputs/PentaInput.h	(revision 18450)
@@ -67,7 +67,7 @@
 		IssmDouble MaxAbs(void);
 		IssmDouble Min(void);
 		IssmDouble MinAbs(void);
-		void Extrude(void);
+		void Extrude(int start);
 		void VerticallyIntegrate(Input* thickness_input);
 		void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist);
 
Index: ../trunk-jpl/src/c/classes/Inputs/TransientInput.h
===================================================================
--- ../trunk-jpl/src/c/classes/Inputs/TransientInput.h	(revision 18449)
+++ ../trunk-jpl/src/c/classes/Inputs/TransientInput.h	(revision 18450)
@@ -72,7 +72,7 @@
 		IssmDouble MaxAbs(void);
 		IssmDouble Min(void);
 		IssmDouble MinAbs(void);
-		void Extrude(void);
+		void Extrude(int start);
 		void VerticallyIntegrate(Input* thickness_forcing){_error_("not supported yet");};
 		void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist);
 		void GetTimeValues(IssmDouble* values,IssmDouble time){_error_("not implemented yet");};
