Index: /issm/trunk-jpl/src/c/solutions/solutions.h
===================================================================
--- /issm/trunk-jpl/src/c/solutions/solutions.h	(revision 11821)
+++ /issm/trunk-jpl/src/c/solutions/solutions.h	(revision 11822)
@@ -20,5 +20,5 @@
 void hydrology_core_step(FemModel* femmodel,int step, double time);
 void thermal_core(FemModel* femmodel);
-void thermal_core_step(FemModel* femmodel,int step, double time);
+void thermal_core_step(FemModel* femmodel,int step=0, double time=0);
 void enthalpy_core(FemModel* femmodel);
 void enthalpy_core_step(FemModel* femmodel,int step, double time);
Index: /issm/trunk-jpl/src/c/solutions/thermal_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/thermal_core.cpp	(revision 11821)
+++ /issm/trunk-jpl/src/c/solutions/thermal_core.cpp	(revision 11822)
@@ -18,8 +18,4 @@
 
 	/*intermediary*/
-	double time;
-	int    nsteps;
-	double starttime,final_time;
-	double dt;
 	double melting_offset;
 	bool   control_analysis;
@@ -28,18 +24,7 @@
 
 	//first recover parameters common to all solutions
-	femmodel->parameters->FindParam(&starttime,TimesteppingStartTimeEnum);
-	femmodel->parameters->FindParam(&final_time,TimesteppingFinalTimeEnum);
-	femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
 	femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum);
 	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
 	femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum);
-
-	/*Compute number of time steps: */
-	if((dt==0)|| (final_time==0)){
-		dt=0;
-		nsteps=1;
-	}
-	else nsteps=(int)((final_time-starttime)/dt);
-	time=starttime;
 
 	if(dakota_analysis){
@@ -47,22 +32,13 @@
 		ResetConstraintsx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters);
 	}
-	printf("start = %g final = %g n=%i\n",starttime,final_time,nsteps);
 
-	/*Loop through time: */
-	for(i=0;i<nsteps;i++){
-		
-		if(nsteps)_printf_(VerboseSolution(),"time step: %i/%i\n",i+1,nsteps);
-		time+=dt;
-		femmodel->parameters->SetParam(time,TimeEnum);
+	/*call thermal_core_step: */
+	thermal_core_step(femmodel);
 
-		/*call thermal_core_step: */
-		thermal_core_step(femmodel,i,time);
+	if(solution_type==ThermalSolutionEnum && !control_analysis){
+		_printf_(VerboseSolution(),"   saving results\n");
+		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,TemperatureEnum);
+		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BasalforcingsMeltingRateEnum);
+	}
 
-		if(solution_type==ThermalSolutionEnum && !control_analysis){
-			_printf_(VerboseSolution(),"   saving results\n");
-			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,TemperatureEnum,i+1,time);
-			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BasalforcingsMeltingRateEnum,i+1,time);
-		}
-
-	}
 }
Index: /issm/trunk-jpl/src/m/solutions/thermal_core.m
===================================================================
--- /issm/trunk-jpl/src/m/solutions/thermal_core.m	(revision 11821)
+++ /issm/trunk-jpl/src/m/solutions/thermal_core.m	(revision 11822)
@@ -12,25 +12,11 @@
 	solution_type=femmodel.parameters.SolutionType;
 
-	%Compute number of timesteps
-	if (dt==0 | ndt==0),
-		dt=0;
-		nsteps=1;
-	else
-		nsteps=floor(ndt/dt);
-	end
+	issmprintf(VerboseSolution,'\n%s',['   computing temperature']);
+	femmodel=thermal_core_step(femmodel); 
 
-	%Loop through time
-	for i=1:nsteps,
-		issmprintf(VerboseSolution,'\n%s%i/%i\n','time step: ',i,nsteps);
-		time=(i+1)*dt;
-
-		issmprintf(VerboseSolution,'\n%s',['   computing temperature']);
-		femmodel=thermal_core_step(femmodel,i,time); 
-
-		if (solution_type==ThermalSolutionEnum & ~control_analysis),
-			issmprintf(VerboseSolution,'\n%s',['   saving results']);
-			femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,TemperatureEnum,i,time);
-			femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,BasalforcingsMeltingRateEnum,i,time);
-		end
+	if (solution_type==ThermalSolutionEnum & ~control_analysis),
+		issmprintf(VerboseSolution,'\n%s',['   saving results']);
+		femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,TemperatureEnum);
+		femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,BasalforcingsMeltingRateEnum);
 	end
 
