@@ -24,7 +24,7 @@ void transient_core(FemModel* femmodel){/*{{{*/
2424
2525 /* parameters: */
2626 IssmDouble finaltime,dt,yts;
27- bool save_final_results;
27+ bool save_final_results,do_not_save_results,save_results ;
2828 bool iscontrol,isautodiff;
2929 int timestepping;
3030 int output_frequency,checkpoint_frequency;
@@ -50,6 +50,7 @@ void transient_core(FemModel* femmodel){/*{{{*/
5050 femmodel->parameters ->FindParam (&iscontrol,InversionIscontrolEnum);
5151 femmodel->parameters ->FindParam (&isautodiff,AutodiffIsautodiffEnum);
5252 femmodel->parameters ->FindParam (&save_final_results,SaveFinalResultsEnum);
53+ femmodel->parameters ->FindParam (&do_not_save_results,DoNotSaveResultsEnum);
5354
5455 /* call modules that are not dependent on time stepping:*/
5556 transient_precore (femmodel);
@@ -85,12 +86,25 @@ void transient_core(FemModel* femmodel){/*{{{*/
8586 _printf0_ (" \e[92miteration " << step << " /" << ceil ((finaltime-time)/dt)+step << \
8687 " time [yr]: " <<std::fixed<<setprecision (2 )<< time/yts << " \e[m (time step: " << dt/yts << " )\n " );
8788 }
88- const bool save_results = step==1 // save first step
89- || step%output_frequency==0 // save at regular intervals
90- || (save_final_results && time >= finaltime - (yts*DBL_EPSILON )); // save last step (optional)
91- femmodel->parameters ->SetParam (save_results,SaveResultsEnum);
89+
90+ /* Will we save results?*/
91+ if (do_not_save_results){
92+ save_results = false ;
93+ }
94+ else {
95+ if (step==1 // save first step
96+ || step%output_frequency==0 // save at regular intervals
97+ || (save_final_results && time >= finaltime - (yts*DBL_EPSILON )) // save last step (optional)
98+ ){
99+ save_results = true ;
100+ }
101+ else {
102+ save_results = false ;
103+ }
104+ }
105+ femmodel->parameters ->SetParam (save_results, SaveResultsEnum);
92106
93- /* Run transient step! */
107+ /* Run transient step*/
94108 transient_step (femmodel);
95109
96110 /* unload results*/
0 commit comments