Index: issm/trunk-jpl/src/c/classes/Inputs/Inputs.cpp
===================================================================
--- issm/trunk-jpl/src/c/classes/Inputs/Inputs.cpp	(revision 23849)
+++ issm/trunk-jpl/src/c/classes/Inputs/Inputs.cpp	(revision 23853)
@@ -33,4 +33,7 @@
 	_assert_(in_input); 
 	int enum_name = in_input->InstanceEnum();
+	#ifdef _ISSM_DEBUG_
+	if(!IsInputEnum(enum_name)) _error_("Enum \""<<EnumToStringx(enum_name)<<"\" is not placed properly in EnumDefinitions.h");
+	 #endif
 
 	/*Go through current inputs*/
Index: issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 23849)
+++ issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 23853)
@@ -641,4 +641,5 @@
 	SmbHrefEnum,
 	SmbIsInitializedEnum,
+	SmbMAddEnum,
 	SmbMassBalanceEnum,
 	SmbMassBalanceClimateEnum,
@@ -683,4 +684,11 @@
 	SmbZTopEnum,
 	SmbZYEnum,
+	SmbDzAddEnum,
+	SmbFACEnum,
+	SmbMeanULWEnum,
+	SmbNetLWEnum,
+	SmbNetSWEnum,
+	SmbMeanLHFEnum,
+	SmbMeanSHFEnum,
 	StrainRateeffectiveEnum,
 	StrainRateparallelEnum,
@@ -1133,11 +1141,4 @@
 	SMBcomponentsEnum,
 	SMBd18opddEnum,
-	SmbDzAddEnum,
-	SmbFACEnum,
-	SmbMeanULWEnum,
-	SmbNetLWEnum,
-	SmbNetSWEnum,
-	SmbMeanLHFEnum,
-	SmbMeanSHFEnum,
 	SMBforcingEnum,
 	SMBgcmEnum,
@@ -1146,5 +1147,4 @@
 	SMBgradientsEnum,
 	SMBhenningEnum,
-	SmbMAddEnum,
 	SMBmeltcomponentsEnum,
 	SMBpddEnum,
Index: issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 23849)
+++ issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 23853)
@@ -647,4 +647,5 @@
 		case SmbHrefEnum : return "SmbHref";
 		case SmbIsInitializedEnum : return "SmbIsInitialized";
+		case SmbMAddEnum : return "SmbMAdd";
 		case SmbMassBalanceEnum : return "SmbMassBalance";
 		case SmbMassBalanceClimateEnum : return "SmbMassBalanceClimate";
@@ -689,4 +690,11 @@
 		case SmbZTopEnum : return "SmbZTop";
 		case SmbZYEnum : return "SmbZY";
+		case SmbDzAddEnum : return "SmbDzAdd";
+		case SmbFACEnum : return "SmbFAC";
+		case SmbMeanULWEnum : return "SmbMeanULW";
+		case SmbNetLWEnum : return "SmbNetLW";
+		case SmbNetSWEnum : return "SmbNetSW";
+		case SmbMeanLHFEnum : return "SmbMeanLHF";
+		case SmbMeanSHFEnum : return "SmbMeanSHF";
 		case StrainRateeffectiveEnum : return "StrainRateeffective";
 		case StrainRateparallelEnum : return "StrainRateparallel";
@@ -1137,11 +1145,4 @@
 		case SMBcomponentsEnum : return "SMBcomponents";
 		case SMBd18opddEnum : return "SMBd18opdd";
-		case SmbDzAddEnum : return "SmbDzAdd";
-		case SmbFACEnum : return "SmbFAC";
-		case SmbMeanULWEnum : return "SmbMeanULW";
-		case SmbNetLWEnum : return "SmbNetLW";
-		case SmbNetSWEnum : return "SmbNetSW";
-		case SmbMeanLHFEnum : return "SmbMeanLHF";
-		case SmbMeanSHFEnum : return "SmbMeanSHF";
 		case SMBforcingEnum : return "SMBforcing";
 		case SMBgcmEnum : return "SMBgcm";
@@ -1150,5 +1151,4 @@
 		case SMBgradientsEnum : return "SMBgradients";
 		case SMBhenningEnum : return "SMBhenning";
-		case SmbMAddEnum : return "SmbMAdd";
 		case SMBmeltcomponentsEnum : return "SMBmeltcomponents";
 		case SMBpddEnum : return "SMBpdd";
Index: issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 23849)
+++ issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 23853)
@@ -662,4 +662,5 @@
 	      else if (strcmp(name,"SmbHref")==0) return SmbHrefEnum;
 	      else if (strcmp(name,"SmbIsInitialized")==0) return SmbIsInitializedEnum;
+	      else if (strcmp(name,"SmbMAdd")==0) return SmbMAddEnum;
 	      else if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum;
 	      else if (strcmp(name,"SmbMassBalanceClimate")==0) return SmbMassBalanceClimateEnum;
@@ -704,4 +705,11 @@
 	      else if (strcmp(name,"SmbZTop")==0) return SmbZTopEnum;
 	      else if (strcmp(name,"SmbZY")==0) return SmbZYEnum;
+	      else if (strcmp(name,"SmbDzAdd")==0) return SmbDzAddEnum;
+	      else if (strcmp(name,"SmbFAC")==0) return SmbFACEnum;
+	      else if (strcmp(name,"SmbMeanULW")==0) return SmbMeanULWEnum;
+	      else if (strcmp(name,"SmbNetLW")==0) return SmbNetLWEnum;
+	      else if (strcmp(name,"SmbNetSW")==0) return SmbNetSWEnum;
+	      else if (strcmp(name,"SmbMeanLHF")==0) return SmbMeanLHFEnum;
+	      else if (strcmp(name,"SmbMeanSHF")==0) return SmbMeanSHFEnum;
 	      else if (strcmp(name,"StrainRateeffective")==0) return StrainRateeffectiveEnum;
 	      else if (strcmp(name,"StrainRateparallel")==0) return StrainRateparallelEnum;
@@ -744,5 +752,8 @@
 	      else if (strcmp(name,"VxMesh")==0) return VxMeshEnum;
 	      else if (strcmp(name,"VxObs")==0) return VxObsEnum;
-	      else if (strcmp(name,"VyAverage")==0) return VyAverageEnum;
+         else stage=7;
+   }
+   if(stage==7){
+	      if (strcmp(name,"VyAverage")==0) return VyAverageEnum;
 	      else if (strcmp(name,"Vy")==0) return VyEnum;
 	      else if (strcmp(name,"VyMesh")==0) return VyMeshEnum;
@@ -752,8 +763,5 @@
 	      else if (strcmp(name,"VzHO")==0) return VzHOEnum;
 	      else if (strcmp(name,"VzMesh")==0) return VzMeshEnum;
-         else stage=7;
-   }
-   if(stage==7){
-	      if (strcmp(name,"VzSSA")==0) return VzSSAEnum;
+	      else if (strcmp(name,"VzSSA")==0) return VzSSAEnum;
 	      else if (strcmp(name,"Watercolumn")==0) return WatercolumnEnum;
 	      else if (strcmp(name,"WaterColumnOld")==0) return WaterColumnOldEnum;
@@ -867,5 +875,8 @@
 	      else if (strcmp(name,"Free")==0) return FreeEnum;
 	      else if (strcmp(name,"FreeSurfaceBaseAnalysis")==0) return FreeSurfaceBaseAnalysisEnum;
-	      else if (strcmp(name,"FreeSurfaceTopAnalysis")==0) return FreeSurfaceTopAnalysisEnum;
+         else stage=8;
+   }
+   if(stage==8){
+	      if (strcmp(name,"FreeSurfaceTopAnalysis")==0) return FreeSurfaceTopAnalysisEnum;
 	      else if (strcmp(name,"FrontalForcingsDefault")==0) return FrontalForcingsDefaultEnum;
 	      else if (strcmp(name,"FrontalForcingsRignot")==0) return FrontalForcingsRignotEnum;
@@ -875,8 +886,5 @@
 	      else if (strcmp(name,"FSSolver")==0) return FSSolverEnum;
 	      else if (strcmp(name,"FSvelocity")==0) return FSvelocityEnum;
-         else stage=8;
-   }
-   if(stage==8){
-	      if (strcmp(name,"FullMeltOnPartiallyFloating")==0) return FullMeltOnPartiallyFloatingEnum;
+	      else if (strcmp(name,"FullMeltOnPartiallyFloating")==0) return FullMeltOnPartiallyFloatingEnum;
 	      else if (strcmp(name,"GaussPenta")==0) return GaussPentaEnum;
 	      else if (strcmp(name,"GaussSeg")==0) return GaussSegEnum;
@@ -990,5 +998,8 @@
 	      else if (strcmp(name,"Moulin")==0) return MoulinEnum;
 	      else if (strcmp(name,"MpiDense")==0) return MpiDenseEnum;
-	      else if (strcmp(name,"Mpi")==0) return MpiEnum;
+         else stage=9;
+   }
+   if(stage==9){
+	      if (strcmp(name,"Mpi")==0) return MpiEnum;
 	      else if (strcmp(name,"MpiSparse")==0) return MpiSparseEnum;
 	      else if (strcmp(name,"Mumps")==0) return MumpsEnum;
@@ -998,8 +1009,5 @@
 	      else if (strcmp(name,"NodeSId")==0) return NodeSIdEnum;
 	      else if (strcmp(name,"NoFrictionOnPartiallyFloating")==0) return NoFrictionOnPartiallyFloatingEnum;
-         else stage=9;
-   }
-   if(stage==9){
-	      if (strcmp(name,"NoMeltOnPartiallyFloating")==0) return NoMeltOnPartiallyFloatingEnum;
+	      else if (strcmp(name,"NoMeltOnPartiallyFloating")==0) return NoMeltOnPartiallyFloatingEnum;
 	      else if (strcmp(name,"NoneApproximation")==0) return NoneApproximationEnum;
 	      else if (strcmp(name,"None")==0) return NoneEnum;
@@ -1113,5 +1121,8 @@
 	      else if (strcmp(name,"P1bubblecondensed")==0) return P1bubblecondensedEnum;
 	      else if (strcmp(name,"P1bubble")==0) return P1bubbleEnum;
-	      else if (strcmp(name,"P1DG")==0) return P1DGEnum;
+         else stage=10;
+   }
+   if(stage==10){
+	      if (strcmp(name,"P1DG")==0) return P1DGEnum;
 	      else if (strcmp(name,"P1P1")==0) return P1P1Enum;
 	      else if (strcmp(name,"P1P1GLS")==0) return P1P1GLSEnum;
@@ -1121,8 +1132,5 @@
 	      else if (strcmp(name,"P2bubblecondensed")==0) return P2bubblecondensedEnum;
 	      else if (strcmp(name,"P2bubble")==0) return P2bubbleEnum;
-         else stage=10;
-   }
-   if(stage==10){
-	      if (strcmp(name,"P2")==0) return P2Enum;
+	      else if (strcmp(name,"P2")==0) return P2Enum;
 	      else if (strcmp(name,"P2xP1")==0) return P2xP1Enum;
 	      else if (strcmp(name,"P2xP4")==0) return P2xP4Enum;
@@ -1164,11 +1172,4 @@
 	      else if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum;
 	      else if (strcmp(name,"SMBd18opdd")==0) return SMBd18opddEnum;
-	      else if (strcmp(name,"SmbDzAdd")==0) return SmbDzAddEnum;
-	      else if (strcmp(name,"SmbFAC")==0) return SmbFACEnum;
-	      else if (strcmp(name,"SmbMeanULW")==0) return SmbMeanULWEnum;
-	      else if (strcmp(name,"SmbNetLW")==0) return SmbNetLWEnum;
-	      else if (strcmp(name,"SmbNetSW")==0) return SmbNetSWEnum;
-	      else if (strcmp(name,"SmbMeanLHF")==0) return SmbMeanLHFEnum;
-	      else if (strcmp(name,"SmbMeanSHF")==0) return SmbMeanSHFEnum;
 	      else if (strcmp(name,"SMBforcing")==0) return SMBforcingEnum;
 	      else if (strcmp(name,"SMBgcm")==0) return SMBgcmEnum;
@@ -1177,5 +1178,4 @@
 	      else if (strcmp(name,"SMBgradients")==0) return SMBgradientsEnum;
 	      else if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum;
-	      else if (strcmp(name,"SmbMAdd")==0) return SmbMAddEnum;
 	      else if (strcmp(name,"SMBmeltcomponents")==0) return SMBmeltcomponentsEnum;
 	      else if (strcmp(name,"SMBpdd")==0) return SMBpddEnum;
