Index: /issm/trunk-jpl/src/c/cores/transient_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/transient_core.cpp	(revision 25472)
+++ /issm/trunk-jpl/src/c/cores/transient_core.cpp	(revision 25473)
@@ -24,12 +24,8 @@
 	/*parameters: */
 	IssmDouble finaltime,dt,yts;
-	bool       isoceancoupling,iscontrol,isautodiff,isgroundingline,isslr;
-	bool       save_results,dakota_analysis;
+	bool       isoceancoupling,iscontrol,isautodiff,isslr;
 	int        timestepping;
-	int        output_frequency;
-	int        sb_coupling_frequency;
-	int        recording_frequency;
-	int        groundingline_migration,smb_model,amr_frequency,amr_restart;
-	int        numoutputs;
+	int        output_frequency,recording_frequency;
+	int        amr_frequency,amr_restart;
 	char     **requested_outputs = NULL;
 
@@ -47,17 +43,11 @@
 	femmodel->parameters->FindParam(&finaltime,TimesteppingFinalTimeEnum);
 	femmodel->parameters->FindParam(&yts,ConstantsYtsEnum);
-	femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum);
 	femmodel->parameters->FindParam(&output_frequency,SettingsOutputFrequencyEnum);
-	femmodel->parameters->FindParam(&sb_coupling_frequency,SettingsSbCouplingFrequencyEnum);
 	femmodel->parameters->FindParam(&timestepping,TimesteppingTypeEnum);
 	femmodel->parameters->FindParam(&isslr,TransientIsslrEnum);
-	femmodel->parameters->FindParam(&isgroundingline,TransientIsgroundinglineEnum);
 	femmodel->parameters->FindParam(&isoceancoupling,TransientIsoceancouplingEnum);
 	femmodel->parameters->FindParam(&amr_frequency,TransientAmrFrequencyEnum);
 	femmodel->parameters->FindParam(&iscontrol,InversionIscontrolEnum);
 	femmodel->parameters->FindParam(&isautodiff,AutodiffIsautodiffEnum);
-	if(isgroundingline) femmodel->parameters->FindParam(&groundingline_migration,GroundinglineMigrationEnum);
-	femmodel->parameters->FindParam(&numoutputs,TransientNumRequestedOutputsEnum);
-	if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,TransientRequestedOutputsEnum);
 
 	#if defined(_HAVE_BAMG_) && !defined(_HAVE_AD_)
@@ -99,9 +89,10 @@
 		femmodel->parameters->SetParam(step,StepEnum);
 
-		if(VerboseSolution()) _printf0_("iteration " << step << "/" << ceil((finaltime-time)/dt)+step << "  time [yr]: " << setprecision(4) << time/yts << " (time step: " << dt/yts << ")\n");
-		if(step%output_frequency==0 || (time >= finaltime - (yts*DBL_EPSILON)) || step==1)
-		 save_results=true;
-		else
-		 save_results=false;
+		if(VerboseSolution()){
+			_printf0_("iteration " << step << "/" << ceil((finaltime-time)/dt)+step << \
+						"  time [yr]: " << setprecision(4) << time/yts << " (time step: " << dt/yts << ")\n");
+		}
+		bool save_results=false;
+		if(step%output_frequency==0 || (time >= finaltime - (yts*DBL_EPSILON)) || step==1) save_results=true;
 		femmodel->parameters->SetParam(save_results,SaveResultsEnum);
 
@@ -110,11 +101,4 @@
 
 		/*unload results*/
-		if(VerboseSolution()) _printf0_("   computing requested outputs\n");
-		femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs,save_results);
-		if(isgroundingline && (groundingline_migration==AggressiveMigrationEnum || groundingline_migration==ContactEnum)){
-			int outputs[1] = {MaskOceanLevelsetEnum};
-			femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],1,save_results);
-		}
-
 		if(save_results){
 			if(VerboseSolution()) _printf0_("   saving temporary results\n");
@@ -156,7 +140,4 @@
 	if(iscontrol && isautodiff) femmodel->parameters->SetParam(dependent_objects,AutodiffDependentObjectsEnum);
 
-	/*Free ressources:*/
-	if(numoutputs){for(int i=0;i<numoutputs;i++){xDelete<char>(requested_outputs[i]);} xDelete<char*>(requested_outputs);}
-
 }/*}}}*/
 void transient_step(FemModel* femmodel){/*{{{*/
@@ -164,11 +145,11 @@
 	/*parameters: */
 	bool isstressbalance,ismasstransport,issmb,isthermal,isgroundingline,isgia,isesa;
-	bool isslr,ismovingfront,isdamageevolution,ishydrology,isoceancoupling;
-	bool save_results;
+	bool isslr,ismovingfront,isdamageevolution,ishydrology,isoceancoupling,save_results;
 	int  step,sb_coupling_frequency;
-	int  domaintype,smb_model;
+	int  domaintype,numoutputs;
 
 	/*then recover parameters common to all solutions*/
 	femmodel->parameters->FindParam(&domaintype,DomainTypeEnum);
+	femmodel->parameters->FindParam(&save_results,SaveResultsEnum);
 	femmodel->parameters->FindParam(&step,StepEnum);
 	femmodel->parameters->FindParam(&sb_coupling_frequency,SettingsSbCouplingFrequencyEnum);
@@ -185,4 +166,5 @@
 	femmodel->parameters->FindParam(&isdamageevolution,TransientIsdamageevolutionEnum);
 	femmodel->parameters->FindParam(&ishydrology,TransientIshydrologyEnum);
+	femmodel->parameters->FindParam(&numoutputs,TransientNumRequestedOutputsEnum);
 
 	#if defined(_HAVE_OCEAN_ )
@@ -193,4 +175,5 @@
 		if(issmb){
 			bool isenthalpy;
+			int  smb_model;
 			femmodel->parameters->FindParam(&isenthalpy,ThermalIsenthalpyEnum);
 			femmodel->parameters->FindParam(&smb_model,SmbEnum);
@@ -272,4 +255,15 @@
 	}
 
+	/*Any requested output that needs to be saved?*/
+	if(numoutputs){
+		char **requested_outputs = NULL;
+		femmodel->parameters->FindParam(&requested_outputs,&numoutputs,TransientRequestedOutputsEnum);
+
+		if(VerboseSolution()) _printf0_("   computing transient requested outputs\n");
+		femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs,save_results);
+
+		/*Free ressources:*/
+		for(int i=0;i<numoutputs;i++){xDelete<char>(requested_outputs[i]);} xDelete<char*>(requested_outputs);
+	}
 }/*}}}*/
 
@@ -279,13 +273,9 @@
 	/*parameters: */
 	IssmDouble finaltime,dt,yts;
-	bool       isoceancoupling,iscontrol,isautodiff,isgroundingline,isslr;
-	bool       save_results,dakota_analysis;
+	bool       isoceancoupling,iscontrol,isautodiff,isslr;
 	int        timestepping;
 	int        output_frequency;
-	int        sb_coupling_frequency;
 	int        recording_frequency;
-	int        groundingline_migration,smb_model,amr_frequency,amr_restart;
-	int        numoutputs;
-	char     **requested_outputs = NULL;
+	int        amr_frequency,amr_restart;
 
 	/*intermediary: */
@@ -302,18 +292,12 @@
 	femmodel->parameters->FindParam(&finaltime,TimesteppingFinalTimeEnum);
 	femmodel->parameters->FindParam(&yts,ConstantsYtsEnum);
-	femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum);
 	femmodel->parameters->FindParam(&output_frequency,SettingsOutputFrequencyEnum);
-	femmodel->parameters->FindParam(&sb_coupling_frequency,SettingsSbCouplingFrequencyEnum);
 	femmodel->parameters->FindParam(&timestepping,TimesteppingTypeEnum);
 	femmodel->parameters->FindParam(&isslr,TransientIsslrEnum);
-	femmodel->parameters->FindParam(&isgroundingline,TransientIsgroundinglineEnum);
 	femmodel->parameters->FindParam(&amr_frequency,TransientAmrFrequencyEnum);
 	femmodel->parameters->FindParam(&iscontrol,InversionIscontrolEnum);
 	femmodel->parameters->FindParam(&isautodiff,AutodiffIsautodiffEnum);
-	femmodel->parameters->FindParam(&numoutputs,TransientNumRequestedOutputsEnum);
-	if(isgroundingline) femmodel->parameters->FindParam(&groundingline_migration,GroundinglineMigrationEnum);
-	if(numoutputs)      femmodel->parameters->FindParam(&requested_outputs,&numoutputs,TransientRequestedOutputsEnum);
-
-	DataSet*    dependent_objects=NULL;
+
+	DataSet* dependent_objects=NULL;
 	if(iscontrol){
 		femmodel->parameters->FindParam(&dependent_objects,AutodiffDependentObjectsEnum);
@@ -346,8 +330,4 @@
 		transient_step(femmodel);
 
-		/*unload results*/
-		if(VerboseSolution()) _printf0_("   computing requested outputs\n");
-		femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs,false);
-
 		if(recording_frequency && (step%recording_frequency==0)){
 			if(VerboseSolution()) _printf0_("   checkpointing model \n");
@@ -366,8 +346,4 @@
 	if(!iscontrol) femmodel->RequestedDependentsx();
 	if(iscontrol) femmodel->parameters->SetParam(dependent_objects,AutodiffDependentObjectsEnum);
-
-	/*Free ressources:*/
-	if(numoutputs){for(int i=0;i<numoutputs;i++){xDelete<char>(requested_outputs[i]);} xDelete<char*>(requested_outputs);}
-
 }/*}}}*/
 #endif
