Index: /issm/branches/trunk-larour-NatGeoScience2016/src/c/analyses/SealevelriseAnalysis.cpp
===================================================================
--- /issm/branches/trunk-larour-NatGeoScience2016/src/c/analyses/SealevelriseAnalysis.cpp	(revision 22107)
+++ /issm/branches/trunk-larour-NatGeoScience2016/src/c/analyses/SealevelriseAnalysis.cpp	(revision 22108)
@@ -84,4 +84,5 @@
 	parameters->AddObject(iomodel->CopyConstantObject("md.slr.abstol",SealevelriseAbstolEnum));
 	parameters->AddObject(iomodel->CopyConstantObject("md.slr.maxiter",SealevelriseMaxiterEnum));
+	parameters->AddObject(iomodel->CopyConstantObject("md.slr.loop_increment",SealevelriseLoopIncrementEnum));
 	parameters->AddObject(iomodel->CopyConstantObject("md.slr.rigid",SealevelriseRigidEnum));
 	parameters->AddObject(iomodel->CopyConstantObject("md.slr.elastic",SealevelriseElasticEnum));
Index: /issm/branches/trunk-larour-NatGeoScience2016/src/c/classes/FemModel.cpp
===================================================================
--- /issm/branches/trunk-larour-NatGeoScience2016/src/c/classes/FemModel.cpp	(revision 22107)
+++ /issm/branches/trunk-larour-NatGeoScience2016/src/c/classes/FemModel.cpp	(revision 22108)
@@ -2422,5 +2422,5 @@
 #endif
 #ifdef _HAVE_SEALEVELRISE_
-void FemModel::SealevelriseEustatic(Vector<IssmDouble>* pSgi, IssmDouble* peustatic, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius) { /*{{{*/
+void FemModel::SealevelriseEustatic(Vector<IssmDouble>* pSgi, IssmDouble* peustatic, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius,int loop) { /*{{{*/
 
 	/*serialized vectors:*/
@@ -2464,5 +2464,5 @@
 			eustatic_cpu+=eustatic_cpu_e;
 		}
-		if(i%100==0)pSgi->Assemble();
+		if(i%loop==0)pSgi->Assemble();
 	}
 	if(VerboseConvergence())_printf0_("\n");
@@ -2481,5 +2481,5 @@
 }
 /*}}}*/
-void FemModel::SealevelriseNonEustatic(Vector<IssmDouble>* pSgo, Vector<IssmDouble>* pSg_old, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, bool verboseconvolution){/*{{{*/
+void FemModel::SealevelriseNonEustatic(Vector<IssmDouble>* pSgo, Vector<IssmDouble>* pSg_old, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, bool verboseconvolution,int loop){/*{{{*/
 
 	/*serialized vectors:*/
@@ -2517,5 +2517,5 @@
 			element->SealevelriseNonEustatic(pSgo,Sg_old,latitude,longitude,radius,eartharea);
 		}
-		if(i%100==0)pSgo->Assemble();
+		if(i%loop==0)pSgo->Assemble();
 	}
 	if(verboseconvolution)if(VerboseConvergence())_printf_("\n");
@@ -2606,5 +2606,5 @@
 }
 /*}}}*/
-void FemModel::SealevelriseGeodetic(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, Vector<IssmDouble>* pSg, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, IssmDouble* xx, IssmDouble* yy, IssmDouble* zz){/*{{{*/
+void FemModel::SealevelriseGeodetic(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, Vector<IssmDouble>* pSg, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, IssmDouble* xx, IssmDouble* yy, IssmDouble* zz,int loop){/*{{{*/
 
 	/*serialized vectors:*/
@@ -2641,5 +2641,5 @@
 			element->SealevelriseGeodetic(pUp,pNorth,pEast,Sg,latitude,longitude,radius,xx,yy,zz,eartharea);
 		}
-		if(i%100==0){
+		if(i%loop==0){
 			pUp->Assemble();
 			pNorth->Assemble();
Index: /issm/branches/trunk-larour-NatGeoScience2016/src/c/classes/FemModel.h
===================================================================
--- /issm/branches/trunk-larour-NatGeoScience2016/src/c/classes/FemModel.h	(revision 22107)
+++ /issm/branches/trunk-larour-NatGeoScience2016/src/c/classes/FemModel.h	(revision 22108)
@@ -126,8 +126,8 @@
 		#endif
 		#ifdef _HAVE_SEALEVELRISE_
-		void SealevelriseEustatic(Vector<IssmDouble>* pSgi, IssmDouble* peustatic, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius);
-		void SealevelriseNonEustatic(Vector<IssmDouble>* pSgo, Vector<IssmDouble>* pSg_old, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius,bool verboseconvolution);
+		void SealevelriseEustatic(Vector<IssmDouble>* pSgi, IssmDouble* peustatic, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius,int loop);
+		void SealevelriseNonEustatic(Vector<IssmDouble>* pSgo, Vector<IssmDouble>* pSg_old, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius,bool verboseconvolution,int loop);
 		void SealevelriseRotationalFeedback(Vector<IssmDouble>* pSgo_rot, Vector<IssmDouble>* pSg_old, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius);
-		void SealevelriseGeodetic(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, Vector<IssmDouble>* pSg_old, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, IssmDouble* xx, IssmDouble* yy, IssmDouble* zz); 
+		void SealevelriseGeodetic(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, Vector<IssmDouble>* pSg_old, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, IssmDouble* xx, IssmDouble* yy, IssmDouble* zz,int loop); 
 		IssmDouble SealevelriseOceanAverage(Vector<IssmDouble>* Sg);
 		#endif
Index: /issm/branches/trunk-larour-NatGeoScience2016/src/c/cores/sealevelrise_core.cpp
===================================================================
--- /issm/branches/trunk-larour-NatGeoScience2016/src/c/cores/sealevelrise_core.cpp	(revision 22107)
+++ /issm/branches/trunk-larour-NatGeoScience2016/src/c/cores/sealevelrise_core.cpp	(revision 22108)
@@ -36,4 +36,5 @@
 	IssmDouble          dt,steric_rate;
 	int                 frequency;
+	int  loop;
 
 	/*Recover some parameters: */
@@ -43,4 +44,5 @@
 	femmodel->parameters->FindParam(&isslr,TransientIsslrEnum);
 	femmodel->parameters->FindParam(&iscoupler,TransientIscouplerEnum);
+	femmodel->parameters->FindParam(&loop,SealevelriseLoopIncrementEnum);
 	
 	/*first, recover lat,long and radius vectors from vertices: */
@@ -104,5 +106,5 @@
 		
 		/*call the geodetic main modlule:*/ 
-		femmodel->SealevelriseGeodetic(U_radial,U_north,U_east,Sg,latitude,longitude,radius,xx,yy,zz); 
+		femmodel->SealevelriseGeodetic(U_radial,U_north,U_east,Sg,latitude,longitude,radius,xx,yy,zz,loop); 
 				
 		/*Now deal with steric ocean expansion by just shifting Sg by a spatial rate pattern : */
Index: /issm/branches/trunk-larour-NatGeoScience2016/src/c/cores/sealevelrise_core_eustatic.cpp
===================================================================
--- /issm/branches/trunk-larour-NatGeoScience2016/src/c/cores/sealevelrise_core_eustatic.cpp	(revision 22107)
+++ /issm/branches/trunk-larour-NatGeoScience2016/src/c/cores/sealevelrise_core_eustatic.cpp	(revision 22108)
@@ -22,4 +22,5 @@
 	IssmDouble *longitude = NULL;
 	IssmDouble *radius    = NULL;
+	int         loop;
 
 	/*outputs:*/
@@ -28,4 +29,5 @@
 	/*recover parameters:*/
 	femmodel->parameters->FindParam(&configuration_type,ConfigurationTypeEnum);
+	femmodel->parameters->FindParam(&loop,SealevelriseLoopIncrementEnum);
 
 	/*first, recover lat,long and radius vectors from vertices: */
@@ -39,5 +41,5 @@
 
 	/*call the eustatic main module: */
-	femmodel->SealevelriseEustatic(Sgi,&eustatic, latitude, longitude, radius); //this computes 
+	femmodel->SealevelriseEustatic(Sgi,&eustatic, latitude, longitude, radius,loop); //this computes 
 
 	/*we need to average Sgi over the ocean: RHS term  4 in Eq.4 of Farrel and clarke. Only the elements can do that: */
Index: /issm/branches/trunk-larour-NatGeoScience2016/src/c/cores/sealevelrise_core_noneustatic.cpp
===================================================================
--- /issm/branches/trunk-larour-NatGeoScience2016/src/c/cores/sealevelrise_core_noneustatic.cpp	(revision 22107)
+++ /issm/branches/trunk-larour-NatGeoScience2016/src/c/cores/sealevelrise_core_noneustatic.cpp	(revision 22108)
@@ -37,4 +37,5 @@
 	IssmDouble          *radius    = NULL;
 	IssmDouble           eustatic;
+	int	                 loop;
 
 	/*Recover some parameters: */
@@ -43,4 +44,5 @@
 	femmodel->parameters->FindParam(&eps_abs,SealevelriseAbstolEnum);
 	femmodel->parameters->FindParam(&configuration_type,ConfigurationTypeEnum);
+	femmodel->parameters->FindParam(&loop,SealevelriseLoopIncrementEnum);
 	
 	/*computational flag: */
@@ -75,5 +77,5 @@
 
 		/*call the non eustatic module: */
-		femmodel->SealevelriseNonEustatic(Sgo, Sg_old, latitude, longitude, radius,verboseconvolution);
+		femmodel->SealevelriseNonEustatic(Sgo, Sg_old, latitude, longitude, radius,verboseconvolution,loop);
 	
 		/*assemble solution vector: */
Index: /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/EnumDefinitions.h	(revision 22107)
+++ /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/EnumDefinitions.h	(revision 22108)
@@ -793,4 +793,5 @@
 	SealevelriseSpcthicknessEnum,
 	SealevelriseMaxiterEnum,
+	SealevelriseLoopIncrementEnum,
 	SealevelriseReltolEnum,
 	SealevelriseAbstolEnum,
Index: /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/EnumToStringx.cpp	(revision 22107)
+++ /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/EnumToStringx.cpp	(revision 22108)
@@ -773,4 +773,5 @@
 		case SealevelriseSpcthicknessEnum : return "SealevelriseSpcthickness";
 		case SealevelriseMaxiterEnum : return "SealevelriseMaxiter";
+		case SealevelriseLoopIncrementEnum : return "SealevelriseLoopIncrement";
 		case SealevelriseReltolEnum : return "SealevelriseReltol";
 		case SealevelriseAbstolEnum : return "SealevelriseAbstol";
Index: /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/StringToEnumx.cpp	(revision 22107)
+++ /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/StringToEnumx.cpp	(revision 22108)
@@ -791,4 +791,5 @@
 	      else if (strcmp(name,"SealevelriseSpcthickness")==0) return SealevelriseSpcthicknessEnum;
 	      else if (strcmp(name,"SealevelriseMaxiter")==0) return SealevelriseMaxiterEnum;
+	      else if (strcmp(name,"SealevelriseLoopIncrement")==0) return SealevelriseLoopIncrementEnum;
 	      else if (strcmp(name,"SealevelriseReltol")==0) return SealevelriseReltolEnum;
 	      else if (strcmp(name,"SealevelriseAbstol")==0) return SealevelriseAbstolEnum;
@@ -874,9 +875,9 @@
 	      else if (strcmp(name,"ElementSId")==0) return ElementSIdEnum;
 	      else if (strcmp(name,"VectorParam")==0) return VectorParamEnum;
-	      else if (strcmp(name,"Riftfront")==0) return RiftfrontEnum;
          else stage=8;
    }
    if(stage==8){
-	      if (strcmp(name,"Segment")==0) return SegmentEnum;
+	      if (strcmp(name,"Riftfront")==0) return RiftfrontEnum;
+	      else if (strcmp(name,"Segment")==0) return SegmentEnum;
 	      else if (strcmp(name,"SegmentRiftfront")==0) return SegmentRiftfrontEnum;
 	      else if (strcmp(name,"SpcDynamic")==0) return SpcDynamicEnum;
@@ -997,9 +998,9 @@
 	      else if (strcmp(name,"P2")==0) return P2Enum;
 	      else if (strcmp(name,"P2bubble")==0) return P2bubbleEnum;
-	      else if (strcmp(name,"P2bubblecondensed")==0) return P2bubblecondensedEnum;
          else stage=9;
    }
    if(stage==9){
-	      if (strcmp(name,"P2xP1")==0) return P2xP1Enum;
+	      if (strcmp(name,"P2bubblecondensed")==0) return P2bubblecondensedEnum;
+	      else if (strcmp(name,"P2xP1")==0) return P2xP1Enum;
 	      else if (strcmp(name,"P1xP2")==0) return P1xP2Enum;
 	      else if (strcmp(name,"P1xP3")==0) return P1xP3Enum;
