Index: /issm/trunk/src/c/objects/Loads/Icefront.cpp
===================================================================
--- /issm/trunk/src/c/objects/Loads/Icefront.cpp	(revision 5135)
+++ /issm/trunk/src/c/objects/Loads/Icefront.cpp	(revision 5136)
@@ -30,5 +30,5 @@
 /*}}}*/
 /*FUNCTION Icefront::Icefront(int id, int i, IoModel* iomodel,int analysis_type) {{{1*/
-Icefront::Icefront(int icefront_id,int i, IoModel* iomodel,int in_analysis_type){
+Icefront::Icefront(int icefront_id,int i, IoModel* iomodel,int in_icefront_type, int in_analysis_type){
 
 	int segment_width;
@@ -41,5 +41,4 @@
 	int  icefront_node_ids[MAX_ICEFRONT_GRIDS];
 	int  icefront_fill;
-	int  icefront_type;
 
 	/*First, retrieve element index and element type: */
@@ -56,21 +55,11 @@
 	icefront_mparid=iomodel->numberofelements+1; //matlab indexing
 
-	icefront_node_ids[0]=iomodel->nodecounter+(int)*(iomodel->pressureload+segment_width*i+0);
-	icefront_node_ids[1]=iomodel->nodecounter+(int)*(iomodel->pressureload+segment_width*i+1);
-
-	if (in_analysis_type==DiagnosticHorizAnalysisEnum){
-		if ((int)*(iomodel->elements_type+2*element+0)==MacAyealApproximationEnum){ //this is a collapsed 3d element, icefront will be 2d
-			icefront_type=SegmentIcefrontEnum;
-		}
-		else if ((int)*(iomodel->elements_type+2*element+0)==PattynApproximationEnum){ //this is a real 3d element, icefront will be 3d.
-			icefront_type=QuadIceFrontEnum;
-			icefront_node_ids[2]=iomodel->nodecounter+(int)*(iomodel->pressureload+segment_width*i+2);
-			icefront_node_ids[3]=iomodel->nodecounter+(int)*(iomodel->pressureload+segment_width*i+3);
-		}
-		else ISSMERROR(" element type %i not supported yet",(int)*(iomodel->elements_type+2*element+0));
-	}
-	else if (in_analysis_type==DiagnosticStokesAnalysisEnum){
-		//We have a Stokes element, so we need a 3d Icefront
-		icefront_type=QuadIceFrontEnum;
+	if (in_icefront_type==QuadIceFrontEnum){
+		icefront_node_ids[0]=iomodel->nodecounter+(int)*(iomodel->pressureload+segment_width*i+0);
+		icefront_node_ids[1]=iomodel->nodecounter+(int)*(iomodel->pressureload+segment_width*i+1);
+	}
+	else if (in_icefront_type==QuadIceFrontEnum){
+		icefront_node_ids[0]=iomodel->nodecounter+(int)*(iomodel->pressureload+segment_width*i+0);
+		icefront_node_ids[1]=iomodel->nodecounter+(int)*(iomodel->pressureload+segment_width*i+1);
 		icefront_node_ids[2]=iomodel->nodecounter+(int)*(iomodel->pressureload+segment_width*i+2);
 		icefront_node_ids[3]=iomodel->nodecounter+(int)*(iomodel->pressureload+segment_width*i+3);
@@ -78,5 +67,5 @@
 	else ISSMERROR("analysis_type %s not supported yet!",EnumToString(in_analysis_type));
 
-	if (icefront_type==QuadIceFrontEnum) num_nodes=4;
+	if (in_icefront_type==QuadIceFrontEnum) num_nodes=4;
 	else num_nodes=2;
 	icefront_fill=(int)*(iomodel->pressureload+segment_width*i+segment_width-1); 
@@ -94,5 +83,5 @@
 	this->inputs=new Inputs();
 	this->inputs->AddInput(new IntInput(FillEnum,icefront_fill));
-	this->inputs->AddInput(new IntInput(TypeEnum,icefront_type));
+	this->inputs->AddInput(new IntInput(TypeEnum,in_icefront_type));
 	
 	//this->parameters: we still can't point to it, it may not even exist. Configure will handle this.
Index: /issm/trunk/src/c/objects/Loads/Icefront.h
===================================================================
--- /issm/trunk/src/c/objects/Loads/Icefront.h	(revision 5135)
+++ /issm/trunk/src/c/objects/Loads/Icefront.h	(revision 5136)
@@ -35,5 +35,5 @@
 		/*Icefront constructors, destructors: {{{1*/
 		Icefront();
-		Icefront(int icefront_id,int i, IoModel* iomodel,int analysis_type);
+		Icefront(int icefront_id,int i, IoModel* iomodel,int in_icefront_type, int analysis_type);
 		~Icefront();
 		/*}}}*/
