Index: /issm/trunk/src/c/parallel/diagnostic.cpp
===================================================================
--- /issm/trunk/src/c/parallel/diagnostic.cpp	(revision 2396)
+++ /issm/trunk/src/c/parallel/diagnostic.cpp	(revision 2397)
@@ -97,4 +97,5 @@
 
 	inputs=new ParameterInputs;
+
 	inputs->Add("velocity",u_g_initial,3,numberofnodes);
 	if(control_analysis){
@@ -156,4 +157,12 @@
 	}
 
+	/*Free ressources */
+	xfree((void**)&u_g_initial);
+	xfree((void**)&u_g_obs);
+	delete model;
+	delete inputs;
+	delete results;
+	delete processed_results;
+
 	_printf_("closing MPI and Petsc\n");
 	PetscFinalize(); 
@@ -161,12 +170,4 @@
 	/*end module: */
 	MODULEEND();
-	
-	/*Free ressources */
-	xfree((void**)&u_g_initial);
-	xfree((void**)&u_g_obs);
-	delete model;
-	delete results;
-	delete processed_results;
-	delete inputs;
 
 	return 0; //unix success return;
Index: /issm/trunk/src/c/parallel/prognostic.cpp
===================================================================
--- /issm/trunk/src/c/parallel/prognostic.cpp	(revision 2396)
+++ /issm/trunk/src/c/parallel/prognostic.cpp	(revision 2397)
@@ -133,10 +133,4 @@
 		WriteLockFile(lockname);
 	}
-		
-	_printf_("closing MPI and Petsc\n");
-	PetscFinalize(); 
-
-	/*end module: */
-	MODULEEND();
 
 	/*Free ressources:*/
@@ -146,4 +140,10 @@
 	delete inputs;
 
+	_printf_("closing MPI and Petsc\n");
+	PetscFinalize(); 
+
+	/*end module: */
+	MODULEEND();
+
 	return 0; //unix success return;
 }
Index: /issm/trunk/src/c/parallel/steadystate.cpp
===================================================================
--- /issm/trunk/src/c/parallel/steadystate.cpp	(revision 2396)
+++ /issm/trunk/src/c/parallel/steadystate.cpp	(revision 2397)
@@ -173,10 +173,4 @@
 		WriteLockFile(lockname);
 	}
-	_printf_("closing MPI and Petsc\n");
-	PetscFinalize(); 
-	
-
-	/*end module: */
-	MODULEEND();
 	
 	/*Free ressources */
@@ -189,4 +183,10 @@
 	delete inputs;
 
+	_printf_("closing MPI and Petsc\n");
+	PetscFinalize(); 
+
+	/*end module: */
+	MODULEEND();
+
 	return 0; //unix success return;
 }
Index: /issm/trunk/src/c/parallel/thermal.cpp
===================================================================
--- /issm/trunk/src/c/parallel/thermal.cpp	(revision 2396)
+++ /issm/trunk/src/c/parallel/thermal.cpp	(revision 2397)
@@ -125,10 +125,4 @@
 		WriteLockFile(lockname);
 	}
-		
-	_printf_("closing MPI and Petsc\n");
-	PetscFinalize(); 
-
-	/*end module: */
-	MODULEEND();
 
 	/*Free ressources */
@@ -139,5 +133,11 @@
 	delete processed_results;
 	delete inputs;
-	
+
+	_printf_("closing MPI and Petsc\n");
+	PetscFinalize(); 
+
+	/*end module: */
+	MODULEEND();
+
 	return 0; //unix success return;
 }
Index: /issm/trunk/src/c/parallel/transient.cpp
===================================================================
--- /issm/trunk/src/c/parallel/transient.cpp	(revision 2396)
+++ /issm/trunk/src/c/parallel/transient.cpp	(revision 2397)
@@ -150,4 +150,5 @@
 		WriteLockFile(lockname);
 	}
+
 	/*Free ressources:*/
 	delete results;
