Index: /issm/trunk/src/c/ConfigureObjectsx/ConfigureObjectsx.cpp
===================================================================
--- /issm/trunk/src/c/ConfigureObjectsx/ConfigureObjectsx.cpp	(revision 3632)
+++ /issm/trunk/src/c/ConfigureObjectsx/ConfigureObjectsx.cpp	(revision 3633)
@@ -23,5 +23,5 @@
 	loads->Configure(elements,loads,nodes,vertices,materials,parameters);
 	//_printf_("      Configuring nodes...\n");
-	nodes->Configure(elements,loads,nodes,vertices,materials,parameters);
+	nodes->Configure(nodes);
 	//_printf_("      Configuring parameters...\n");
 	parameters->Configure(elements,loads, nodes,vertices, materials,parameters);
Index: /issm/trunk/src/c/DataSet/DataSet.cpp
===================================================================
--- /issm/trunk/src/c/DataSet/DataSet.cpp	(revision 3632)
+++ /issm/trunk/src/c/DataSet/DataSet.cpp	(revision 3633)
@@ -633,5 +633,5 @@
 		if(EnumIsLoad((*object)->Enum())){
 			load=(Load*)(*object);
-			load->Configure(elements,nodes,materials);
+			load->Configure(elements,nodes,materials,parameters);
 		}
 
Index: /issm/trunk/src/c/DataSet/Inputs.cpp
===================================================================
--- /issm/trunk/src/c/DataSet/Inputs.cpp	(revision 3632)
+++ /issm/trunk/src/c/DataSet/Inputs.cpp	(revision 3633)
@@ -102,4 +102,29 @@
 }
 /*}}}*/
+/*FUNCTION Inputs::GetParameterValueAtNode(double* pvalue, Node* node, int enum_type){{{1*/
+void Inputs::GetParameterValueAtNode(double* pvalue,Node* node,int enum_type){
+
+	/*given a node, instead of a gauss point, we want to recover a value: probably in an element!: */
+
+	vector<Object*>::iterator object;
+	Input* input=NULL;
+
+	/*Go through inputs and check whether any input with the same name is already in: */
+	for ( object=objects.begin() ; object < objects.end(); object++ ){
+
+		input=(Input*)(*object); 
+		if (input->EnumType()==enum_type)break;
+	}
+
+	if (!input){
+		/*we could not find an input with the correct enum type. No defaults values were provided, 
+		 * error out: */
+		ISSMERROR("%s%i"," could not find input with enum type ",enum_type);
+	}
+
+	/*Ok, we have an input if we made it here, request the input to return the values: */
+	input->GetParameterValueAtNode(pvalue,node);
+}
+/*}}}*/
 /*FUNCTION Inputs::GetParameterValues(double* values,double* gauss_pointers, int numgauss,int enum_type,double* defaultvalues){{{1*/
 void GetParameterValues(double* values,double* gauss_pointers, int numgauss,int enum_type,double* defaultvalues){
Index: /issm/trunk/src/c/DataSet/Inputs.h
===================================================================
--- /issm/trunk/src/c/DataSet/Inputs.h	(revision 3632)
+++ /issm/trunk/src/c/DataSet/Inputs.h	(revision 3633)
@@ -7,5 +7,7 @@
 
 class Input;
+class Node;
 #include "./DataSet.h"
+#include "../objects/Node.h"
 
 class Inputs: public DataSet{
@@ -22,4 +24,5 @@
 		void GetParameterValue(int* pvalue,int enum_type);
 		void GetParameterValue(double* pvalue,int enum_type);
+		void GetParameterValueAtNode(double* pvalue,Node* node,int enum_type);
 		void GetParameterValue(double* pvalue,double* gauss,int enum_type);
 		void GetParameterValue(double* pvalue,double* gauss,int enum_type,double defaultvalue);
Index: /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
===================================================================
--- /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 3632)
+++ /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 3633)
@@ -160,4 +160,6 @@
 	SurfaceSlopexEnum,
 	SurfaceSlopeyEnum,
+	BedSlopexEnum,
+	BedSlopeyEnum,
 	WeightsEnum,
 	FitEnum,
@@ -167,5 +169,11 @@
 	CollapseEnum,
 	TemperatureEnum,
-	PressureEnum
+	PressureEnum,
+	NodeOnBedEnum,
+	NodeOnSurfaceEnum,
+	NodeOnIceShelfEnum,
+	NodeOnIceSheetEnum,
+	ResetPenaltiesEnum,
+	MeltingOffsetEnum
 	/*}}}*/
 
Index: /issm/trunk/src/c/Makefile.am
===================================================================
--- /issm/trunk/src/c/Makefile.am	(revision 3632)
+++ /issm/trunk/src/c/Makefile.am	(revision 3633)
@@ -212,4 +212,5 @@
 					./EnumDefinitions/EnumDefinitions.h\
 					./EnumDefinitions/EnumDefinitions.cpp\
+					./ModelProcessorx/ModelProcessorx.h\
 					./ModelProcessorx/IoModel.h\
 					./ModelProcessorx/IoModel.cpp\
@@ -625,4 +626,5 @@
 					./EnumDefinitions/EnumDefinitions.h\
 					./EnumDefinitions/EnumDefinitions.cpp\
+					./ModelProcessorx/ModelProcessorx.h\
 					./ModelProcessorx/IoModel.h\
 					./ModelProcessorx/IoModel.cpp\
Index: /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateConstraintsBalancedthickness.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateConstraintsBalancedthickness.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateConstraintsBalancedthickness.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../objects/objects.h"
 #include "../../shared/shared.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateConstraintsBalancedthickness(DataSet** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateElementsNodesAndMaterialsBalancedthickness.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateElementsNodesAndMaterialsBalancedthickness.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateElementsNodesAndMaterialsBalancedthickness.cpp	(revision 3633)
@@ -10,5 +10,5 @@
 #include "../../include/typedefs.h"
 #include "../../MeshPartitionx/MeshPartitionx.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateElementsNodesAndMaterialsBalancedthickness(DataSet** pelements,DataSet** pnodes, DataSet** pvertices, DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateLoadsBalancedthickness.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateLoadsBalancedthickness.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateLoadsBalancedthickness.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../shared/shared.h"
 #include "../../include/macros.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 
Index: /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateParametersBalancedthickness.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateParametersBalancedthickness.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateParametersBalancedthickness.cpp	(revision 3633)
@@ -7,5 +7,5 @@
 #include "../../objects/objects.h"
 #include "../../shared/shared.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void CreateParametersBalancedthickness(DataSet** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Balancedthickness2/CreateConstraintsBalancedthickness2.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedthickness2/CreateConstraintsBalancedthickness2.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedthickness2/CreateConstraintsBalancedthickness2.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../objects/objects.h"
 #include "../../shared/shared.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateConstraintsBalancedthickness2(DataSet** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Balancedthickness2/CreateElementsNodesAndMaterialsBalancedthickness2.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedthickness2/CreateElementsNodesAndMaterialsBalancedthickness2.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedthickness2/CreateElementsNodesAndMaterialsBalancedthickness2.cpp	(revision 3633)
@@ -11,5 +11,5 @@
 #include "../../include/typedefs.h"
 #include "../../MeshPartitionx/MeshPartitionx.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateElementsNodesAndMaterialsBalancedthickness2(DataSet** pelements,DataSet** pnodes, DataSet** pvertices,DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Balancedthickness2/CreateLoadsBalancedthickness2.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedthickness2/CreateLoadsBalancedthickness2.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedthickness2/CreateLoadsBalancedthickness2.cpp	(revision 3633)
@@ -9,5 +9,5 @@
 #include "../../include/macros.h"
 #include "../../include/typedefs.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateLoadsBalancedthickness2(DataSet** ploads, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Balancedthickness2/CreateParametersBalancedthickness2.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedthickness2/CreateParametersBalancedthickness2.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedthickness2/CreateParametersBalancedthickness2.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../objects/objects.h"
 #include "../../shared/shared.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void CreateParametersBalancedthickness2(DataSet** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateConstraintsBalancedvelocities.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateConstraintsBalancedvelocities.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateConstraintsBalancedvelocities.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../objects/objects.h"
 #include "../../shared/shared.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateConstraintsBalancedvelocities(DataSet** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateElementsNodesAndMaterialsBalancedvelocities.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateElementsNodesAndMaterialsBalancedvelocities.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateElementsNodesAndMaterialsBalancedvelocities.cpp	(revision 3633)
@@ -10,5 +10,5 @@
 #include "../../MeshPartitionx/MeshPartitionx.h"
 #include "../../include/typedefs.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateElementsNodesAndMaterialsBalancedvelocities(DataSet** pelements,DataSet** pnodes, DataSet** pvertices,DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateLoadsBalancedvelocities.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateLoadsBalancedvelocities.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateLoadsBalancedvelocities.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../shared/shared.h"
 #include "../../include/macros.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 
Index: /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateParametersBalancedvelocities.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateParametersBalancedvelocities.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateParametersBalancedvelocities.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../objects/objects.h"
 #include "../../shared/shared.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void CreateParametersBalancedvelocities(DataSet** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Control/CreateParametersControl.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Control/CreateParametersControl.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Control/CreateParametersControl.cpp	(revision 3633)
@@ -9,5 +9,5 @@
 #include "../../shared/shared.h"
 #include "../../include/macros.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void CreateParametersControl(DataSet** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../objects/objects.h"
 #include "../../shared/shared.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp	(revision 3633)
@@ -10,5 +10,5 @@
 #include "../../MeshPartitionx/MeshPartitionx.h"
 #include "../../include/typedefs.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateElementsNodesAndMaterialsDiagnosticHoriz(DataSet** pelements,DataSet** pnodes, DataSet** pvertices,DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../shared/shared.h"
 #include "../../include/macros.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateLoadsDiagnosticHoriz(DataSet** ploads, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateParametersDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateParametersDiagnosticHoriz.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateParametersDiagnosticHoriz.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../objects/objects.h"
 #include "../../shared/shared.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void CreateParametersDiagnosticHoriz(DataSet** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../objects/objects.h"
 #include "../../shared/shared.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateConstraintsDiagnosticHutter(DataSet** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateElementsNodesAndMaterialsDiagnosticHutter.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateElementsNodesAndMaterialsDiagnosticHutter.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateElementsNodesAndMaterialsDiagnosticHutter.cpp	(revision 3633)
@@ -10,5 +10,5 @@
 #include "../../MeshPartitionx/MeshPartitionx.h"
 #include "../../include/typedefs.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateElementsNodesAndMaterialsDiagnosticHutter(DataSet** pelements,DataSet** pnodes, DataSet** pvertices,DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateLoadsDiagnosticHutter.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateLoadsDiagnosticHutter.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateLoadsDiagnosticHutter.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../shared/shared.h"
 #include "../../include/macros.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateLoadsDiagnosticHutter(DataSet** ploads, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateConstraintsDiagnosticStokes.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateConstraintsDiagnosticStokes.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateConstraintsDiagnosticStokes.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../objects/objects.h"
 #include "../../shared/shared.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateConstraintsDiagnosticStokes(DataSet** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateElementsNodesAndMaterialsDiagnosticStokes.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateElementsNodesAndMaterialsDiagnosticStokes.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateElementsNodesAndMaterialsDiagnosticStokes.cpp	(revision 3633)
@@ -11,5 +11,5 @@
 #include "../../include/typedefs.h"
 #include "../../MeshPartitionx/MeshPartitionx.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateElementsNodesAndMaterialsDiagnosticStokes(DataSet** pelements,DataSet** pnodes, DataSet** pvertices,DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateLoadsDiagnosticStokes.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateLoadsDiagnosticStokes.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateLoadsDiagnosticStokes.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../shared/shared.h"
 #include "../../include/macros.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateLoadsDiagnosticStokes(DataSet** ploads, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../objects/objects.h"
 #include "../../shared/shared.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateConstraintsDiagnosticVert(DataSet** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateElementsNodesAndMaterialsDiagnosticVert.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateElementsNodesAndMaterialsDiagnosticVert.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateElementsNodesAndMaterialsDiagnosticVert.cpp	(revision 3633)
@@ -10,5 +10,5 @@
 #include "../../MeshPartitionx/MeshPartitionx.h"
 #include "../../include/typedefs.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateElementsNodesAndMaterialsDiagnosticVert(DataSet** pelements,DataSet** pnodes, DataSet** pvertices,DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateLoadsDiagnosticVert.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateLoadsDiagnosticVert.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateLoadsDiagnosticVert.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../shared/shared.h"
 #include "../../include/macros.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateLoadsDiagnosticVert(DataSet** ploads, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/IoModel.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/IoModel.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/IoModel.cpp	(revision 3633)
@@ -1,5 +1,5 @@
 /*! \file IoModel.cpp
- * \brief  IoModel structure that mirrors the matlab workspace structure. Servers for the serial 
- * and parallel runs.
+ * \brief  file containing the methods that will help in processing the input data coming 
+ * into ISSM, from Matlab, or through a binary file opened for reading.
  */
 
@@ -14,5 +14,4 @@
 #include "../include/globals.h"
 #include "../include/macros.h"
-
 #include <string.h>
 #include "stdio.h"
@@ -20,184 +19,11 @@
 #include "./IoModel.h"
 
-
-/*!--------------------------------------------------
-	NewIoModel
-  --------------------------------------------------*/
-
-IoModel* NewIoModel(void) {
-	/*! create a new IoModel object */
-	IoModel* iomodel=NULL;
-
-	iomodel=(IoModel*)xmalloc(sizeof(IoModel));
-
-	/*!initialize all pointers to 0: */
-	iomodel->name=NULL;
-	iomodel->inputfilename=NULL;
-	iomodel->outputfilename=NULL;
-	iomodel->repository=NULL;
-	iomodel->meshtype=NULL;
-	iomodel->analysis_type=0;
-	iomodel->sub_analysis_type=0;
-	iomodel->qmu_analysis=0;
-	iomodel->control_analysis=0;
-	iomodel->solverstring=NULL;
-	iomodel->numberofresponses=0;
-	iomodel->numberofvariables=0;
-	iomodel->qmu_npart=0; 
-	iomodel->numberofelements=0;
-	iomodel->numberofvertices=0;
-	iomodel->x=NULL; 
-	iomodel->y=NULL;
-	iomodel->z=NULL;
-	iomodel->elements=NULL;
-	iomodel->elements_type=NULL;
-	iomodel->numberofvertices2d=0;
-	iomodel->elements2d=NULL;
-	iomodel->deadgrids=NULL;
-	iomodel->numlayers=0;
-	iomodel->uppernodes=NULL;
-	iomodel->gridonhutter=NULL;
-	iomodel->gridonmacayeal=NULL;
-	iomodel->gridonpattyn=NULL;
-	
-	iomodel->vx_obs=NULL;
-	iomodel->vy_obs=NULL;
-	iomodel->vx=NULL;
-	iomodel->vy=NULL;
-	iomodel->vz=NULL;
-	iomodel->pressure=NULL;
-	iomodel->temperature=NULL;
-	iomodel->melting=NULL;
-	iomodel->geothermalflux=NULL;
-	iomodel->elementonbed=NULL;
-	iomodel->elementonsurface=NULL;
-	iomodel->gridonbed=NULL;
-	iomodel->gridonsurface=NULL;
-	iomodel->gridonstokes=NULL;
-	iomodel->borderstokes=NULL;
-	iomodel->thickness=NULL;
-	iomodel->surface=NULL;
-	iomodel->bed=NULL;
-	iomodel->elementoniceshelf=NULL;
-	iomodel->elementonwater=NULL;
-	iomodel->gridonicesheet=NULL;
-	iomodel->gridoniceshelf=NULL;
-
-	iomodel->drag_type=0;
-	iomodel->drag_cofficient=NULL;
-	iomodel->drag_p=NULL;
-	iomodel->drag_q=NULL;
-	
-	
-	iomodel->numberofpressureloads=0;
-	iomodel->pressureload=NULL;
-	iomodel-> spcvelocity=NULL;
-	iomodel-> spctemperature=NULL;
-	iomodel-> spcthickness=NULL;
-	iomodel->numberofedges=0;
-	iomodel->edges=NULL;
-	
-	/*!materials: */
-	iomodel->rho_water=0;
-	iomodel->rho_ice=0;
-	iomodel->g=0;
-	iomodel->rheology_n=NULL;
-	iomodel->rheology_B=NULL;
-
-	/*!control methods: */
-	iomodel->control_type=NULL;
-
-	/*!solution parameters: */
-	iomodel->fit=NULL;
-	iomodel->weights=NULL;
-	iomodel->cm_jump=NULL;
-	iomodel->meanvel=0;
-	iomodel->epsvel=0;
-	iomodel->artificial_diffusivity=0;
-	iomodel->nsteps=0;
-	iomodel->eps_cm=0;
-	iomodel->tolx=0;
-	iomodel->maxiter=NULL;
-	iomodel->cm_noisedmp=0;
-	iomodel->cm_mindmp_value=0;
-	iomodel->cm_mindmp_slope=0;
-	iomodel->cm_maxdmp_value=0;
-	iomodel->cm_maxdmp_slope=0;
-	iomodel->cm_min=0;
-	iomodel->cm_max=0;
-	iomodel->cm_gradient=0;
-	iomodel->verbose=0;
-	iomodel->plot=0;
-	iomodel->eps_res=0;
-	iomodel->eps_rel=0;
-	iomodel->eps_abs=0;
-	iomodel->max_nonlinear_iterations=0;
-	iomodel->dt=0;
-	iomodel->ndt=0;
-	iomodel->penalty_offset=0;
-	iomodel->penalty_melting=0;
-	iomodel->penalty_lock=0;
-	iomodel->sparsity=0;
-	iomodel->connectivity=0;
-	iomodel->lowmem=0;
-	iomodel->optscal=NULL;
-	iomodel->yts=0;
-	iomodel->viscosity_overshoot=0;
-	iomodel->artdiff=0;
-	iomodel->stokesreconditioning=0;
-	iomodel->waitonlock=0;
-
-	/*!thermal parameters: */
-	iomodel->beta=0;
-	iomodel->meltingpoint=0;
-	iomodel->latentheat=0;
-	iomodel->heatcapacity=0;
-	iomodel->thermalconductivity=0;
-	iomodel->min_thermal_constraints=0;
-	iomodel->min_mechanical_constraints=0;
-	iomodel->stabilize_constraints=0;
-	iomodel->mixed_layer_capacity=0;
-	iomodel->thermal_exchange_velocity=0;
-
-	
-	iomodel->numrifts=0;
-	iomodel->riftinfo=NULL;
-
-	/*!penalties: */
-	iomodel->numpenalties=0;
-	iomodel->penalties=NULL;
-	iomodel->penaltypartitioning=NULL;
-
-	/*!basal: */
-	iomodel->accumulation_rate=NULL;
-	iomodel->dhdt=NULL;
-	
-	/*parameter output: */
-	iomodel->numoutput=0;
-
-	/*elements type: */
-	iomodel->ishutter=0;
-	iomodel->ismacayealpattyn=0;
-	iomodel->isstokes=0;
-
-	/*exterior data: */
-	iomodel->my_elements=NULL;
-	iomodel->my_vertices=NULL;
-	iomodel->my_nodes=NULL;
-	iomodel->my_bordervertices=NULL;
-	iomodel->penaltypartitioning=NULL;
-
-	return iomodel;
+/*FUNCTION IoModel::IoModel(){{{1*/
+IoModel::IoModel(){
+	this->IoModelInit();
 }
-
-
-/*!--------------------------------------------------
-	DeleteIoModel
-  --------------------------------------------------*/
-
-void DeleteIoModel(IoModel** piomodel){
-
-	/*!Recover structure: */
-	IoModel* iomodel = *piomodel;
+/*}}}*/
+/*FUNCTION IoModel::~IoModel(){{{1*/
+IoModel::~IoModel(){
 	
 	int i;
@@ -285,25 +111,17 @@
 	xfree((void**)&iomodel->my_bordervertices);
 	xfree((void**)&iomodel->penaltypartitioning);
-
-	/*!Delete entire structure: */
-	xfree((void**)piomodel);
 	#endif
 }
-
-/*!--------------------------------------------------
-	IoModelInit
-  --------------------------------------------------*/
-
-int	IoModelInit(IoModel** piomodel,ConstDataHandle iomodel_handle){
-
+/*}}}*/
+/*FUNCTION IoModel::IoModel(ConstDataHandle iomodel_handle){{{1*/
+IoModel::IoModel(ConstDataHandle iomodel_handle){
+	
 	int i,j;
-	
-	/*output: */
-	IoModel* iomodel=NULL;
-
-	/*Allocate iomodel: */
-	iomodel=NewIoModel();
-
-	/*In IoModelInit, we get all the data that is not difficult to get, and that is small: */
+		
+	/*First, initialize the structure: */
+	this->IoModelInit();
+	
+	/*Get all the data that consists of scalars, integers and strings: */
+
 	IoModelFetchData(&iomodel->name,iomodel_handle,"name"); 
 	IoModelFetchData(&iomodel->inputfilename,iomodel_handle,"inputfilename"); 
@@ -406,9 +224,168 @@
 	return 1;
 }
-
-/*!--------------------------------------------------
-	IoModelEcho
-  --------------------------------------------------*/
-void IoModelEcho(IoModel* iomodel,int which_part,int rank) {
+/*}}}*/
+/*FUNCTION IoModel::IoModelInit(void){{{1*/
+void IoModel::IoModelInit(void){
+	
+	/*!initialize all pointers to 0: */
+	iomodel->name=NULL;
+	iomodel->inputfilename=NULL;
+	iomodel->outputfilename=NULL;
+	iomodel->repository=NULL;
+	iomodel->meshtype=NULL;
+	iomodel->analysis_type=0;
+	iomodel->sub_analysis_type=0;
+	iomodel->qmu_analysis=0;
+	iomodel->control_analysis=0;
+	iomodel->solverstring=NULL;
+	iomodel->numberofresponses=0;
+	iomodel->numberofvariables=0;
+	iomodel->qmu_npart=0; 
+	iomodel->numberofelements=0;
+	iomodel->numberofvertices=0;
+	iomodel->x=NULL; 
+	iomodel->y=NULL;
+	iomodel->z=NULL;
+	iomodel->elements=NULL;
+	iomodel->elements_type=NULL;
+	iomodel->numberofvertices2d=0;
+	iomodel->elements2d=NULL;
+	iomodel->deadgrids=NULL;
+	iomodel->numlayers=0;
+	iomodel->uppernodes=NULL;
+	iomodel->gridonhutter=NULL;
+	iomodel->gridonmacayeal=NULL;
+	iomodel->gridonpattyn=NULL;
+	
+	iomodel->vx_obs=NULL;
+	iomodel->vy_obs=NULL;
+	iomodel->vx=NULL;
+	iomodel->vy=NULL;
+	iomodel->vz=NULL;
+	iomodel->pressure=NULL;
+	iomodel->temperature=NULL;
+	iomodel->melting=NULL;
+	iomodel->geothermalflux=NULL;
+	iomodel->elementonbed=NULL;
+	iomodel->elementonsurface=NULL;
+	iomodel->gridonbed=NULL;
+	iomodel->gridonsurface=NULL;
+	iomodel->gridonstokes=NULL;
+	iomodel->borderstokes=NULL;
+	iomodel->thickness=NULL;
+	iomodel->surface=NULL;
+	iomodel->bed=NULL;
+	iomodel->elementoniceshelf=NULL;
+	iomodel->elementonwater=NULL;
+	iomodel->gridonicesheet=NULL;
+	iomodel->gridoniceshelf=NULL;
+
+	iomodel->drag_type=0;
+	iomodel->drag_cofficient=NULL;
+	iomodel->drag_p=NULL;
+	iomodel->drag_q=NULL;
+	
+	
+	iomodel->numberofpressureloads=0;
+	iomodel->pressureload=NULL;
+	iomodel-> spcvelocity=NULL;
+	iomodel-> spctemperature=NULL;
+	iomodel-> spcthickness=NULL;
+	iomodel->numberofedges=0;
+	iomodel->edges=NULL;
+	
+	/*!materials: */
+	iomodel->rho_water=0;
+	iomodel->rho_ice=0;
+	iomodel->g=0;
+	iomodel->rheology_n=NULL;
+	iomodel->rheology_B=NULL;
+
+	/*!control methods: */
+	iomodel->control_type=NULL;
+
+	/*!solution parameters: */
+	iomodel->fit=NULL;
+	iomodel->weights=NULL;
+	iomodel->cm_jump=NULL;
+	iomodel->meanvel=0;
+	iomodel->epsvel=0;
+	iomodel->artificial_diffusivity=0;
+	iomodel->nsteps=0;
+	iomodel->eps_cm=0;
+	iomodel->tolx=0;
+	iomodel->maxiter=NULL;
+	iomodel->cm_noisedmp=0;
+	iomodel->cm_mindmp_value=0;
+	iomodel->cm_mindmp_slope=0;
+	iomodel->cm_maxdmp_value=0;
+	iomodel->cm_maxdmp_slope=0;
+	iomodel->cm_min=0;
+	iomodel->cm_max=0;
+	iomodel->cm_gradient=0;
+	iomodel->verbose=0;
+	iomodel->plot=0;
+	iomodel->eps_res=0;
+	iomodel->eps_rel=0;
+	iomodel->eps_abs=0;
+	iomodel->max_nonlinear_iterations=0;
+	iomodel->dt=0;
+	iomodel->ndt=0;
+	iomodel->penalty_offset=0;
+	iomodel->penalty_melting=0;
+	iomodel->penalty_lock=0;
+	iomodel->sparsity=0;
+	iomodel->connectivity=0;
+	iomodel->lowmem=0;
+	iomodel->optscal=NULL;
+	iomodel->yts=0;
+	iomodel->viscosity_overshoot=0;
+	iomodel->artdiff=0;
+	iomodel->stokesreconditioning=0;
+	iomodel->waitonlock=0;
+
+	/*!thermal parameters: */
+	iomodel->beta=0;
+	iomodel->meltingpoint=0;
+	iomodel->latentheat=0;
+	iomodel->heatcapacity=0;
+	iomodel->thermalconductivity=0;
+	iomodel->min_thermal_constraints=0;
+	iomodel->min_mechanical_constraints=0;
+	iomodel->stabilize_constraints=0;
+	iomodel->mixed_layer_capacity=0;
+	iomodel->thermal_exchange_velocity=0;
+
+	
+	iomodel->numrifts=0;
+	iomodel->riftinfo=NULL;
+
+	/*!penalties: */
+	iomodel->numpenalties=0;
+	iomodel->penalties=NULL;
+	iomodel->penaltypartitioning=NULL;
+
+	/*!basal: */
+	iomodel->accumulation_rate=NULL;
+	iomodel->dhdt=NULL;
+	
+	/*parameter output: */
+	iomodel->numoutput=0;
+
+	/*elements type: */
+	iomodel->ishutter=0;
+	iomodel->ismacayealpattyn=0;
+	iomodel->isstokes=0;
+
+	/*exterior data: */
+	iomodel->my_elements=NULL;
+	iomodel->my_vertices=NULL;
+	iomodel->my_nodes=NULL;
+	iomodel->my_bordervertices=NULL;
+	iomodel->penaltypartitioning=NULL;
+}
+/*}}}*/
+/*FUNCTION IoModel::Echo(int which_part,int rank){{{1*/
+void IoModel::Echo(int which_part,int rank) {
 
 	//which_part  determines what gets echoed, otherwise, we'll get too much output.
@@ -429,5 +406,4 @@
 		}
 	}
-	
-	return;
 }
+/*}}}*/
Index: /issm/trunk/src/c/ModelProcessorx/IoModel.h
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/IoModel.h	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/IoModel.h	(revision 3633)
@@ -1,4 +1,5 @@
 /* \file IoModel.h
- * \brief  Header file defining the IoModel structure and processing of input data.
+ * \brief  Header file defining the IoModel structure that will help in processing the input data coming 
+ * into ISSM, from Matlab, or through a binary file opened for reading.
  * \sa IoModel.cpp
  */
@@ -8,278 +9,189 @@
 
 #include "../io/io.h"
-#include "../DataSet/DataSet.h"
-#include "../DataSet/Parameters.h"
-#include "../toolkits/toolkits.h"
 
-#define RIFTINFOSIZE 11
+class IoModel {
 
-struct IoModel {
+	public:
 
-	char*   name;
-	char*	  inputfilename;
-	char*	  outputfilename;
-	char*   repository;
-	char*   meshtype;
-	int     analysis_type;
-	int     sub_analysis_type;
-	int     qmu_analysis;
-	int     control_analysis;
-	char*   solverstring;
+		/*Data: {{{1*/
+		char*   name;
+		char*	  inputfilename;
+		char*	  outputfilename;
+		char*   repository;
+		char*   meshtype;
+		int     analysis_type;
+		int     sub_analysis_type;
+		int     qmu_analysis;
+		int     control_analysis;
+		char*   solverstring;
 
-	/*2d mesh: */
-	int     numberofelements;
-	int     numberofvertices;
-	double* x;
-	double* y;
-	double* z;
-	double* elements;
-	double* elements_type;
+		/*2d mesh: */
+		int     numberofelements;
+		int     numberofvertices;
+		double* x;
+		double* y;
+		double* z;
+		double* elements;
+		double* elements_type;
 
-	/*3d mesh: */
-	int     numberofvertices2d;
-	int     numberofelements2d;
-	double* elements2d;
-	double* deadgrids;
-	int     numlayers;
-	double* uppernodes;
+		/*3d mesh: */
+		int     numberofvertices2d;
+		int     numberofelements2d;
+		double* elements2d;
+		double* deadgrids;
+		int     numlayers;
+		double* uppernodes;
 
-	/*elements type: */
-	int     ishutter;
-	int     ismacayealpattyn;
-	int     isstokes;
-	double* gridonhutter;
-	double* gridonmacayeal;
-	double* gridonpattyn;
+		/*elements type: */
+		int     ishutter;
+		int     ismacayealpattyn;
+		int     isstokes;
+		double* gridonhutter;
+		double* gridonmacayeal;
+		double* gridonpattyn;
 
-	/*results: */
-	double* vx;
-	double* vy;
-	double* vz;
-	double* pressure;
-	double* temperature;
+		/*results: */
+		double* vx;
+		double* vy;
+		double* vz;
+		double* pressure;
+		double* temperature;
 
-	/*observations: */
-	double*  vx_obs;
-	double*  vy_obs;
+		/*observations: */
+		double*  vx_obs;
+		double*  vy_obs;
 
-	/*qmu: */
-	int      numberofresponses;
-	int      numberofvariables;
-	int      qmu_npart;
+		/*qmu: */
+		int      numberofresponses;
+		int      numberofvariables;
+		int      qmu_npart;
 
-	/*geometry: */
-	double* elementonbed;
-	double* elementonsurface;
-	double* gridonbed;
-	double* gridonsurface;
-	double* gridonstokes;
-	double* borderstokes;
-	double* thickness;
-	double* surface;
-	double* bed;
-	double* elementoniceshelf;
-	double* elementonwater;
-	double* gridonicesheet;
-	double* gridoniceshelf;
+		/*geometry: */
+		double* elementonbed;
+		double* elementonsurface;
+		double* gridonbed;
+		double* gridonsurface;
+		double* gridonstokes;
+		double* borderstokes;
+		double* thickness;
+		double* surface;
+		double* bed;
+		double* elementoniceshelf;
+		double* elementonwater;
+		double* gridonicesheet;
+		double* gridoniceshelf;
 
-	/*friction: */
-	int     drag_type;
-	double* drag_coefficient;
-	double* drag_p;
-	double* drag_q;
+		/*friction: */
+		int     drag_type;
+		double* drag_coefficient;
+		double* drag_p;
+		double* drag_q;
 
-	/*boundary conditions: */
-	int     numberofpressureloads;
-	double* pressureload;
-	double* spcvelocity;
-	double* spctemperature;
-	double* spcthickness;
-	double* geothermalflux;
-	int     numberofedges;
-	double* edges;
-	
-	/*materials: */
-	double  rho_water,rho_ice;
-	double  g;
-	double* rheology_B;
-	double* rheology_n;
+		/*boundary conditions: */
+		int     numberofpressureloads;
+		double* pressureload;
+		double* spcvelocity;
+		double* spctemperature;
+		double* spcthickness;
+		double* geothermalflux;
+		int     numberofedges;
+		double* edges;
 
-	/*numerical parameters: */
-	double  meanvel;
-	double  epsvel;
-	int     artdiff;
-	double  viscosity_overshoot;
-	double  stokesreconditioning;
-	double  cm_noisedmp;
-	double  cm_mindmp_value;
-	double  cm_mindmp_slope;
-	double  cm_maxdmp_value;
-	double  cm_maxdmp_slope;
-	double  cm_min;
-	double  cm_max;
-	int     cm_gradient;;
+		/*materials: */
+		double  rho_water,rho_ice;
+		double  g;
+		double* rheology_B;
+		double* rheology_n;
 
-	double  cm_noisedampening;
+		/*numerical parameters: */
+		double  meanvel;
+		double  epsvel;
+		int     artdiff;
+		double  viscosity_overshoot;
+		double  stokesreconditioning;
+		double  cm_noisedmp;
+		double  cm_mindmp_value;
+		double  cm_mindmp_slope;
+		double  cm_maxdmp_value;
+		double  cm_maxdmp_slope;
+		double  cm_min;
+		double  cm_max;
+		int     cm_gradient;;
 
-	/*control methods: */
-	char*	control_type;
+		double  cm_noisedampening;
 
-	/*solution parameters: */
-	double* fit;
-	double* weights;
-	double* cm_jump;
-	int     artificial_diffusivity;
-	int     nsteps;
-	double  eps_cm;
-	double  tolx;
-	double* maxiter;
-	int     verbose;
-	int     plot;
-	double  eps_res;
-	double  eps_rel;
-	double  eps_abs;
-	double  max_nonlinear_iterations;
-	double  dt,ndt;
-	double  penalty_offset;
-	double  penalty_melting;
-	int     penalty_lock;
-	double  sparsity;
-	int     connectivity;
-	int     lowmem;
-	double* optscal;
-	double  yts;
-	double  waitonlock;
+		/*control methods: */
+		char*	control_type;
 
-	/*thermal parameters: */
-	double beta;
-	double meltingpoint;
-	double latentheat;
-	double  heatcapacity,thermalconductivity;
-	int    min_thermal_constraints;
-	int    min_mechanical_constraints;
-	int    stabilize_constraints;
-	double mixed_layer_capacity;
-	double thermal_exchange_velocity;
+		/*solution parameters: */
+		double* fit;
+		double* weights;
+		double* cm_jump;
+		int     artificial_diffusivity;
+		int     nsteps;
+		double  eps_cm;
+		double  tolx;
+		double* maxiter;
+		int     verbose;
+		int     plot;
+		double  eps_res;
+		double  eps_rel;
+		double  eps_abs;
+		double  max_nonlinear_iterations;
+		double  dt,ndt;
+		double  penalty_offset;
+		double  penalty_melting;
+		int     penalty_lock;
+		double  sparsity;
+		int     connectivity;
+		int     lowmem;
+		double* optscal;
+		double  yts;
+		double  waitonlock;
 
-	/*rifts: */
-	int      numrifts;
-	double*  riftinfo;
+		/*thermal parameters: */
+		double beta;
+		double meltingpoint;
+		double latentheat;
+		double  heatcapacity,thermalconductivity;
+		int    min_thermal_constraints;
+		int    min_mechanical_constraints;
+		int    stabilize_constraints;
+		double mixed_layer_capacity;
+		double thermal_exchange_velocity;
 
-	/*penalties: */
-	int      numpenalties;
-	double*  penalties;
-	
-	/*basal: */
-	double*  melting_rate;
-	double*  accumulation_rate;
-	double*  dhdt;
+		/*rifts: */
+		int      numrifts;
+		double*  riftinfo;
 
-	/*parameter output: */
-	int      numoutput;
+		/*penalties: */
+		int      numpenalties;
+		double*  penalties;
 
-	/*exterior partitioning data, to be carried around: */
-	bool*   my_elements;
-	bool*   my_vertices;
-	bool*   my_nodes;
-	bool*   my_bordervertices;
-	int*    penaltypartitioning;
+		/*basal: */
+		double*  melting_rate;
+		double*  accumulation_rate;
+		double*  dhdt;
+
+		/*parameter output: */
+		int      numoutput;
+
+		/*exterior partitioning data, to be carried around: */
+		bool*   my_elements;
+		bool*   my_vertices;
+		bool*   my_nodes;
+		bool*   my_bordervertices;
+		int*    penaltypartitioning;
+		int*    singlenodetoelementconnectivity;
+		/*}}}*/
+		/*Methods: {{{1*/
+		~IoModel();
+		IoModel();
+		IoModel(ConstDataHandle iomodel_handle);
+		void IoModelInit(void);
+		void Echo(int which_part,int rank);
+		/*}}}*/
 
 };
 
-
-	/*constructor and destructor: */
-	IoModel*	NewIoModel(void);
-	void     DeleteIoModel( IoModel** pthis);
-
-	/*Echo: */
-	void  IoModelEcho(IoModel* iomodel,int which_part,int rank);
-
-	/*Initialization with matlab workspace data, or marshall binary data: */
-	int	IoModelInit(IoModel** piomodel,ConstDataHandle iomodel_handle);
-
-	/*Creation of fem datasets: general drivers*/
-	void  CreateDataSets(DataSet** pelements,DataSet** pnodes, DataSet** pvertices, DataSet** pmaterials, DataSet** pconstraints, DataSet** ploads,Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void  CreateParameters(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
-
-	
-	/*Create of fem datasets: specialised drivers: */
-	
-	/*diagnostic horizontal*/
-	void	CreateElementsNodesAndMaterialsDiagnosticHoriz(DataSet** pelements,DataSet** pnodes, DataSet** pvertices, DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void	CreateConstraintsDiagnosticHoriz(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void  CreateLoadsDiagnosticHoriz(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
-	void  CreateParametersDiagnosticHoriz(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
-
-	/*diagnostic vertical*/
-	void	CreateElementsNodesAndMaterialsDiagnosticVert(DataSet** pelements,DataSet** pnodes, DataSet** pvertices, DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void	CreateConstraintsDiagnosticVert(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void  CreateLoadsDiagnosticVert(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
-
-	/*diagnostic hutter*/
-	void	CreateElementsNodesAndMaterialsDiagnosticHutter(DataSet** pelements,DataSet** pnodes, DataSet** pvertices, DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void	CreateConstraintsDiagnosticHutter(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void  CreateLoadsDiagnosticHutter(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
-
-	/*diagnostic stokes*/
-	void	CreateElementsNodesAndMaterialsDiagnosticStokes(DataSet** pelements,DataSet** pnodes, DataSet** pvertices, DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void	CreateConstraintsDiagnosticStokes(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void  CreateLoadsDiagnosticStokes(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
-
-	/*slope compute*/
-	void	CreateElementsNodesAndMaterialsSlopeCompute(DataSet** pelements,DataSet** pnodes, DataSet** pvertices, DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void	CreateConstraintsSlopeCompute(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void  CreateLoadsSlopeCompute(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
-
-	/*control:*/
-	void  CreateParametersControl(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
-
-	/*thermal:*/
-	void	CreateElementsNodesAndMaterialsThermal(DataSet** pelements,DataSet** pnodes, DataSet** pvertices, DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void	CreateConstraintsThermal(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void  CreateLoadsThermal(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
-	void  CreateParametersThermal(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
-
-	/*melting:*/
-	void	CreateElementsNodesAndMaterialsMelting(DataSet** pelements,DataSet** pnodes, DataSet** pvertices, DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void	CreateConstraintsMelting(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void  CreateLoadsMelting(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
-	void  CreateParametersMelting(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
-
-	/*prognostic:*/
-	void	CreateElementsNodesAndMaterialsPrognostic(DataSet** pelements,DataSet** pnodes, DataSet** pvertices, DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void	CreateConstraintsPrognostic(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void  CreateLoadsPrognostic(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
-	void  CreateParametersPrognostic(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
-
-	/*prognostic2:*/
-	void	CreateElementsNodesAndMaterialsPrognostic2(DataSet** pelements,DataSet** pnodes, DataSet** pvertices, DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void	CreateConstraintsPrognostic2(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void  CreateLoadsPrognostic2(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
-	void  CreateParametersPrognostic2(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
-
-	/*balancedthickness:*/
-	void	CreateElementsNodesAndMaterialsBalancedthickness(DataSet** pelements,DataSet** pnodes, DataSet** pvertices, DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void	CreateConstraintsBalancedthickness(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void  CreateLoadsBalancedthickness(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
-	void  CreateParametersBalancedthickness(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
-
-	/*balancedthickness2:*/
-	void	CreateElementsNodesAndMaterialsBalancedthickness2(DataSet** pelements,DataSet** pnodes, DataSet** pvertices, DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void	CreateConstraintsBalancedthickness2(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void  CreateLoadsBalancedthickness2(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
-	void  CreateParametersBalancedthickness2(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
-
-	/*balancedvelocities:*/
-	void	CreateElementsNodesAndMaterialsBalancedvelocities(DataSet** pelements,DataSet** pnodes, DataSet** pvertices, DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void	CreateConstraintsBalancedvelocities(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
-	void  CreateLoadsBalancedvelocities(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
-	void  CreateParametersBalancedvelocities(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
-
-	/*qmu: */
-	void CreateParametersQmu(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
-
-	
-	/*partitioning: */
-	void  Partitioning(bool** pmy_elements, bool** pmy_vertices, bool** pmy_nodes, bool** pmy_bordervertices, IoModel* iomodel, ConstDataHandle iomodel_handle);
-
 #endif  /* _IOMODEL_H */
Index: /issm/trunk/src/c/ModelProcessorx/Melting/CreateConstraintsMelting.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Melting/CreateConstraintsMelting.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Melting/CreateConstraintsMelting.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../objects/objects.h"
 #include "../../shared/shared.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateConstraintsMelting(DataSet** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Melting/CreateElementsNodesAndMaterialsMelting.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Melting/CreateElementsNodesAndMaterialsMelting.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Melting/CreateElementsNodesAndMaterialsMelting.cpp	(revision 3633)
@@ -10,5 +10,5 @@
 #include "../../shared/shared.h"
 #include "../../MeshPartitionx/MeshPartitionx.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateElementsNodesAndMaterialsMelting(DataSet** pelements,DataSet** pnodes, DataSet** pvertices,DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Melting/CreateLoadsMelting.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Melting/CreateLoadsMelting.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Melting/CreateLoadsMelting.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../shared/shared.h"
 #include "../../include/macros.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateLoadsMelting(DataSet** ploads, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Melting/CreateParametersMelting.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Melting/CreateParametersMelting.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Melting/CreateParametersMelting.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../objects/objects.h"
 #include "../../shared/shared.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void CreateParametersMelting(DataSet** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/ModelProcessorx.h
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/ModelProcessorx.h	(revision 3633)
+++ /issm/trunk/src/c/ModelProcessorx/ModelProcessorx.h	(revision 3633)
@@ -0,0 +1,88 @@
+/* \file ModelProcessorx.h
+ * \brief  Header file for model processor
+ */
+
+#ifndef _MODEL_PROCESSORX_H_
+#define _MODEL_PROCESSORX_H_
+
+#include "./ModelProcessorx.h"
+
+#define RIFTINFOSIZE 11
+
+/*Creation of fem datasets: general drivers*/
+void  CreateDataSets(DataSet** pelements,DataSet** pnodes, DataSet** pvertices, DataSet** pmaterials, DataSet** pconstraints, DataSet** ploads,Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
+	
+void  CreateParameters(DataSet** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
+
+
+/*Create of fem datasets: specialised drivers: */
+
+/*diagnostic horizontal*/
+void	CreateElementsNodesAndMaterialsDiagnosticHoriz(DataSet** pelements,DataSet** pnodes, DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle);
+void	CreateConstraintsDiagnosticHoriz(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
+void  CreateLoadsDiagnosticHoriz(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
+void  CreateParametersDiagnosticHoriz(DataSet** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
+
+/*diagnostic vertical*/
+void	CreateElementsNodesAndMaterialsDiagnosticVert(DataSet** pelements,DataSet** pnodes, DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle);
+void	CreateConstraintsDiagnosticVert(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
+void  CreateLoadsDiagnosticVert(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
+
+/*diagnostic hutter*/
+void	CreateElementsNodesAndMaterialsDiagnosticHutter(DataSet** pelements,DataSet** pnodes, DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle);
+void	CreateConstraintsDiagnosticHutter(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
+void  CreateLoadsDiagnosticHutter(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
+
+/*diagnostic stokes*/
+void	CreateElementsNodesAndMaterialsDiagnosticStokes(DataSet** pelements,DataSet** pnodes, DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle);
+void	CreateConstraintsDiagnosticStokes(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
+void  CreateLoadsDiagnosticStokes(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
+
+/*slope compute*/
+void	CreateElementsNodesAndMaterialsSlopeCompute(DataSet** pelements,DataSet** pnodes, DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle);
+void	CreateConstraintsSlopeCompute(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
+void  CreateLoadsSlopeCompute(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
+
+/*control:*/
+void  CreateParametersControl(DataSet** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
+
+/*thermal:*/
+void	CreateElementsNodesAndMaterialsThermal(DataSet** pelements,DataSet** pnodes, DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle);
+void	CreateConstraintsThermal(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
+void  CreateLoadsThermal(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
+void  CreateParametersThermal(DataSet** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
+
+/*melting:*/
+void	CreateElementsNodesAndMaterialsMelting(DataSet** pelements,DataSet** pnodes, DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle);
+void	CreateConstraintsMelting(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
+void  CreateLoadsMelting(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
+void  CreateParametersMelting(DataSet** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
+
+/*prognostic:*/
+void	CreateElementsNodesAndMaterialsPrognostic(DataSet** pelements,DataSet** pnodes, DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle);
+void	CreateConstraintsPrognostic(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
+void  CreateLoadsPrognostic(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
+void  CreateParametersPrognostic(DataSet** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
+
+/*prognostic2:*/
+void	CreateElementsNodesAndMaterialsPrognostic2(DataSet** pelements,DataSet** pnodes, DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle);
+void	CreateConstraintsPrognostic2(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
+void  CreateLoadsPrognostic2(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
+void  CreateParametersPrognostic2(DataSet** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
+
+/*balancedthickness:*/
+void	CreateElementsNodesAndMaterialsBalancedthickness(DataSet** pelements,DataSet** pnodes, DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle);
+void	CreateConstraintsBalancedthickness(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
+void  CreateLoadsBalancedthickness(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
+void  CreateParametersBalancedthickness(DataSet** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
+
+/*balancedvelocities:*/
+void	CreateElementsNodesAndMaterialsBalancedvelocities(DataSet** pelements,DataSet** pnodes, DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle);
+void	CreateConstraintsBalancedvelocities(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle);
+void  CreateLoadsBalancedvelocities(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);
+void  CreateParametersBalancedvelocities(DataSet** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
+
+/*qmu: */
+void CreateParametersQmu(DataSet** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle);
+
+#endif
Index: /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateConstraintsPrognostic.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateConstraintsPrognostic.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateConstraintsPrognostic.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../objects/objects.h"
 #include "../../shared/shared.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateConstraintsPrognostic(DataSet** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateElementsNodesAndMaterialsPrognostic.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateElementsNodesAndMaterialsPrognostic.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateElementsNodesAndMaterialsPrognostic.cpp	(revision 3633)
@@ -10,5 +10,5 @@
 #include "../../MeshPartitionx/MeshPartitionx.h"
 #include "../../include/typedefs.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateElementsNodesAndMaterialsPrognostic(DataSet** pelements,DataSet** pnodes, DataSet** pvertices,DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateLoadsPrognostic.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateLoadsPrognostic.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateLoadsPrognostic.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../shared/shared.h"
 #include "../../include/macros.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateLoadsPrognostic(DataSet** ploads, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateParametersPrognostic.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateParametersPrognostic.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateParametersPrognostic.cpp	(revision 3633)
@@ -9,5 +9,5 @@
 #include "../../objects/objects.h"
 #include "../../shared/shared.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void CreateParametersPrognostic(DataSet** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateConstraintsPrognostic2.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateConstraintsPrognostic2.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateConstraintsPrognostic2.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../objects/objects.h"
 #include "../../shared/shared.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateConstraintsPrognostic2(DataSet** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateElementsNodesAndMaterialsPrognostic2.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateElementsNodesAndMaterialsPrognostic2.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateElementsNodesAndMaterialsPrognostic2.cpp	(revision 3633)
@@ -11,5 +11,5 @@
 #include "../../include/typedefs.h"
 #include "../../MeshPartitionx/MeshPartitionx.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateElementsNodesAndMaterialsPrognostic2(DataSet** pelements,DataSet** pnodes, DataSet** pvertices,DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateLoadsPrognostic2.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateLoadsPrognostic2.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateLoadsPrognostic2.cpp	(revision 3633)
@@ -9,5 +9,5 @@
 #include "../../include/macros.h"
 #include "../../include/typedefs.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateLoadsPrognostic2(DataSet** ploads, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateParametersPrognostic2.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateParametersPrognostic2.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateParametersPrognostic2.cpp	(revision 3633)
@@ -9,5 +9,5 @@
 #include "../../objects/objects.h"
 #include "../../shared/shared.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void CreateParametersPrognostic2(DataSet** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Qmu/CreateParametersQmu.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Qmu/CreateParametersQmu.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Qmu/CreateParametersQmu.cpp	(revision 3633)
@@ -10,5 +10,5 @@
 #include "../../include/macros.h"
 #include "../../MeshPartitionx/MeshPartitionx.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void CreateParametersQmu(DataSet** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateConstraintsSlopeCompute.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateConstraintsSlopeCompute.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateConstraintsSlopeCompute.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../objects/objects.h"
 #include "../../shared/shared.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateConstraintsSlopeCompute(DataSet** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateElementsNodesAndMaterialsSlopeCompute.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateElementsNodesAndMaterialsSlopeCompute.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateElementsNodesAndMaterialsSlopeCompute.cpp	(revision 3633)
@@ -10,5 +10,5 @@
 #include "../../include/typedefs.h"
 #include "../../MeshPartitionx/MeshPartitionx.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateElementsNodesAndMaterialsSlopeCompute(DataSet** pelements,DataSet** pnodes, DataSet** pvertices,DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateLoadsSlopeCompute.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateLoadsSlopeCompute.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateLoadsSlopeCompute.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../shared/shared.h"
 #include "../../include/macros.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateLoadsSlopeCompute(DataSet** ploads, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Thermal/CreateConstraintsThermal.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Thermal/CreateConstraintsThermal.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Thermal/CreateConstraintsThermal.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../objects/objects.h"
 #include "../../shared/shared.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateConstraintsThermal(DataSet** pconstraints, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Thermal/CreateElementsNodesAndMaterialsThermal.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Thermal/CreateElementsNodesAndMaterialsThermal.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Thermal/CreateElementsNodesAndMaterialsThermal.cpp	(revision 3633)
@@ -10,5 +10,5 @@
 #include "../../shared/shared.h"
 #include "../../MeshPartitionx/MeshPartitionx.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateElementsNodesAndMaterialsThermal(DataSet** pelements,DataSet** pnodes, DataSet** pvertices,DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Thermal/CreateLoadsThermal.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Thermal/CreateLoadsThermal.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Thermal/CreateLoadsThermal.cpp	(revision 3633)
@@ -8,5 +8,5 @@
 #include "../../shared/shared.h"
 #include "../../include/macros.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void	CreateLoadsThermal(DataSet** ploads, IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/Thermal/CreateParametersThermal.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Thermal/CreateParametersThermal.cpp	(revision 3632)
+++ /issm/trunk/src/c/ModelProcessorx/Thermal/CreateParametersThermal.cpp	(revision 3633)
@@ -9,5 +9,5 @@
 #include "../../shared/shared.h"
 #include "../../include/macros.h"
-#include "../IoModel.h"
+#include "../ModelProcessorx.h"
 
 void CreateParametersThermal(DataSet** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/issm.h
===================================================================
--- /issm/trunk/src/c/issm.h	(revision 3632)
+++ /issm/trunk/src/c/issm.h	(revision 3633)
@@ -19,5 +19,5 @@
 
 /*Modules: */
-#include "./ModelProcessorx/IoModel.h"
+#include "./ModelProcessorx/ModelProcessorx.h"
 #include "./Dofx/Dofx.h"
 #include "./Dux/Dux.h"
