Index: /issm/trunk-jpl/src/c/classes/FemModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 18527)
+++ /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 18528)
@@ -489,4 +489,5 @@
 
 		case DivergenceEnum:               this->Divergencex(responses); break;
+		case MaxDivergenceEnum:            this->MaxDivergencex(responses); break;
 		case IceVolumeEnum:                this->IceVolumex(responses); break;
 		case IceVolumeAboveFloatationEnum: this->IceVolumeAboveFloatationx(responses); break;
@@ -563,4 +564,5 @@
 				/*Scalar output*/
 				case DivergenceEnum:               this->Divergencex(&double_result);               break;
+				case MaxDivergenceEnum:            this->MaxDivergencex(&double_result);            break;
 				case IceVolumeEnum:                this->IceVolumex(&double_result);                break;
 				case IceVolumeAboveFloatationEnum: this->IceVolumeAboveFloatationx(&double_result); break;
@@ -1125,4 +1127,23 @@
 
 }/*}}}*/
+void FemModel::MaxDivergencex(IssmDouble* pdiv){/*{{{*/
+
+	IssmDouble local_divergence;
+	IssmDouble node_max_divergence;
+	IssmDouble max_divergence = -INFINITY;
+
+	for(int i=0;i<this->elements->Size();i++){
+		Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
+		local_divergence=element->Divergence();
+		if(fabs(local_divergence)>max_divergence) max_divergence=fabs(local_divergence);
+	}
+	ISSM_MPI_Reduce(&max_divergence,&node_max_divergence,1,ISSM_MPI_DOUBLE,ISSM_MPI_MAX,0,IssmComm::GetComm() );
+	ISSM_MPI_Bcast(&node_max_divergence,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
+	max_divergence=node_max_divergence;
+
+	/*Assign output pointers: */
+	*pdiv=max_divergence;
+
+}/*}}}*/
 void FemModel::GetInputLocalMinMaxOnNodesx(IssmDouble** pmin,IssmDouble** pmax,IssmDouble* ug){/*{{{*/
 
Index: /issm/trunk-jpl/src/c/classes/FemModel.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.h	(revision 18527)
+++ /issm/trunk-jpl/src/c/classes/FemModel.h	(revision 18528)
@@ -76,4 +76,5 @@
 		void TotalSmbx(IssmDouble* pSmb);
 		void Divergencex(IssmDouble* pdiv);
+		void MaxDivergencex(IssmDouble* pdiv);
 		void IceVolumex(IssmDouble* pV);
 		void IceVolumeAboveFloatationx(IssmDouble* pV);
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 18527)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 18528)
@@ -580,4 +580,5 @@
 	StrainRatezzEnum,
 	DivergenceEnum,
+	MaxDivergenceEnum,
 	GiaCrossSectionShapeEnum,
 	GiadWdtEnum,
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 18527)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 18528)
@@ -571,4 +571,5 @@
 		case StrainRatezzEnum : return "StrainRatezz";
 		case DivergenceEnum : return "Divergence";
+		case MaxDivergenceEnum : return "MaxDivergence";
 		case GiaCrossSectionShapeEnum : return "GiaCrossSectionShape";
 		case GiadWdtEnum : return "GiadWdt";
Index: /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 18527)
+++ /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 18528)
@@ -583,4 +583,5 @@
 	      else if (strcmp(name,"StrainRatezz")==0) return StrainRatezzEnum;
 	      else if (strcmp(name,"Divergence")==0) return DivergenceEnum;
+	      else if (strcmp(name,"MaxDivergence")==0) return MaxDivergenceEnum;
 	      else if (strcmp(name,"GiaCrossSectionShape")==0) return GiaCrossSectionShapeEnum;
 	      else if (strcmp(name,"GiadWdt")==0) return GiadWdtEnum;
@@ -628,9 +629,9 @@
 	      else if (strcmp(name,"MisfitObservationEnum")==0) return MisfitObservationEnumEnum;
 	      else if (strcmp(name,"MisfitTimeinterpolation")==0) return MisfitTimeinterpolationEnum;
-	      else if (strcmp(name,"MisfitWeights")==0) return MisfitWeightsEnum;
          else stage=6;
    }
    if(stage==6){
-	      if (strcmp(name,"MisfitWeightsEnum")==0) return MisfitWeightsEnumEnum;
+	      if (strcmp(name,"MisfitWeights")==0) return MisfitWeightsEnum;
+	      else if (strcmp(name,"MisfitWeightsEnum")==0) return MisfitWeightsEnumEnum;
 	      else if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum;
 	      else if (strcmp(name,"WeightsSurfaceObservation")==0) return WeightsSurfaceObservationEnum;
@@ -751,9 +752,9 @@
 	      else if (strcmp(name,"MaterialsTimeRelaxationStress")==0) return MaterialsTimeRelaxationStressEnum;
 	      else if (strcmp(name,"MaterialsTimeRelaxationDamage")==0) return MaterialsTimeRelaxationDamageEnum;
-	      else if (strcmp(name,"MaterialsRidgingExponent")==0) return MaterialsRidgingExponentEnum;
          else stage=7;
    }
    if(stage==7){
-	      if (strcmp(name,"MaterialsCohesion")==0) return MaterialsCohesionEnum;
+	      if (strcmp(name,"MaterialsRidgingExponent")==0) return MaterialsRidgingExponentEnum;
+	      else if (strcmp(name,"MaterialsCohesion")==0) return MaterialsCohesionEnum;
 	      else if (strcmp(name,"MaterialsInternalFrictionCoef")==0) return MaterialsInternalFrictionCoefEnum;
 	      else if (strcmp(name,"MaterialsCompressionCoef")==0) return MaterialsCompressionCoefEnum;
Index: /issm/trunk-jpl/src/m/enum/EnumDefinitions.py
===================================================================
--- /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 18527)
+++ /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 18528)
@@ -563,4 +563,5 @@
 def StrainRatezzEnum(): return StringToEnum("StrainRatezz")[0]
 def DivergenceEnum(): return StringToEnum("Divergence")[0]
+def MaxDivergenceEnum(): return StringToEnum("MaxDivergence")[0]
 def GiaCrossSectionShapeEnum(): return StringToEnum("GiaCrossSectionShape")[0]
 def GiadWdtEnum(): return StringToEnum("GiadWdt")[0]
Index: /issm/trunk-jpl/src/m/enum/MaxDivergenceEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/MaxDivergenceEnum.m	(revision 18528)
+++ /issm/trunk-jpl/src/m/enum/MaxDivergenceEnum.m	(revision 18528)
@@ -0,0 +1,11 @@
+function macro=MaxDivergenceEnum()
+%MAXDIVERGENCEENUM - Enum of MaxDivergence
+%
+%   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=MaxDivergenceEnum()
+
+macro=StringToEnum('MaxDivergence');
