Index: /issm/trunk-jpl/m4/issm_options.m4
===================================================================
--- /issm/trunk-jpl/m4/issm_options.m4	(revision 17304)
+++ /issm/trunk-jpl/m4/issm_options.m4	(revision 17305)
@@ -1977,4 +1977,18 @@
 	AC_MSG_RESULT($HAVE_EXTRAPOLATION)
 	dnl }}}
+	dnl with-LsfReinitialization{{{
+	AC_ARG_WITH([LsfReinitialization],
+		AS_HELP_STRING([--with-LsfReinitialization = YES], [compile with LsfReinitialization capabilities (default is yes)]),
+		[LSFREINITIALIZATION=$withval],[LSFREINITIALIZATION=yes]) 
+	AC_MSG_CHECKING(for LsfReinitialization capability compilation)
+
+	HAVE_LSFREINITIALIZATION=no
+	if test "x$LSFREINITIALIZATION" = "xyes"; then
+		HAVE_LSFREINITIALIZATION=yes
+		AC_DEFINE([_HAVE_LSFREINITIALIZATION_],[1],[with LsfReinitialization capability])
+	fi
+	AM_CONDITIONAL([LSFREINITIALIZATION], [test x$HAVE_LSFREINITIALIZATION = xyes])
+	AC_MSG_RESULT($HAVE_LSFREINITIALIZATION)
+	dnl }}}
 
 	dnl Platform specifics
Index: /issm/trunk-jpl/src/c/Makefile.am
===================================================================
--- /issm/trunk-jpl/src/c/Makefile.am	(revision 17304)
+++ /issm/trunk-jpl/src/c/Makefile.am	(revision 17305)
@@ -583,4 +583,7 @@
 issm_sources += ./analyses/ExtrapolationAnalysis.cpp
 endif
+if LSFREINITIALIZATION
+issm_sources += ./analyses/LsfReinitializationAnalysis.cpp
+endif
 #}}}
 #Gia sources  {{{
Index: /issm/trunk-jpl/src/c/analyses/EnumToAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/EnumToAnalysis.cpp	(revision 17304)
+++ /issm/trunk-jpl/src/c/analyses/EnumToAnalysis.cpp	(revision 17305)
@@ -98,4 +98,7 @@
 		case ExtrapolationAnalysisEnum : return new ExtrapolationAnalysis();
 		#endif
+		#ifdef _HAVE_LSFREINITIALIZATION_
+		case LsfReinitializationAnalysisEnum : return new LsfReinitializationAnalysis();
+		#endif
 		default : _error_("enum provided not supported ("<<EnumToStringx(analysis_enum)<<")");
 	}
Index: /issm/trunk-jpl/src/c/analyses/LsfReinitializationAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/LsfReinitializationAnalysis.cpp	(revision 17305)
+++ /issm/trunk-jpl/src/c/analyses/LsfReinitializationAnalysis.cpp	(revision 17305)
@@ -0,0 +1,52 @@
+#include "./LsfReinitializationAnalysis.h"
+#include "../toolkits/toolkits.h"
+#include "../classes/classes.h"
+#include "../shared/shared.h"
+#include "../modules/modules.h"
+
+/*Model processing*/
+int  LsfReinitializationAnalysis::DofsPerNode(int** doflist,int meshtype,int approximation){
+	_error_("not implemented yet");
+}
+void LsfReinitializationAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){
+	_error_("not implemented yet");
+}
+void LsfReinitializationAnalysis::UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type){
+	_error_("not implemented yet");
+}
+void LsfReinitializationAnalysis::CreateNodes(Nodes* nodes,IoModel* iomodel){
+	_error_("not implemented yet");
+}
+void LsfReinitializationAnalysis::CreateConstraints(Constraints* constraints,IoModel* iomodel){
+	_error_("not implemented yet");
+}
+void LsfReinitializationAnalysis::CreateLoads(Loads* loads, IoModel* iomodel){
+	_error_("not implemented yet");
+}
+
+/*Finite element Analysis*/
+void           LsfReinitializationAnalysis::Core(FemModel* femmodel){
+	_error_("not implemented yet");
+}
+ElementVector* LsfReinitializationAnalysis::CreateDVector(Element* element){
+	_error_("not implemented yet");
+}
+ElementMatrix* LsfReinitializationAnalysis::CreateJacobianMatrix(Element* element){
+	_error_("not implemented yet");
+}
+ElementMatrix* LsfReinitializationAnalysis::CreateKMatrix(Element* element){
+	_error_("not implemented yet");
+}
+ElementVector* LsfReinitializationAnalysis::CreatePVector(Element* element){
+	_error_("not implemented yet");
+}
+void LsfReinitializationAnalysis::GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element){
+	_error_("not implemented yet");
+}
+void LsfReinitializationAnalysis::InputUpdateFromSolution(IssmDouble* solution,Element* element){
+	_error_("not implemented yet");
+}
+void LsfReinitializationAnalysis::UpdateConstraints(FemModel* femmodel){
+	_error_("not implemented yet");
+}
+
Index: /issm/trunk-jpl/src/c/analyses/LsfReinitializationAnalysis.h
===================================================================
--- /issm/trunk-jpl/src/c/analyses/LsfReinitializationAnalysis.h	(revision 17305)
+++ /issm/trunk-jpl/src/c/analyses/LsfReinitializationAnalysis.h	(revision 17305)
@@ -0,0 +1,32 @@
+/*! \file LsfReinitializationAnalysis.h 
+ *  \brief: header file for generic external result object
+ */
+
+#ifndef _LsfReinitializationAnalysis_
+#define _LsfReinitializationAnalysis_
+
+/*Headers*/
+#include "./Analysis.h"
+
+class LsfReinitializationAnalysis: public Analysis{
+	
+public:
+	/*Model processing*/
+	int  DofsPerNode(int** doflist,int meshtype,int approximation);
+	void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
+	void UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type);
+	void CreateNodes(Nodes* nodes,IoModel* iomodel);
+	void CreateConstraints(Constraints* constraints,IoModel* iomodel);
+	void CreateLoads(Loads* loads, IoModel* iomodel);
+
+	/*Finite element Analysis*/
+	void           Core(FemModel* femmodel);
+	ElementVector* CreateDVector(Element* element);
+	ElementMatrix* CreateJacobianMatrix(Element* element);
+	ElementMatrix* CreateKMatrix(Element* element);
+	ElementVector* CreatePVector(Element* element);
+	void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element);
+	void InputUpdateFromSolution(IssmDouble* solution,Element* element);
+	void UpdateConstraints(FemModel* femmodel);
+};
+#endif
Index: /issm/trunk-jpl/src/c/analyses/analyses.h
===================================================================
--- /issm/trunk-jpl/src/c/analyses/analyses.h	(revision 17304)
+++ /issm/trunk-jpl/src/c/analyses/analyses.h	(revision 17305)
@@ -25,4 +25,5 @@
 #include "./HydrologyShreveAnalysis.h"
 #include "./LevelsetAnalysis.h"
+#include "./LsfReinitializationAnalysis.h"
 #include "./MasstransportAnalysis.h"
 #include "./MeltingAnalysis.h"
Index: /issm/trunk-jpl/src/c/cores/AnalysisConfiguration.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/AnalysisConfiguration.cpp	(revision 17304)
+++ /issm/trunk-jpl/src/c/cores/AnalysisConfiguration.cpp	(revision 17305)
@@ -116,5 +116,5 @@
 
 		case TransientSolutionEnum:
-			numanalyses=14;
+			numanalyses=15;
 			analyses=xNew<int>(numanalyses);
 			analyses[ 0]=StressbalanceAnalysisEnum;
@@ -132,4 +132,5 @@
 			analyses[12]=LevelsetAnalysisEnum;
 			analyses[13]=ExtrapolationAnalysisEnum;
+			analyses[14]=LsfReinitializationAnalysisEnum;
 			break;
 
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 17304)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 17305)
@@ -354,4 +354,5 @@
 	LevelsetAnalysisEnum,
 	ExtrapolationAnalysisEnum,
+	LsfReinitializationAnalysisEnum,
 	/*}}}*/
 	/*Approximations {{{*/
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 17304)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 17305)
@@ -355,4 +355,5 @@
 		case LevelsetAnalysisEnum : return "LevelsetAnalysis";
 		case ExtrapolationAnalysisEnum : return "ExtrapolationAnalysis";
+		case LsfReinitializationAnalysisEnum : return "LsfReinitializationAnalysis";
 		case ApproximationEnum : return "Approximation";
 		case NoneApproximationEnum : return "NoneApproximation";
Index: /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 17304)
+++ /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 17305)
@@ -361,4 +361,5 @@
 	      else if (strcmp(name,"LevelsetAnalysis")==0) return LevelsetAnalysisEnum;
 	      else if (strcmp(name,"ExtrapolationAnalysis")==0) return ExtrapolationAnalysisEnum;
+	      else if (strcmp(name,"LsfReinitializationAnalysis")==0) return LsfReinitializationAnalysisEnum;
 	      else if (strcmp(name,"Approximation")==0) return ApproximationEnum;
 	      else if (strcmp(name,"NoneApproximation")==0) return NoneApproximationEnum;
@@ -382,9 +383,9 @@
 	      else if (strcmp(name,"Results")==0) return ResultsEnum;
 	      else if (strcmp(name,"GenericParam")==0) return GenericParamEnum;
-	      else if (strcmp(name,"AdolcParam")==0) return AdolcParamEnum;
          else stage=4;
    }
    if(stage==4){
-	      if (strcmp(name,"BoolInput")==0) return BoolInputEnum;
+	      if (strcmp(name,"AdolcParam")==0) return AdolcParamEnum;
+	      else if (strcmp(name,"BoolInput")==0) return BoolInputEnum;
 	      else if (strcmp(name,"BoolParam")==0) return BoolParamEnum;
 	      else if (strcmp(name,"Contour")==0) return ContourEnum;
@@ -505,9 +506,9 @@
 	      else if (strcmp(name,"VzMesh")==0) return VzMeshEnum;
 	      else if (strcmp(name,"Enthalpy")==0) return EnthalpyEnum;
-	      else if (strcmp(name,"EnthalpyPicard")==0) return EnthalpyPicardEnum;
          else stage=5;
    }
    if(stage==5){
-	      if (strcmp(name,"ThicknessAbsGradient")==0) return ThicknessAbsGradientEnum;
+	      if (strcmp(name,"EnthalpyPicard")==0) return EnthalpyPicardEnum;
+	      else if (strcmp(name,"ThicknessAbsGradient")==0) return ThicknessAbsGradientEnum;
 	      else if (strcmp(name,"ThicknessAlongGradient")==0) return ThicknessAlongGradientEnum;
 	      else if (strcmp(name,"ThicknessAcrossGradient")==0) return ThicknessAcrossGradientEnum;
@@ -628,9 +629,9 @@
 	      else if (strcmp(name,"Sset")==0) return SsetEnum;
 	      else if (strcmp(name,"Verbose")==0) return VerboseEnum;
-	      else if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
          else stage=6;
    }
    if(stage==6){
-	      if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;
+	      if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
+	      else if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;
 	      else if (strcmp(name,"NearestInterp")==0) return NearestInterpEnum;
 	      else if (strcmp(name,"XY")==0) return XYEnum;
Index: /issm/trunk-jpl/src/m/enum/EnumDefinitions.py
===================================================================
--- /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 17304)
+++ /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 17305)
@@ -347,4 +347,5 @@
 def LevelsetAnalysisEnum(): return StringToEnum("LevelsetAnalysis")[0]
 def ExtrapolationAnalysisEnum(): return StringToEnum("ExtrapolationAnalysis")[0]
+def LsfReinitializationAnalysisEnum(): return StringToEnum("LsfReinitializationAnalysis")[0]
 def ApproximationEnum(): return StringToEnum("Approximation")[0]
 def NoneApproximationEnum(): return StringToEnum("NoneApproximation")[0]
Index: /issm/trunk-jpl/src/m/enum/LsfReinitializationAnalysisEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/LsfReinitializationAnalysisEnum.m	(revision 17305)
+++ /issm/trunk-jpl/src/m/enum/LsfReinitializationAnalysisEnum.m	(revision 17305)
@@ -0,0 +1,11 @@
+function macro=LsfReinitializationAnalysisEnum()
+%LSFREINITIALIZATIONANALYSISENUM - Enum of LsfReinitializationAnalysis
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+%            Please read src/c/shared/Enum/README for more information
+%
+%   Usage:
+%      macro=LsfReinitializationAnalysisEnum()
+
+macro=StringToEnum('LsfReinitializationAnalysis');
