Index: /issm/trunk-jpl/src/c/Makefile.am
===================================================================
--- /issm/trunk-jpl/src/c/Makefile.am	(revision 13529)
+++ /issm/trunk-jpl/src/c/Makefile.am	(revision 13530)
@@ -67,4 +67,5 @@
 					./classes/objects/Vertex.h\
 					./classes/objects/Vertex.cpp\
+					./classes/objects/AdolcEdf.h\
 					./classes/Hook.h\
 					./classes/Hook.cpp\
@@ -188,5 +189,4 @@
 					./shared/Matrix/matrix.h\
 					./shared/Matrix/MatrixUtils.cpp\
-					./shared/Numerics/adolc_edf.h\
 					./shared/Numerics/numerics.h\
 					./shared/Numerics/Verbosity.h\
@@ -350,4 +350,5 @@
 					./solutions/AnalysisConfiguration.cpp\
 					./solutions/CorePointerFromSolutionEnum.cpp\
+					./solutions/EnvironmentInit.cpp\
 					./solvers/solver_linear.cpp\
 					./solvers/solver_nonlinear.cpp\
Index: /issm/trunk-jpl/src/c/classes/AdolcEdf.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/AdolcEdf.h	(revision 13530)
+++ /issm/trunk-jpl/src/c/classes/AdolcEdf.h	(revision 13530)
@@ -0,0 +1,26 @@
+/*
+ * adolc_edf.h
+ *
+ *  Created on: Jun 26, 2012
+ *      Author: utke
+ */
+
+#ifndef _ADOLC_EDF_H_
+#define _ADOLC_EDF_H_
+
+#ifdef _HAVE_ADOLC_
+
+struct Adolc_edf {
+    ext_diff_fct *myEDF_for_solverx_p;
+    Adolc_edf() : myEDF_for_solverx_p(0) {}
+    inline friend std::ostream& operator << ( ostream&, const Adolc_edf& );
+};
+
+std::ostream& operator << ( std::ostream& out, const Adolc_edf& a) {
+    out << a.myEDF_for_solverx_p;
+    return out;
+}
+
+#endif
+
+#endif
Index: /issm/trunk-jpl/src/c/classes/bamg/BamgGeom.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/bamg/BamgGeom.cpp	(revision 13529)
+++ /issm/trunk-jpl/src/c/classes/bamg/BamgGeom.cpp	(revision 13530)
@@ -1,4 +1,4 @@
 #include <stdio.h>
-#include "../objects.h"
+#include "../objects/objects.h"
 #include "../../io/io.h"
 #include "../../shared/shared.h"
Index: /issm/trunk-jpl/src/c/classes/bamg/BamgMesh.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/bamg/BamgMesh.cpp	(revision 13529)
+++ /issm/trunk-jpl/src/c/classes/bamg/BamgMesh.cpp	(revision 13530)
@@ -1,4 +1,4 @@
 #include <stdio.h>
-#include "../objects.h"
+#include "../objects/objects.h"
 #include "../../io/io.h"
 #include "../../shared/shared.h"
Index: /issm/trunk-jpl/src/c/classes/bamg/BamgOpts.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/bamg/BamgOpts.cpp	(revision 13529)
+++ /issm/trunk-jpl/src/c/classes/bamg/BamgOpts.cpp	(revision 13530)
@@ -2,5 +2,5 @@
 #include "../../shared/shared.h"
 #include "../../include/include.h"
-#include "../objects.h"
+#include "../objects/objects.h"
 #include "../../io/io.h"
 
Index: /issm/trunk-jpl/src/c/classes/bamg/BamgQuadtree.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/bamg/BamgQuadtree.cpp	(revision 13529)
+++ /issm/trunk-jpl/src/c/classes/bamg/BamgQuadtree.cpp	(revision 13530)
@@ -3,5 +3,5 @@
 #include <stdlib.h>
 
-#include "../objects.h"
+#include "../objects/objects.h"
 
 namespace bamg {
Index: /issm/trunk-jpl/src/c/classes/bamg/BamgVertex.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/bamg/BamgVertex.cpp	(revision 13529)
+++ /issm/trunk-jpl/src/c/classes/bamg/BamgVertex.cpp	(revision 13530)
@@ -4,5 +4,5 @@
 #include <ctime>
 
-#include "../objects.h"
+#include "../objects/objects.h"
 
 namespace bamg {
Index: /issm/trunk-jpl/src/c/classes/bamg/Geometry.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/bamg/Geometry.cpp	(revision 13529)
+++ /issm/trunk-jpl/src/c/classes/bamg/Geometry.cpp	(revision 13530)
@@ -4,5 +4,5 @@
 #include <ctime>
 
-#include "../objects.h"
+#include "../objects/objects.h"
 #include "../../include/include.h"
 #include "../../shared/Exceptions/exceptions.h"
Index: /issm/trunk-jpl/src/c/classes/bamg/ListofIntersectionTriangles.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/bamg/ListofIntersectionTriangles.cpp	(revision 13529)
+++ /issm/trunk-jpl/src/c/classes/bamg/ListofIntersectionTriangles.cpp	(revision 13530)
@@ -4,5 +4,5 @@
 #include <ctime>
 
-#include "../objects.h"
+#include "../objects/objects.h"
 
 namespace bamg {
Index: /issm/trunk-jpl/src/c/classes/bamg/Mesh.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/bamg/Mesh.cpp	(revision 13529)
+++ /issm/trunk-jpl/src/c/classes/bamg/Mesh.cpp	(revision 13530)
@@ -4,5 +4,5 @@
 #include <ctime>
 
-#include "../objects.h"
+#include "../objects/objects.h"
 
 namespace bamg {
Index: /issm/trunk-jpl/src/c/classes/bamg/SetOfE4.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/bamg/SetOfE4.cpp	(revision 13529)
+++ /issm/trunk-jpl/src/c/classes/bamg/SetOfE4.cpp	(revision 13530)
@@ -1,3 +1,3 @@
-#include "../objects.h"
+#include "../objects/objects.h"
 
 using namespace std;
Index: /issm/trunk-jpl/src/c/classes/bamg/Triangle.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/bamg/Triangle.cpp	(revision 13529)
+++ /issm/trunk-jpl/src/c/classes/bamg/Triangle.cpp	(revision 13530)
@@ -4,5 +4,5 @@
 #include <ctime>
 
-#include "../objects.h"
+#include "../objects/objects.h"
 
 namespace bamg {
Index: /issm/trunk-jpl/src/c/classes/classes.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/classes.h	(revision 13529)
+++ /issm/trunk-jpl/src/c/classes/classes.h	(revision 13530)
@@ -30,4 +30,5 @@
 #include "./OptArgs.h"
 #include "./OptPars.h"
+#include "./AdolcEdf.h"
 
 #endif
Index: /issm/trunk-jpl/src/c/classes/kriging/ExponentialVariogram.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/ExponentialVariogram.cpp	(revision 13529)
+++ /issm/trunk-jpl/src/c/classes/kriging/ExponentialVariogram.cpp	(revision 13530)
@@ -11,5 +11,5 @@
 #include <stdio.h>
 #include <string.h>
-#include "../objects.h"
+#include "../objects/objects.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../shared/shared.h"
Index: /issm/trunk-jpl/src/c/classes/kriging/GaussianVariogram.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/GaussianVariogram.cpp	(revision 13529)
+++ /issm/trunk-jpl/src/c/classes/kriging/GaussianVariogram.cpp	(revision 13530)
@@ -11,5 +11,5 @@
 #include <stdio.h>
 #include <string.h>
-#include "../objects.h"
+#include "../objects/objects.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../shared/shared.h"
Index: /issm/trunk-jpl/src/c/classes/kriging/Observation.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/Observation.cpp	(revision 13529)
+++ /issm/trunk-jpl/src/c/classes/kriging/Observation.cpp	(revision 13530)
@@ -4,5 +4,5 @@
 
 #include <stdlib.h>
-#include "../objects.h"
+#include "../objects/objects.h"
 
 /*Observation constructors and destructor*/
Index: /issm/trunk-jpl/src/c/classes/kriging/PowerVariogram.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/PowerVariogram.cpp	(revision 13529)
+++ /issm/trunk-jpl/src/c/classes/kriging/PowerVariogram.cpp	(revision 13530)
@@ -11,5 +11,5 @@
 #include <stdio.h>
 #include <string.h>
-#include "../objects.h"
+#include "../objects/objects.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../shared/shared.h"
Index: /issm/trunk-jpl/src/c/classes/kriging/Quadtree.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/Quadtree.cpp	(revision 13529)
+++ /issm/trunk-jpl/src/c/classes/kriging/Quadtree.cpp	(revision 13530)
@@ -1,3 +1,3 @@
-#include "../objects.h"
+#include "../objects/objects.h"
 
 /*DOCUMENTATION What is a Quadtree? {{{
Index: /issm/trunk-jpl/src/c/classes/kriging/SphericalVariogram.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/kriging/SphericalVariogram.cpp	(revision 13529)
+++ /issm/trunk-jpl/src/c/classes/kriging/SphericalVariogram.cpp	(revision 13530)
@@ -11,5 +11,5 @@
 #include <stdio.h>
 #include <string.h>
-#include "../objects.h"
+#include "../objects/objects.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../shared/shared.h"
Index: sm/trunk-jpl/src/c/classes/objects.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects.h	(revision 13529)
+++ 	(revision )
@@ -1,68 +1,0 @@
-/* \file objects.h
- * \brief: prototype header for all objects.
- */
-
-#ifndef ALL_OBJECTS_H_
-#define ALL_OBJECTS_H_
-
-/*Abstract classes: */
-#include "./objects/objects.h"
-
-/*Objects: */
-#include "./Hook.h"
-#include "./DofIndexing.h"
-#include "./IoModel.h"
-#include "./Patch.h"
-#include "./Update.h"
-
-/*Gauss*/
-#include "./gauss/GaussTria.h"
-#include "./gauss/GaussPenta.h"
-
-/*Numerics:*/
-#include "./matrix/ElementMatrix.h"
-#include "./matrix/ElementVector.h"
-#include "./matrix/Vector.h"
-#include "./matrix/Matrix.h"
-
-/*C objects: */
-#include "./FemModel.h"
-#include "./OptArgs.h"
-#include "./OptPars.h"
-
-/*Bamg: */
-#include "./bamg/BamgOpts.h"
-#include "./bamg/BamgGeom.h"
-#include "./bamg/BamgMesh.h"
-#include "./bamg/Metric.h"
-#include "./bamg/DoubleAndInt.h"
-#include "./bamg/Direction.h"
-#include "./bamg/BamgVertex.h"
-#include "./bamg/AdjacentTriangle.h"
-#include "./bamg/Edge.h"
-#include "./bamg/GeomVertex.h"
-#include "./bamg/GeomEdge.h"
-#include "./bamg/Curve.h"
-#include "./bamg/Triangle.h"
-#include "./bamg/ListofIntersectionTriangles.h"
-#include "./bamg/GeomSubDomain.h"
-#include "./bamg/SubDomain.h"
-#include "./bamg/VertexOnGeom.h"
-#include "./bamg/VertexOnVertex.h"
-#include "./bamg/VertexOnEdge.h"
-#include "./bamg/CrackedEdge.h"
-#include "./bamg/Mesh.h"
-#include "./bamg/Geometry.h"
-#include "./bamg/BamgQuadtree.h"
-#include "./bamg/SetOfE4.h"
-
-/*Kriging*/
-#include "./kriging/Variogram.h"
-#include "./kriging/GaussianVariogram.h"
-#include "./kriging/ExponentialVariogram.h"
-#include "./kriging/SphericalVariogram.h"
-#include "./kriging/PowerVariogram.h"
-#include "./kriging/Quadtree.h"
-#include "./kriging/Observation.h"
-
-#endif
Index: /issm/trunk-jpl/src/c/include/macros.h
===================================================================
--- /issm/trunk-jpl/src/c/include/macros.h	(revision 13529)
+++ /issm/trunk-jpl/src/c/include/macros.h	(revision 13530)
@@ -71,14 +71,14 @@
 #endif
 /*}}}*/
-/* ISSMBOOT/ISSMEND {{{*/
+/* IssmBoot/IssmEnd {{{*/
 
 /*The following macros hide the error exception handling in a matlab module. Just put 
- * ISSMBOOT(); and ISSMEND(); at the beginning and end of a module, and c++ exceptions 
+ * IssmBoot(); and IssmEnd(); at the beginning and end of a module, and c++ exceptions 
  * will be trapped. Really nifty!*/
 
-#define ISSMBOOT(); \
+#define IssmBoot(); \
 	try{
 
-#define ISSMEND(); }\
+#define IssmEnd(); }\
 	catch(ErrorException &exception){\
 		exception.Report(); \
Index: /issm/trunk-jpl/src/c/modules/AutodiffDriversx/AutodiffDriversx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/AutodiffDriversx/AutodiffDriversx.cpp	(revision 13529)
+++ /issm/trunk-jpl/src/c/modules/AutodiffDriversx/AutodiffDriversx.cpp	(revision 13530)
@@ -8,5 +8,4 @@
 #include "../../toolkits/toolkits.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
-#include "../../shared/Numerics/adolc_edf.h"
 
 
Index: /issm/trunk-jpl/src/c/modules/Solverx/SolverxSeq.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/Solverx/SolverxSeq.cpp	(revision 13529)
+++ /issm/trunk-jpl/src/c/modules/Solverx/SolverxSeq.cpp	(revision 13530)
@@ -12,4 +12,5 @@
 #include "./Solverx.h"
 #include "../../shared/shared.h"
+#include "../../classes/classes.h"
 #include "../../include/include.h"
 #include "../../io/io.h"
@@ -17,8 +18,4 @@
 #ifdef _HAVE_GSL_
 #include <gsl/gsl_linalg.h>
-#endif
-
-#ifdef _HAVE_ADOLC_
-#include "../../shared/Numerics/adolc_edf.h"
 #endif
 
Index: sm/trunk-jpl/src/c/shared/Numerics/adolc_edf.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Numerics/adolc_edf.h	(revision 13529)
+++ 	(revision )
@@ -1,28 +1,0 @@
-/*
- * adolc_edf.h
- *
- *  Created on: Jun 26, 2012
- *      Author: utke
- */
-
-#ifndef _ADOLC_EDF_H_
-#define _ADOLC_EDF_H_
-
-#include "../../include/include.h"
-
-#ifdef _HAVE_ADOLC_
-
-struct Adolc_edf {
-    ext_diff_fct *myEDF_for_solverx_p;
-    Adolc_edf() : myEDF_for_solverx_p(0) {}
-    inline friend std::ostream& operator << ( ostream&, const Adolc_edf& );
-};
-
-std::ostream& operator << ( std::ostream& out, const Adolc_edf& a) {
-    out << a.myEDF_for_solverx_p;
-    return out;
-}
-
-#endif
-
-#endif
Index: /issm/trunk-jpl/src/c/solutions/EnvironmentInit.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/EnvironmentInit.cpp	(revision 13530)
+++ /issm/trunk-jpl/src/c/solutions/EnvironmentInit.cpp	(revision 13530)
@@ -0,0 +1,22 @@
+/*!\file:  EnvironmentInit.cpp
+ * \brief: initialize Petsc, MPI, you name it
+ */ 
+
+void EnvironmentInit(int argc,char** argv){
+
+	/*Initialize environments: Petsc, MPI, etc...: */
+	#ifdef _HAVE_PETSC_
+	ierr=PetscInitialize(&argc,&argv,(char*)0,"");  
+	if(ierr) _error_("Could not initialize Petsc");
+	#else
+	#ifdef _HAVE_MPI_
+	MPI_Init(&argc,&argv);
+	#endif
+	#endif
+	
+	/*Size and rank: */
+	#ifdef _HAVE_MPI_
+	MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);  
+	MPI_Comm_size(MPI_COMM_WORLD,&num_procs); 
+	#endif
+}
Index: /issm/trunk-jpl/src/c/solutions/issm.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/issm.cpp	(revision 13529)
+++ /issm/trunk-jpl/src/c/solutions/issm.cpp	(revision 13530)
@@ -5,6 +5,5 @@
 #include "../issm.h"
 #include "../include/globals.h"
-#include "../shared/Numerics/adolc_edf.h"
-
+	
 int main(int argc,char **argv){
 
@@ -46,18 +45,9 @@
 	IssmPDouble Solution_time, Memory_use, Current_flops;
 
-	ISSMBOOT();
-
-	
-	/*Initialize environments: Petsc, MPI, etc...: */
-	#ifdef _HAVE_PETSC_
-	ierr=PetscInitialize(&argc,&argv,(char*)0,"");  
-	if(ierr) _error_("Could not initialize Petsc");
-	#else
-	#ifdef _HAVE_MPI_
-	MPI_Init(&argc,&argv);
-	#endif
-	#endif
-
-	#ifdef _HAVE_MPI_
+	IssmBoot();
+
+	EnvironmentInit(argc,argv);
+	
+		#ifdef _HAVE_MPI_
 	MPI_Barrier(MPI_COMM_WORLD); start=MPI_Wtime();
 	#else
@@ -65,10 +55,5 @@
 	#endif
 
-	/*Size and rank: */
-	#ifdef _HAVE_MPI_
-	MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);  
-	MPI_Comm_size(MPI_COMM_WORLD,&num_procs); 
-	#endif
-
+	
 	/*First process inputs*/
 	_pprintLine_("");
@@ -115,5 +100,5 @@
 	#endif
 	
-	/*If running AD, then initialize the tape: */
+	/*If running AD, then initialize a placeholder with which to work: */
 	#ifdef _HAVE_ADOLC_
 	GenericParam<Adolc_edf> *theAdolcEDF_p=new GenericParam<Adolc_edf>(AdolcParamEnum);
@@ -249,7 +234,6 @@
 	#endif
 
-	
 	/*end module: */
-	ISSMEND();
+	IssmEnd();
 
 	return 0; //unix success return;
Index: /issm/trunk-jpl/src/c/solutions/kriging.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/kriging.cpp	(revision 13529)
+++ /issm/trunk-jpl/src/c/solutions/kriging.cpp	(revision 13530)
@@ -36,21 +36,7 @@
 	IssmDouble *error       = NULL;
 
-	ISSMBOOT();
+	IssmBoot();
 
-	/*Initialize environments: Petsc, MPI, etc...: */
-#ifdef _HAVE_PETSC_
-	int ierr=PetscInitialize(&argc,&argv,(char*)0,"");  
-	if(ierr) _error_("Could not initialize Petsc");
-#else
-#ifdef _HAVE_MPI_
-	MPI_Init(&argc,&argv);
-#endif
-#endif
-
-	/*Size and rank: */
-#ifdef _HAVE_MPI_
-	MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);  
-	MPI_Comm_size(MPI_COMM_WORLD,&num_procs); 
-#endif
+	EnvironmentInit(argc,argv);
 
 	/*First process inputs*/
@@ -112,5 +98,5 @@
 
 	/*end module: */
-	ISSMEND();
+	IssmEnd();
 
 	return 0; //unix success return;
Index: /issm/trunk-jpl/src/c/solutions/solutions.h
===================================================================
--- /issm/trunk-jpl/src/c/solutions/solutions.h	(revision 13529)
+++ /issm/trunk-jpl/src/c/solutions/solutions.h	(revision 13530)
@@ -45,4 +45,5 @@
 void controlrestart(FemModel* femmodel,IssmDouble* J);
 void ResetBoundaryConditions(FemModel* femmodel, int analysis_type);
+void EnvironmentInit(int argc,char** argv);
 
 //solution configuration
