Index: /issm/branches/trunk-larour-SLPS2022/src/c/cores/sealevelchange_core.cpp
===================================================================
--- /issm/branches/trunk-larour-SLPS2022/src/c/cores/sealevelchange_core.cpp	(revision 27082)
+++ /issm/branches/trunk-larour-SLPS2022/src/c/cores/sealevelchange_core.cpp	(revision 27083)
@@ -568,11 +568,18 @@
 	int  nel;
 	int  grdmodel=0;
-
-	/*retrieve parameters:*/
+	bool geometrydone;
+
+	/*did we already do this? if so, skip :*/
+	femmodel->parameters->FindParam(&geometrydone,SealevelchangeGeometryDoneEnum);
+	if (geometrydone){
+		if(VerboseSolution()) _printf0_("	  initial sea level geometrical already computed, skipping.\n");
+		return;
+	}
+
+	/*early return?:*/
 	femmodel->parameters->FindParam(&grdmodel,GrdModelEnum);
+	if(grdmodel==IvinsEnum) return;
+	
 	nel=femmodel->elements->NumberOfElements();
-
-	/*early return?:*/
-	if(grdmodel==IvinsEnum) return;
 
 	/*Verbose: */
@@ -600,33 +607,6 @@
 	#endif
 
-	//Specialty code: {{{
-	bool isuq=0;
-	IssmDouble modelid=0;
-		 
-	/*Resolve Mmes using the modelid, if necessary: meaning if we are running a transient model and that UQ computations have not been triggered:*/
-	femmodel->parameters->FindParam(&isuq,QmuIsdakotaEnum);
-	if(!isuq){
-
-		/*Deal with solid earth: */
-		if (femmodel->inputs->Exist(SolidearthExternalDisplacementEastRateEnum) && femmodel->inputs->GetInputObjectEnum(SolidearthExternalDisplacementEastRateEnum)==DatasetInputEnum){
-			femmodel->parameters->FindParam(&modelid,SolidearthExternalModelidEnum);
-
-			/*replace dataset of forcings with only one, the modelid'th:*/
-			MmeToInputFromIdx(femmodel->inputs,femmodel->elements,femmodel->parameters,modelid-1,SolidearthExternalDisplacementNorthRateEnum, P1Enum);
-			MmeToInputFromIdx(femmodel->inputs,femmodel->elements,femmodel->parameters,modelid-1,SolidearthExternalDisplacementEastRateEnum, P1Enum);
-			MmeToInputFromIdx(femmodel->inputs,femmodel->elements,femmodel->parameters,modelid-1,SolidearthExternalDisplacementUpRateEnum, P1Enum);
-			MmeToInputFromIdx(femmodel->inputs,femmodel->elements,femmodel->parameters,modelid-1,SolidearthExternalGeoidRateEnum, P1Enum);
-
-		}
-		/*Deal with ocean: */
-		if (femmodel->inputs->Exist(OceantransportSpcbottompressureEnum) && femmodel->inputs->GetInputObjectEnum(OceantransportSpcbottompressureEnum)==DatasetInputEnum){
-			femmodel->parameters->FindParam(&modelid,DslModelidEnum);
-
-			/*replace dataset of forcings with only one, the modelid'th:*/
-			MmeToInputFromIdx(femmodel->inputs,femmodel->elements,femmodel->parameters,modelid-1,OceantransportSpcbottompressureEnum, P1Enum);
-			MmeToInputFromIdx(femmodel->inputs,femmodel->elements,femmodel->parameters,modelid-1,OceantransportSpcdslEnum, P1Enum);
-			MmeToInputFromIdx(femmodel->inputs,femmodel->elements,femmodel->parameters,modelid-1,OceantransportSpcstrEnum, P0Enum);
-		}
-	} /*}}}*/
+	/*Indicate we won't do this twice: */
+	femmodel->parameters->AddObject(new BoolParam(SealevelchangeGeometryDoneEnum,true));
 
 	return;
