Index: /issm/trunk-jpl/src/c/classes/Params/Parameters.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/Parameters.cpp	(revision 21086)
+++ /issm/trunk-jpl/src/c/classes/Params/Parameters.cpp	(revision 21087)
@@ -62,6 +62,8 @@
 
 	/*Get index in array*/
-	_assert_(param_enum>ParametersSTARTEnum);
-	_assert_(param_enum<ParametersENDEnum);
+	#ifdef _ISSM_DEBUG_
+	if(param_enum<=ParametersSTARTEnum) _error_("Enum "<<EnumToStringx(param_enum)<<" should appear after ParametersSTARTEnum");
+	if(param_enum>=ParametersENDEnum)   _error_("Enum "<<EnumToStringx(param_enum)<<" should appear before ParametersENDEnum");
+	#endif
 	int index = param_enum - ParametersSTARTEnum -1;
 
@@ -547,6 +549,8 @@
 Param* Parameters::FindParamObject(int param_enum){/*{{{*/
 
-	_assert_(param_enum>ParametersSTARTEnum);
-	_assert_(param_enum<ParametersENDEnum);
+	#ifdef _ISSM_DEBUG_
+	if(param_enum<=ParametersSTARTEnum) _error_("Enum "<<EnumToStringx(param_enum)<<" should appear after ParametersSTARTEnum");
+	if(param_enum>=ParametersENDEnum)   _error_("Enum "<<EnumToStringx(param_enum)<<" should appear before ParametersENDEnum");
+	#endif
 
 	int index = param_enum - ParametersSTARTEnum -1;
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 21086)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 21087)
@@ -8,10 +8,9 @@
 
 enum definitions{
+	FemModelEnum,
 	ParametersSTARTEnum,
-	/*General: {{{*/
-	FemModelEnum,
+	FSSolverEnum,
+	/*Parameters {{*/
 	IsRestartEnum,
-	/*}}}*/
-	/*Communicators:{{{*/
 	FemModelCommEnum,
 	WorldCommEnum,
@@ -20,4 +19,14 @@
 	ModelIdEnum,
 	EarthIdEnum,
+	SolutionTypeEnum,
+	AnalysisTypeEnum,
+	AnalysisCounterEnum,
+	ConfigurationTypeEnum,
+	InputToExtrudeEnum,
+	InputToL2ProjectEnum,
+	InputToDepthaverageInEnum,
+	InputToDepthaverageOutEnum,
+	InputToSmoothEnum,
+	SmoothThicknessMultiplierEnum,
 	/*}}}*/
 	/*Model fields {{{*/
@@ -497,177 +506,4 @@
 	SmbIssmbgradientsEnum,
 	/*}}}*/
-	/*Solutions and Analyses{{{ */
-	SolutionTypeEnum,
-	AnalysisTypeEnum,
-	ConfigurationTypeEnum,
-	AdjointBalancethicknessAnalysisEnum,
-	AdjointBalancethickness2AnalysisEnum,
-	AdjointHorizAnalysisEnum,
-	AnalysisCounterEnum,
-	DefaultAnalysisEnum,
-	BalancethicknessAnalysisEnum,
-	BalancethicknessSolutionEnum,
-	Balancethickness2AnalysisEnum,
-	Balancethickness2SolutionEnum,
-	BalancethicknessSoftAnalysisEnum,
-	BalancethicknessSoftSolutionEnum,
-	BalancevelocityAnalysisEnum,
-	BalancevelocitySolutionEnum,
-	L2ProjectionEPLAnalysisEnum,
-	L2ProjectionBaseAnalysisEnum,
-	BedSlopeSolutionEnum,
-	DamageEvolutionSolutionEnum,
-	DamageEvolutionAnalysisEnum,
-	StressbalanceAnalysisEnum,
-	StressbalanceSIAAnalysisEnum,
-	StressbalanceSolutionEnum,
-	StressbalanceVerticalAnalysisEnum,
-	EnthalpyAnalysisEnum,
-	FlaimAnalysisEnum,
-	FlaimSolutionEnum,
-	HydrologyShreveAnalysisEnum,
-	HydrologyDCInefficientAnalysisEnum,
-	HydrologyDCEfficientAnalysisEnum,
-	HydrologySommersAnalysisEnum,
-	HydrologySolutionEnum,
-	MeltingAnalysisEnum,
-	MasstransportAnalysisEnum,
-	MasstransportSolutionEnum,
-	FreeSurfaceBaseAnalysisEnum,
-	FreeSurfaceTopAnalysisEnum,
-	SurfaceNormalVelocityEnum,
-	ExtrudeFromBaseAnalysisEnum,
-	ExtrudeFromTopAnalysisEnum,
-	DepthAverageAnalysisEnum,
-	SteadystateSolutionEnum,
-	SurfaceSlopeSolutionEnum,
-	SmoothAnalysisEnum,
-	ThermalAnalysisEnum,
-	ThermalSolutionEnum,
-	TransientSolutionEnum,
-	UzawaPressureAnalysisEnum,
-	GiaSolutionEnum,
-	GiaAnalysisEnum,
-	MeshdeformationSolutionEnum,
-	MeshdeformationAnalysisEnum,
-	LevelsetAnalysisEnum,
-	LevelsetStabilizationEnum,
-	ExtrapolationAnalysisEnum,
-	/*}}}*/
-	/*Approximations {{{*/
-	ApproximationEnum,
-	NoneApproximationEnum,
-	SIAApproximationEnum,
-	SSAApproximationEnum,
-	SSAHOApproximationEnum,
-	SSAFSApproximationEnum,
-	L1L2ApproximationEnum,
-	HOApproximationEnum,
-	HOFSApproximationEnum,
-	FSApproximationEnum,
-	FSvelocityEnum,
-	FSpressureEnum,
-	/*}}}*/
-	/*Datasets {{{*/
-	DataSetEnum,
-	ConstraintsEnum,
-	LoadsEnum,
-	MaterialsEnum,
-	NodesEnum,
-	ContoursEnum,
-	ParametersEnum,
-	VerticesEnum,
-	ResultsEnum,
-	/*}}}*/
-	/*Objects {{{*/
-	GenericParamEnum,
-	AdolcParamEnum,
-	BoolInputEnum,
-	BoolParamEnum,
-	ContourEnum,
-	ControlInputEnum,
-	DatasetInputEnum,
-	DoubleInputEnum,
-	DoubleArrayInputEnum,
-	DataSetParamEnum,
-	DoubleMatArrayParamEnum,
-	DoubleMatParamEnum,
-	DoubleParamEnum,
-	DoubleVecParamEnum,
-	ElementEnum,
-	ElementHookEnum,
-	HookEnum,
-	ExternalResultEnum,
-	FileParamEnum,
-	InputEnum,
-	IntInputEnum,
-	InputToExtrudeEnum,
-	InputToL2ProjectEnum,
-	InputToDepthaverageInEnum,
-	InputToDepthaverageOutEnum,
-	InputToSmoothEnum,
-	SmoothThicknessMultiplierEnum,
-	IntParamEnum,
-	IntVecParamEnum,
-	TransientParamEnum,
-	MaticeEnum,
-	MatdamageiceEnum,
-	MatestarEnum,
-	MatparEnum,
-	NodeEnum,
-	NumericalfluxEnum,
-	NumericalfluxTypeEnum,
-	NeumannfluxEnum,
-	ParamEnum,
-	MoulinEnum,
-	PengridEnum,
-	PenpairEnum,
-	ProfilerEnum,
-	MatrixParamEnum,
-	MassconEnum,
-	MassconNameEnum,
-	MassconDefinitionenumEnum,
-	MassconLevelsetEnum,
-	MassconaxpbyEnum,
-	MassconaxpbyNameEnum,
-	MassconaxpbyDefinitionenumEnum,
-	MassconaxpbyNamexEnum,
-	MassconaxpbyNameyEnum,
-	MassconaxpbyAlphaEnum,
-	MassconaxpbyBetaEnum,
-	NodeSIdEnum,
-	VectorParamEnum,
-	RiftfrontEnum,
-	RiftfrontTypeEnum,
-	SegmentEnum,
-	SegmentRiftfrontEnum,
-	SpcDynamicEnum,
-	SpcStaticEnum,
-	SpcTransientEnum,
-	StringArrayParamEnum,
-	StringParamEnum,
-	SegEnum,
-	SegInputEnum,
-	TriaEnum,
-	TriaInputEnum,
-	TetraEnum,
-	TetraInputEnum,
-	PentaEnum,
-	PentaInputEnum,
-	VertexEnum,
-	VertexPIdEnum,
-	VertexSIdEnum,
-	/*}}}*/
-	/*Fill {{{*/
-	AirEnum,
-	IceEnum,
-	MelangeEnum,
-	WaterEnum,
-	/*}}}*/
-	/*Rift state {{{*/
-	ClosedEnum,
-	FreeEnum,
-	OpenEnum,
-	/*}}}*/
 	/*Inputs {{{*/
 	AdjointpEnum,
@@ -770,29 +606,4 @@
 	GiadWdtEnum,
 	GiaWEnum,
-	/*}}}*/
-	/*Element Interpolations{{{*/
-	P0Enum,
-	P0ArrayEnum,
-	P1Enum,
-	P1DGEnum,
-	P1bubbleEnum,
-	P1bubblecondensedEnum,
-	P2Enum,
-	P2bubbleEnum,
-	P2bubblecondensedEnum,
-	P2xP1Enum,
-	P1xP2Enum,
-	P1xP3Enum,
-	P2xP4Enum,
-	P1P1Enum,
-	P1P1GLSEnum,
-	MINIEnum,
-	MINIcondensedEnum,
-	TaylorHoodEnum,
-	LATaylorHoodEnum,
-	XTaylorHoodEnum,
-	OneLayerP4zEnum,
-	CrouzeixRaviartEnum,
-	LACrouzeixRaviartEnum,
 	/*}}}*/
 	/*Results{{{*/
@@ -936,25 +747,4 @@
 	WeightsVyObsEnum,
 	/*}}}*/
-	/*Responses{{{*/
-	MinVelEnum,
-	MaxVelEnum,
-	MinVxEnum,
-	MaxVxEnum,
-	MaxAbsVxEnum,
-	MinVyEnum,
-	MaxVyEnum,
-	MaxAbsVyEnum,
-	MinVzEnum,
-	MaxVzEnum,
-	MaxAbsVzEnum,
-	FloatingAreaEnum,
-	GroundedAreaEnum,
-	IceMassEnum,
-	IceVolumeEnum,
-	IceVolumeAboveFloatationEnum,
-	TotalFloatingBmbEnum,
-	TotalGroundedBmbEnum,
-	TotalSmbEnum,
-	/*}}}*/
 	/*Relaxation{{{*/
 	AbsoluteEnum,
@@ -975,13 +765,4 @@
 	GroundingOnlyEnum,
 	MaskGroundediceLevelsetEnum,
-	/*}}}*/
-	/*Gauss{{{*/
-	GaussSegEnum,
-	GaussTriaEnum,
-	GaussTetraEnum,
-	GaussPentaEnum,
-	/*}}}*/
-	/*Solver{{{*/
-	FSSolverEnum,
 	/*}}}*/
 	/*Parameters{{{*/
@@ -1021,9 +802,4 @@
 	VerboseEnum,
 	/*}}}*/
-	/*Interpolation {{{*/
-	TriangleInterpEnum,
-	BilinearInterpEnum,
-	NearestInterpEnum,
-	/*}}}*/
 	/*Coordinate Systems{{{*/
 	XYEnum,
@@ -1039,10 +815,4 @@
 	GslEnum,
 	/*}}}*/
-	/*Options{{{*/
-	OptionEnum,
-	GenericOptionEnum,
-	OptionCellEnum,
-	OptionStructEnum,
-	/*}}}*/
 	/*Rheology law (move to Material) {{{*/
 	CuffeyEnum,
@@ -1063,6 +833,4 @@
 	/*}}}*/
 	/*Sea Level Rise{{{*/
-	SealevelriseSolutionEnum,
-	SealevelriseAnalysisEnum,
 	SealevelEnum,
 	SealevelUmotionEnum,
@@ -1091,4 +859,232 @@
 	/*}}}*/
 	ParametersENDEnum,
+	/*Objects {{{*/
+	GenericParamEnum,
+	AdolcParamEnum,
+	BoolInputEnum,
+	BoolParamEnum,
+	ContourEnum,
+	ControlInputEnum,
+	DatasetInputEnum,
+	DoubleInputEnum,
+	DoubleArrayInputEnum,
+	DataSetParamEnum,
+	DoubleMatArrayParamEnum,
+	DoubleMatParamEnum,
+	DoubleParamEnum,
+	DoubleVecParamEnum,
+	ElementEnum,
+	ElementHookEnum,
+	HookEnum,
+	ExternalResultEnum,
+	FileParamEnum,
+	InputEnum,
+	IntInputEnum,
+	IntParamEnum,
+	IntVecParamEnum,
+	TransientParamEnum,
+	MaticeEnum,
+	MatdamageiceEnum,
+	MatestarEnum,
+	MatparEnum,
+	NodeEnum,
+	NumericalfluxEnum,
+	NumericalfluxTypeEnum,
+	NeumannfluxEnum,
+	ParamEnum,
+	MoulinEnum,
+	PengridEnum,
+	PenpairEnum,
+	ProfilerEnum,
+	MatrixParamEnum,
+	MassconEnum,
+	MassconNameEnum,
+	MassconDefinitionenumEnum,
+	MassconLevelsetEnum,
+	MassconaxpbyEnum,
+	MassconaxpbyNameEnum,
+	MassconaxpbyDefinitionenumEnum,
+	MassconaxpbyNamexEnum,
+	MassconaxpbyNameyEnum,
+	MassconaxpbyAlphaEnum,
+	MassconaxpbyBetaEnum,
+	NodeSIdEnum,
+	VectorParamEnum,
+	RiftfrontEnum,
+	RiftfrontTypeEnum,
+	SegmentEnum,
+	SegmentRiftfrontEnum,
+	SpcDynamicEnum,
+	SpcStaticEnum,
+	SpcTransientEnum,
+	StringArrayParamEnum,
+	StringParamEnum,
+	SegEnum,
+	SegInputEnum,
+	TriaEnum,
+	TriaInputEnum,
+	TetraEnum,
+	TetraInputEnum,
+	PentaEnum,
+	PentaInputEnum,
+	VertexEnum,
+	VertexPIdEnum,
+	VertexSIdEnum,
+	/*}}}*/
+	/*Options{{{*/
+	OptionEnum,
+	GenericOptionEnum,
+	OptionCellEnum,
+	OptionStructEnum,
+	/*}}}*/
+	/*Solutions and Analyses{{{ */
+	AdjointBalancethicknessAnalysisEnum,
+	AdjointBalancethickness2AnalysisEnum,
+	AdjointHorizAnalysisEnum,
+	DefaultAnalysisEnum,
+	BalancethicknessAnalysisEnum,
+	BalancethicknessSolutionEnum,
+	Balancethickness2AnalysisEnum,
+	Balancethickness2SolutionEnum,
+	BalancethicknessSoftAnalysisEnum,
+	BalancethicknessSoftSolutionEnum,
+	BalancevelocityAnalysisEnum,
+	BalancevelocitySolutionEnum,
+	L2ProjectionEPLAnalysisEnum,
+	L2ProjectionBaseAnalysisEnum,
+	BedSlopeSolutionEnum,
+	DamageEvolutionSolutionEnum,
+	DamageEvolutionAnalysisEnum,
+	StressbalanceAnalysisEnum,
+	StressbalanceSIAAnalysisEnum,
+	StressbalanceSolutionEnum,
+	StressbalanceVerticalAnalysisEnum,
+	EnthalpyAnalysisEnum,
+	FlaimAnalysisEnum,
+	FlaimSolutionEnum,
+	HydrologyShreveAnalysisEnum,
+	HydrologyDCInefficientAnalysisEnum,
+	HydrologyDCEfficientAnalysisEnum,
+	HydrologySommersAnalysisEnum,
+	HydrologySolutionEnum,
+	MeltingAnalysisEnum,
+	MasstransportAnalysisEnum,
+	MasstransportSolutionEnum,
+	FreeSurfaceBaseAnalysisEnum,
+	FreeSurfaceTopAnalysisEnum,
+	SurfaceNormalVelocityEnum,
+	ExtrudeFromBaseAnalysisEnum,
+	ExtrudeFromTopAnalysisEnum,
+	DepthAverageAnalysisEnum,
+	SealevelriseSolutionEnum,
+	SealevelriseAnalysisEnum,
+	SteadystateSolutionEnum,
+	SurfaceSlopeSolutionEnum,
+	SmoothAnalysisEnum,
+	ThermalAnalysisEnum,
+	ThermalSolutionEnum,
+	TransientSolutionEnum,
+	UzawaPressureAnalysisEnum,
+	GiaSolutionEnum,
+	GiaAnalysisEnum,
+	MeshdeformationSolutionEnum,
+	MeshdeformationAnalysisEnum,
+	LevelsetAnalysisEnum,
+	LevelsetStabilizationEnum,
+	ExtrapolationAnalysisEnum,
+	/*}}}*/
+	/*Approximations {{{*/
+	ApproximationEnum,
+	NoneApproximationEnum,
+	SIAApproximationEnum,
+	SSAApproximationEnum,
+	SSAHOApproximationEnum,
+	SSAFSApproximationEnum,
+	L1L2ApproximationEnum,
+	HOApproximationEnum,
+	HOFSApproximationEnum,
+	FSApproximationEnum,
+	FSvelocityEnum,
+	FSpressureEnum,
+	/*}}}*/
+	/*Gauss{{{*/
+	GaussSegEnum,
+	GaussTriaEnum,
+	GaussTetraEnum,
+	GaussPentaEnum,
+	/*}}}*/
+	/*Interpolation {{{*/
+	TriangleInterpEnum,
+	BilinearInterpEnum,
+	NearestInterpEnum,
+	/*}}}*/
+	/*Responses{{{*/
+	MinVelEnum,
+	MaxVelEnum,
+	MinVxEnum,
+	MaxVxEnum,
+	MaxAbsVxEnum,
+	MinVyEnum,
+	MaxVyEnum,
+	MaxAbsVyEnum,
+	MinVzEnum,
+	MaxVzEnum,
+	MaxAbsVzEnum,
+	FloatingAreaEnum,
+	GroundedAreaEnum,
+	IceMassEnum,
+	IceVolumeEnum,
+	IceVolumeAboveFloatationEnum,
+	TotalFloatingBmbEnum,
+	TotalGroundedBmbEnum,
+	TotalSmbEnum,
+	/*}}}*/
+	/*Element Interpolations{{{*/
+	P0Enum,
+	P0ArrayEnum,
+	P1Enum,
+	P1DGEnum,
+	P1bubbleEnum,
+	P1bubblecondensedEnum,
+	P2Enum,
+	P2bubbleEnum,
+	P2bubblecondensedEnum,
+	P2xP1Enum,
+	P1xP2Enum,
+	P1xP3Enum,
+	P2xP4Enum,
+	P1P1Enum,
+	P1P1GLSEnum,
+	MINIEnum,
+	MINIcondensedEnum,
+	TaylorHoodEnum,
+	LATaylorHoodEnum,
+	XTaylorHoodEnum,
+	OneLayerP4zEnum,
+	CrouzeixRaviartEnum,
+	LACrouzeixRaviartEnum,
+	/*}}}*/
+	/*Rift state {{{*/
+	ClosedEnum,
+	FreeEnum,
+	OpenEnum,
+	/*}}}*/
+	/*Fill {{{*/
+	AirEnum,
+	IceEnum,
+	MelangeEnum,
+	WaterEnum,
+	/*}}}*/
+	/*Datasets {{{*/
+	DataSetEnum,
+	ConstraintsEnum,
+	LoadsEnum,
+	MaterialsEnum,
+	NodesEnum,
+	ContoursEnum,
+	ParametersEnum,
+	VerticesEnum,
+	ResultsEnum,
+	/*}}}*/
 	MaximumNumberOfDefinitionsEnum
 };
