Index: /issm/trunk/src/c/solutions/CorePointerFromSolutionEnum.cpp
===================================================================
--- /issm/trunk/src/c/solutions/CorePointerFromSolutionEnum.cpp	(revision 7306)
+++ /issm/trunk/src/c/solutions/CorePointerFromSolutionEnum.cpp	(revision 7307)
@@ -55,4 +55,8 @@
 			solutioncore=&transient3d_core;
 			break;
+		case GroundingLineMigration2DSolutionEnum:
+			solutioncore=&groundinglinemigration2d_core;
+			break;
+
 		default:
 			_error_("%s%s%s"," solution type: ",EnumToString(solutiontype)," not supported yet!");
Index: /issm/trunk/src/c/solutions/SolutionConfiguration.cpp
===================================================================
--- /issm/trunk/src/c/solutions/SolutionConfiguration.cpp	(revision 7306)
+++ /issm/trunk/src/c/solutions/SolutionConfiguration.cpp	(revision 7307)
@@ -114,4 +114,11 @@
 			analyses[7]=MeltingAnalysisEnum;
 			break;
+		
+		case GroundingLineMigration2DSolutionEnum:
+			numanalyses=2;
+			analyses=(int*)xmalloc(numanalyses*sizeof(int));
+			analyses[0]=DiagnosticHorizAnalysisEnum;
+			analyses[1]=PrognosticAnalysisEnum;
+			break;
 
 		default:
Index: /issm/trunk/src/c/solutions/groundinglinemigration2d_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/groundinglinemigration2d_core.cpp	(revision 7307)
+++ /issm/trunk/src/c/solutions/groundinglinemigration2d_core.cpp	(revision 7307)
@@ -0,0 +1,33 @@
+/*!\file: groundinglinemigration2d_core.cpp
+ * \brief: core of the groundinglinemigration2d solution 
+ */ 
+
+#include "../toolkits/toolkits.h"
+#include "../objects/objects.h"
+#include "../shared/shared.h"
+#include "../EnumDefinitions/EnumDefinitions.h"
+#include "./solutions.h"
+#include "../modules/modules.h"
+#include <float.h>
+
+void groundinglinemigration2d_core(FemModel* femmodel){
+
+
+	/*intermediary: */
+	int i;
+	int    solution_type;
+	
+	/* recover parameters: */
+	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
+
+	_printf_(VerboseSolution(),"%s\n","   computing new grounding line position");
+	GroundingLineMigrationx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters);
+
+	if(solution_type==GroundingLineMigration2DSolutionEnum){
+		_printf_(VerboseSolution(),"%s\n","   saving results\n");
+		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,ElementOnIceShelfEnum);
+		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,ThicknessEnum);
+		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,SurfaceEnum);
+		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BedEnum);
+	}
+}
Index: /issm/trunk/src/c/solutions/issm.cpp
===================================================================
--- /issm/trunk/src/c/solutions/issm.cpp	(revision 7306)
+++ /issm/trunk/src/c/solutions/issm.cpp	(revision 7307)
@@ -52,4 +52,5 @@
 	petscoptionsfilename=argv[4];
 	lockname=argv[6];
+
 
 	MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime();
Index: /issm/trunk/src/c/solutions/solutions.h
===================================================================
--- /issm/trunk/src/c/solutions/solutions.h	(revision 7306)
+++ /issm/trunk/src/c/solutions/solutions.h	(revision 7307)
@@ -29,4 +29,5 @@
 void transient2d_core(FemModel* femmodel);
 void transient3d_core(FemModel* femmodel);
+void groundinglinemigration2d_core(FemModel* femmodel);
 double objectivefunctionC(double search_scalar,OptArgs* optargs);
 
