Index: /issm/trunk/src/c/parallel/control.cpp
===================================================================
--- /issm/trunk/src/c/parallel/control.cpp	(revision 85)
+++ /issm/trunk/src/c/parallel/control.cpp	(revision 86)
@@ -91,5 +91,8 @@
 	femmodel.parameters->FindParam((void*)&p_g,"p_g");
 	femmodel.parameters->FindParam((void*)&u_g_obs,"u_g_obs");
-		
+
+	/*Initialize misfit: */
+	J=(double*)xmalloc(nsteps*sizeof(double));
+
 	/*Initialize inputs:*/
 	inputs=NewParameterInputs();
@@ -121,6 +124,4 @@
 		_printf_("%s\n","      done.");
 	
-	
-		
 		_printf_("%s\n","      updating parameter using optimized search scalar...");
 		for(i=0;i<gsize;i++)p_g[i]=p_g[i]+search_scalar*optscal[n]*grad_g_double[i];
@@ -132,6 +133,9 @@
 	
 		//some temporary saving 
-		if ((n%5)==0){
+		if (((n+1)%5)==0){
 			_printf_("%s\n","      saving temporary results...");
+			ParameterInputsAddFromMat(inputs,p_g,gsize,control_type);
+			ParameterInputsAddFromDouble(inputs,fit[n],"fit");
+			diagnostic_core_nonlinear(&u_g,NULL,NULL,inputs,&femmodel);
 			OutputControl(u_g,p_g,J,nsteps,femmodel.partition,outputfilename,femmodel.nodesets);
 			_printf_("%s\n","      done.");
