Index: /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
===================================================================
--- /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 5551)
+++ /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 5552)
@@ -113,9 +113,10 @@
 	PengridEnum,
 	PenpairEnum,
-	QuadIceFrontEnum,
 	QuadRiftFrontEnum,
 	RiftfrontEnum,
-	SegmentIcefrontEnum,
 	SegmentRiftfrontEnum,
+	MacAyealIceFrontEnum,
+	PattynIceFrontEnum,
+	StokesIceFrontEnum,
 	/*Materials: */
 	MaterialEnum,
Index: /issm/trunk/src/c/EnumDefinitions/EnumToString.cpp
===================================================================
--- /issm/trunk/src/c/EnumDefinitions/EnumToString.cpp	(revision 5551)
+++ /issm/trunk/src/c/EnumDefinitions/EnumToString.cpp	(revision 5552)
@@ -98,9 +98,10 @@
 		case PengridEnum : return "Pengrid";
 		case PenpairEnum : return "Penpair";
-		case QuadIceFrontEnum : return "QuadIceFront";
 		case QuadRiftFrontEnum : return "QuadRiftFront";
 		case RiftfrontEnum : return "Riftfront";
-		case SegmentIcefrontEnum : return "SegmentIcefront";
 		case SegmentRiftfrontEnum : return "SegmentRiftfront";
+		case MacAyealIceFrontEnum : return "MacAyealIceFront";
+		case PattynIceFrontEnum : return "PattynIceFront";
+		case StokesIceFrontEnum : return "StokesIceFront";
 		case MaterialEnum : return "Material";
 		case MaticeEnum : return "Matice";
Index: /issm/trunk/src/c/EnumDefinitions/StringToEnum.cpp
===================================================================
--- /issm/trunk/src/c/EnumDefinitions/StringToEnum.cpp	(revision 5551)
+++ /issm/trunk/src/c/EnumDefinitions/StringToEnum.cpp	(revision 5552)
@@ -96,9 +96,10 @@
 	else if (strcmp(name,"Pengrid")==0) return PengridEnum;
 	else if (strcmp(name,"Penpair")==0) return PenpairEnum;
-	else if (strcmp(name,"QuadIceFront")==0) return QuadIceFrontEnum;
 	else if (strcmp(name,"QuadRiftFront")==0) return QuadRiftFrontEnum;
 	else if (strcmp(name,"Riftfront")==0) return RiftfrontEnum;
-	else if (strcmp(name,"SegmentIcefront")==0) return SegmentIcefrontEnum;
 	else if (strcmp(name,"SegmentRiftfront")==0) return SegmentRiftfrontEnum;
+	else if (strcmp(name,"MacAyealIceFront")==0) return MacAyealIceFrontEnum;
+	else if (strcmp(name,"PattynIceFront")==0) return PattynIceFrontEnum;
+	else if (strcmp(name,"StokesIceFront")==0) return StokesIceFrontEnum;
 	else if (strcmp(name,"Material")==0) return MaterialEnum;
 	else if (strcmp(name,"Matice")==0) return MaticeEnum;
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp	(revision 5551)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp	(revision 5552)
@@ -56,19 +56,23 @@
 		
 		/*Do not create ice front if Hutter or Stokes elements*/
-		if ((int)*(iomodel->elements_type+element)==(HutterApproximationEnum || StokesApproximationEnum)) continue;
+		if ((int)*(iomodel->elements_type+element)==HutterApproximationEnum) continue;
 
 		/*Create and  add load: */
 		if ((int)*(iomodel->elements_type+element)==(MacAyealApproximationEnum)){
-			loads->AddObject(new Icefront(iomodel->loadcounter+count+1,i,iomodel,SegmentIcefrontEnum,DiagnosticHorizAnalysisEnum));
+			loads->AddObject(new Icefront(iomodel->loadcounter+count+1,i,iomodel,MacAyealIceFrontEnum,DiagnosticHorizAnalysisEnum));
 			count++;
 		}
 		else if ((int)*(iomodel->elements_type+element)==(PattynApproximationEnum)){
-			loads->AddObject(new Icefront(iomodel->loadcounter+count+1,i,iomodel,QuadIceFrontEnum,DiagnosticHorizAnalysisEnum));
+			loads->AddObject(new Icefront(iomodel->loadcounter+count+1,i,iomodel,PattynIceFrontEnum,DiagnosticHorizAnalysisEnum));
+			count++;
+		}
+		else if ((int)*(iomodel->elements_type+element)==(StokesApproximationEnum)){
+			loads->AddObject(new Icefront(iomodel->loadcounter+count+1,i,iomodel,StokesIceFrontEnum,DiagnosticHorizAnalysisEnum));
 			count++;
 		}
 		else if ((int)*(iomodel->elements_type+element)==(MacAyealPattynApproximationEnum)){
-			loads->AddObject(new Icefront(iomodel->loadcounter+count+1,i,iomodel,SegmentIcefrontEnum,DiagnosticHorizAnalysisEnum));
+			loads->AddObject(new Icefront(iomodel->loadcounter+count+1,i,iomodel,MacAyealIceFrontEnum,DiagnosticHorizAnalysisEnum));
 			count++;
-			loads->AddObject(new Icefront(iomodel->loadcounter+count+1,i,iomodel,QuadIceFrontEnum,DiagnosticHorizAnalysisEnum));
+			loads->AddObject(new Icefront(iomodel->loadcounter+count+1,i,iomodel,PattynIceFrontEnum,DiagnosticHorizAnalysisEnum));
 			count++;
 		}
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticStokes/CreateLoadsDiagnosticStokes.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticStokes/CreateLoadsDiagnosticStokes.cpp	(revision 5551)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticStokes/CreateLoadsDiagnosticStokes.cpp	(revision 5552)
@@ -62,5 +62,5 @@
 
 		/*Create and  add load: */
-		loads->AddObject(new Icefront(iomodel->loadcounter+count+1,i,iomodel,QuadIceFrontEnum,DiagnosticStokesAnalysisEnum));
+		loads->AddObject(new Icefront(iomodel->loadcounter+count+1,i,iomodel,StokesIceFrontEnum,DiagnosticStokesAnalysisEnum));
 		count++;
 
Index: /issm/trunk/src/c/objects/Loads/Icefront.cpp
===================================================================
--- /issm/trunk/src/c/objects/Loads/Icefront.cpp	(revision 5551)
+++ /issm/trunk/src/c/objects/Loads/Icefront.cpp	(revision 5552)
@@ -55,9 +55,9 @@
 	icefront_mparid=iomodel->numberofelements+1; //matlab indexing
 
-	if (in_icefront_type==SegmentIcefrontEnum){
+	if (in_icefront_type==MacAyealIceFrontEnum){
 		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){
+	else if (in_icefront_type==PattynIceFrontEnum || in_icefront_type==StokesIceFrontEnum){
 		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);
@@ -67,5 +67,5 @@
 	else ISSMERROR("in_icefront_type %s not supported yet!",EnumToString(in_icefront_type));
 
-	if (in_icefront_type==QuadIceFrontEnum) num_nodes=4;
+	if (in_icefront_type==PattynIceFrontEnum || in_icefront_type==StokesIceFrontEnum) num_nodes=4;
 	else num_nodes=2;
 	icefront_fill=(int)*(iomodel->pressureload+segment_width*i+segment_width-1); 
@@ -294,5 +294,16 @@
 	/*Just branch to the correct element icefront vector generator, according to the type of analysis we are carrying out: */
 	if (analysis_type==DiagnosticHorizAnalysisEnum){
-		CreatePVectorDiagnosticHoriz( pg);
+		int type;
+		inputs->GetParameterValue(&type,TypeEnum);
+		if (type==MacAyealIceFrontEnum){
+			CreatePVectorDiagnosticMacAyeal( pg);
+		}
+		else if (type==PattynIceFrontEnum){
+			CreatePVectorDiagnosticPattyn( pg);
+		}
+		else if (type==StokesIceFrontEnum){
+			CreatePVectorDiagnosticStokes( pg);
+		}
+		else ISSMERROR("Icefront type %s not supported yet",EnumToString(type));
 	}
 	else if (analysis_type==DiagnosticStokesAnalysisEnum){
@@ -377,20 +388,4 @@
 
 /*Icefront numerics: */
-/*FUNCTION Icefront::CreatePVectorDiagnosticHoriz {{{1*/
-void Icefront::CreatePVectorDiagnosticHoriz( Vec pg){
-	
-	int type;
-	inputs->GetParameterValue(&type,TypeEnum);
-
-	/*Branck on the type of icefront: */
-	if (type==SegmentIcefrontEnum){
-		CreatePVectorDiagnosticMacAyeal(pg);
-	}
-	else if (type==QuadIceFrontEnum){
-		CreatePVectorDiagnosticPattyn(pg);
-	}
-	else ISSMERROR("type %i not supported",type);
-}	
-/*}}}*/
 /*FUNCTION Icefront::CreatePVectorDiagnosticMacAyeal{{{1*/
 void Icefront::CreatePVectorDiagnosticMacAyeal( Vec pg){
@@ -822,5 +817,5 @@
 		
 	/*How many nodes? :*/
-	if(type==SegmentIcefrontEnum)numberofnodes=2;
+	if(type==MacAyealIceFrontEnum)numberofnodes=2;
 	else numberofnodes=4;
 	
Index: /issm/trunk/src/c/objects/Loads/Icefront.h
===================================================================
--- /issm/trunk/src/c/objects/Loads/Icefront.h	(revision 5551)
+++ /issm/trunk/src/c/objects/Loads/Icefront.h	(revision 5552)
@@ -71,5 +71,4 @@
 		/*}}}*/
 		/*Load management: {{{1*/
-		void  CreatePVectorDiagnosticHoriz( Vec pg);
 		void  CreatePVectorDiagnosticMacAyeal( Vec pg);
 		void  CreatePVectorDiagnosticPattyn( Vec pg);
