Index: /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
===================================================================
--- /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 9724)
+++ /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 9725)
@@ -149,4 +149,10 @@
 	MeshAverageVertexConnectivityEnum,
 	MeshDimensionEnum,
+	MeshNumberofelementsEnum,
+	MeshNumberofverticesEnum,
+	MeshNumberofelements2dEnum,
+	MeshNumberofedgesEnum,
+	MeshNumberoflayersEnum,
+	MeshNumberofvertices2dEnum,
 	/*}}}*/
 	/*Datasets {{{1*/
@@ -184,5 +190,5 @@
 	//transient
 	TransientSolutionEnum,
-	GroundinglineMigration2DSolutionEnum,
+	GroundinglineMigration2dSolutionEnum,
 	//slope
 	BedSlopeSolutionEnum,
@@ -412,6 +418,5 @@
 	OldGradientEnum,
 	ControlSteadyEnum,
-	NumberOfElementsEnum,
-	NumberOfVerticesEnum,
+
 	OutputFilePointerEnum,
 	QmuErrNameEnum,
@@ -463,19 +468,15 @@
 	TransientInputEnum,
 	/*Temporary*/
-	NumberOfElements2DEnum,
 	YEnum,
-	NumberOfNodes2DEnum,
 	ZEnum,
 	UpperelementsEnum,
 	EdgesEnum,
-	Elements2DEnum,
+	Elements2dEnum,
 	XEnum,
 	ElementconnectivityEnum,
-	NumlayersEnum,
 	LowerelementsEnum,
 	OutputfilenameEnum,
 	WaterfractionEnum,
 	WatercolumnEnum,
-	NumberOfResponsesEnum,
 	BasalFrictionEnum,
 	ViscousHeatingEnum,
@@ -484,5 +485,4 @@
 	HydrologyWaterVyEnum,
 	SpcDynamicEnum,
-	NumberOfEdgesEnum,
 	MaximumNumberOfEnums
 };
Index: /issm/trunk/src/c/modules/ComputeBasalStressx/ComputeBasalStressx.cpp
===================================================================
--- /issm/trunk/src/c/modules/ComputeBasalStressx/ComputeBasalStressx.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ComputeBasalStressx/ComputeBasalStressx.cpp	(revision 9725)
@@ -22,5 +22,5 @@
 
 	/*Recover numberofelements: */
-	parameters->FindParam(&numberofelements,NumberOfElementsEnum);
+	parameters->FindParam(&numberofelements,MeshNumberofelementsEnum);
 
 	/*Allocate sigma on numberofelements: */
Index: /issm/trunk/src/c/modules/ComputeStrainRatex/ComputeStrainRatex.cpp
===================================================================
--- /issm/trunk/src/c/modules/ComputeStrainRatex/ComputeStrainRatex.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ComputeStrainRatex/ComputeStrainRatex.cpp	(revision 9725)
@@ -22,5 +22,5 @@
 
 	/*Recover numberofelements: */
-	parameters->FindParam(&numberofelements,NumberOfElementsEnum);
+	parameters->FindParam(&numberofelements,MeshNumberofelementsEnum);
 
 	/*Allocate eps on numberofelements (only 1 dof): */
Index: /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp
===================================================================
--- /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 9725)
@@ -153,4 +153,10 @@
 		case MeshAverageVertexConnectivityEnum : return "MeshAverageVertexConnectivity";
 		case MeshDimensionEnum : return "MeshDimension";
+		case MeshNumberofelementsEnum : return "MeshNumberofelements";
+		case MeshNumberofverticesEnum : return "MeshNumberofvertices";
+		case MeshNumberofelements2dEnum : return "MeshNumberofelements2d";
+		case MeshNumberofedgesEnum : return "MeshNumberofedges";
+		case MeshNumberoflayersEnum : return "MeshNumberoflayers";
+		case MeshNumberofvertices2dEnum : return "MeshNumberofvertices2d";
 		case ConstraintsEnum : return "Constraints";
 		case ElementsEnum : return "Elements";
@@ -177,5 +183,5 @@
 		case HydrologyAnalysisEnum : return "HydrologyAnalysis";
 		case TransientSolutionEnum : return "TransientSolution";
-		case GroundinglineMigration2DSolutionEnum : return "GroundinglineMigration2DSolution";
+		case GroundinglineMigration2dSolutionEnum : return "GroundinglineMigration2dSolution";
 		case BedSlopeSolutionEnum : return "BedSlopeSolution";
 		case BedSlopeAnalysisEnum : return "BedSlopeAnalysis";
@@ -364,6 +370,4 @@
 		case OldGradientEnum : return "OldGradient";
 		case ControlSteadyEnum : return "ControlSteady";
-		case NumberOfElementsEnum : return "NumberOfElements";
-		case NumberOfVerticesEnum : return "NumberOfVertices";
 		case OutputFilePointerEnum : return "OutputFilePointer";
 		case QmuErrNameEnum : return "QmuErrName";
@@ -407,19 +411,15 @@
 		case DragCoefficientAbsGradientEnum : return "DragCoefficientAbsGradient";
 		case TransientInputEnum : return "TransientInput";
-		case NumberOfElements2DEnum : return "NumberOfElements2D";
 		case YEnum : return "Y";
-		case NumberOfNodes2DEnum : return "NumberOfNodes2D";
 		case ZEnum : return "Z";
 		case UpperelementsEnum : return "Upperelements";
 		case EdgesEnum : return "Edges";
-		case Elements2DEnum : return "Elements2D";
+		case Elements2dEnum : return "Elements2d";
 		case XEnum : return "X";
 		case ElementconnectivityEnum : return "Elementconnectivity";
-		case NumlayersEnum : return "Numlayers";
 		case LowerelementsEnum : return "Lowerelements";
 		case OutputfilenameEnum : return "Outputfilename";
 		case WaterfractionEnum : return "Waterfraction";
 		case WatercolumnEnum : return "Watercolumn";
-		case NumberOfResponsesEnum : return "NumberOfResponses";
 		case BasalFrictionEnum : return "BasalFriction";
 		case ViscousHeatingEnum : return "ViscousHeating";
@@ -428,5 +428,4 @@
 		case HydrologyWaterVyEnum : return "HydrologyWaterVy";
 		case SpcDynamicEnum : return "SpcDynamic";
-		case NumberOfEdgesEnum : return "NumberOfEdges";
 		default : return "unknown";
 
Index: /issm/trunk/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp
===================================================================
--- /issm/trunk/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp	(revision 9725)
@@ -33,5 +33,5 @@
 
 	/*Fetch parameters: */
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 
 	/*First of, find the record for the enum, and get code  of data type: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateLoadsBalancethickness.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateLoadsBalancethickness.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateLoadsBalancethickness.cpp	(revision 9725)
@@ -21,5 +21,5 @@
 	/*Fetch parameters: */
 	iomodel->Constant(&stabilization,BalancethicknessStabilizationEnum);
-	iomodel->Constant(&numberofedges,NumberOfEdgesEnum);
+	iomodel->Constant(&numberofedges,MeshNumberofedgesEnum);
 
 	/*Output*/
Index: /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateNodesBalancethickness.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateNodesBalancethickness.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateNodesBalancethickness.cpp	(revision 9725)
@@ -31,6 +31,6 @@
 	/*Fetch parameters: */
 	iomodel->Constant(&dim,MeshDimensionEnum);
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 	iomodel->Constant(&stabilization,BalancethicknessStabilizationEnum);
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/UpdateElementsBalancethickness.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/UpdateElementsBalancethickness.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/UpdateElementsBalancethickness.cpp	(revision 9725)
@@ -21,5 +21,5 @@
 	/*Fetch data needed: */
 	iomodel->Constant(&dim,MeshDimensionEnum);
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
 	iomodel->FetchData(1,ElementsEnum);
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/BedSlope/CreateNodesBedSlope.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/BedSlope/CreateNodesBedSlope.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/BedSlope/CreateNodesBedSlope.cpp	(revision 9725)
@@ -24,5 +24,5 @@
 
 	/*Fetch parameters: */
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 
 	/*Recover pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/BedSlope/UpdateElementsBedSlope.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/BedSlope/UpdateElementsBedSlope.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/BedSlope/UpdateElementsBedSlope.cpp	(revision 9725)
@@ -21,5 +21,5 @@
 	/*Fetch data needed: */
 	iomodel->Constant(&dim,MeshDimensionEnum);
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
 	iomodel->FetchData(1,ElementsEnum);
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp	(revision 9725)
@@ -27,5 +27,5 @@
 	
 	/*Fetch parameters: */
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
 	iomodel->Constant(&control_analysis,InversionIscontrolEnum);
 	iomodel->Constant(&num_control_type,InversionNumControlParametersEnum);
Index: /issm/trunk/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp	(revision 9725)
@@ -29,6 +29,6 @@
 	/*Fetch parameters: */
 	iomodel->Constant(&dim,MeshDimensionEnum);
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 	iomodel->Constant(&control_analysis,InversionIscontrolEnum);
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/CreateNumberNodeToElementConnectivity.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/CreateNumberNodeToElementConnectivity.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/CreateNumberNodeToElementConnectivity.cpp	(revision 9725)
@@ -30,6 +30,6 @@
 	/*Fetch parameters: */
 	iomodel->Constant(&dim,MeshDimensionEnum);
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 	elements=iomodel->Data(ElementsEnum);
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 9725)
@@ -60,5 +60,5 @@
 	parameters->AddObject(iomodel->CopyConstantObject(DiagnosticViscosityOvershootEnum));
 	parameters->AddObject(iomodel->CopyConstantObject(SettingsWaitonlockEnum));
-	parameters->AddObject(iomodel->CopyConstantObject(NumberOfElementsEnum));
+	parameters->AddObject(iomodel->CopyConstantObject(MeshNumberofelementsEnum));
 	parameters->AddObject(iomodel->CopyConstantObject(SettingsIoGatherEnum));
 	parameters->AddObject(iomodel->CopyConstantObject(GroundinglineMigrationEnum));
Index: /issm/trunk/src/c/modules/ModelProcessorx/CreateSingleNodeToElementConnectivity.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/CreateSingleNodeToElementConnectivity.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/CreateSingleNodeToElementConnectivity.cpp	(revision 9725)
@@ -33,6 +33,6 @@
 	/*Fetch parameters: */
 	iomodel->Constant(&dim,MeshDimensionEnum);
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 	elements=iomodel->Data(ElementsEnum);
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp	(revision 9725)
@@ -41,5 +41,5 @@
 	iomodel->Constant(&dim,MeshDimensionEnum);
 	iomodel->Constant(&yts,ConstantsYtsEnum);
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 	iomodel->Constant(&g,ConstantsGEnum);
 	iomodel->Constant(&rho_ice,MaterialsRhoIceEnum);
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp	(revision 9725)
@@ -41,5 +41,5 @@
 	/*Fetch parameters: */
 	iomodel->Constant(&dim,MeshDimensionEnum);
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 	iomodel->Constant(&isstokes,FlowequationIsstokesEnum);
 	iomodel->Constant(&ismacayealpattyn,FlowequationIsmacayealpattynEnum);
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp	(revision 9725)
@@ -25,5 +25,5 @@
 
 	/*Fetch parameters: */
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 	iomodel->Constant(&isstokes,FlowequationIsstokesEnum);
 	iomodel->Constant(&ismacayealpattyn,FlowequationIsmacayealpattynEnum);
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp	(revision 9725)
@@ -27,5 +27,5 @@
 	iomodel->Constant(&ismacayealpattyn,FlowequationIsmacayealpattynEnum);
 	iomodel->Constant(&dim,MeshDimensionEnum);
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
 	iomodel->Constant(&control_analysis,InversionIscontrolEnum);
 	iomodel->Constant(&dakota_analysis,QmuIsdakotaEnum);
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp	(revision 9725)
@@ -29,5 +29,5 @@
 	/*Fetch parameters: */
 	iomodel->Constant(&yts,ConstantsYtsEnum);
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 	iomodel->Constant(&ishutter,FlowequationIshutterEnum);
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp	(revision 9725)
@@ -25,5 +25,5 @@
 
 	/*Fetch parameters: */
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 	iomodel->Constant(&ishutter,FlowequationIshutterEnum);
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/UpdateElementsDiagnosticHutter.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/UpdateElementsDiagnosticHutter.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/UpdateElementsDiagnosticHutter.cpp	(revision 9725)
@@ -21,5 +21,5 @@
 	
 	/*Fetch data needed: */
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
 	iomodel->Constant(&ishutter,FlowequationIshutterEnum);
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp	(revision 9725)
@@ -26,5 +26,5 @@
 	iomodel->Constant(&dim,MeshDimensionEnum);
 	iomodel->Constant(&yts,ConstantsYtsEnum);
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 
 	/*Recover pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateNodesDiagnosticVert.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateNodesDiagnosticVert.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateNodesDiagnosticVert.cpp	(revision 9725)
@@ -26,5 +26,5 @@
 	/*Fetch parameters: */
 	iomodel->Constant(&dim,MeshDimensionEnum);
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 
 	/*Recover pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/UpdateElementsDiagnosticVert.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/UpdateElementsDiagnosticVert.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/UpdateElementsDiagnosticVert.cpp	(revision 9725)
@@ -21,5 +21,5 @@
 	/*Fetch parameters: */
 	iomodel->Constant(&dim,MeshDimensionEnum);
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
 
 	/*Now, is the model 3d? otherwise, do nothing: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/ElementsAndVerticesPartitioning.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/ElementsAndVerticesPartitioning.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/ElementsAndVerticesPartitioning.cpp	(revision 9725)
@@ -49,9 +49,9 @@
 	/*Fetch parameters: */
 	iomodel->Constant(&dim,MeshDimensionEnum);
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
-	iomodel->Constant(&numberofelements2d,NumberOfElements2DEnum);
-	iomodel->Constant(&numberofvertices2d,NumberOfNodes2DEnum);
-	iomodel->Constant(&numlayers,NumlayersEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
+	iomodel->Constant(&numberofelements2d,MeshNumberofelements2dEnum);
+	iomodel->Constant(&numberofvertices2d,MeshNumberofvertices2dEnum);
+	iomodel->Constant(&numlayers,MeshNumberoflayersEnum);
 	iomodel->Constant(&numrifts,RiftsNumriftsEnum);
 
@@ -71,5 +71,5 @@
 	else{
 		/*load elements2d: */
-		iomodel->FetchData(&elements2d,NULL,NULL,Elements2DEnum);
+		iomodel->FetchData(&elements2d,NULL,NULL,Elements2dEnum);
 	}
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/CreateConstraintsEnthalpy.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/CreateConstraintsEnthalpy.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/CreateConstraintsEnthalpy.cpp	(revision 9725)
@@ -27,5 +27,5 @@
 	/*Fetch parameters: */
 	iomodel->Constant(&dim,MeshDimensionEnum);
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 	iomodel->Constant(&heatcapacity,MaterialsHeatcapacityEnum);
 	iomodel->Constant(&referencetemperature,ConstantsReferencetemperatureEnum);
Index: /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/CreateNodesEnthalpy.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/CreateNodesEnthalpy.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/CreateNodesEnthalpy.cpp	(revision 9725)
@@ -24,5 +24,5 @@
 
 	/*Fetch parameters: */
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 	
 	/*Recover pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/UpdateElementsEnthalpy.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/UpdateElementsEnthalpy.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/UpdateElementsEnthalpy.cpp	(revision 9725)
@@ -21,5 +21,5 @@
 	/*Fetch parameters: */
 	iomodel->Constant(&dim,MeshDimensionEnum);
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
 
 	/*Now, is the model 3d? otherwise, do nothing: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/Hydrology/CreateNodesHydrology.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Hydrology/CreateNodesHydrology.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Hydrology/CreateNodesHydrology.cpp	(revision 9725)
@@ -24,5 +24,5 @@
 
 	/*Fetch parameters: */
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 	
 	/*Recover pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/Hydrology/UpdateElementsHydrology.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Hydrology/UpdateElementsHydrology.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Hydrology/UpdateElementsHydrology.cpp	(revision 9725)
@@ -19,5 +19,5 @@
 	
 	/*Fetch data needed: */
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
 	iomodel->FetchData(1,ElementsEnum);
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateLoadsMelting.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateLoadsMelting.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateLoadsMelting.cpp	(revision 9725)
@@ -23,5 +23,5 @@
 	/*Fetch parameters: */
 	iomodel->Constant(&dim,MeshDimensionEnum);
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 
 	/*if 2d: Error*/
Index: /issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateNodesMelting.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateNodesMelting.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateNodesMelting.cpp	(revision 9725)
@@ -24,5 +24,5 @@
 	
 	/*Fetch parameters: */
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 
 	/*Recover pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp	(revision 9725)
@@ -21,5 +21,5 @@
 	/*Fetch parameters: */
 	iomodel->Constant(&dim,MeshDimensionEnum);
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
 
 	/*Now, is the model 3d? otherwise, do nothing: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/NodesPartitioning.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/NodesPartitioning.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/NodesPartitioning.cpp	(revision 9725)
@@ -42,5 +42,5 @@
 
 	/*Fetch parameters: */
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 
 	my_nodes=(bool*)xmalloc(numberofvertices*sizeof(bool));
@@ -57,5 +57,5 @@
 
 	/*Fetch parameters: */
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
 
 	/*each element has it own nodes (as many as vertices) + additional nodes from neighbouring elements for each edge. This yields to a very different partition for 
Index: /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateLoadsPrognostic.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateLoadsPrognostic.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateLoadsPrognostic.cpp	(revision 9725)
@@ -28,6 +28,6 @@
 	/*Fetch parameters: */
 	iomodel->Constant(&stabilization,PrognosticStabilizationEnum);
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
-	iomodel->Constant(&numberofedges,NumberOfEdgesEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
+	iomodel->Constant(&numberofedges,MeshNumberofedgesEnum);
 
 	/*Recover pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp	(revision 9725)
@@ -31,6 +31,6 @@
 	/*Fetch parameters: */
 	iomodel->Constant(&dim,MeshDimensionEnum);
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 	iomodel->Constant(&stabilization,PrognosticStabilizationEnum);
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp	(revision 9725)
@@ -22,5 +22,5 @@
 	/*Fetch data needed: */
 	iomodel->Constant(&dim,MeshDimensionEnum);
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
 	iomodel->Constant(&stabilization,PrognosticStabilizationEnum);
 	iomodel->FetchData(1,ElementsEnum);
Index: /issm/trunk/src/c/modules/ModelProcessorx/Qmu/CreateParametersQmu.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Qmu/CreateParametersQmu.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Qmu/CreateParametersQmu.cpp	(revision 9725)
@@ -70,5 +70,5 @@
 		iomodel->Constant(&name,MiscellaneousNameEnum);
 		iomodel->Constant(&numberofresponses,QmuNumberofresponsesEnum);
-		iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
+		iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 
 		/*name of qmu input, error and output files:{{{1*/
Index: /issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/CreateNodesSurfaceSlope.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/CreateNodesSurfaceSlope.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/CreateNodesSurfaceSlope.cpp	(revision 9725)
@@ -24,5 +24,5 @@
 
 	/*Fetch parameters: */
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 
 	/*Recover pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/UpdateElementsSurfaceSlope.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/UpdateElementsSurfaceSlope.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/UpdateElementsSurfaceSlope.cpp	(revision 9725)
@@ -21,5 +21,5 @@
 	/*Fetch data needed: */
 	iomodel->Constant(&dim,MeshDimensionEnum);
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
 	iomodel->FetchData(1,ElementsEnum);
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateLoadsThermal.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateLoadsThermal.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateLoadsThermal.cpp	(revision 9725)
@@ -27,5 +27,5 @@
 	/*Fetch parameters: */
 	iomodel->Constant(&dim,MeshDimensionEnum);
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 
 	/*Create loads if they do not exist yet*/
Index: /issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp	(revision 9725)
@@ -24,5 +24,5 @@
 
 	/*Fetch parameters: */
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
 
 	/*Recover pointer: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp	(revision 9725)
@@ -22,5 +22,5 @@
 	/*Fetch parameters: */
 	iomodel->Constant(&dim,MeshDimensionEnum);
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
 	iomodel->Constant(&dakota_analysis,QmuIsdakotaEnum);
 
Index: /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp
===================================================================
--- /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 9724)
+++ /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 9725)
@@ -151,4 +151,10 @@
 	else if (strcmp(name,"MeshAverageVertexConnectivity")==0) return MeshAverageVertexConnectivityEnum;
 	else if (strcmp(name,"MeshDimension")==0) return MeshDimensionEnum;
+	else if (strcmp(name,"MeshNumberofelements")==0) return MeshNumberofelementsEnum;
+	else if (strcmp(name,"MeshNumberofvertices")==0) return MeshNumberofverticesEnum;
+	else if (strcmp(name,"MeshNumberofelements2d")==0) return MeshNumberofelements2dEnum;
+	else if (strcmp(name,"MeshNumberofedges")==0) return MeshNumberofedgesEnum;
+	else if (strcmp(name,"MeshNumberoflayers")==0) return MeshNumberoflayersEnum;
+	else if (strcmp(name,"MeshNumberofvertices2d")==0) return MeshNumberofvertices2dEnum;
 	else if (strcmp(name,"Constraints")==0) return ConstraintsEnum;
 	else if (strcmp(name,"Elements")==0) return ElementsEnum;
@@ -175,5 +181,5 @@
 	else if (strcmp(name,"HydrologyAnalysis")==0) return HydrologyAnalysisEnum;
 	else if (strcmp(name,"TransientSolution")==0) return TransientSolutionEnum;
-	else if (strcmp(name,"GroundinglineMigration2DSolution")==0) return GroundinglineMigration2DSolutionEnum;
+	else if (strcmp(name,"GroundinglineMigration2dSolution")==0) return GroundinglineMigration2dSolutionEnum;
 	else if (strcmp(name,"BedSlopeSolution")==0) return BedSlopeSolutionEnum;
 	else if (strcmp(name,"BedSlopeAnalysis")==0) return BedSlopeAnalysisEnum;
@@ -362,6 +368,4 @@
 	else if (strcmp(name,"OldGradient")==0) return OldGradientEnum;
 	else if (strcmp(name,"ControlSteady")==0) return ControlSteadyEnum;
-	else if (strcmp(name,"NumberOfElements")==0) return NumberOfElementsEnum;
-	else if (strcmp(name,"NumberOfVertices")==0) return NumberOfVerticesEnum;
 	else if (strcmp(name,"OutputFilePointer")==0) return OutputFilePointerEnum;
 	else if (strcmp(name,"QmuErrName")==0) return QmuErrNameEnum;
@@ -405,19 +409,15 @@
 	else if (strcmp(name,"DragCoefficientAbsGradient")==0) return DragCoefficientAbsGradientEnum;
 	else if (strcmp(name,"TransientInput")==0) return TransientInputEnum;
-	else if (strcmp(name,"NumberOfElements2D")==0) return NumberOfElements2DEnum;
 	else if (strcmp(name,"Y")==0) return YEnum;
-	else if (strcmp(name,"NumberOfNodes2D")==0) return NumberOfNodes2DEnum;
 	else if (strcmp(name,"Z")==0) return ZEnum;
 	else if (strcmp(name,"Upperelements")==0) return UpperelementsEnum;
 	else if (strcmp(name,"Edges")==0) return EdgesEnum;
-	else if (strcmp(name,"Elements2D")==0) return Elements2DEnum;
+	else if (strcmp(name,"Elements2d")==0) return Elements2dEnum;
 	else if (strcmp(name,"X")==0) return XEnum;
 	else if (strcmp(name,"Elementconnectivity")==0) return ElementconnectivityEnum;
-	else if (strcmp(name,"Numlayers")==0) return NumlayersEnum;
 	else if (strcmp(name,"Lowerelements")==0) return LowerelementsEnum;
 	else if (strcmp(name,"Outputfilename")==0) return OutputfilenameEnum;
 	else if (strcmp(name,"Waterfraction")==0) return WaterfractionEnum;
 	else if (strcmp(name,"Watercolumn")==0) return WatercolumnEnum;
-	else if (strcmp(name,"NumberOfResponses")==0) return NumberOfResponsesEnum;
 	else if (strcmp(name,"BasalFriction")==0) return BasalFrictionEnum;
 	else if (strcmp(name,"ViscousHeating")==0) return ViscousHeatingEnum;
@@ -426,5 +426,4 @@
 	else if (strcmp(name,"HydrologyWaterVy")==0) return HydrologyWaterVyEnum;
 	else if (strcmp(name,"SpcDynamic")==0) return SpcDynamicEnum;
-	else if (strcmp(name,"NumberOfEdges")==0) return NumberOfEdgesEnum;
 	else _error_("Enum %s not found",name);
 
Index: /issm/trunk/src/c/objects/Elements/Penta.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Penta.cpp	(revision 9724)
+++ /issm/trunk/src/c/objects/Elements/Penta.cpp	(revision 9725)
@@ -4844,6 +4844,6 @@
 
 	/*Fetch parameters: */
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
 	iomodel->Constant(&yts,ConstantsYtsEnum);
 
Index: /issm/trunk/src/c/objects/Elements/PentaHook.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/PentaHook.cpp	(revision 9724)
+++ /issm/trunk/src/c/objects/Elements/PentaHook.cpp	(revision 9725)
@@ -51,5 +51,5 @@
 	
 	/*retrieve parameters: */
-	iomodel->Constant(&matpar_id,NumberOfElementsEnum); matpar_id++;
+	iomodel->Constant(&matpar_id,MeshNumberofelementsEnum); matpar_id++;
 
 	this->numanalyses=in_numanalyses;
Index: /issm/trunk/src/c/objects/Elements/Tria.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Tria.cpp	(revision 9724)
+++ /issm/trunk/src/c/objects/Elements/Tria.cpp	(revision 9725)
@@ -3898,6 +3898,6 @@
 
 	/*Fetch parameters: */
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
 	iomodel->Constant(&yts,ConstantsYtsEnum);
 
Index: /issm/trunk/src/c/objects/Elements/TriaHook.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/TriaHook.cpp	(revision 9724)
+++ /issm/trunk/src/c/objects/Elements/TriaHook.cpp	(revision 9725)
@@ -49,5 +49,5 @@
 
 	/*retrieve parameters: */
-	iomodel->Constant(&matpar_id,NumberOfElementsEnum); matpar_id++;
+	iomodel->Constant(&matpar_id,MeshNumberofelementsEnum); matpar_id++;
 	
 	this->numanalyses=in_numanalyses;
Index: /issm/trunk/src/c/objects/IoModel.cpp
===================================================================
--- /issm/trunk/src/c/objects/IoModel.cpp	(revision 9724)
+++ /issm/trunk/src/c/objects/IoModel.cpp	(revision 9725)
@@ -828,5 +828,5 @@
 
 	/*Fetch parameters: */
-	this->constants->FindParam(&numberofelements,NumberOfElementsEnum);
+	this->constants->FindParam(&numberofelements,MeshNumberofelementsEnum);
 
 	/*First of, find the record for the enum, and get code  of data type: */
Index: /issm/trunk/src/c/objects/Loads/Icefront.cpp
===================================================================
--- /issm/trunk/src/c/objects/Loads/Icefront.cpp	(revision 9724)
+++ /issm/trunk/src/c/objects/Loads/Icefront.cpp	(revision 9725)
@@ -55,5 +55,5 @@
 	/*find parameters: */
 	iomodel->Constant(&dim,MeshDimensionEnum);
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
 
 	/*First, retrieve element index and element type: */
Index: /issm/trunk/src/c/objects/Loads/Numericalflux.cpp
===================================================================
--- /issm/trunk/src/c/objects/Loads/Numericalflux.cpp	(revision 9724)
+++ /issm/trunk/src/c/objects/Loads/Numericalflux.cpp	(revision 9725)
@@ -54,5 +54,5 @@
 
 	/*Fetch parameters: */
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
 
 	/* Get MatPar id */
Index: /issm/trunk/src/c/objects/Loads/Pengrid.cpp
===================================================================
--- /issm/trunk/src/c/objects/Loads/Pengrid.cpp	(revision 9724)
+++ /issm/trunk/src/c/objects/Loads/Pengrid.cpp	(revision 9725)
@@ -53,6 +53,6 @@
 
 	/*Fetch parameters: */
-	iomodel->Constant(&numberofvertices,NumberOfVerticesEnum);
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
+	iomodel->Constant(&numberofvertices,MeshNumberofverticesEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
 
 	/*Some checks if debugging activated*/
Index: /issm/trunk/src/c/objects/Loads/Riftfront.cpp
===================================================================
--- /issm/trunk/src/c/objects/Loads/Riftfront.cpp	(revision 9724)
+++ /issm/trunk/src/c/objects/Loads/Riftfront.cpp	(revision 9725)
@@ -56,5 +56,5 @@
 
 	/*Fetch parameters: */
-	iomodel->Constant(&numberofelements,NumberOfElementsEnum);
+	iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
 	iomodel->Constant(&penalty_lock,DiagnosticRiftPenaltyLockEnum);
 
Index: /issm/trunk/src/c/solutions/AnalysisConfiguration.cpp
===================================================================
--- /issm/trunk/src/c/solutions/AnalysisConfiguration.cpp	(revision 9724)
+++ /issm/trunk/src/c/solutions/AnalysisConfiguration.cpp	(revision 9725)
@@ -107,5 +107,5 @@
 			break;
 		
-		case GroundinglineMigration2DSolutionEnum:
+		case GroundinglineMigration2dSolutionEnum:
 			numanalyses=2;
 			analyses=(int*)xmalloc(numanalyses*sizeof(int));
Index: /issm/trunk/src/c/solutions/CorePointerFromSolutionEnum.cpp
===================================================================
--- /issm/trunk/src/c/solutions/CorePointerFromSolutionEnum.cpp	(revision 9724)
+++ /issm/trunk/src/c/solutions/CorePointerFromSolutionEnum.cpp	(revision 9725)
@@ -60,5 +60,5 @@
 			solutioncore=&transient_core;
 			break;
-		case GroundinglineMigration2DSolutionEnum:
+		case GroundinglineMigration2dSolutionEnum:
 			solutioncore=&groundinglinemigration2d_core;
 			break;
Index: /issm/trunk/src/c/solutions/groundinglinemigration2d_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/groundinglinemigration2d_core.cpp	(revision 9724)
+++ /issm/trunk/src/c/solutions/groundinglinemigration2d_core.cpp	(revision 9725)
@@ -27,5 +27,5 @@
 	GroundingLineMigrationx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters);
 
-	if(solution_type==GroundinglineMigration2DSolutionEnum){
+	if(solution_type==GroundinglineMigration2dSolutionEnum){
 		_printf_(VerboseSolution(),"%s\n","   saving results\n");
 		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,MaskElementonfloatingiceEnum);
Index: /issm/trunk/src/m/classes/autodiff.m
===================================================================
--- /issm/trunk/src/m/classes/autodiff.m	(revision 9725)
+++ /issm/trunk/src/m/classes/autodiff.m	(revision 9725)
@@ -0,0 +1,38 @@
+%AUTODIFF class definition
+%
+%   Usage:
+%      autodiff=autodiff();
+
+classdef autodiff
+	properties (SetAccess=public) 
+		analysis = modelfield('default',false,'marshall',true,'format','Boolean');
+		forward = modelfield('default',true,'marshall',true,'format','Boolean');
+		reverse = modelfield('default',false,'marshall',true,'format','Boolean');
+	end
+	methods
+		function obj = autodiff(varargin) % {{{
+			switch nargin
+				case 0
+					obj=setdefaultparameters(obj);
+				case 1
+					in=varargin{1};
+					if (isa(in,'numeric') & in==0),
+						% requesting templates do nothing
+					else
+						error('constructor not supported');
+					end 
+				otherwise
+					error('constructor not supported');
+			end
+		end % }}}
+		function obj = setdefaultparameters(obj) % {{{
+
+			%first, use the defaults provided by the properties definition above. 
+			fieldnames=fields(obj);
+			for i=1:length(fieldnames),
+				fieldname=fieldnames{i};
+				obj.(fieldname)=obj.(fieldname).default;
+			end
+		end % }}}
+	end
+end
Index: sm/trunk/src/m/classes/autofiff.m
===================================================================
--- /issm/trunk/src/m/classes/autofiff.m	(revision 9724)
+++ 	(revision )
@@ -1,38 +1,0 @@
-%AUTODIFF class definition
-%
-%   Usage:
-%      autodiff=autodiff();
-
-classdef autodiff
-	properties (SetAccess=public) 
-		analysis = modelfield('default',false,'marshall',true,'format','Boolean');
-		forward = modelfield('default',true,'marshall',true,'format','Boolean');
-		reverse = modelfield('default',false,'marshall',true,'format','Boolean');
-	end
-	methods
-		function obj = autodiff(varargin) % {{{
-			switch nargin
-				case 0
-					obj=setdefaultparameters(obj);
-				case 1
-					in=varargin{1};
-					if (isa(in,'numeric') & in==0),
-						% requesting templates do nothing
-					else
-						error('constructor not supported');
-					end 
-				otherwise
-					error('constructor not supported');
-			end
-		end % }}}
-		function obj = setdefaultparameters(obj) % {{{
-
-			%first, use the defaults provided by the properties definition above. 
-			fieldnames=fields(obj);
-			for i=1:length(fieldnames),
-				fieldname=fieldnames{i};
-				obj.(fieldname)=obj.(fieldname).default;
-			end
-		end % }}}
-	end
-end
Index: /issm/trunk/src/m/classes/mesh.m
===================================================================
--- /issm/trunk/src/m/classes/mesh.m	(revision 9724)
+++ /issm/trunk/src/m/classes/mesh.m	(revision 9725)
@@ -13,7 +13,13 @@
 		long       = modelfield('default',NaN,'marshall',false);
 		hemisphere = modelfield('default',NaN,'marshall',false);
-		segments             = modelfield('default',NaN,'marshall',false);
-		segmentmarkers       = modelfield('default',NaN,'marshall',false);
-		dimension            = modelfield('default',0,'marshall',true,'format','Integer');
+		segments            = modelfield('default',NaN,'marshall',false);
+		segmentmarkers      = modelfield('default',NaN,'marshall',false);
+		dimension           = modelfield('default',0,'marshall',true,'format','Integer');
+		numberofelements    = modelfield('default',0,'marshall',true,'format','Integer');
+		numberofvertices    = modelfield('default',0,'marshall',true,'format','Integer');
+		numberofedges       = modelfield('default',0,'marshall',true,'format','Integer');
+		numberoflayers      = modelfield('default',0,'marshall',true,'format','Integer');
+		numberofvertices2d    = modelfield('default',0,'marshall',true,'format','Integer');
+		numberofelements2d = modelfield('default',0,'marshall',true,'format','Integer');
 	end
 	methods
Index: /issm/trunk/src/m/classes/model/model.m
===================================================================
--- /issm/trunk/src/m/classes/model/model.m	(revision 9724)
+++ /issm/trunk/src/m/classes/model/model.m	(revision 9725)
@@ -39,9 +39,8 @@
 		 initialization   = modelfield('default',0,'marshall',true);
 		 geometry         = modelfield('default',0,'marshall',true);
+		 autodiff         = modelfield('default',0,'marshall',true);
 		 mesh             = modelfield('default',0,'marshall',true);
 
 		 %FIXME: all other fields should belong to other classes
-		 numberofelements    = modelfield('default',0,'marshall',true,'format','Integer');
-		 numberofnodes       = modelfield('default',0,'marshall',true,'format','Integer');
 		 elements            = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',2);
 		 x                   = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
@@ -51,7 +50,4 @@
 		 elementconnectivity = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);
 		 edges               = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);
-
-		 numberofelements2d = modelfield('default',0,'marshall',true,'format','Integer');
-		 numberofnodes2d    = modelfield('default',0,'marshall',true,'format','Integer');
 		 elements2d         = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);
 		 x2d                = modelfield('default',NaN,'marshall',false);
@@ -63,5 +59,4 @@
 		 lowernodes           = modelfield('default',NaN,'marshall',false);
 
-		 numlayers         = modelfield('default',0,'marshall',true,'format','Integer');
 		 elementonbed      = modelfield('default',NaN,'marshall',true,'format','BooleanMat','mattype',2);
 		 elementonsurface  = modelfield('default',NaN,'marshall',true,'format','BooleanMat','mattype',2);
@@ -206,6 +201,6 @@
 			 if isfield(structmd,'accumulation'), md.surfaceforcings.mass_balance=structmd.accumulation; end
 			 if isfield(structmd,'accumulation_rate'), md.surfaceforcings.mass_balance=structmd.accumulation_rate; end
-			 if isfield(structmd,'numberofgrids'), md.numberofnodes=structmd.numberofgrids; end
-			 if isfield(structmd,'numberofgrids2d'), md.numberofnodes2d=structmd.numberofgrids2d; end
+			 if isfield(structmd,'numberofgrids'), md.mesh.numberofverticess=structmd.numberofgrids; end
+			 if isfield(structmd,'numberofgrids2d'), md.mesh.numberofverticess2d=structmd.numberofgrids2d; end
 			 if isfield(structmd,'uppergrids'), md.uppernodes=structmd.uppergrids; end
 			 if isfield(structmd,'lowergrids'), md.lowernodes=structmd.lowergrids; end
@@ -313,8 +308,14 @@
 			 if isfield(structmd,'hemisphere'), md.mesh.hemisphere=structmd.hemisphere; end
 			 if isfield(structmd,'lat'), md.mesh.lat=structmd.lat; end
-			 if isfield(structmd,'lon'), md.mesh.lon=structmd.lon; end
+			 if isfield(structmd,'long'), md.mesh.long=structmd.long; end
 			 if isfield(structmd,'segments'), md.mesh.segments=structmd.segments; end
 			 if isfield(structmd,'segmentmarkers'), md.mesh.segmentmarkers=structmd.segmentmarkers; end
-			 if isfield(structmd,'dimension'), md.mesh.dimension=structmd.dimension; end
+			 if isfield(structmd,'dim'), md.mesh.dimension=structmd.dim; end
+			 if isfield(structmd,'numlayers'), md.mesh.numberoflayers=structmd.numlayers; end
+			 if isfield(structmd,'numberofelements'), md.mesh.numberofelements=structmd.numberofelements; end
+			 if isfield(structmd,'numberofvertices'), md.mesh.numberofvertices=structmd.numberofvertices; end
+			 if isfield(structmd,'numberofedges'), md.mesh.numberofedges=structmd.numberofedges; end
+			 if isfield(structmd,'numberofelements2d'), md.mesh.numberofelements2d=structmd.numberofelements2d; end
+			 if isfield(structmd,'numberofnodes2d'), md.mesh.numberofvertices2d=structmd.numberofnodes2d; end
 
 			 %Field changes
@@ -327,7 +328,7 @@
 			 end
 			 if isfield(structmd,'spcvelocity'), 
-				 md.spcvx=NaN*ones(md.numberofnodes,1);
-				 md.spcvy=NaN*ones(md.numberofnodes,1);
-				 md.spcvz=NaN*ones(md.numberofnodes,1);
+				 md.spcvx=NaN*ones(md.mesh.numberofvertices,1);
+				 md.spcvy=NaN*ones(md.mesh.numberofvertices,1);
+				 md.spcvz=NaN*ones(md.mesh.numberofvertices,1);
 				 pos=find(structmd.spcvelocity(:,1)); md.spcvx(pos)=structmd.spcvelocity(pos,4); 
 				 pos=find(structmd.spcvelocity(:,2)); md.spcvy(pos)=structmd.spcvelocity(pos,5); 
@@ -386,13 +387,13 @@
 			 %New fields
 			 if ~isfield(structmd,'upperelements');
-				 md.upperelements=transpose(1:md.numberofelements)+md.numberofelements2d;
-				 md.upperelements(end-md.numberofelements2d+1:end)=NaN;
+				 md.upperelements=transpose(1:md.mesh.numberofelements)+md.mesh.numberofelements2d;
+				 md.upperelements(end-md.mesh.numberofelements2d+1:end)=NaN;
 			 end
 			 if ~isfield(structmd,'lowerelements');
-				 md.lowerelements=transpose(1:md.numberofelements)-md.numberofelements2d;
-				 md.lowerelements(1:md.numberofelements2d)=NaN;
+				 md.lowerelements=transpose(1:md.mesh.numberofelements)-md.mesh.numberofelements2d;
+				 md.lowerelements(1:md.mesh.numberofelements2d)=NaN;
 			 end
 			 if ~isfield(structmd,'diagnostic_ref');
-				 md.diagnostic_ref=NaN*ones(md.numberofnodes2d,6);
+				 md.diagnostic_ref=NaN*ones(md.mesh.numberofvertices2d,6);
 			 end
 		 end% }}}
@@ -439,4 +440,5 @@
 			 md.geometry         = geometry;
 			 md.verbose          = verbose('solution',true,'qmu',true,'control',true);
+			 md.autodiff         = autodiff;
 			 md.mesh             = mesh;
 		 end
Index: sm/trunk/src/m/enum/Elements2DEnum.m
===================================================================
--- /issm/trunk/src/m/enum/Elements2DEnum.m	(revision 9724)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=Elements2DEnum()
-%ELEMENTS2DENUM - Enum of Elements2D
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=Elements2DEnum()
-
-macro=StringToEnum('Elements2D');
Index: /issm/trunk/src/m/enum/Elements2dEnum.m
===================================================================
--- /issm/trunk/src/m/enum/Elements2dEnum.m	(revision 9725)
+++ /issm/trunk/src/m/enum/Elements2dEnum.m	(revision 9725)
@@ -0,0 +1,11 @@
+function macro=Elements2dEnum()
+%ELEMENTS2DENUM - Enum of Elements2d
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=Elements2dEnum()
+
+macro=StringToEnum('Elements2d');
Index: sm/trunk/src/m/enum/GroundinglineMigration2DSolutionEnum.m
===================================================================
--- /issm/trunk/src/m/enum/GroundinglineMigration2DSolutionEnum.m	(revision 9724)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=GroundinglineMigration2DSolutionEnum()
-%GROUNDINGLINEMIGRATION2DSOLUTIONENUM - Enum of GroundinglineMigration2DSolution
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=GroundinglineMigration2DSolutionEnum()
-
-macro=StringToEnum('GroundinglineMigration2DSolution');
Index: /issm/trunk/src/m/enum/GroundinglineMigration2dSolutionEnum.m
===================================================================
--- /issm/trunk/src/m/enum/GroundinglineMigration2dSolutionEnum.m	(revision 9725)
+++ /issm/trunk/src/m/enum/GroundinglineMigration2dSolutionEnum.m	(revision 9725)
@@ -0,0 +1,11 @@
+function macro=GroundinglineMigration2dSolutionEnum()
+%GROUNDINGLINEMIGRATION2DSOLUTIONENUM - Enum of GroundinglineMigration2dSolution
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=GroundinglineMigration2dSolutionEnum()
+
+macro=StringToEnum('GroundinglineMigration2dSolution');
Index: /issm/trunk/src/m/enum/MeshNumberofedgesEnum.m
===================================================================
--- /issm/trunk/src/m/enum/MeshNumberofedgesEnum.m	(revision 9725)
+++ /issm/trunk/src/m/enum/MeshNumberofedgesEnum.m	(revision 9725)
@@ -0,0 +1,11 @@
+function macro=MeshNumberofedgesEnum()
+%MESHNUMBEROFEDGESENUM - Enum of MeshNumberofedges
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=MeshNumberofedgesEnum()
+
+macro=StringToEnum('MeshNumberofedges');
Index: /issm/trunk/src/m/enum/MeshNumberofelements2dEnum.m
===================================================================
--- /issm/trunk/src/m/enum/MeshNumberofelements2dEnum.m	(revision 9725)
+++ /issm/trunk/src/m/enum/MeshNumberofelements2dEnum.m	(revision 9725)
@@ -0,0 +1,11 @@
+function macro=MeshNumberofelements2dEnum()
+%MESHNUMBEROFELEMENTS2DENUM - Enum of MeshNumberofelements2d
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=MeshNumberofelements2dEnum()
+
+macro=StringToEnum('MeshNumberofelements2d');
Index: /issm/trunk/src/m/enum/MeshNumberofelementsEnum.m
===================================================================
--- /issm/trunk/src/m/enum/MeshNumberofelementsEnum.m	(revision 9725)
+++ /issm/trunk/src/m/enum/MeshNumberofelementsEnum.m	(revision 9725)
@@ -0,0 +1,11 @@
+function macro=MeshNumberofelementsEnum()
+%MESHNUMBEROFELEMENTSENUM - Enum of MeshNumberofelements
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=MeshNumberofelementsEnum()
+
+macro=StringToEnum('MeshNumberofelements');
Index: /issm/trunk/src/m/enum/MeshNumberoflayersEnum.m
===================================================================
--- /issm/trunk/src/m/enum/MeshNumberoflayersEnum.m	(revision 9725)
+++ /issm/trunk/src/m/enum/MeshNumberoflayersEnum.m	(revision 9725)
@@ -0,0 +1,11 @@
+function macro=MeshNumberoflayersEnum()
+%MESHNUMBEROFLAYERSENUM - Enum of MeshNumberoflayers
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=MeshNumberoflayersEnum()
+
+macro=StringToEnum('MeshNumberoflayers');
Index: /issm/trunk/src/m/enum/MeshNumberofvertices2dEnum.m
===================================================================
--- /issm/trunk/src/m/enum/MeshNumberofvertices2dEnum.m	(revision 9725)
+++ /issm/trunk/src/m/enum/MeshNumberofvertices2dEnum.m	(revision 9725)
@@ -0,0 +1,11 @@
+function macro=MeshNumberofvertices2dEnum()
+%MESHNUMBEROFVERTICES2DENUM - Enum of MeshNumberofvertices2d
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=MeshNumberofvertices2dEnum()
+
+macro=StringToEnum('MeshNumberofvertices2d');
Index: /issm/trunk/src/m/enum/MeshNumberofverticesEnum.m
===================================================================
--- /issm/trunk/src/m/enum/MeshNumberofverticesEnum.m	(revision 9725)
+++ /issm/trunk/src/m/enum/MeshNumberofverticesEnum.m	(revision 9725)
@@ -0,0 +1,11 @@
+function macro=MeshNumberofverticesEnum()
+%MESHNUMBEROFVERTICESENUM - Enum of MeshNumberofvertices
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=MeshNumberofverticesEnum()
+
+macro=StringToEnum('MeshNumberofvertices');
Index: sm/trunk/src/m/enum/NumberOfEdgesEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NumberOfEdgesEnum.m	(revision 9724)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=NumberOfEdgesEnum()
-%NUMBEROFEDGESENUM - Enum of NumberOfEdges
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=NumberOfEdgesEnum()
-
-macro=StringToEnum('NumberOfEdges');
Index: sm/trunk/src/m/enum/NumberOfElements2DEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NumberOfElements2DEnum.m	(revision 9724)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=NumberOfElements2DEnum()
-%NUMBEROFELEMENTS2DENUM - Enum of NumberOfElements2D
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=NumberOfElements2DEnum()
-
-macro=StringToEnum('NumberOfElements2D');
Index: sm/trunk/src/m/enum/NumberOfElementsEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NumberOfElementsEnum.m	(revision 9724)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=NumberOfElementsEnum()
-%NUMBEROFELEMENTSENUM - Enum of NumberOfElements
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=NumberOfElementsEnum()
-
-macro=StringToEnum('NumberOfElements');
Index: sm/trunk/src/m/enum/NumberOfNodes2DEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NumberOfNodes2DEnum.m	(revision 9724)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=NumberOfNodes2DEnum()
-%NUMBEROFNODES2DENUM - Enum of NumberOfNodes2D
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=NumberOfNodes2DEnum()
-
-macro=StringToEnum('NumberOfNodes2D');
Index: sm/trunk/src/m/enum/NumberOfResponsesEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NumberOfResponsesEnum.m	(revision 9724)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=NumberOfResponsesEnum()
-%NUMBEROFRESPONSESENUM - Enum of NumberOfResponses
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=NumberOfResponsesEnum()
-
-macro=StringToEnum('NumberOfResponses');
Index: sm/trunk/src/m/enum/NumberOfVerticesEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NumberOfVerticesEnum.m	(revision 9724)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=NumberOfVerticesEnum()
-%NUMBEROFVERTICESENUM - Enum of NumberOfVertices
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=NumberOfVerticesEnum()
-
-macro=StringToEnum('NumberOfVertices');
Index: sm/trunk/src/m/enum/NumlayersEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NumlayersEnum.m	(revision 9724)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=NumlayersEnum()
-%NUMLAYERSENUM - Enum of Numlayers
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
-%            Please read src/c/EnumDefinitions/README for more information
-%
-%   Usage:
-%      macro=NumlayersEnum()
-
-macro=StringToEnum('Numlayers');
Index: /issm/trunk/src/m/kml/kml_mesh_elem.m
===================================================================
--- /issm/trunk/src/m/kml/kml_mesh_elem.m	(revision 9724)
+++ /issm/trunk/src/m/kml/kml_mesh_elem.m	(revision 9725)
@@ -74,10 +74,10 @@
 
 if exist('data','var') && ~isempty(data)
-    if     (numel(data)==md.numberofelements)
+    if     (numel(data)==md.mesh.numberofelements)
         edata=data;
-    elseif (numel(data)==md.numberofnodes)
+    elseif (numel(data)==md.mesh.numberofvertices)
         ndata=data;
         display('Averaging nodal data to element data.');
-        edata=zeros(1,md.numberofelements);
+        edata=zeros(1,md.mesh.numberofelements);
         for i=1:size(md.elements,1)
             for j=1:size(md.elements,2)
@@ -124,5 +124,5 @@
 kfold.visibility=1;
 kfold.descript  =sprintf('Elements=%d, Nodes=%d',...
-    md.numberofelements,md.numberofnodes);
+    md.mesh.numberofelements,md.mesh.numberofvertices);
 % see matlab_oop, "initializing a handle object array"
 %kfold.feature   ={repmat(kml_placemark(),1,size(md.elements,1))};
Index: /issm/trunk/src/m/kml/kml_mesh_write.m
===================================================================
--- /issm/trunk/src/m/kml/kml_mesh_write.m	(revision 9724)
+++ /issm/trunk/src/m/kml/kml_mesh_write.m	(revision 9725)
@@ -80,10 +80,10 @@
 
 if exist('data','var') && ~isempty(data)
-    if     (numel(data)==md.numberofelements)
+    if     (numel(data)==md.mesh.numberofelements)
         edata=data;
-    elseif (numel(data)==md.numberofnodes)
+    elseif (numel(data)==md.mesh.numberofvertices)
         ndata=data;
         display('Averaging nodal data to element data.');
-        edata=zeros(1,md.numberofelements);
+        edata=zeros(1,md.mesh.numberofelements);
         for i=1:size(md.elements,1)
             for j=1:size(md.elements,2)
Index: /issm/trunk/src/m/kml/kml_part_edges.m
===================================================================
--- /issm/trunk/src/m/kml/kml_part_edges.m	(revision 9724)
+++ /issm/trunk/src/m/kml/kml_part_edges.m	(revision 9725)
@@ -75,10 +75,10 @@
 
 if exist('data','var') && ~isempty(data)
-    if     (numel(data)==md.numberofelements)
+    if     (numel(data)==md.mesh.numberofelements)
         edata=data;
-    elseif (numel(data)==md.numberofnodes)
+    elseif (numel(data)==md.mesh.numberofvertices)
         ndata=data;
         display('Averaging nodal data to element data.');
-        edata=zeros(1,md.numberofelements);
+        edata=zeros(1,md.mesh.numberofelements);
         for i=1:size(md.elements,1)
             for j=1:size(md.elements,2)
@@ -123,5 +123,5 @@
     kfold.visibility=1;
     kfold.descript  =sprintf('Partitions=%d, Nodes=%d',...
-        md.qmu.numberofpartitions,md.numberofnodes);
+        md.qmu.numberofpartitions,md.mesh.numberofvertices);
     kfold.feature   ={repmat(kml_placemark(),1,md.qmu.numberofpartitions)};
 
@@ -150,5 +150,5 @@
         elemp=md.elements(irow,:);
         epartp=epart(irow,:);
-        nodeconp=nodeconnectivity(elemp,md.numberofnodes);
+        nodeconp=nodeconnectivity(elemp,md.mesh.numberofvertices);
         [edgeadjp]=edgeadjacency(elemp,nodeconp);
         [edgeper,elemper,iloop]=edgeperimeter(elemp,nodeconp,edgeadjp);
Index: /issm/trunk/src/m/kml/kml_part_elems.m
===================================================================
--- /issm/trunk/src/m/kml/kml_part_elems.m	(revision 9724)
+++ /issm/trunk/src/m/kml/kml_part_elems.m	(revision 9725)
@@ -75,10 +75,10 @@
 
 if exist('data','var') && ~isempty(data)
-    if     (numel(data)==md.numberofelements)
+    if     (numel(data)==md.mesh.numberofelements)
         edata=data;
-    elseif (numel(data)==md.numberofnodes)
+    elseif (numel(data)==md.mesh.numberofvertices)
         ndata=data;
         display('Averaging nodal data to element data.');
-        edata=zeros(1,md.numberofelements);
+        edata=zeros(1,md.mesh.numberofelements);
         for i=1:size(md.elements,1)
             for j=1:size(md.elements,2)
@@ -123,5 +123,5 @@
     kfold.visibility=1;
     kfold.descript  =sprintf('Partitions=%d, Nodes=%d\n',...
-        md.qmu.numberofpartitions,md.numberofnodes);
+        md.qmu.numberofpartitions,md.mesh.numberofvertices);
     kfold.feature   ={repmat(kml_placemark(),1,md.qmu.numberofpartitions)};
 
Index: /issm/trunk/src/m/kml/kml_partitions.m
===================================================================
--- /issm/trunk/src/m/kml/kml_partitions.m	(revision 9724)
+++ /issm/trunk/src/m/kml/kml_partitions.m	(revision 9725)
@@ -76,10 +76,10 @@
 
 if exist('data','var') && ~isempty(data)
-    if     (numel(data)==md.numberofelements)
+    if     (numel(data)==md.mesh.numberofelements)
         edata=data;
-    elseif (numel(data)==md.numberofnodes)
+    elseif (numel(data)==md.mesh.numberofvertices)
         ndata=data;
         display('Averaging nodal data to element data.');
-        edata=zeros(1,md.numberofelements);
+        edata=zeros(1,md.mesh.numberofelements);
         for i=1:size(md.elements,1)
             for j=1:size(md.elements,2)
@@ -124,5 +124,5 @@
     kfold.visibility=1;
     kfold.descript  =sprintf('Partitions=%d, Nodes=%d',...
-        md.qmu.numberofpartitions,md.numberofnodes);
+        md.qmu.numberofpartitions,md.mesh.numberofvertices);
     kfold.feature   ={repmat(kml_placemark(),1,md.qmu.numberofpartitions)};
 
@@ -151,5 +151,5 @@
         elemp=md.elements(irow,:);
         epartp=epart(irow,:);
-        nodeconp=nodeconnectivity(elemp,md.numberofnodes);
+        nodeconp=nodeconnectivity(elemp,md.mesh.numberofvertices);
         [edgeadjp]=edgeadjacency(elemp,nodeconp);
         [edgeper,elemper,iloop]=edgeperimeter(elemp,nodeconp,edgeadjp);
Index: /issm/trunk/src/m/model/BasinConstrain.m
===================================================================
--- /issm/trunk/src/m/model/BasinConstrain.m	(revision 9724)
+++ /issm/trunk/src/m/model/BasinConstrain.m	(revision 9725)
@@ -17,10 +17,10 @@
 if ischar(domain),
 	if isempty(domain),
-		elementondomain=zeros(md.numberofelements,1);
-		vertexondomain=zeros(md.numberofnodes,1);
+		elementondomain=zeros(md.mesh.numberofelements,1);
+		vertexondomain=zeros(md.mesh.numberofvertices,1);
 		invert=0;
 	elseif strcmpi(domain,'all')
-		elementondomain=ones(md.numberofelements,1);
-		vertexondomain=ones(md.numberofnodes,1);
+		elementondomain=ones(md.mesh.numberofelements,1);
+		vertexondomain=ones(md.mesh.numberofvertices,1);
 		invert=0;
 	else
@@ -55,5 +55,5 @@
 pos=find(~md.mask.elementonwater);
 numpos=unique(md.elements(pos,:));
-nodes=setdiff(1:1:md.numberofnodes,numpos);
+nodes=setdiff(1:1:md.mesh.numberofvertices,numpos);
 md.diagnostic.spcvx(nodes)=md.inversion.vx_obs(nodes);
 md.diagnostic.spcvy(nodes)=md.inversion.vy_obs(nodes);
Index: /issm/trunk/src/m/model/BasinConstrainShelf.m
===================================================================
--- /issm/trunk/src/m/model/BasinConstrainShelf.m	(revision 9724)
+++ /issm/trunk/src/m/model/BasinConstrainShelf.m	(revision 9725)
@@ -17,10 +17,10 @@
 if ischar(domain),
 	if isempty(domain),
-		elementondomain=zeros(md.numberofelements,1);
-		vertexondomain=zeros(md.numberofnodes,1);
+		elementondomain=zeros(md.mesh.numberofelements,1);
+		vertexondomain=zeros(md.mesh.numberofvertices,1);
 		invert=0;
 	elseif strcmpi(domain,'all')
-		elementondomain=ones(md.numberofelements,1);
-		vertexondomain=ones(md.numberofnodes,1);
+		elementondomain=ones(md.mesh.numberofelements,1);
+		vertexondomain=ones(md.mesh.numberofvertices,1);
 		invert=0;
 	else
@@ -55,5 +55,5 @@
 pos=find(~md.mask.elementonwater);
 numpos=unique(md.elements(pos,:));
-nodes=setdiff(1:1:md.numberofnodes,numpos);
+nodes=setdiff(1:1:md.mesh.numberofvertices,numpos);
 md.diagnostic.spcvx(nodes)=md.inversion.vx_obs(nodes);
 md.diagnostic.spcvy(nodes)=md.inversion.vy_obs(nodes);
Index: /issm/trunk/src/m/model/DepthAverage.m
===================================================================
--- /issm/trunk/src/m/model/DepthAverage.m	(revision 9724)
+++ /issm/trunk/src/m/model/DepthAverage.m	(revision 9725)
@@ -14,7 +14,7 @@
 
 %nods data
-if (length(vector)==md.numberofnodes),
-	vector_average=zeros(md.numberofnodes2d,1);
-	for i=1:md.numlayers-1,
+if (length(vector)==md.mesh.numberofvertices),
+	vector_average=zeros(md.mesh.numberofvertices2d,1);
+	for i=1:md.mesh.numberoflayers-1,
 		vector_average=vector_average+(project2d(md,vector,i)+project2d(md,vector,i+1))/2.*(project2d(md,md.z,i+1)-project2d(md,md.z,i));
 	end
@@ -22,7 +22,7 @@
 
 %element data
-elseif (length(vector)==md.numberofelements),
-	vector_average=zeros(md.numberofelements2d,1);
-	for i=1:md.numlayers-1,
+elseif (length(vector)==md.mesh.numberofelements),
+	vector_average=zeros(md.mesh.numberofelements2d,1);
+	for i=1:md.mesh.numberoflayers-1,
 		vector_average=vector_average+project2d(md,vector,i).*(project2d(md,md.z,i+1)-project2d(md,md.z,i));
 	end
Index: /issm/trunk/src/m/model/averageconnectivity.m
===================================================================
--- /issm/trunk/src/m/model/averageconnectivity.m	(revision 9724)
+++ /issm/trunk/src/m/model/averageconnectivity.m	(revision 9725)
@@ -6,6 +6,6 @@
 
 nnz=0;
-for i=1:md.numberofnodes,
+for i=1:md.mesh.numberofvertices,
 	nnz=nnz+length(find(md.elements==i));
 end
-conn=nnz/md.numberofnodes;
+conn=nnz/md.mesh.numberofvertices;
Index: /issm/trunk/src/m/model/averaging.m
===================================================================
--- /issm/trunk/src/m/model/averaging.m	(revision 9724)
+++ /issm/trunk/src/m/model/averaging.m	(revision 9725)
@@ -16,16 +16,16 @@
 %      pressure=averaging(md,md.initialization.pressure,0);
 
-if length(data)~=md.numberofelements & length(data)~=md.numberofnodes
+if length(data)~=md.mesh.numberofelements & length(data)~=md.mesh.numberofvertices
 	error('averaging error message: data not supported yet');
 end
 
 %initialization
-weights=zeros(md.numberofnodes,1);
+weights=zeros(md.mesh.numberofvertices,1);
 data=data(:);
 
 %load some variables (it is much faster if the variab;es are loaded from md once for all)
 index=md.elements;
-numberofnodes=md.numberofnodes;
-numberofelements=md.numberofelements;
+numberofnodes=md.mesh.numberofvertices;
+numberofelements=md.mesh.numberofelements;
 
 %build some variables
Index: /issm/trunk/src/m/model/bamg.m
===================================================================
--- /issm/trunk/src/m/model/bamg.m	(revision 9724)
+++ /issm/trunk/src/m/model/bamg.m	(revision 9725)
@@ -265,11 +265,11 @@
 
 % Bamg Mesh parameters {{{1
-if (~exist(options,'domain') & md.numberofnodes~=0 & md.mesh.dimension==2),
+if (~exist(options,'domain') & md.mesh.numberofvertices~=0 & md.mesh.dimension==2),
 
 	if isstruct(md.private.bamg),
 		bamg_mesh=bamgmesh(md.private.bamg.mesh);
 	else
-		bamg_mesh.Vertices=[md.x md.y ones(md.numberofnodes,1)];
-		bamg_mesh.Triangles=[md.elements ones(md.numberofelements,1)];
+		bamg_mesh.Vertices=[md.x md.y ones(md.mesh.numberofvertices,1)];
+		bamg_mesh.Triangles=[md.elements ones(md.mesh.numberofelements,1)];
 	end
 
@@ -326,18 +326,18 @@
 %Fill in rest of fields:
 md.mesh.dimension=2;
-md.numberofelements=size(md.elements,1);
-md.numberofnodes=length(md.x);
-md.z=zeros(md.numberofnodes,1);
-md.nodeonbed=ones(md.numberofnodes,1);
-md.mask.vertexonwater=zeros(md.numberofnodes,1);
-md.nodeonsurface=ones(md.numberofnodes,1);
-md.elementonbed=ones(md.numberofelements,1);
-md.elementonsurface=ones(md.numberofelements,1);
-md.mesh.vertexonboundary=zeros(md.numberofnodes,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
+md.mesh.numberofelements=size(md.elements,1);
+md.mesh.numberofvertices=length(md.x);
+md.z=zeros(md.mesh.numberofvertices,1);
+md.nodeonbed=ones(md.mesh.numberofvertices,1);
+md.mask.vertexonwater=zeros(md.mesh.numberofvertices,1);
+md.nodeonsurface=ones(md.mesh.numberofvertices,1);
+md.elementonbed=ones(md.mesh.numberofelements,1);
+md.elementonsurface=ones(md.mesh.numberofelements,1);
+md.mesh.vertexonboundary=zeros(md.mesh.numberofvertices,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
 md.elementconnectivity=md.private.bamg.mesh.ElementConnectivity;
 md.elementconnectivity(find(isnan(md.elementconnectivity)))=0;
 
 %Check for orphan
-if any(~ismember(1:md.numberofnodes,sort(unique(md.elements(:)))))
+if any(~ismember(1:md.mesh.numberofvertices,sort(unique(md.elements(:)))))
 	error('Output mesh has orphans. Decrease MaxCornerAngle to prevent outside points (ex: 0.01)');
 end
Index: /issm/trunk/src/m/model/basevert.m
===================================================================
--- /issm/trunk/src/m/model/basevert.m	(revision 9724)
+++ /issm/trunk/src/m/model/basevert.m	(revision 9725)
@@ -9,9 +9,9 @@
 %      wb=basevert(md);
 
-alpha=zeros(md.numberofelements,3);
-beta=zeros(md.numberofelements,3);
-gamma=zeros(md.numberofelements,3);
+alpha=zeros(md.mesh.numberofelements,3);
+beta=zeros(md.mesh.numberofelements,3);
+gamma=zeros(md.mesh.numberofelements,3);
 
-for n=1:md.numberofelements
+for n=1:md.mesh.numberofelements
 	X=inv([md.x(md.elements(n,:)) md.y(md.elements(n,:)) ones(3,1)]);
 	alpha(n,:)=X(1,:);
Index: /issm/trunk/src/m/model/bedslope.m
===================================================================
--- /issm/trunk/src/m/model/bedslope.m	(revision 9724)
+++ /issm/trunk/src/m/model/bedslope.m	(revision 9725)
@@ -7,11 +7,11 @@
 %load some variables (it is much faster if the variab;es are loaded from md once for all) 
 if (md.mesh.dimension==2),
-	numberofelements=md.numberofelements;
-	numberofnodes=md.numberofnodes;
+	numberofelements=md.mesh.numberofelements;
+	numberofnodes=md.mesh.numberofvertices;
 	index=md.elements;
 	x=md.x; y=md.y;
 else
-	numberofelements=md.numberofelements2d;
-	numberofnodes=md.numberofnodes2d;
+	numberofelements=md.mesh.numberofelements2d;
+	numberofnodes=md.mesh.numberofvertices2d;
 	index=md.elements2d;
 	x=md.x2d; y=md.y2d;
Index: /issm/trunk/src/m/model/collapse.m
===================================================================
--- /issm/trunk/src/m/model/collapse.m	(revision 9724)
+++ /issm/trunk/src/m/model/collapse.m	(revision 9725)
@@ -26,11 +26,11 @@
 
 %observations
-if ~isnan(md.inversion.vx_obs), md.inversion.vx_obs=project2d(md,md.inversion.vx_obs,md.numlayers); end;
-if ~isnan(md.inversion.vy_obs), md.inversion.vy_obs=project2d(md,md.inversion.vy_obs,md.numlayers); end;
-if ~isnan(md.inversion.vel_obs), md.inversion.vel_obs=project2d(md,md.inversion.vel_obs,md.numlayers); end;
+if ~isnan(md.inversion.vx_obs), md.inversion.vx_obs=project2d(md,md.inversion.vx_obs,md.mesh.numberoflayers); end;
+if ~isnan(md.inversion.vy_obs), md.inversion.vy_obs=project2d(md,md.inversion.vy_obs,md.mesh.numberoflayers); end;
+if ~isnan(md.inversion.vel_obs), md.inversion.vel_obs=project2d(md,md.inversion.vel_obs,md.mesh.numberoflayers); end;
 if ~isnan(md.surfaceforcings.mass_balance),
-	md.surfaceforcings.mass_balance=project2d(md,md.surfaceforcings.mass_balance,md.numlayers); 
+	md.surfaceforcings.mass_balance=project2d(md,md.surfaceforcings.mass_balance,md.mesh.numberoflayers); 
 end;
-if ~isnan(md.balancethickness.thickening_rate), md.balancethickness.thickening_rate=project2d(md,md.balancethickness.thickening_rate,md.numlayers); end;
+if ~isnan(md.balancethickness.thickening_rate), md.balancethickness.thickening_rate=project2d(md,md.balancethickness.thickening_rate,md.mesh.numberoflayers); end;
 
 %results
@@ -41,8 +41,8 @@
 
 %bedinfo and surface info
-md.elementonbed=ones(md.numberofelements2d,1);
-md.elementonsurface=ones(md.numberofelements2d,1);
-md.nodeonbed=ones(md.numberofnodes2d,1);
-md.nodeonsurface=ones(md.numberofnodes2d,1);
+md.elementonbed=ones(md.mesh.numberofelements2d,1);
+md.elementonsurface=ones(md.mesh.numberofelements2d,1);
+md.nodeonbed=ones(md.mesh.numberofvertices2d,1);
+md.nodeonsurface=ones(md.mesh.numberofvertices2d,1);
 
 %elementstype
@@ -52,13 +52,13 @@
 
 %boundary conditions
-md.diagnostic.spcvx=project2d(md,md.diagnostic.spcvx,md.numlayers);
-md.diagnostic.spcvy=project2d(md,md.diagnostic.spcvy,md.numlayers);
-md.diagnostic.spcvz=project2d(md,md.diagnostic.spcvz,md.numlayers);
-md.prognostic.spcthickness=project2d(md,md.prognostic.spcthickness,md.numlayers);
-md.thermal.spctemperature=project2d(md,md.thermal.spctemperature,md.numlayers);
+md.diagnostic.spcvx=project2d(md,md.diagnostic.spcvx,md.mesh.numberoflayers);
+md.diagnostic.spcvy=project2d(md,md.diagnostic.spcvy,md.mesh.numberoflayers);
+md.diagnostic.spcvz=project2d(md,md.diagnostic.spcvz,md.mesh.numberoflayers);
+md.prognostic.spcthickness=project2d(md,md.prognostic.spcthickness,md.mesh.numberoflayers);
+md.thermal.spctemperature=project2d(md,md.thermal.spctemperature,md.mesh.numberoflayers);
 
 %Extrusion of Neumann BC
 if ~isnan(md.diagnostic.icefront),
-	numberofneumann2d=size(md.diagnostic.icefront,1)/md.numlayers;
+	numberofneumann2d=size(md.diagnostic.icefront,1)/md.mesh.numberoflayers;
 	md.diagnostic.icefront=[md.diagnostic.icefront(1:numberofneumann2d,1:2) md.diagnostic.icefront(1:numberofneumann2d,5:6)]; %Add two columns on the first layer 
 end
@@ -76,6 +76,6 @@
 
 %Collapse the mesh
-nodes2d=md.numberofnodes2d;
-elements2d=md.numberofelements2d;
+nodes2d=md.mesh.numberofvertices2d;
+elements2d=md.mesh.numberofelements2d;
 
 %parameters
@@ -93,6 +93,6 @@
 md.y=md.y2d;
 md.z=zeros(size(md.x2d));
-md.numberofnodes=md.numberofnodes2d;
-md.numberofelements=md.numberofelements2d;
+md.mesh.numberofvertices=md.mesh.numberofvertices2d;
+md.mesh.numberofelements=md.mesh.numberofelements2d;
 md.elements=md.elements2d;
 
@@ -105,7 +105,7 @@
 md.y2d=NaN;
 md.elements2d=NaN;
-md.numberofelements2d=md.numberofelements;
-md.numberofnodes2d=md.numberofnodes;
-md.numlayers=0;
+md.mesh.numberofelements2d=md.mesh.numberofelements;
+md.mesh.numberofvertices2d=md.mesh.numberofvertices;
+md.mesh.numberoflayers=0;
 
 %Update mesh type
Index: /issm/trunk/src/m/model/contourenvelope.m
===================================================================
--- /issm/trunk/src/m/model/contourenvelope.m	(revision 9724)
+++ /issm/trunk/src/m/model/contourenvelope.m	(revision 9725)
@@ -35,8 +35,8 @@
 %Now, build the connectivity tables for this mesh.
 %Computing connectivity
-if size(md.nodeconnectivity,1)~=md.numberofnodes,
-	md.nodeconnectivity=NodeConnectivity(md.elements,md.numberofnodes);
+if size(md.nodeconnectivity,1)~=md.mesh.numberofvertices,
+	md.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
 end
-if size(md.elementconnectivity,1)~=md.numberofelements,
+if size(md.elementconnectivity,1)~=md.mesh.numberofelements,
 	md.elementconnectivity=ElementConnectivity(md.elements,md.nodeconnectivity);
 end
@@ -55,6 +55,6 @@
 	else
 		%get flag list of elements and nodes inside the contour
-		nodein=zeros(md.numberofnodes,1); 
-		elemin=zeros(md.numberofelements,1); 
+		nodein=zeros(md.mesh.numberofvertices,1); 
+		elemin=zeros(md.mesh.numberofelements,1); 
 		
 		pos=find(flags); 
Index: /issm/trunk/src/m/model/contourmassbalance.m
===================================================================
--- /issm/trunk/src/m/model/contourmassbalance.m	(revision 9724)
+++ /issm/trunk/src/m/model/contourmassbalance.m	(revision 9725)
@@ -10,6 +10,6 @@
 	error('contourmassbalance error message: bad usage');
 end
-if ((length(md.initialization.vx)~=md.numberofnodes)|(length(md.initialization.vy)~=md.numberofnodes))
-	error(['thicknessevolution error message: vx and vy should have a length of ' num2str(md.numberofnodes)])
+if ((length(md.initialization.vx)~=md.mesh.numberofvertices)|(length(md.initialization.vy)~=md.mesh.numberofvertices))
+	error(['thicknessevolution error message: vx and vy should have a length of ' num2str(md.mesh.numberofvertices)])
 end
 if ~exist(file),
Index: /issm/trunk/src/m/model/divergence.m
===================================================================
--- /issm/trunk/src/m/model/divergence.m	(revision 9724)
+++ /issm/trunk/src/m/model/divergence.m	(revision 9725)
@@ -6,11 +6,11 @@
 
 if (md.mesh.dimension==2),
-	numberofelements=md.numberofelements;
-	numberofnodes=md.numberofnodes;
+	numberofelements=md.mesh.numberofelements;
+	numberofnodes=md.mesh.numberofvertices;
 	index=md.elements;
 	x=md.x; y=md.y; z=md.z;
 else
-	numberofelements=md.numberofelements2d;
-	numberofnodes=md.numberofnodes2d;
+	numberofelements=md.mesh.numberofelements2d;
+	numberofnodes=md.mesh.numberofvertices2d;
 	index=md.elements2d;
 	x=md.x2d; y=md.y2d;
Index: /issm/trunk/src/m/model/extrude.m
===================================================================
--- /issm/trunk/src/m/model/extrude.m	(revision 9724)
+++ /issm/trunk/src/m/model/extrude.m	(revision 9725)
@@ -82,5 +82,5 @@
 elements3d=[];
 for i=1:numlayers-1,
-	elements3d=[elements3d;[md.elements+(i-1)*md.numberofnodes md.elements+i*md.numberofnodes]]; %Create the elements of the 3d mesh for the non extruded part
+	elements3d=[elements3d;[md.elements+(i-1)*md.mesh.numberofvertices md.elements+i*md.mesh.numberofvertices]]; %Create the elements of the 3d mesh for the non extruded part
 end
 number_el3d=size(elements3d,1); %number of 3d nodes for the non extruded part of the mesh
@@ -89,6 +89,6 @@
 lowernodes=NaN*ones(number_nodes3d,1);
 uppernodes=NaN*ones(number_nodes3d,1);
-lowernodes(md.numberofnodes+1:end)=1:(numlayers-1)*md.numberofnodes;
-uppernodes(1:(numlayers-1)*md.numberofnodes)=md.numberofnodes+1:number_nodes3d;
+lowernodes(md.mesh.numberofvertices+1:end)=1:(numlayers-1)*md.mesh.numberofvertices;
+uppernodes(1:(numlayers-1)*md.mesh.numberofvertices)=md.mesh.numberofvertices+1:number_nodes3d;
 md.lowernodes=lowernodes;
 md.uppernodes=uppernodes;
@@ -97,6 +97,6 @@
 lowerelements=NaN*ones(number_el3d,1);
 upperelements=NaN*ones(number_el3d,1);
-lowerelements(md.numberofelements+1:end)=1:(numlayers-2)*md.numberofelements;
-upperelements(1:(numlayers-2)*md.numberofelements)=md.numberofelements+1:(numlayers-1)*md.numberofelements;
+lowerelements(md.mesh.numberofelements+1:end)=1:(numlayers-2)*md.mesh.numberofelements;
+upperelements(1:(numlayers-2)*md.mesh.numberofelements)=md.mesh.numberofelements+1:(numlayers-1)*md.mesh.numberofelements;
 md.lowerelements=lowerelements;
 md.upperelements=upperelements;
@@ -106,6 +106,6 @@
 md.y2d=md.y;
 md.elements2d=md.elements;
-md.numberofelements2d=md.numberofelements;
-md.numberofnodes2d=md.numberofnodes;
+md.mesh.numberofelements2d=md.mesh.numberofelements;
+md.mesh.numberofvertices2d=md.mesh.numberofvertices;
 
 %Update mesh type
@@ -117,7 +117,7 @@
 md.y=y3d;
 md.z=z3d;
-md.numberofelements=number_el3d;
-md.numberofnodes=number_nodes3d;
-md.numlayers=numlayers;
+md.mesh.numberofelements=number_el3d;
+md.mesh.numberofvertices=number_nodes3d;
+md.mesh.numberoflayers=numlayers;
 
 %Ok, now deal with the other fields from the 2d mesh:
@@ -148,8 +148,8 @@
 
 %bedinfo and surface info
-md.elementonbed=project3d(md,'vector',ones(md.numberofelements2d,1),'type','element','layer',1);
-md.elementonsurface=project3d(md,'vector',ones(md.numberofelements2d,1),'type','element','layer',md.numlayers-1);
-md.nodeonbed=project3d(md,'vector',ones(md.numberofnodes2d,1),'type','node','layer',1);
-md.nodeonsurface=project3d(md,'vector',ones(md.numberofnodes2d,1),'type','node','layer',md.numlayers);
+md.elementonbed=project3d(md,'vector',ones(md.mesh.numberofelements2d,1),'type','element','layer',1);
+md.elementonsurface=project3d(md,'vector',ones(md.mesh.numberofelements2d,1),'type','element','layer',md.mesh.numberoflayers-1);
+md.nodeonbed=project3d(md,'vector',ones(md.mesh.numberofvertices2d,1),'type','node','layer',1);
+md.nodeonsurface=project3d(md,'vector',ones(md.mesh.numberofvertices2d,1),'type','node','layer',md.mesh.numberoflayers);
 
 %elementstype
@@ -171,13 +171,13 @@
 md.diagnostic.spcvy=project3d(md,'vector',md.diagnostic.spcvy,'type','node');
 md.diagnostic.spcvz=project3d(md,'vector',md.diagnostic.spcvz,'type','node');
-md.thermal.spctemperature=project3d(md,'vector',md.thermal.spctemperature,'type','node','layer',md.numlayers,'padding',NaN);
+md.thermal.spctemperature=project3d(md,'vector',md.thermal.spctemperature,'type','node','layer',md.mesh.numberoflayers,'padding',NaN);
 md.prognostic.spcthickness=project3d(md,'vector',md.prognostic.spcthickness,'type','node');
 md.diagnostic.referential=project3d(md,'vector',md.diagnostic.referential,'type','node');
 
 %in 3d, pressureload: [node1 node2 node3 node4 element]
-pressureload_layer1=[md.diagnostic.icefront(:,1:2)  md.diagnostic.icefront(:,2)+md.numberofnodes2d  md.diagnostic.icefront(:,1)+md.numberofnodes2d  md.diagnostic.icefront(:,3:4)]; %Add two columns on the first layer 
+pressureload_layer1=[md.diagnostic.icefront(:,1:2)  md.diagnostic.icefront(:,2)+md.mesh.numberofvertices2d  md.diagnostic.icefront(:,1)+md.mesh.numberofvertices2d  md.diagnostic.icefront(:,3:4)]; %Add two columns on the first layer 
 pressureload=[];
 for i=1:numlayers-1,
-	pressureload=[pressureload ;pressureload_layer1(:,1:4)+(i-1)*md.numberofnodes2d pressureload_layer1(:,5)+(i-1)*md.numberofelements2d pressureload_layer1(:,6)];
+	pressureload=[pressureload ;pressureload_layer1(:,1:4)+(i-1)*md.mesh.numberofvertices2d pressureload_layer1(:,5)+(i-1)*md.mesh.numberofelements2d pressureload_layer1(:,6)];
 end
 md.diagnostic.icefront=pressureload;
@@ -187,6 +187,6 @@
 md.elementconnectivity(find(md.elementconnectivity==0))=NaN;
 for i=2:numlayers-1,
-	md.elementconnectivity((i-1)*md.numberofelements2d+1:(i)*md.numberofelements2d,:)...
-	=md.elementconnectivity((i-1)*md.numberofelements2d+1:(i)*md.numberofelements2d,:)+md.numberofelements2d;
+	md.elementconnectivity((i-1)*md.mesh.numberofelements2d+1:(i)*md.mesh.numberofelements2d,:)...
+	=md.elementconnectivity((i-1)*md.mesh.numberofelements2d+1:(i)*md.mesh.numberofelements2d,:)+md.mesh.numberofelements2d;
 end
 md.elementconnectivity(find(isnan(md.elementconnectivity)))=0;
Index: /issm/trunk/src/m/model/ismodelselfconsistent.m
===================================================================
--- /issm/trunk/src/m/model/ismodelselfconsistent.m	(revision 9724)
+++ /issm/trunk/src/m/model/ismodelselfconsistent.m	(revision 9725)
@@ -24,6 +24,6 @@
 	end
 	%   probably going to need some checks on flaim.flightreqs here
-	if (numel(md.flaim.criterion) ~= md.numberofnodes) && (numel(md.flaim.criterion) ~= md.numberofelements)
-		message(['model not consistent: flaim.criterion vector must have number of nodes (' int2str(md.numberofnodes) ') or elements (' int2str(md.numberofelements) ') values, not ' int2str(numel(md.flaim.criterion)) ' values.']);
+	if (numel(md.flaim.criterion) ~= md.mesh.numberofvertices) && (numel(md.flaim.criterion) ~= md.mesh.numberofelements)
+		message(['model not consistent: flaim.criterion vector must have number of nodes (' int2str(md.mesh.numberofvertices) ') or elements (' int2str(md.mesh.numberofelements) ') values, not ' int2str(numel(md.flaim.criterion)) ' values.']);
 	end
 	return;
@@ -50,9 +50,9 @@
 fields={'elements'};
 if (md.mesh.dimension==2),
-	checksize(md,fields,[md.numberofelements 3]);
+	checksize(md,fields,[md.mesh.numberofelements 3]);
 else
-	checksize(md,fields,[md.numberofelements 6]);
-end
-if any(~ismember(1:md.numberofnodes,sort(unique(md.elements(:)))));
+	checksize(md,fields,[md.mesh.numberofelements 6]);
+end
+if any(~ismember(1:md.mesh.numberofvertices,sort(unique(md.elements(:)))));
 	message('orphan nodes have been found. Check the mesh');
 end
@@ -82,5 +82,5 @@
 %}}}
 %NO NAN {{{1
-fields={'numberofelements','numberofnodes','x','y','z','friction.coefficient','friction.p','friction.q',...
+fields={'mesh.numberofelements','mesh.numberofvertices','x','y','z','friction.coefficient','friction.p','friction.q',...
 	'materials.rho_ice','materials.rho_water','materials.rheology_B','mask.elementonfloatingice','geometry.surface','geometry.thickness','geometry.bed','constants.g','settings.lowmem','inversion.nsteps','inversion.maxiter_per_step',...
 	'diagnostic.restol','diagnostic.maxiter','materials.rheology_n','nodeonbed','nodeonsurface','elementonbed','elementonsurface','elementconnectivity'};
@@ -88,5 +88,5 @@
 %}}}}
 %FIELDS >= 0 {{{1
-fields={'numberofelements','numberofnodes','elements','friction.coefficient','friction.p','friction.q',...
+fields={'mesh.numberofelements','mesh.numberofvertices','elements','friction.coefficient','friction.p','friction.q',...
 	'materials.rho_ice','materials.rho_water','materials.rheology_B','mask.elementonfloatingice','geometry.thickness','constants.g','diagnostic.restol','diagnostic.maxiter','diagnostic.reltol',...
 	'diagnostic.abstol','inversion.nsteps','inversion.maxiter_per_step',...
@@ -95,5 +95,5 @@
 %}}}
 %FIELDS > 0 {{{1
-fields={'numberofelements','numberofnodes','elements','friction.p',...
+fields={'mesh.numberofelements','mesh.numberofvertices','elements','friction.p',...
 	'materials.rho_ice','materials.rho_water','materials.rheology_B','geometry.thickness','constants.g','diagnostic.maxiter','diagnostic.restol','diagnostic.reltol','diagnostic.abstol','inversion.maxiter_per_step'};
 checkgreaterstrict(md,fields,0);
@@ -101,13 +101,13 @@
 %SIZE NUMBEROFELEMENTS {{{1
 fields={'friction.p','friction.q','mask.elementonfloatingice','materials.rheology_n','elementonbed'};
-checksize(md,fields,[md.numberofelements 1]);
+checksize(md,fields,[md.mesh.numberofelements 1]);
 %}}}
 %SIZE NUMBEROFNODES {{{1
 fields={'x','y','z','materials.rheology_B','friction.coefficient','basalforcings.melting_rate','geometry.surface','geometry.thickness','geometry.bed','nodeonbed','nodeonsurface'};
-checksize(md,fields,[md.numberofnodes 1]);
+checksize(md,fields,[md.mesh.numberofvertices 1]);
 %}}}
 %OTHER SIZES {{{1
 fields={'diagnostic.referential'};
-checksize(md,fields,[md.numberofnodes 6]);
+checksize(md,fields,[md.mesh.numberofvertices 6]);
 if ~isempty(md.diagnostic.requested_outputs),
 	if(size(md.diagnostic.requested_outputs,2)~=1),
@@ -222,5 +222,5 @@
 	checksize(md,fields,[md.inversion.nsteps num_controls]);
 	fields={'inversion.min_parameters','inversion.max_parameters'};
-	checksize(md,fields,[md.numberofnodes num_controls]);
+	checksize(md,fields,[md.mesh.numberofvertices num_controls]);
 
 	%RESPONSES
@@ -229,5 +229,5 @@
 	%WEIGHTS
 	fields={'inversion.cost_functions_coefficients'};
-	checksize(md,fields,[md.numberofnodes num_costfunc]);
+	checksize(md,fields,[md.mesh.numberofvertices num_costfunc]);
 	checkgreater(md,fields,0);
 
@@ -235,9 +235,9 @@
 	if md.private.solution==BalancethicknessSolutionEnum
 		fields={'inversion.thickness_obs'};
-		checksize(md,fields,[md.numberofnodes 1]);
+		checksize(md,fields,[md.mesh.numberofvertices 1]);
 		checknan(md,fields);
 	else
 		fields={'inversion.vx_obs','inversion.vy_obs'};
-		checksize(md,fields,[md.numberofnodes 1]);
+		checksize(md,fields,[md.mesh.numberofvertices 1]);
 		checknan(md,fields);
 	end
@@ -258,8 +258,8 @@
 	end
 	if ~isempty(md.qmu.partition),
-		if numel(md.qmu.partition)~=md.numberofnodes,
-			message(['model not consistent: user supplied partition for qmu analysis should have size md.numberofnodes x 1 ']);
-		end
-		if find(md.qmu.partition)>=md.numberofnodes,
+		if numel(md.qmu.partition)~=md.mesh.numberofvertices,
+			message(['model not consistent: user supplied partition for qmu analysis should have size md.mesh.numberofvertices x 1 ']);
+		end
+		if find(md.qmu.partition)>=md.mesh.numberofvertices,
 			message(['model not consistent: user supplied partition should be indexed from 0 (c-convention)']);
 		end
@@ -267,5 +267,5 @@
 			message(['model not consistent: partition vector not indexed from 0 on']);
 		end
-		if max(md.qmu.partition)>=md.numberofnodes,
+		if max(md.qmu.partition)>=md.mesh.numberofvertices,
 			message(['model not consistent: partition vector cannot have maximum index larger than number of nodes']);
 		end
@@ -333,5 +333,5 @@
 %}}}
 %GROUNDINGLINEMIGRATION2D{{{1
-if md.private.solution==GroundinglineMigration2DSolutionEnum,
+if md.private.solution==GroundinglineMigration2dSolutionEnum,
 	if strcmpi(md.cluster.name,'none'),
 		message(['model not consistent: ' md.private.solution ' is only implemented in parallel mode !'])
@@ -401,5 +401,5 @@
 				fields={'initialization.vx','initialization.vy'};
 				checknan(md,fields);
-				checksize(md,fields,[md.numberofnodes 1]);
+				checksize(md,fields,[md.mesh.numberofvertices 1]);
 			end
 
@@ -407,5 +407,5 @@
 			%Check the size of flowequation.element_equation
 			fields={'flowequation.element_equation'};
-			checksize(md,fields,[md.numberofelements 1]);
+			checksize(md,fields,[md.mesh.numberofelements 1]);
 			%Check the values of flowequation.element_equation
 			checkvalues(md,{'flowequation.element_equation'},[0:7]);
@@ -420,5 +420,5 @@
 			%Check the size of verticess_type
 			fields={'flowequation.vertex_equation'};
-			checksize(md,fields,[md.numberofnodes 1]);
+			checksize(md,fields,[md.mesh.numberofvertices 1]);
 			%Check the values of flowequation.vertex_equation
 			checkvalues(md,{'flowequation.vertex_equation'},[0:7]);
@@ -455,5 +455,5 @@
 			%INITIAL VELOCITIES
 			fields={'initialization.vx','initialization.vy'};
-			checksize(md,fields,[md.numberofnodes 1]);
+			checksize(md,fields,[md.mesh.numberofvertices 1]);
 			checknan(md,fields);
 
@@ -481,5 +481,5 @@
 			checkforcing(md,fields);
 			fields={'initialization.watercolumn'};
-			checksize(md,fields,[md.numberofnodes 1]);
+			checksize(md,fields,[md.mesh.numberofvertices 1]);
 			%}}}
 		case ThermalAnalysisEnum,
@@ -505,5 +505,5 @@
 			%VELOCITIES AND PRESSURE
 			fields={'initialization.vx','initialization.vy','initialization.vz','initialization.pressure','basalforcings.geothermalflux'};
-			checksize(md,fields,[md.numberofnodes 1]);
+			checksize(md,fields,[md.mesh.numberofvertices 1]);
 			checknan(md,fields);
 
@@ -517,5 +517,5 @@
 				%INITIAL TEMPERATURE, MELTING AND ACCUMULATION
 				fields={'initialization.temperature','basalforcings.melting_rate'};
-				checksize(md,fields,[md.numberofnodes 1]);
+				checksize(md,fields,[md.mesh.numberofvertices 1]);
 				checknan(md,fields);
 
@@ -525,5 +525,5 @@
 
 				%CHECK SPCTEMPERATURE that are not NaN are >0.
-				if find(any(md.thermal.spctemperature(find(~isnan(md.thermal.spctemperature(1:md.numberofnodes,:))))<=0)),
+				if find(any(md.thermal.spctemperature(find(~isnan(md.thermal.spctemperature(1:md.mesh.numberofvertices,:))))<=0)),
 					message(['model not consistent: model ' md.miscellaneous.name ' is constrained with negative or nil temperatures!']);
 				end
@@ -544,5 +544,5 @@
 			%VELOCITIES AND PRESSURE
 			fields={'initialization.vx','initialization.vy','initialization.vz','initialization.pressure','basalforcings.geothermalflux'};
-			checksize(md,fields,[md.numberofnodes 1]);
+			checksize(md,fields,[md.mesh.numberofvertices 1]);
 			checknan(md,fields);
 
@@ -556,5 +556,5 @@
 				%INITIAL TEMPERATURE, MELTING, ACCUMULATION AND WATERFRACTION
 				fields={'initialization.temperature','basalforcings.melting_rate','initialization.waterfraction'};
-				checksize(md,fields,[md.numberofnodes 1]);
+				checksize(md,fields,[md.mesh.numberofvertices 1]);
 				checknan(md,fields);
 
@@ -572,5 +572,5 @@
 			%VELOCITIES MELTING AND ACCUMULATION
 			fields={'initialization.vx','initialization.vy','basalforcings.melting_rate','balancethickness.thickening_rate'};
-			checksize(md,fields,[md.numberofnodes 1]);
+			checksize(md,fields,[md.mesh.numberofvertices 1]);
 			checknan(md,fields);
 
@@ -622,7 +622,7 @@
 				if strcmp(fields{i},'cm_min'),
 					disp('!!! ');
-					disp('!!! WARNING: cm_min must now be of size [md.numberofnodes x 1]. Update your parameter file as follows:');
+					disp('!!! WARNING: cm_min must now be of size [md.mesh.numberofvertices x 1]. Update your parameter file as follows:');
 					disp('!!! ');
-					disp('!!! md.inversion.min_parameters=md.inversion.min_parameters*ones(md.numberofnodes,1);');
+					disp('!!! md.inversion.min_parameters=md.inversion.min_parameters*ones(md.mesh.numberofvertices,1);');
 					disp('!!! ');
 				end
@@ -630,7 +630,7 @@
 				if strcmp(fields{i},'cm_max'),
 					disp('!!! ');
-					disp('!!! WARNING: cm_max must now be of size [md.numberofnodes x 1]. Update your parameter file as follows:');
+					disp('!!! WARNING: cm_max must now be of size [md.mesh.numberofvertices x 1]. Update your parameter file as follows:');
 					disp('!!! ');
-					disp('!!! md.inversion.max_parameters=md.inversion.max_parameters*ones(md.numberofnodes,1);');
+					disp('!!! md.inversion.max_parameters=md.inversion.max_parameters*ones(md.mesh.numberofvertices,1);');
 					disp('!!! ');
 				end
@@ -723,9 +723,9 @@
 	for i=1:length(fields),
 		eval(['field=md.' fields{i} ';']);
-		if size(field,1)==md.numberofnodes,
+		if size(field,1)==md.mesh.numberofvertices,
 			if ~size(field,2)==1,
-				message(['model not consistent: model ' md.miscellaneous.name ': ' fields{i} ' should have only one column as there are md.numberofnodes lines']);
-			end
-		elseif size(field,1)==md.numberofnodes+1
+				message(['model not consistent: model ' md.miscellaneous.name ': ' fields{i} ' should have only one column as there are md.mesh.numberofvertices lines']);
+			end
+		elseif size(field,1)==md.mesh.numberofvertices+1
 			if any(field(end,:)~=sort(field(end,:))),
 				message(['model not consistent: model ' md.miscellaneous.name ': ' fields{i} ' columns should be chronological']);
@@ -735,5 +735,5 @@
 			end
 		else
-			message(['model not consistent: model ' md.miscellaneous.name ': ' fields{i} ' should have md.numberofnodes or md.numberofnodes+1 lines']);
+			message(['model not consistent: model ' md.miscellaneous.name ': ' fields{i} ' should have md.mesh.numberofvertices or md.mesh.numberofvertices+1 lines']);
 		end
 	end
Index: /issm/trunk/src/m/model/marshall.m
===================================================================
--- /issm/trunk/src/m/model/marshall.m	(revision 9724)
+++ /issm/trunk/src/m/model/marshall.m	(revision 9725)
@@ -19,7 +19,4 @@
 template=model.template();
 MarshallObject(fid,template,md,'');
-
-%FIXME add some fields needed by parameters
-WriteData(fid,'numberofedges',size(md.edges,1),modelfield('format','Integer'));
 
 %close file
@@ -272,14 +269,4 @@
 %      enum=BuildEnum(string)
 
-%FIXME: delete this one
-if strcmp(string,'Numberofnodes'),
-	string='Numberofvertices';
-end
-
-if strncmpi(string,'numberof',8),
-	string(1:8)='NumberOf';
-	string(9)=upper(string(9));
-end
-
 if findstr(string,'_'),
 	indices=findstr(string,'_');
@@ -288,18 +275,4 @@
 	end
 	string(indices)=[];
-end
-
-if findstr(string,'2d'),
-	indices=findstr(string,'2d');
-	for i=1:length(indices),
-		string(indices(i)+1)=upper(string(indices(i)+1));
-	end
-end
-
-if findstr(string,'3d'),
-	indices=findstr(string,'3d');
-	for i=1:length(indices),
-		string(indices(i)+1)=upper(string(indices(i)+1));
-	end
 end
 
Index: /issm/trunk/src/m/model/mechanicalproperties.m
===================================================================
--- /issm/trunk/src/m/model/mechanicalproperties.m	(revision 9724)
+++ /issm/trunk/src/m/model/mechanicalproperties.m	(revision 9725)
@@ -14,6 +14,6 @@
 
 %some checks
-if length(vx)~=md.numberofnodes | length(vy)~=md.numberofnodes,
-	error(['the input velocity should be of size ' num2str(md.numberofnodes) '!'])
+if length(vx)~=md.mesh.numberofvertices | length(vy)~=md.mesh.numberofvertices,
+	error(['the input velocity should be of size ' num2str(md.mesh.numberofvertices) '!'])
 end
 if ~(md.mesh.dimension==2)
@@ -25,5 +25,5 @@
 
 %initialization
-numberofelements=md.numberofelements;
+numberofelements=md.mesh.numberofelements;
 index=md.elements;
 summation=[1;1;1];
Index: /issm/trunk/src/m/model/mesh/findsegments.m
===================================================================
--- /issm/trunk/src/m/model/mesh/findsegments.m	(revision 9724)
+++ /issm/trunk/src/m/model/mesh/findsegments.m	(revision 9725)
@@ -15,5 +15,5 @@
 
 %Now, build the connectivity tables for this mesh if not correclty done
-if size(md.elementconnectivity,1)~=md.numberofelements,
+if size(md.elementconnectivity,1)~=md.mesh.numberofelements,
 	if exist(options,'elementconnectivity'),
 		error(' ''elementconnectivity'' option does not have thge right size.');
Index: /issm/trunk/src/m/model/mesh/meshadaptation.m
===================================================================
--- /issm/trunk/src/m/model/mesh/meshadaptation.m	(revision 9724)
+++ /issm/trunk/src/m/model/mesh/meshadaptation.m	(revision 9725)
@@ -17,5 +17,5 @@
 	error('meshadaptation error message: adaptation for 3d meshes not implemented yet')
 end
-if length(field)~=md.numberofnodes
+if length(field)~=md.mesh.numberofvertices
 	error('meshadaptation error message: input field length shoud be numberofnodes')
 end
@@ -25,6 +25,6 @@
 %initialization
 index=md.elements;
-numberofnodes=md.numberofnodes;
-numberofelements=md.numberofelements;
+numberofnodes=md.mesh.numberofvertices;
+numberofelements=md.mesh.numberofelements;
 gradx=zeros(numberofnodes,1);
 grady=zeros(numberofnodes,1);
@@ -90,5 +90,5 @@
 
 %Remesh with this new metric
-disp(sprintf('      initial number of element: %i', md.numberofelements))
+disp(sprintf('      initial number of element: %i', md.mesh.numberofelements))
 md2=meshrefine(md,full(metric));
 disp(sprintf('      new number of elements:    %i', md2.numberofelements))
Index: /issm/trunk/src/m/model/mesh/meshbamg.m
===================================================================
--- /issm/trunk/src/m/model/mesh/meshbamg.m	(revision 9724)
+++ /issm/trunk/src/m/model/mesh/meshbamg.m	(revision 9725)
@@ -53,5 +53,5 @@
 disp('Initial mesh generation...');
 md=setmesh(md,domainoutline,resolution);
-disp(['Initial mesh, number of elements: ' num2str(md.numberofelements)]);
+disp(['Initial mesh, number of elements: ' num2str(md.mesh.numberofelements)]);
 
 %load velocities 
@@ -98,8 +98,8 @@
 	if ~strcmp(groundeddomain,'N/A'),
 		nodeground=ContourToMesh(md.elements,md.x,md.y,groundeddomain,'node',2);
-		md.nodeonwater=ones(md.numberofnodes,1);
+		md.nodeonwater=ones(md.mesh.numberofvertices,1);
 		md.nodeonwater(find(nodeground))=0;
 	else
-		md.nodeonwater=zeros(md.numberofnodes,1);
+		md.nodeonwater=zeros(md.mesh.numberofvertices,1);
 	end
 
@@ -110,3 +110,3 @@
 end
 	
-disp(['Final mesh, number of elements: ' num2str(md.numberofelements)]);
+disp(['Final mesh, number of elements: ' num2str(md.mesh.numberofelements)]);
Index: /issm/trunk/src/m/model/mesh/meshconvert.m
===================================================================
--- /issm/trunk/src/m/model/mesh/meshconvert.m	(revision 9724)
+++ /issm/trunk/src/m/model/mesh/meshconvert.m	(revision 9725)
@@ -37,11 +37,11 @@
 %Fill in rest of fields:
 md.mesh.dimension=2;
-md.numberofelements=size(md.elements,1);
-md.numberofnodes=length(md.x);
-md.z=zeros(md.numberofnodes,1);
-md.nodeonbed=ones(md.numberofnodes,1);
-md.mask.vertexonwater=zeros(md.numberofnodes,1);
-md.nodeonsurface=ones(md.numberofnodes,1);
-md.elementonbed=ones(md.numberofelements,1);
-md.elementonsurface=ones(md.numberofelements,1);
-md.mesh.vertexonboundary=zeros(md.numberofnodes,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
+md.mesh.numberofelements=size(md.elements,1);
+md.mesh.numberofvertices=length(md.x);
+md.z=zeros(md.mesh.numberofvertices,1);
+md.nodeonbed=ones(md.mesh.numberofvertices,1);
+md.mask.vertexonwater=zeros(md.mesh.numberofvertices,1);
+md.nodeonsurface=ones(md.mesh.numberofvertices,1);
+md.elementonbed=ones(md.mesh.numberofelements,1);
+md.elementonsurface=ones(md.mesh.numberofelements,1);
+md.mesh.vertexonboundary=zeros(md.mesh.numberofvertices,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
Index: /issm/trunk/src/m/model/mesh/meshnodensity.m
===================================================================
--- /issm/trunk/src/m/model/mesh/meshnodensity.m	(revision 9724)
+++ /issm/trunk/src/m/model/mesh/meshnodensity.m	(revision 9725)
@@ -55,15 +55,15 @@
 
 %Fill in rest of fields:
-md.numberofelements=length(md.elements);
-md.numberofnodes=length(md.x);
-md.z=zeros(md.numberofnodes,1);
-md.mesh.vertexonboundary=zeros(md.numberofnodes,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
-md.nodeonbed=ones(md.numberofnodes,1);
-md.nodeonsurface=ones(md.numberofnodes,1);
-md.elementonbed=ones(md.numberofelements,1);
-md.elementonsurface=ones(md.numberofelements,1);
+md.mesh.numberofelements=length(md.elements);
+md.mesh.numberofvertices=length(md.x);
+md.z=zeros(md.mesh.numberofvertices,1);
+md.mesh.vertexonboundary=zeros(md.mesh.numberofvertices,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
+md.nodeonbed=ones(md.mesh.numberofvertices,1);
+md.nodeonsurface=ones(md.mesh.numberofvertices,1);
+md.elementonbed=ones(md.mesh.numberofelements,1);
+md.elementonsurface=ones(md.mesh.numberofelements,1);
 
 %Now, build the connectivity tables for this mesh.
-md.nodeconnectivity=NodeConnectivity(md.elements,md.numberofnodes);
+md.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
 md.elementconnectivity=ElementConnectivity(md.elements,md.nodeconnectivity);
 
Index: /issm/trunk/src/m/model/mesh/meshrefine.m
===================================================================
--- /issm/trunk/src/m/model/mesh/meshrefine.m	(revision 9724)
+++ /issm/trunk/src/m/model/mesh/meshrefine.m	(revision 9725)
@@ -10,5 +10,5 @@
 	error('meshrefine error message');
 end
-if ( (isempty(areas)) |  (length(areas)~=md.numberofelements) | (length(find(isnan(areas))))),
+if ( (isempty(areas)) |  (length(areas)~=md.mesh.numberofelements) | (length(find(isnan(areas))))),
 	meshrefineusage();
 	error('meshrefine error message');
@@ -19,15 +19,15 @@
 
 %Fill in rest of fields:
-md.numberofelements=length(md.elements);
-md.numberofnodes=length(md.x);
-md.z=zeros(md.numberofnodes,1);
-md.mesh.vertexonboundary=zeros(md.numberofnodes,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
-md.nodeonbed=ones(md.numberofnodes,1);
-md.nodeonsurface=ones(md.numberofnodes,1);
-md.elementonbed=ones(md.numberofelements,1);
-md.elementonsurface=ones(md.numberofelements,1);
+md.mesh.numberofelements=length(md.elements);
+md.mesh.numberofvertices=length(md.x);
+md.z=zeros(md.mesh.numberofvertices,1);
+md.mesh.vertexonboundary=zeros(md.mesh.numberofvertices,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
+md.nodeonbed=ones(md.mesh.numberofvertices,1);
+md.nodeonsurface=ones(md.mesh.numberofvertices,1);
+md.elementonbed=ones(md.mesh.numberofelements,1);
+md.elementonsurface=ones(md.mesh.numberofelements,1);
 
 %Now, build the connectivity tables for this mesh.
-md.nodeconnectivity=NodeConnectivity(md.elements,md.numberofnodes);
+md.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
 md.elementconnectivity=ElementConnectivity(md.elements,md.nodeconnectivity);
 
Index: /issm/trunk/src/m/model/mesh/meshyams.m
===================================================================
--- /issm/trunk/src/m/model/mesh/meshyams.m	(revision 9724)
+++ /issm/trunk/src/m/model/mesh/meshyams.m	(revision 9725)
@@ -57,5 +57,5 @@
 	md=meshprocessrifts(md,domainoutline);
 end
-disp(['Initial mesh, number of elements: ' num2str(md.numberofelements)]);
+disp(['Initial mesh, number of elements: ' num2str(md.mesh.numberofelements)]);
 
 %load velocities 
@@ -82,8 +82,8 @@
 	if ~strcmp(groundeddomain,'N/A'),
 		nodeground=ContourToMesh(md.elements,md.x,md.y,groundeddomain,'node',2);
-		md.nodeonwater=ones(md.numberofnodes,1);
+		md.nodeonwater=ones(md.mesh.numberofvertices,1);
 		md.nodeonwater(find(nodeground))=0;
 	else
-		md.nodeonwater=zeros(md.numberofnodes,1);
+		md.nodeonwater=zeros(md.mesh.numberofvertices,1);
 	end
 
@@ -95,5 +95,5 @@
 	%rifts, because the segments are used in YamsCall to freeze the rifts elements during refinement.
 	if md.rifts.numrifts, 
-		md.nodeconnectivity=NodeConnectivity(md.elements,md.numberofnodes);
+		md.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
 		md.elementconnectivity=ElementConnectivity(md.elements,md.nodeconnectivity);
 		md.mesh.segments=findsegments(md);
@@ -103,26 +103,26 @@
 end
 	
-disp(['Final mesh, number of elements: ' num2str(md.numberofelements)]);
+disp(['Final mesh, number of elements: ' num2str(md.mesh.numberofelements)]);
 
 %Now, build the connectivity tables for this mesh.
-md.nodeconnectivity=NodeConnectivity(md.elements,md.numberofnodes);
+md.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
 md.elementconnectivity=ElementConnectivity(md.elements,md.nodeconnectivity);
 
 %recreate segments
 md.mesh.segments=findsegments(md);
-md.mesh.vertexonboundary=zeros(md.numberofnodes,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
+md.mesh.vertexonboundary=zeros(md.mesh.numberofvertices,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
 
 %Fill in rest of fields:
-md.z=zeros(md.numberofnodes,1);
-md.nodeonbed=ones(md.numberofnodes,1);
-md.nodeonsurface=ones(md.numberofnodes,1);
-md.elementonbed=ones(md.numberofelements,1);
-md.elementonsurface=ones(md.numberofelements,1);
+md.z=zeros(md.mesh.numberofvertices,1);
+md.nodeonbed=ones(md.mesh.numberofvertices,1);
+md.nodeonsurface=ones(md.mesh.numberofvertices,1);
+md.elementonbed=ones(md.mesh.numberofelements,1);
+md.elementonsurface=ones(md.mesh.numberofelements,1);
 if ~strcmp(groundeddomain,'N/A'),
 	nodeground=ContourToMesh(md.elements,md.x,md.y,groundeddomain,'node',2);
-	md.nodeonwater=ones(md.numberofnodes,1);
+	md.nodeonwater=ones(md.mesh.numberofvertices,1);
 	md.nodeonwater(find(nodeground))=0;
 else
-	md.nodeonwater=zeros(md.numberofnodes,1);
+	md.nodeonwater=zeros(md.mesh.numberofvertices,1);
 end
 if strcmpi(Names.interp,'node'),
Index: /issm/trunk/src/m/model/mesh/reorder.m
===================================================================
--- /issm/trunk/src/m/model/mesh/reorder.m	(revision 9724)
+++ /issm/trunk/src/m/model/mesh/reorder.m	(revision 9725)
@@ -12,10 +12,10 @@
 
 %reorder elements
-newelements=randperm(md.numberofelements)';
-tnewelements=zeros(md.numberofelements,1);tnewelements(newelements)=[1:md.numberofelements]';
+newelements=randperm(md.mesh.numberofelements)';
+tnewelements=zeros(md.mesh.numberofelements,1);tnewelements(newelements)=[1:md.mesh.numberofelements]';
 
 %reorder nodes
-newnodes=randperm(md.numberofnodes)';
-tnewnodes=zeros(md.numberofnodes,1);tnewnodes(newnodes)=[1:md.numberofnodes]';
+newnodes=randperm(md.mesh.numberofvertices)';
+tnewnodes=zeros(md.mesh.numberofvertices,1);tnewnodes(newnodes)=[1:md.mesh.numberofvertices]';
 
 %update all fields
@@ -25,3 +25,3 @@
 md.y=md.y(newnodes);
 md.z=md.z(newnodes);
-md.mesh.vertexonboundary=zeros(md.numberofnodes,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
+md.mesh.vertexonboundary=zeros(md.mesh.numberofvertices,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
Index: /issm/trunk/src/m/model/mesh/rifts/meshaddrifts.m
===================================================================
--- /issm/trunk/src/m/model/mesh/rifts/meshaddrifts.m	(revision 9724)
+++ /issm/trunk/src/m/model/mesh/rifts/meshaddrifts.m	(revision 9725)
@@ -56,5 +56,5 @@
 	
 	%plug md2 mesh into md mesh: 
-	[md.elements,md.x,md.y,md.z,md.numberofelements,md.numberofnodes,elconv,nodeconv,elconv2,nodeconv2]=meshplug(md.elements,md.x,md.y,md.z,...
+	[md.elements,md.x,md.y,md.z,md.mesh.numberofelements,md.mesh.numberofvertices,elconv,nodeconv,elconv2,nodeconv2]=meshplug(md.elements,md.x,md.y,md.z,...
 								md2.elements,md2.x,md2.y,md2.z,md2.extractednodes,md2.extractedelements,domain_index);
 
@@ -80,12 +80,12 @@
 
 %finish up "a la" mesh.h
-md.mesh.vertexonboundary=zeros(md.numberofnodes,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
-md.nodeonbed=ones(md.numberofnodes,1);
-md.nodeonsurface=ones(md.numberofnodes,1);
-md.elementonbed=ones(md.numberofelements,1);
-md.elementonsurface=ones(md.numberofelements,1);
+md.mesh.vertexonboundary=zeros(md.mesh.numberofvertices,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
+md.nodeonbed=ones(md.mesh.numberofvertices,1);
+md.nodeonsurface=ones(md.mesh.numberofvertices,1);
+md.elementonbed=ones(md.mesh.numberofelements,1);
+md.elementonsurface=ones(md.mesh.numberofelements,1);
 
 %Now, build the connectivity tables for this mesh.
-md.nodeconnectivity=NodeConnectivity(md.elements,md.numberofnodes);
+md.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
 md.elementconnectivity=ElementConnectivity(md.elements,md.nodeconnectivity);
 
Index: /issm/trunk/src/m/model/mesh/rifts/meshprocessoutsiderifts.m
===================================================================
--- /issm/trunk/src/m/model/mesh/rifts/meshprocessoutsiderifts.m	(revision 9724)
+++ /issm/trunk/src/m/model/mesh/rifts/meshprocessoutsiderifts.m	(revision 9725)
@@ -58,5 +58,5 @@
 		md.x=[md.x;md.x(tip)];
 		md.y=[md.y;md.y(tip)];
-		md.numberofnodes=num;
+		md.mesh.numberofvertices=num;
 		
 		%replace tip in elements
@@ -83,12 +83,12 @@
 
 %Fill in rest of fields:
-md.numberofelements=length(md.elements);
-md.numberofnodes=length(md.x);
-md.z=zeros(md.numberofnodes,1);
+md.mesh.numberofelements=length(md.elements);
+md.mesh.numberofvertices=length(md.x);
+md.z=zeros(md.mesh.numberofvertices,1);
 md.mesh.vertexonboundary=zeros(length(md.x),1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
 md.rifts.numrifts=length(md.rifts.riftstruct);
-md.flowequation.element_equation=3*ones(md.numberofelements,1);
-md.nodeonbed=ones(md.numberofnodes,1);
-md.nodeonsurface=ones(md.numberofnodes,1);
-md.elementonbed=ones(md.numberofelements,1);
-md.elementonsurface=ones(md.numberofelements,1);
+md.flowequation.element_equation=3*ones(md.mesh.numberofelements,1);
+md.nodeonbed=ones(md.mesh.numberofvertices,1);
+md.nodeonsurface=ones(md.mesh.numberofvertices,1);
+md.elementonbed=ones(md.mesh.numberofelements,1);
+md.elementonsurface=ones(md.mesh.numberofelements,1);
Index: /issm/trunk/src/m/model/mesh/rifts/meshprocessrifts.m
===================================================================
--- /issm/trunk/src/m/model/mesh/rifts/meshprocessrifts.m	(revision 9724)
+++ /issm/trunk/src/m/model/mesh/rifts/meshprocessrifts.m	(revision 9725)
@@ -31,14 +31,14 @@
 
 %Fill in rest of fields:
-md.numberofelements=length(md.elements);
-md.numberofnodes=length(md.x);
-md.z=zeros(md.numberofnodes,1);
+md.mesh.numberofelements=length(md.elements);
+md.mesh.numberofvertices=length(md.x);
+md.z=zeros(md.mesh.numberofvertices,1);
 md.mesh.vertexonboundary=zeros(length(md.x),1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
 md.rifts.numrifts=length(md.rifts.riftstruct);
-md.flowequation.element_equation=3*ones(md.numberofelements,1);
-md.nodeonbed=ones(md.numberofnodes,1);
-md.nodeonsurface=ones(md.numberofnodes,1);
-md.elementonbed=ones(md.numberofelements,1);
-md.elementonsurface=ones(md.numberofelements,1);
+md.flowequation.element_equation=3*ones(md.mesh.numberofelements,1);
+md.nodeonbed=ones(md.mesh.numberofvertices,1);
+md.nodeonsurface=ones(md.mesh.numberofvertices,1);
+md.elementonbed=ones(md.mesh.numberofelements,1);
+md.elementonsurface=ones(md.mesh.numberofelements,1);
 
 %get coordinates of rift tips
Index: /issm/trunk/src/m/model/mesh/setmesh.m
===================================================================
--- /issm/trunk/src/m/model/mesh/setmesh.m	(revision 9724)
+++ /issm/trunk/src/m/model/mesh/setmesh.m	(revision 9725)
@@ -27,5 +27,5 @@
 
 %Check that mesh was not already run, and warn user: 
-if md.numberofelements~=0,
+if md.mesh.numberofelements~=0,
 	choice=input('This model already has a mesh. Are you sure you want to go ahead? (y/n)','s');
 	if ~strcmp(choice,'y')
@@ -69,15 +69,15 @@
 
 %Fill in rest of fields:
-md.numberofelements=length(md.elements);
-md.numberofnodes=length(md.x);
-md.z=zeros(md.numberofnodes,1);
-md.mesh.vertexonboundary=zeros(md.numberofnodes,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
-md.nodeonbed=ones(md.numberofnodes,1);
-md.nodeonsurface=ones(md.numberofnodes,1);
-md.elementonbed=ones(md.numberofelements,1);
-md.elementonsurface=ones(md.numberofelements,1);
+md.mesh.numberofelements=length(md.elements);
+md.mesh.numberofvertices=length(md.x);
+md.z=zeros(md.mesh.numberofvertices,1);
+md.mesh.vertexonboundary=zeros(md.mesh.numberofvertices,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
+md.nodeonbed=ones(md.mesh.numberofvertices,1);
+md.nodeonsurface=ones(md.mesh.numberofvertices,1);
+md.elementonbed=ones(md.mesh.numberofelements,1);
+md.elementonsurface=ones(md.mesh.numberofelements,1);
 
 %Now, build the connectivity tables for this mesh.
-md.nodeconnectivity=NodeConnectivity(md.elements,md.numberofnodes);
+md.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
 md.elementconnectivity=ElementConnectivity(md.elements,md.nodeconnectivity);
 
Index: /issm/trunk/src/m/model/misfit.m
===================================================================
--- /issm/trunk/src/m/model/misfit.m	(revision 9724)
+++ /issm/trunk/src/m/model/misfit.m	(revision 9725)
@@ -21,8 +21,8 @@
 	x=md.x2d;
 	y=md.y2d;
-	vx=project2d(md,md.initialization.vx,md.numlayers);
-	vy=project2d(md,md.initialization.vy,md.numlayers);
-	vx_obs=project2d(md,md.inversion.vx_obs,md.numlayers);
-	vy_obs=project2d(md,md.inversion.vy_obs,md.numlayers);
+	vx=project2d(md,md.initialization.vx,md.mesh.numberoflayers);
+	vy=project2d(md,md.initialization.vy,md.mesh.numberoflayers);
+	vx_obs=project2d(md,md.inversion.vx_obs,md.mesh.numberoflayers);
+	vy_obs=project2d(md,md.inversion.vy_obs,md.mesh.numberoflayers);
 end
 
Index: /issm/trunk/src/m/model/modelsextract.m
===================================================================
--- /issm/trunk/src/m/model/modelsextract.m	(revision 9724)
+++ /issm/trunk/src/m/model/modelsextract.m	(revision 9725)
@@ -22,8 +22,8 @@
 %2D or 3D?
 if md.mesh.dimension==3,
-	numberofelements=md.numberofelements2d; %this will be forgotten when we get out.
+	numberofelements=md.mesh.numberofelements2d; %this will be forgotten when we get out.
 	flags=project2d(md,flags,1);
 else
-	numberofelements=md.numberofelements;
+	numberofelements=md.mesh.numberofelements;
 end
 
Index: /issm/trunk/src/m/model/outflow.m
===================================================================
--- /issm/trunk/src/m/model/outflow.m	(revision 9724)
+++ /issm/trunk/src/m/model/outflow.m	(revision 9725)
@@ -15,4 +15,4 @@
 VdotN=Vx.*Nx+Vy.*Ny;
 
-flag=zeros(md.numberofnodes,1);
+flag=zeros(md.mesh.numberofvertices,1);
 flag(A(find(VdotN>0)))=1;
Index: /issm/trunk/src/m/model/parameterization/parametercontrolB.m
===================================================================
--- /issm/trunk/src/m/model/parameterization/parametercontrolB.m	(revision 9724)
+++ /issm/trunk/src/m/model/parameterization/parametercontrolB.m	(revision 9725)
@@ -24,7 +24,7 @@
 
 %weights
-weights=getfieldvalue(options,'weights',ones(md.numberofnodes,1));
-if (length(weights)~=md.numberofnodes)
-	md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
+weights=getfieldvalue(options,'weights',ones(md.mesh.numberofvertices,1));
+if (length(weights)~=md.mesh.numberofvertices)
+	md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 else
 	md.inversion.cost_functions_coefficients=weights;
@@ -41,8 +41,8 @@
 
 %cm_min
-cm_min=getfieldvalue(options,'cm_min',paterson(273.15+5)*ones(md.numberofnodes,1));
+cm_min=getfieldvalue(options,'cm_min',paterson(273.15+5)*ones(md.mesh.numberofvertices,1));
 if (length(cm_min)==1)
-	md.inversion.min_parameters=cm_min*ones(md.numberofnodes,1);
-elseif (length(cm_min)==md.numberofnodes)
+	md.inversion.min_parameters=cm_min*ones(md.mesh.numberofvertices,1);
+elseif (length(cm_min)==md.mesh.numberofvertices)
 	md.inversion.min_parameters=cm_min;
 else
@@ -51,8 +51,8 @@
 
 %cm_max
-cm_max=getfieldvalue(options,'cm_max',paterson(273.15-70)*ones(md.numberofnodes,1));
+cm_max=getfieldvalue(options,'cm_max',paterson(273.15-70)*ones(md.mesh.numberofvertices,1));
 if (length(cm_max)==1)
-	md.inversion.max_parameters=cm_max*ones(md.numberofnodes,1);
-elseif (length(cm_max)==md.numberofnodes)
+	md.inversion.max_parameters=cm_max*ones(md.mesh.numberofvertices,1);
+elseif (length(cm_max)==md.mesh.numberofvertices)
 	md.inversion.max_parameters=cm_max;
 else
Index: /issm/trunk/src/m/model/parameterization/parametercontroldrag.m
===================================================================
--- /issm/trunk/src/m/model/parameterization/parametercontroldrag.m	(revision 9724)
+++ /issm/trunk/src/m/model/parameterization/parametercontroldrag.m	(revision 9725)
@@ -24,7 +24,7 @@
 
 %weights
-weights=getfieldvalue(options,'weights',ones(md.numberofnodes,1));
-if (length(weights)~=md.numberofnodes)
-	md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
+weights=getfieldvalue(options,'weights',ones(md.mesh.numberofvertices,1));
+if (length(weights)~=md.mesh.numberofvertices)
+	md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 else
 	md.inversion.cost_functions_coefficients=weights;
@@ -40,8 +40,8 @@
 
 %cm_min
-cm_min=getfieldvalue(options,'cm_min',1*ones(md.numberofnodes,1));
+cm_min=getfieldvalue(options,'cm_min',1*ones(md.mesh.numberofvertices,1));
 if (length(cm_min)==1)
-	md.inversion.min_parameters=cm_min*ones(md.numberofnodes,1);
-elseif (length(cm_min)==md.numberofnodes)
+	md.inversion.min_parameters=cm_min*ones(md.mesh.numberofvertices,1);
+elseif (length(cm_min)==md.mesh.numberofvertices)
 	md.inversion.min_parameters=cm_min;
 else
@@ -50,8 +50,8 @@
 
 %cm_max
-cm_max=getfieldvalue(options,'cm_max',250*ones(md.numberofnodes,1));
+cm_max=getfieldvalue(options,'cm_max',250*ones(md.mesh.numberofvertices,1));
 if (length(cm_max)==1)
-	md.inversion.max_parameters=cm_max*ones(md.numberofnodes,1);
-elseif (length(cm_max)==md.numberofnodes)
+	md.inversion.max_parameters=cm_max*ones(md.mesh.numberofvertices,1);
+elseif (length(cm_max)==md.mesh.numberofvertices)
 	md.inversion.max_parameters=cm_max;
 else
Index: /issm/trunk/src/m/model/partition/AreaAverageOntoPartition.m
===================================================================
--- /issm/trunk/src/m/model/partition/AreaAverageOntoPartition.m	(revision 9724)
+++ /issm/trunk/src/m/model/partition/AreaAverageOntoPartition.m	(revision 9725)
@@ -19,6 +19,6 @@
 	md.x=md.x2d;
 	md.y=md.y2d;
-	md.numberofnodes=md.numberofnodes2d;
-	md.numberofelements=md.numberofelements2d;
+	md.mesh.numberofvertices=md.mesh.numberofvertices2d;
+	md.mesh.numberofelements=md.mesh.numberofelements2d;
 	md.vertex_weight=[];
 	md.nodeconnectivity=[];
Index: /issm/trunk/src/m/model/partition/adjacency.m
===================================================================
--- /issm/trunk/src/m/model/partition/adjacency.m	(revision 9724)
+++ /issm/trunk/src/m/model/partition/adjacency.m	(revision 9725)
@@ -12,5 +12,5 @@
 values=1;
 
-md.qmu.adjacency=sparse(indi,indj,values,md.numberofnodes,md.numberofnodes);
+md.qmu.adjacency=sparse(indi,indj,values,md.mesh.numberofvertices,md.mesh.numberofvertices);
 md.qmu.adjacency=double([md.qmu.adjacency | md.qmu.adjacency']);
 
@@ -19,5 +19,5 @@
 
 %get node connectivity
-md.nodeconnectivity=NodeConnectivity(md.elements,md.numberofnodes);
+md.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
 
 connectivity=md.nodeconnectivity(:,1:end-1);
Index: /issm/trunk/src/m/model/partition/partitioner.m
===================================================================
--- /issm/trunk/src/m/model/partition/partitioner.m	(revision 9724)
+++ /issm/trunk/src/m/model/partition/partitioner.m	(revision 9725)
@@ -37,6 +37,6 @@
 	md.x=md.x2d;
 	md.y=md.y2d;
-	md.numberofnodes=md.numberofnodes2d;
-	md.numberofelements=md.numberofelements2d;
+	md.mesh.numberofvertices=md.mesh.numberofvertices2d;
+	md.mesh.numberofelements=md.mesh.numberofelements2d;
 	md.qmu.vertex_weight=[];
 	md.nodeconnectivity=[];
@@ -85,5 +85,5 @@
 elseif strcmpi(package,'linear'),
 
-	part=1:1:md.numberofnodes;
+	part=1:1:md.mesh.numberofvertices;
 
 elseif strcmpi(package,'metis'),
Index: /issm/trunk/src/m/model/plot/plot_elementnumbering.m
===================================================================
--- /issm/trunk/src/m/model/plot/plot_elementnumbering.m	(revision 9724)
+++ /issm/trunk/src/m/model/plot/plot_elementnumbering.m	(revision 9725)
@@ -11,5 +11,5 @@
 %process data and model
 [x y z elements is2d isplanet]=processmesh(md,[],options);
-[elementnumbers datatype]=processdata(md,[1:md.numberofelements]',options);
+[elementnumbers datatype]=processdata(md,[1:md.mesh.numberofelements]',options);
 
 %plot
Index: /issm/trunk/src/m/model/plot/plot_highlightelements.m
===================================================================
--- /issm/trunk/src/m/model/plot/plot_highlightelements.m	(revision 9724)
+++ /issm/trunk/src/m/model/plot/plot_highlightelements.m	(revision 9725)
@@ -12,5 +12,5 @@
 %process data and model
 [x y z elements is2d isplanet]=processmesh(md,[],options);
-[elementnumbers datatype]=processdata(md,[1:md.numberofelements]',options);
+[elementnumbers datatype]=processdata(md,[1:md.mesh.numberofelements]',options);
 
 %plot
Index: /issm/trunk/src/m/model/plot/plot_highlightnodes.m
===================================================================
--- /issm/trunk/src/m/model/plot/plot_highlightnodes.m	(revision 9724)
+++ /issm/trunk/src/m/model/plot/plot_highlightnodes.m	(revision 9725)
@@ -9,5 +9,5 @@
 %process data and model
 [x y z elements is2d isplanet]=processmesh(md,[],options);
-[nodenumbers datatype]=processdata(md,[1:md.numberofnodes]',options);
+[nodenumbers datatype]=processdata(md,[1:md.mesh.numberofvertices]',options);
 
 %plot
Index: /issm/trunk/src/m/model/plot/plot_nodenumbering.m
===================================================================
--- /issm/trunk/src/m/model/plot/plot_nodenumbering.m	(revision 9724)
+++ /issm/trunk/src/m/model/plot/plot_nodenumbering.m	(revision 9725)
@@ -9,5 +9,5 @@
 %process data and model
 [x y z elements is2d isplanet]=processmesh(md,[],options);
-[nodenumbers datatype]=processdata(md,[1:md.numberofnodes]',options);
+[nodenumbers datatype]=processdata(md,[1:md.mesh.numberofvertices]',options);
 
 %plot
Index: /issm/trunk/src/m/model/plot/plot_overlay.m
===================================================================
--- /issm/trunk/src/m/model/plot/plot_overlay.m	(revision 9724)
+++ /issm/trunk/src/m/model/plot/plot_overlay.m	(revision 9725)
@@ -11,5 +11,5 @@
 if strcmpi(data,'none'),
 	radaronly=1;
-	data=NaN*ones(md.numberofnodes,1);
+	data=NaN*ones(md.mesh.numberofvertices,1);
 	datatype=1;
 else
Index: /issm/trunk/src/m/model/plot/plot_riftfraction.m
===================================================================
--- /issm/trunk/src/m/model/plot/plot_riftfraction.m	(revision 9724)
+++ /issm/trunk/src/m/model/plot/plot_riftfraction.m	(revision 9725)
@@ -24,5 +24,5 @@
 
 %first, build a vector of fractions, over all nodes. 
-fractions=zeros(md.numberofnodes,1);
+fractions=zeros(md.mesh.numberofvertices,1);
 
 %complete the tips.
Index: /issm/trunk/src/m/model/plot/plot_riftrelvel.m
===================================================================
--- /issm/trunk/src/m/model/plot/plot_riftrelvel.m	(revision 9724)
+++ /issm/trunk/src/m/model/plot/plot_riftrelvel.m	(revision 9725)
@@ -8,5 +8,5 @@
 
 %some checks
-if (length(md.initialization.vx)~=md.numberofnodes | length(md.initialization.vy)~=md.numberofnodes),
+if (length(md.initialization.vx)~=md.mesh.numberofvertices | length(md.initialization.vy)~=md.mesh.numberofvertices),
 	error('plot_riftvel error message: vx and vy do not have the right size'),
 end
@@ -21,6 +21,6 @@
 
 %set as NaN all velocities not on rifts
-u=NaN*ones(md.numberofnodes,1);
-v=NaN*ones(md.numberofnodes,1);
+u=NaN*ones(md.mesh.numberofvertices,1);
+v=NaN*ones(md.mesh.numberofvertices,1);
 for i=1:md.rifts.numrifts,
 	penaltypairs=md.rifts.riftstruct(i).penaltypairs(:,[1 2]);
Index: /issm/trunk/src/m/model/plot/plot_riftvel.m
===================================================================
--- /issm/trunk/src/m/model/plot/plot_riftvel.m	(revision 9724)
+++ /issm/trunk/src/m/model/plot/plot_riftvel.m	(revision 9725)
@@ -8,5 +8,5 @@
 
 %some checks
-if (length(md.initialization.vx)~=md.numberofnodes | length(md.initialization.vy)~=md.numberofnodes),
+if (length(md.initialization.vx)~=md.mesh.numberofvertices | length(md.initialization.vy)~=md.mesh.numberofvertices),
 	error('plot_riftvel error message: vx and vy do not have the right size'),
 end
@@ -17,6 +17,6 @@
 
 %set as NaN all velocities not on rifts
-u=NaN*ones(md.numberofnodes,1);
-v=NaN*ones(md.numberofnodes,1);
+u=NaN*ones(md.mesh.numberofvertices,1);
+v=NaN*ones(md.mesh.numberofvertices,1);
 for i=1:md.rifts.numrifts,
 	penaltypairs=md.rifts.riftstruct(i).penaltypairs(:,[1 2]);
Index: /issm/trunk/src/m/model/plot/plot_section.m
===================================================================
--- /issm/trunk/src/m/model/plot/plot_section.m	(revision 9724)
+++ /issm/trunk/src/m/model/plot/plot_section.m	(revision 9725)
@@ -52,5 +52,5 @@
 			resolution=getfieldvalue(options,'resolution');
 		else %Default resolution
-			resolution=[1000 10*md.numlayers];
+			resolution=[1000 10*md.mesh.numberoflayers];
 			disp(['plot_section warning: no resolution specified, use default resolution: [horizontal_resolution vertical_resolution]=[' num2str(resolution)  ']']);
 		end
Index: /issm/trunk/src/m/model/plot/processdata.m
===================================================================
--- /issm/trunk/src/m/model/plot/processdata.m	(revision 9724)
+++ /issm/trunk/src/m/model/plot/processdata.m	(revision 9725)
@@ -58,5 +58,5 @@
 
 	%check length
-	if datasize(1)~=md.numberofnodes & datasize(1)~=md.numberofelements & datasize(1)~=md.numberofnodes*6 & (md.mesh.dimension==3 & ~(datasize(1)==md.numberofelements2d | datasize(1)==md.numberofnodes2d))
+	if datasize(1)~=md.mesh.numberofvertices & datasize(1)~=md.mesh.numberofelements & datasize(1)~=md.mesh.numberofvertices*6 & (md.mesh.dimension==3 & ~(datasize(1)==md.mesh.numberofelements2d | datasize(1)==md.mesh.numberofvertices2d))
 		error('plotmodel error message: data not supported yet');
 	end
@@ -79,24 +79,24 @@
 
 	%treat the case datasize(1)=6*nodes
-	if datasize(1)==6*md.numberofnodes
+	if datasize(1)==6*md.mesh.numberofvertices
 		%keep the only norm of data
-		data1=data(1:6:md.numberofnodes*6,:);
-		data2=data(2:6:md.numberofnodes*6,:);
+		data1=data(1:6:md.mesh.numberofvertices*6,:);
+		data2=data(2:6:md.mesh.numberofvertices*6,:);
 		data=sqrt(data1.^2+data2.^2);
-		datasize(1)=md.numberofnodes;
+		datasize(1)=md.mesh.numberofvertices;
 		%---> go to node data
 	end
 
 	%treat the case datasize(1)=nodes2d
-	if (md.mesh.dimension==3 & datasize(1)==md.numberofnodes2d),
+	if (md.mesh.dimension==3 & datasize(1)==md.mesh.numberofvertices2d),
 		data=project3d(md,data,'node');
-		datasize(1)=md.numberofnodes;
+		datasize(1)=md.mesh.numberofvertices;
 		%---> go to node data
 	end
 
 	%treat the case datasize(1)=nodes2d
-	if (md.mesh.dimension==3 & datasize(1)==md.numberofelements2d),
+	if (md.mesh.dimension==3 & datasize(1)==md.mesh.numberofelements2d),
 		data=project3d(md,data,'element');
-		datasize(1)=md.numberofelements;
+		datasize(1)=md.mesh.numberofelements;
 		%---> go to node data
 	end
@@ -105,5 +105,5 @@
 	if exist(options,'smooth')
 		data=averaging(md,data,getfieldvalue(options,'smooth'));
-		datasize(1)=md.numberofnodes;
+		datasize(1)=md.mesh.numberofvertices;
 		%---> go to node data
 	end
@@ -111,5 +111,5 @@
 
 %element data
-if (datasize(1)==md.numberofelements & datasize(2)==1),
+if (datasize(1)==md.mesh.numberofelements & datasize(2)==1),
 
 	%Initialize datatype if non patch
@@ -122,11 +122,11 @@
 		flags=getfieldvalue(options,'mask');
 		pos=find(~flags);
-		if length(flags)==md.numberofnodes,
+		if length(flags)==md.mesh.numberofvertices,
 			[pos2 dummy]=find(ismember(md.elements,pos));
 			data(pos2,:)=NaN;
-		elseif length(flags)==md.numberofelements
+		elseif length(flags)==md.mesh.numberofelements
 			data(pos,:)=NaN;
 		else
-			disp('plotmodel warning: mask length not supported yet (supported length are md.numberofnodes and md.numberofelements');
+			disp('plotmodel warning: mask length not supported yet (supported length are md.mesh.numberofvertices and md.mesh.numberofelements');
 		end
 	end
@@ -145,5 +145,5 @@
 
 %node data
-if (datasize(1)==md.numberofnodes & datasize(2)==1),
+if (datasize(1)==md.mesh.numberofvertices & datasize(2)==1),
 	datatype=2;
 
@@ -152,10 +152,10 @@
 		flags=getfieldvalue(options,'mask');
 		pos=find(~flags);
-		if length(flags)==md.numberofnodes,
+		if length(flags)==md.mesh.numberofvertices,
 			data(pos,:)=NaN;
-		elseif length(flags)==md.numberofelements
+		elseif length(flags)==md.mesh.numberofelements
 			data(md.elements(pos,:),:)=NaN;
 		else
-			disp('plotmodel warning: mask length not supported yet (supported length are md.numberofnodes and md.numberofelements');
+			disp('plotmodel warning: mask length not supported yet (supported length are md.mesh.numberofvertices and md.mesh.numberofelements');
 		end
 	end
Index: /issm/trunk/src/m/model/plot/processmesh.m
===================================================================
--- /issm/trunk/src/m/model/plot/processmesh.m	(revision 9724)
+++ /issm/trunk/src/m/model/plot/processmesh.m	(revision 9725)
@@ -8,5 +8,5 @@
 
 %some checks
-if md.numberofnodes==md.numberofelements
+if md.mesh.numberofvertices==md.mesh.numberofelements
 	error('plot error message: the number of elements is the same as the number of nodes! cannot plot anything with model/plot, use matlab/plot instead')
 end
@@ -67,14 +67,14 @@
 	%Process Patch
 	if (md.mesh.dimension==2),
-		elements=transpose(reshape(1:3*md.numberofelements,3,md.numberofelements));
-		x=transpose(reshape(md.x(data.index)',1,3*md.numberofelements));
-		y=transpose(reshape(md.y(data.index)',1,3*md.numberofelements));
-		z=zeros(3*md.numberofelements,1);
+		elements=transpose(reshape(1:3*md.mesh.numberofelements,3,md.mesh.numberofelements));
+		x=transpose(reshape(md.x(data.index)',1,3*md.mesh.numberofelements));
+		y=transpose(reshape(md.y(data.index)',1,3*md.mesh.numberofelements));
+		z=zeros(3*md.mesh.numberofelements,1);
 		is2d=1;
 	else
-		elements=transpose(reshape(1:6*md.numberofelements,6,md.numberofelements));
-		x=transpose(reshape(md.x(data.index)',1,6*md.numberofelements));
-		y=transpose(reshape(md.y(data.index)',1,6*md.numberofelements));
-		z=transpose(reshape(md.z(data.index)',1,6*md.numberofelements));
+		elements=transpose(reshape(1:6*md.mesh.numberofelements,6,md.mesh.numberofelements));
+		x=transpose(reshape(md.x(data.index)',1,6*md.mesh.numberofelements));
+		y=transpose(reshape(md.y(data.index)',1,6*md.mesh.numberofelements));
+		z=transpose(reshape(md.z(data.index)',1,6*md.mesh.numberofelements));
 		is2d=0;
 	end
Index: /issm/trunk/src/m/model/process_solve_options.m
===================================================================
--- /issm/trunk/src/m/model/process_solve_options.m	(revision 9724)
+++ /issm/trunk/src/m/model/process_solve_options.m	(revision 9725)
@@ -11,5 +11,5 @@
 if ~ismember(solution_type,[DiagnosticSolutionEnum,PrognosticSolutionEnum,ThermalSolutionEnum,...
 		SteadystateSolutionEnum,TransientSolutionEnum,EnthalpySolutionEnum,...
-		BalancethicknessSolutionEnum,BedSlopeSolutionEnum,SurfaceSlopeSolutionEnum,GroundinglineMigration2DSolutionEnum,HydrologySolutionEnum,FlaimSolutionEnum]),
+		BalancethicknessSolutionEnum,BedSlopeSolutionEnum,SurfaceSlopeSolutionEnum,GroundinglineMigration2dSolutionEnum,HydrologySolutionEnum,FlaimSolutionEnum]),
 	error(['process_solve_options error message: solution_type ' EnumToString(solution_type) ' not supported yet!']);
 end
Index: /issm/trunk/src/m/model/project2d.m
===================================================================
--- /issm/trunk/src/m/model/project2d.m	(revision 9724)
+++ /issm/trunk/src/m/model/project2d.m	(revision 9725)
@@ -20,17 +20,17 @@
 end
 
-if (md3d.dim~=3),
+if (md3d.mesh.dimension~=3),
 	error('wrong model type ... should be ''3d''');
 end
 
-if ((layer<1) | (layer>md3d.numlayers)),
+if ((layer<1) | (layer>md3d.mesh.numberoflayers)),
 	error(['layer must be between 1 and ' num2str(md3d.numlayers)]);
 end
 
-if size(value,1)==md3d.numberofnodes,
-	projection_value=value((layer-1)*md3d.numberofnodes2d+1:layer*md3d.numberofnodes2d,:);
-elseif size(value,1)==md3d.numberofnodes+1,
-	projection_value=[value((layer-1)*md3d.numberofnodes2d+1:layer*md3d.numberofnodes2d,:); value(end,:)];
+if size(value,1)==md3d.mesh.numberofnodes,
+	projection_value=value((layer-1)*md3d.mesh.numberofvertices2d+1:layer*md3d.mesh.numberofvertices2d,:);
+elseif size(value,1)==md3d.mesh.numberofnodes+1,
+	projection_value=[value((layer-1)*md3d.mesh.numberofvertices2d+1:layer*md3d.mesh.numberofvertices2d,:); value(end,:)];
 else
-	projection_value=value((layer-1)*md3d.numberofelements2d+1:layer*md3d.numberofelements2d,:);
+	projection_value=value((layer-1)*md3d.mesh.numberofelements2d+1:layer*md3d.mesh.numberofelements2d,:);
 end
Index: /issm/trunk/src/m/model/project3d.m
===================================================================
--- /issm/trunk/src/m/model/project3d.m	(revision 9724)
+++ /issm/trunk/src/m/model/project3d.m	(revision 9725)
@@ -3,6 +3,6 @@
 %
 %   vertically project a vector from 2d mesh (split in noncoll and coll areas) into a 3d mesh.
-%   This vector can be a node vector of size (md.numberofnodes2d,N/A) or an 
-%   element vector of size (md.numberofelements2d,N/A). 
+%   This vector can be a node vector of size (md.mesh.numberofvertices2d,N/A) or an 
+%   element vector of size (md.mesh.numberofelements2d,N/A). 
 %   arguments: 
 %      'vector': 2d vector
@@ -39,8 +39,8 @@
 
 	%Initialize 3d vector
-	if size(vector2d,1)==md.numberofnodes2d
-		projected_vector=paddingvalue*ones(md.numberofnodes,  size(vector2d,2));
-	elseif size(vector2d,1)==md.numberofnodes2d+1
-		projected_vector=paddingvalue*ones(md.numberofnodes+1,size(vector2d,2));
+	if size(vector2d,1)==md.mesh.numberofvertices2d
+		projected_vector=paddingvalue*ones(md.mesh.numberofvertices,  size(vector2d,2));
+	elseif size(vector2d,1)==md.mesh.numberofvertices2d+1
+		projected_vector=paddingvalue*ones(md.mesh.numberofvertices+1,size(vector2d,2));
 		projected_vector(end,:)=vector2d(end,:);
 		vector2d=vector2d(1:end-1,:);
@@ -51,17 +51,17 @@
 	%Fill in
 	if layer==0,
-		for i=1:md.numlayers,
-			projected_vector(((i-1)*md.numberofnodes2d+1):(i*md.numberofnodes2d),:)=vector2d;
+		for i=1:md.mesh.numberoflayers,
+			projected_vector(((i-1)*md.mesh.numberofvertices2d+1):(i*md.mesh.numberofvertices2d),:)=vector2d;
 		end
 	else
-		projected_vector(((layer-1)*md.numberofnodes2d+1):(layer*md.numberofnodes2d),:)=vector2d;
+		projected_vector(((layer-1)*md.mesh.numberofvertices2d+1):(layer*md.mesh.numberofvertices2d),:)=vector2d;
 	end
 elseif strcmpi(type,'element'),
 
 	%Initialize 3d vector
-	if size(vector2d,1)==md.numberofelements2d
-		projected_vector=paddingvalue*ones(md.numberofelements,  size(vector2d,2));
-	elseif size(vector2d,1)==md.numberofelements2d+1
-		projected_vector=paddingvalue*ones(md.numberofelements+1,size(vector2d,2));
+	if size(vector2d,1)==md.mesh.numberofelements2d
+		projected_vector=paddingvalue*ones(md.mesh.numberofelements,  size(vector2d,2));
+	elseif size(vector2d,1)==md.mesh.numberofelements2d+1
+		projected_vector=paddingvalue*ones(md.mesh.numberofelements+1,size(vector2d,2));
 		projected_vector(end,:)=vector2d(end,:);
 		vector2d=vector2d(1:end-1,:);
@@ -71,10 +71,10 @@
 
 	if layer==0,
-		for i=1:(md.numlayers-1),
-			projected_vector( ((i-1)*md.numberofelements2d+1):(i*md.numberofelements2d),:)=vector2d;
+		for i=1:(md.mesh.numberoflayers-1),
+			projected_vector( ((i-1)*md.mesh.numberofelements2d+1):(i*md.mesh.numberofelements2d),:)=vector2d;
 		end
 
 	else
-		projected_vector( ((layer-1)*md.numberofelements2d+1):(layer*md.numberofelements2d),:)=vector2d;
+		projected_vector( ((layer-1)*md.mesh.numberofelements2d+1):(layer*md.mesh.numberofelements2d),:)=vector2d;
 	end
 else
Index: /issm/trunk/src/m/model/setflowequation.m
===================================================================
--- /issm/trunk/src/m/model/setflowequation.m	(revision 9724)
+++ /issm/trunk/src/m/model/setflowequation.m	(revision 9725)
@@ -68,13 +68,13 @@
 
 %add in model who is who
-md.flowequation.element_equation=zeros(md.numberofelements,1);
+md.flowequation.element_equation=zeros(md.mesh.numberofelements,1);
 
 %1: Hutter elements
-nodeonhutter=zeros(md.numberofnodes,1);
+nodeonhutter=zeros(md.mesh.numberofvertices,1);
 nodeonhutter(md.elements(find(hutterflag),:))=1;
 md.flowequation.element_equation(find(hutterflag))=1;
 
 %2: MacAyeal elements
-nodeonmacayeal=zeros(md.numberofnodes,1);
+nodeonmacayeal=zeros(md.mesh.numberofvertices,1);
 nodeonmacayeal(md.elements(find(macayealflag),:))=1;
 md.flowequation.bordermacayeal=nodeonmacayeal;
@@ -82,5 +82,5 @@
 
 %3: Pattyn elements
-nodeonpattyn=zeros(md.numberofnodes,1);
+nodeonpattyn=zeros(md.mesh.numberofvertices,1);
 nodeonpattyn(md.elements(find(pattynflag),:))=1;
 md.flowequation.borderpattyn=nodeonpattyn;
@@ -90,5 +90,5 @@
 %First modify stokesflag to get rid of elements contrained everywhere (spc + border with pattyn or macayeal)
 if any(stokesflag),
-	nodeonstokes=zeros(md.numberofnodes,1);
+	nodeonstokes=zeros(md.mesh.numberofvertices,1);
 	nodeonstokes(md.elements(find(stokesflag),:))=1;
 	fullspcnodes=double((~isnan(md.diagnostic.spcvx)+~isnan(md.diagnostic.spcvy)+~isnan(md.diagnostic.spcvz))==3 | (nodeonpattyn & nodeonstokes));         %find all the nodes on the boundary of the domain without icefront
@@ -96,5 +96,5 @@
 	stokesflag(find(fullspcelems))=0;
 end
-nodeonstokes=zeros(md.numberofnodes,1);
+nodeonstokes=zeros(md.mesh.numberofvertices,1);
 nodeonstokes(md.elements(find(stokesflag),:))=1;
 md.flowequation.borderstokes=nodeonstokes;
@@ -121,11 +121,11 @@
 %Now take care of the coupling between MacAyeal and Pattyn
 md.diagnostic.vertex_pairing=[];
-nodeonmacayealpattyn=zeros(md.numberofnodes,1);
-nodeonpattynstokes=zeros(md.numberofnodes,1);
-nodeonmacayealstokes=zeros(md.numberofnodes,1);
+nodeonmacayealpattyn=zeros(md.mesh.numberofvertices,1);
+nodeonpattynstokes=zeros(md.mesh.numberofvertices,1);
+nodeonmacayealstokes=zeros(md.mesh.numberofvertices,1);
 if strcmpi(coupling_method,'penalties'),
 	%Create the border nodes between Pattyn and MacAyeal and extrude them
-	numnodes2d=md.numberofnodes2d;
-	numlayers=md.numlayers;
+	numnodes2d=md.mesh.numberofvertices2d;
+	numlayers=md.mesh.numberoflayers;
 	bordernodes2d=find(nodeonpattyn(1:numnodes2d) & nodeonmacayeal(1:numnodes2d)); %Nodes connected to two different types of elements
 
@@ -134,5 +134,5 @@
 		penalties=[];
 		for	i=1:numlayers-1,
-			penalties=[penalties; [bordernodes2d bordernodes2d+md.numberofnodes2d*(i)]];
+			penalties=[penalties; [bordernodes2d bordernodes2d+md.mesh.numberofvertices2d*(i)]];
 		end
 		md.diagnostic.vertex_pairing=penalties;
@@ -147,7 +147,7 @@
 		commonelements(find(pattynflag))=0; %only one layer: the elements previously in macayeal
 		macayealflag(find(commonelements))=0; %these elements are now macayealpattynelements
-		macayealpattynflag=zeros(md.numberofelements,1);
+		macayealpattynflag=zeros(md.mesh.numberofelements,1);
 		macayealpattynflag(find(commonelements))=1;
-		nodeonmacayeal=zeros(md.numberofnodes,1);
+		nodeonmacayeal=zeros(md.mesh.numberofvertices,1);
 		nodeonmacayeal(md.elements(find(macayealflag),:))=1;
 		md.flowequation.bordermacayeal=nodeonmacayeal;
@@ -166,7 +166,7 @@
 		commonelements(find(pattynflag))=0; %only one layer: the elements previously in macayeal
 		stokesflag(find(commonelements))=0; %these elements are now macayealpattynelements
-		pattynstokesflag=zeros(md.numberofelements,1);
+		pattynstokesflag=zeros(md.mesh.numberofelements,1);
 		pattynstokesflag(find(commonelements))=1;
-		nodeonstokes=zeros(md.numberofnodes,1);
+		nodeonstokes=zeros(md.mesh.numberofvertices,1);
 		nodeonstokes(md.elements(find(stokesflag),:))=1;
 		md.flowequation.borderstokes=nodeonstokes;
@@ -176,5 +176,5 @@
 
 		%Now recreate nodeonpattynstokes
-		nodeonpattynstokes=zeros(md.numberofnodes,1);
+		nodeonpattynstokes=zeros(md.mesh.numberofvertices,1);
 		nodeonpattynstokes(md.elements(find(pattynstokesflag),:))=1;
 	elseif any(stokesflag) & any(macayealflag),
@@ -186,7 +186,7 @@
 		commonelements(find(macayealflag))=0; %only one layer: the elements previously in macayeal
 		stokesflag(find(commonelements))=0; %these elements are now macayealmacayealelements
-		macayealstokesflag=zeros(md.numberofelements,1);
+		macayealstokesflag=zeros(md.mesh.numberofelements,1);
 		macayealstokesflag(find(commonelements))=1;
-		nodeonstokes=zeros(md.numberofnodes,1);
+		nodeonstokes=zeros(md.mesh.numberofvertices,1);
 		nodeonstokes(md.elements(find(stokesflag),:))=1;
 		md.flowequation.borderstokes=nodeonstokes;
@@ -196,5 +196,5 @@
 
 		%Now recreate nodeonmacayealstokes
-		nodeonmacayealstokes=zeros(md.numberofnodes,1);
+		nodeonmacayealstokes=zeros(md.mesh.numberofvertices,1);
 		nodeonmacayealstokes(md.elements(find(macayealstokesflag),:))=1;
 	elseif any(stokesflag) & any(hutterflag),
@@ -204,5 +204,5 @@
 
 %Create vertices_type
-md.flowequation.vertex_equation=zeros(md.numberofnodes,1);
+md.flowequation.vertex_equation=zeros(md.mesh.numberofvertices,1);
 pos=find(nodeonhutter);
 md.flowequation.vertex_equation(pos)=1;
Index: /issm/trunk/src/m/model/setmask.m
===================================================================
--- /issm/trunk/src/m/model/setmask.m	(revision 9724)
+++ /issm/trunk/src/m/model/setmask.m	(revision 9725)
@@ -35,6 +35,6 @@
 
 %the order here is important. we choose vertexongroundedice as default on the grounding line.
-vertexonfloatingice=zeros(md.numberofnodes,1);
-vertexongroundedice=zeros(md.numberofnodes,1);
+vertexonfloatingice=zeros(md.mesh.numberofvertices,1);
+vertexongroundedice=zeros(md.mesh.numberofvertices,1);
 vertexongroundedice(md.elements(find(elementongroundedice),:))=1;
 vertexonfloatingice(find(~vertexongroundedice))=1;
@@ -46,4 +46,4 @@
 md.mask.elementongroundedice=elementongroundedice;
 md.mask.vertexongroundedice=vertexongroundedice;
-md.mask.vertexonwater=zeros(md.numberofnodes,1);
-md.mask.elementonwater=zeros(md.numberofelements,1);
+md.mask.vertexonwater=zeros(md.mesh.numberofvertices,1);
+md.mask.elementonwater=zeros(md.mesh.numberofelements,1);
Index: /issm/trunk/src/m/model/setmask2.m
===================================================================
--- /issm/trunk/src/m/model/setmask2.m	(revision 9724)
+++ /issm/trunk/src/m/model/setmask2.m	(revision 9725)
@@ -17,9 +17,9 @@
 	[vertexonland,elementonland]=ContourToMesh(elements,x,y,landname,'element and node',2);
 elseif isfloat(landname),
-	if size(landname,1)~=md.numberofelements,
+	if size(landname,1)~=md.mesh.numberofelements,
 		error('Landname for area must be of same size as number of elements in model');
 	end
 	elementonland=landname;
-	vertexonland=zeros(md.numberofnodes,1);
+	vertexonland=zeros(md.mesh.numberofvertices,1);
 	vertexonland(md.elements(find(elementonland),:))=1;
 else
@@ -28,8 +28,8 @@
 
 %Now, build the connectivity tables for this mesh.
-if size(md.nodeconnectivity,1)~=md.numberofnodes,
-	md.nodeconnectivity=NodeConnectivity(md.elements,md.numberofnodes);
+if size(md.nodeconnectivity,1)~=md.mesh.numberofvertices,
+	md.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
 end
-if size(md.elementconnectivity,1)~=md.numberofelements,
+if size(md.elementconnectivity,1)~=md.mesh.numberofelements,
 	md.elementconnectivity=ElementConnectivity(md.elements,md.nodeconnectivity);
 end
@@ -75,6 +75,6 @@
 %Because groundedice nodes and elements can be included into an floatingice, we need to update. Remember, all the previous 
 %arrays come from domain outlines that can intersect one another: 
-vertexonfloatingice=zeros(md.numberofnodes,1);
-vertexongroundedice=zeros(md.numberofnodes,1);
+vertexonfloatingice=zeros(md.mesh.numberofvertices,1);
+vertexongroundedice=zeros(md.mesh.numberofvertices,1);
 elementonfloatingice=double((elementonfloatingice & ~elementongroundedice));
 elementongroundedice=double(~elementonfloatingice);
Index: /issm/trunk/src/m/model/slope.m
===================================================================
--- /issm/trunk/src/m/model/slope.m	(revision 9724)
+++ /issm/trunk/src/m/model/slope.m	(revision 9725)
@@ -7,11 +7,11 @@
 %load some variables (it is much faster if the variab;es are loaded from md once for all) 
 if (md.mesh.dimension==2),
-	numberofelements=md.numberofelements;
-	numberofnodes=md.numberofnodes;
+	numberofelements=md.mesh.numberofelements;
+	numberofnodes=md.mesh.numberofvertices;
 	index=md.elements;
 	x=md.x; y=md.y;
 else
-	numberofelements=md.numberofelements2d;
-	numberofnodes=md.numberofnodes2d;
+	numberofelements=md.mesh.numberofelements2d;
+	numberofnodes=md.mesh.numberofvertices2d;
 	index=md.elements2d;
 	x=md.x2d; y=md.y2d;
Index: /issm/trunk/src/m/model/solve.m
===================================================================
--- /issm/trunk/src/m/model/solve.m	(revision 9724)
+++ /issm/trunk/src/m/model/solve.m	(revision 9725)
@@ -15,5 +15,5 @@
 %		 - BedSlopeSolutionEnum
 %		 - SurfaceSlopeSolutionEnum
-%		 - GroundinglineMigration2DSolutionEnum
+%		 - GroundinglineMigration2dSolutionEnum
 %		 - HydrologySolutionEnum
 %		 - FlaimSolutionEnum
Index: /issm/trunk/src/m/model/thicknessevolution.m
===================================================================
--- /issm/trunk/src/m/model/thicknessevolution.m	(revision 9724)
+++ /issm/trunk/src/m/model/thicknessevolution.m	(revision 9725)
@@ -9,6 +9,6 @@
 %      dhdt=thicknessevolution(md)
 
-if (length(md.initialization.vx)~=md.numberofnodes)|(length(md.initialization.vy)~=md.numberofnodes)
-	error(['thicknessevolution error message: vx and vy should have a length of ' num2str(md.numberofnodes)])
+if (length(md.initialization.vx)~=md.mesh.numberofvertices)|(length(md.initialization.vy)~=md.mesh.numberofvertices)
+	error(['thicknessevolution error message: vx and vy should have a length of ' num2str(md.mesh.numberofvertices)])
 end
 
Index: /issm/trunk/src/m/model/tres.m
===================================================================
--- /issm/trunk/src/m/model/tres.m	(revision 9724)
+++ /issm/trunk/src/m/model/tres.m	(revision 9725)
@@ -26,5 +26,5 @@
 			md.initialization.vz=PatchToVec(md.results.DiagnosticSolution.Vz);
 		else
-			md.initialization.vz=zeros(md.numberofnodes,1);
+			md.initialization.vz=zeros(md.mesh.numberofvertices,1);
 		end
 	end
Index: /issm/trunk/src/m/planet/planetmixedmesh.m
===================================================================
--- /issm/trunk/src/m/planet/planetmixedmesh.m	(revision 9724)
+++ /issm/trunk/src/m/planet/planetmixedmesh.m	(revision 9725)
@@ -94,6 +94,6 @@
 md.phi=atan2(y,x);
 
-md.numberofnodes=length(md.x);
-md.numberofelements=size(md.elements,1);
+md.mesh.numberofvertices=length(md.x);
+md.mesh.numberofelements=size(md.elements,1);
 
 md.mesh.dimension=3;
Index: /issm/trunk/src/m/planet/planettrimesh.m
===================================================================
--- /issm/trunk/src/m/planet/planettrimesh.m	(revision 9724)
+++ /issm/trunk/src/m/planet/planettrimesh.m	(revision 9725)
@@ -15,6 +15,6 @@
 md.phi=atan2(md.y,md.x);
 
-md.numberofnodes=length(md.x);
-md.numberofelements=size(md.elements,1);
+md.mesh.numberofvertices=length(md.x);
+md.mesh.numberofelements=size(md.elements,1);
 
 md.mesh.dimension=3;
Index: /issm/trunk/src/m/qmu/importancefactors.m
===================================================================
--- /issm/trunk/src/m/qmu/importancefactors.m	(revision 9724)
+++ /issm/trunk/src/m/qmu/importancefactors.m	(revision 9725)
@@ -51,10 +51,10 @@
 
 %weight importancefactors by area
-%if numel(factors)==md.numberofnodes,
+%if numel(factors)==md.mesh.numberofvertices,
 %	%get areas for each vertex.
 %	aire=GetAreas(md.elements,md.x,md.y);
 %	num_elements_by_node=md.nodeconnectivity(:,end);
-%	grid_aire=zeros(md.numberofnodes,1);
-%	for i=1:md.numberofnodes,
+%	grid_aire=zeros(md.mesh.numberofvertices,1);
+%	for i=1:md.mesh.numberofvertices,
 %		for j=1:num_elements_by_node(i),
 %			grid_aire(i)=grid_aire(i)+aire(md.nodeconnectivity(i,j));
Index: /issm/trunk/src/m/solutions/AnalysisConfiguration.m
===================================================================
--- /issm/trunk/src/m/solutions/AnalysisConfiguration.m	(revision 9724)
+++ /issm/trunk/src/m/solutions/AnalysisConfiguration.m	(revision 9725)
@@ -49,5 +49,5 @@
 		analyses=[FlaimAnalysisEnum];
 
-	case GroundinglineMigration2DSolutionEnum,
+	case GroundinglineMigration2dSolutionEnum,
 		numanalyses=0; 
 		analyses=[];
Index: /issm/trunk/src/m/solutions/CorePointerFromSolutionEnum.m
===================================================================
--- /issm/trunk/src/m/solutions/CorePointerFromSolutionEnum.m	(revision 9724)
+++ /issm/trunk/src/m/solutions/CorePointerFromSolutionEnum.m	(revision 9725)
@@ -17,5 +17,5 @@
 	case TransientSolutionEnum,                solutioncore='transient_core';
 	case FlaimSolutionEnum,                    solutioncore='flaim_core';
-	case GroundinglineMigration2DSolutionEnum, solutioncore='DUMMYDUMMY'; %not working in serial mode
+	case GroundinglineMigration2dSolutionEnum, solutioncore='DUMMYDUMMY'; %not working in serial mode
 	case HydrologySolutionEnum,                solutioncore='DUMMYDUMMY'; %not working in serial mode
 	otherwise error('%s%s%s',' solution type: ',EnumToString(solutiontype),' not supported yet!');
Index: /issm/trunk/src/m/solutions/adjointdiagnostic_core.m
===================================================================
--- /issm/trunk/src/m/solutions/adjointdiagnostic_core.m	(revision 9724)
+++ /issm/trunk/src/m/solutions/adjointdiagnostic_core.m	(revision 9725)
@@ -7,5 +7,5 @@
 	%recover parameters common to all solutions
 	isstokes=femmodel.parameters.FlowequationIsstokes;
-	dim=femmodel.parameters.Dim;
+	dim=femmodel.parameters.MeshDimension;
 	control_analysis=femmodel.parameters.InversionIscontrol;
 	solution_type=femmodel.parameters.SolutionType;
Index: /issm/trunk/src/m/solutions/balancethickness_core.m
===================================================================
--- /issm/trunk/src/m/solutions/balancethickness_core.m	(revision 9724)
+++ /issm/trunk/src/m/solutions/balancethickness_core.m	(revision 9725)
@@ -6,5 +6,5 @@
 
 	%recover parameters common to all solutions
-	dim=femmodel.parameters.Dim;
+	dim=femmodel.parameters.MeshDimension;
 	control_analysis=femmodel.parameters.InversionIscontrol;
 	solution_type=femmodel.parameters.SolutionType;
Index: /issm/trunk/src/m/solutions/bedslope_core.m
===================================================================
--- /issm/trunk/src/m/solutions/bedslope_core.m	(revision 9724)
+++ /issm/trunk/src/m/solutions/bedslope_core.m	(revision 9725)
@@ -7,5 +7,5 @@
 
 	%Recover some parameters:
-	dim=femmodel.parameters.Dim;
+	dim=femmodel.parameters.MeshDimension;
 	control_analysis=femmodel.parameters.InversionIscontrol;
 	solution_type=femmodel.parameters.SolutionType;
Index: /issm/trunk/src/m/solutions/control_core.m
===================================================================
--- /issm/trunk/src/m/solutions/control_core.m	(revision 9724)
+++ /issm/trunk/src/m/solutions/control_core.m	(revision 9725)
@@ -17,5 +17,5 @@
 	eps_cm=femmodel.parameters.InversionCostFunctionThreshold;
 	gradient_only=femmodel.parameters.InversionGradientOnly;
-	dim=femmodel.parameters.Dim;
+	dim=femmodel.parameters.MeshDimension;
 	isstokes=femmodel.parameters.FlowequationIsstokes;
 
Index: /issm/trunk/src/m/solutions/diagnostic_core.m
===================================================================
--- /issm/trunk/src/m/solutions/diagnostic_core.m	(revision 9724)
+++ /issm/trunk/src/m/solutions/diagnostic_core.m	(revision 9725)
@@ -11,5 +11,5 @@
 
 	%recover parameters common to all solutions
-	dim=femmodel.parameters.Dim;
+	dim=femmodel.parameters.MeshDimension;
 	ishutter=femmodel.parameters.FlowequationIshutter;
 	ismacayealpattyn=femmodel.parameters.FlowequationIsmacayealpattyn;
Index: /issm/trunk/src/m/solutions/steadystate_core.m
===================================================================
--- /issm/trunk/src/m/solutions/steadystate_core.m	(revision 9724)
+++ /issm/trunk/src/m/solutions/steadystate_core.m	(revision 9725)
@@ -7,5 +7,5 @@
 
 	%recover parameters common to all solutions
-	dim=femmodel.parameters.Dim;
+	dim=femmodel.parameters.MeshDimension;
 	control_analysis=femmodel.parameters.InversionIscontrol;
 	solution_type=femmodel.parameters.SolutionType;
Index: /issm/trunk/src/m/solutions/surfaceslope_core.m
===================================================================
--- /issm/trunk/src/m/solutions/surfaceslope_core.m	(revision 9724)
+++ /issm/trunk/src/m/solutions/surfaceslope_core.m	(revision 9725)
@@ -7,5 +7,5 @@
 
 	%Recover some parameters:
-	dim=femmodel.parameters.Dim;
+	dim=femmodel.parameters.MeshDimension;
 	control_analysis=femmodel.parameters.InversionIscontrol;
 	solution_type=femmodel.parameters.SolutionType;
Index: /issm/trunk/src/m/solutions/transient_core.m
===================================================================
--- /issm/trunk/src/m/solutions/transient_core.m	(revision 9724)
+++ /issm/trunk/src/m/solutions/transient_core.m	(revision 9725)
@@ -6,5 +6,5 @@
 
 	%recover parameters common to all solutions
-	dim=femmodel.parameters.Dim;
+	dim=femmodel.parameters.MeshDimension;
 	ndt=femmodel.parameters.TimesteppingFinalTime;
 	dt=femmodel.parameters.TimesteppingTimeStep;
Index: /issm/trunk/src/m/utils/BC/SetIceSheetBC.m
===================================================================
--- /issm/trunk/src/m/utils/BC/SetIceSheetBC.m	(revision 9724)
+++ /issm/trunk/src/m/utils/BC/SetIceSheetBC.m	(revision 9725)
@@ -9,14 +9,14 @@
 %node on Dirichlet
 pos=find(md.mesh.vertexonboundary);
-md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
-md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
-md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
+md.diagnostic.spcvx=NaN*ones(md.mesh.numberofvertices,1);
+md.diagnostic.spcvy=NaN*ones(md.mesh.numberofvertices,1);
+md.diagnostic.spcvz=NaN*ones(md.mesh.numberofvertices,1);
 md.diagnostic.spcvx(pos)=0;
 md.diagnostic.spcvy(pos)=0;
 md.diagnostic.spcvz(pos)=0;
-md.diagnostic.referential=NaN*ones(md.numberofnodes,6);
+md.diagnostic.referential=NaN*ones(md.mesh.numberofvertices,6);
 
 %Dirichlet Values
-if (length(md.inversion.vx_obs)==md.numberofnodes & length(md.inversion.vy_obs)==md.numberofnodes)
+if (length(md.inversion.vx_obs)==md.mesh.numberofvertices & length(md.inversion.vy_obs)==md.mesh.numberofvertices)
 	disp('      boundary conditions for diagnostic model: spc set as observed velocities');
 	md.diagnostic.spcvx(pos)=md.inversion.vx_obs(pos);
@@ -35,32 +35,32 @@
 %Create zeros basal melting rate and surface mass balance if not specified
 if isnan(md.surfaceforcings.accumulation_rate),
-	md.surfaceforcings.accumulation_rate=zeros(md.numberofnodes,1);
+	md.surfaceforcings.accumulation_rate=zeros(md.mesh.numberofvertices,1);
 	disp('      no surfaceforcings.accumulation_rate specified: values set as zero');
 end
 if isnan(md.surfaceforcings.ablation_rate),
-	md.surfaceforcings.ablation_rate=zeros(md.numberofnodes,1);
+	md.surfaceforcings.ablation_rate=zeros(md.mesh.numberofvertices,1);
 	disp('      no surfaceforcings.ablation_rate specified: values set as zero');
 end
 if isnan(md.surfaceforcings.mass_balance),
-	md.surfaceforcings.mass_balance=zeros(md.numberofnodes,1);
+	md.surfaceforcings.mass_balance=zeros(md.mesh.numberofvertices,1);
 	disp('      no surfaceforcings.mass_balance specified: values set as zero');
 end
 if isnan(md.basalforcings.melting_rate),
-	md.basalforcings.melting_rate=zeros(md.numberofnodes,1);
+	md.basalforcings.melting_rate=zeros(md.mesh.numberofvertices,1);
 	disp('      no basalforcings.melting_rate specified: values set as zero');
 end
 if isnan(md.balancethickness.thickening_rate),
-	md.balancethickness.thickening_rate=zeros(md.numberofnodes,1);
+	md.balancethickness.thickening_rate=zeros(md.mesh.numberofvertices,1);
 	disp('      no balancethickness.thickening_rate specified: values set as zero');
 end
 
-md.prognostic.spcthickness=NaN*ones(md.numberofnodes,1);
-md.balancethickness.spcthickness=NaN*ones(md.numberofnodes,1);
+md.prognostic.spcthickness=NaN*ones(md.mesh.numberofvertices,1);
+md.balancethickness.spcthickness=NaN*ones(md.mesh.numberofvertices,1);
 
-if (length(md.initialization.temperature)==md.numberofnodes),
-	md.thermal.spctemperature=NaN*ones(md.numberofnodes,1);
+if (length(md.initialization.temperature)==md.mesh.numberofvertices),
+	md.thermal.spctemperature=NaN*ones(md.mesh.numberofvertices,1);
 	pos=find(md.nodeonsurface); md.thermal.spctemperature(pos)=md.initialization.temperature(pos); %impose observed temperature on surface
-	if (length(md.basalforcings.geothermalflux)~=md.numberofnodes),
-		md.basalforcings.geothermalflux=50*10^-3*ones(md.numberofnodes,1); %50 mW/m^2
+	if (length(md.basalforcings.geothermalflux)~=md.mesh.numberofvertices),
+		md.basalforcings.geothermalflux=50*10^-3*ones(md.mesh.numberofvertices,1); %50 mW/m^2
 	end
 else
Index: /issm/trunk/src/m/utils/BC/SetIceShelfBC.m
===================================================================
--- /issm/trunk/src/m/utils/BC/SetIceShelfBC.m	(revision 9724)
+++ /issm/trunk/src/m/utils/BC/SetIceShelfBC.m	(revision 9725)
@@ -22,5 +22,5 @@
 	nodeonicefront=double(md.mesh.vertexonboundary & nodeinsideicefront);
 elseif nargin==1,
-	nodeonicefront=zeros(md.numberofnodes,1);
+	nodeonicefront=zeros(md.mesh.numberofvertices,1);
 else
 	help SetIceShelfBC
@@ -28,14 +28,14 @@
 end
 pos=find(md.mesh.vertexonboundary & ~nodeonicefront);
-md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
-md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
-md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
+md.diagnostic.spcvx=NaN*ones(md.mesh.numberofvertices,1);
+md.diagnostic.spcvy=NaN*ones(md.mesh.numberofvertices,1);
+md.diagnostic.spcvz=NaN*ones(md.mesh.numberofvertices,1);
 md.diagnostic.spcvx(pos)=0;
 md.diagnostic.spcvy(pos)=0;
 md.diagnostic.spcvz(pos)=0;
-md.diagnostic.referential=NaN*ones(md.numberofnodes,6);
+md.diagnostic.referential=NaN*ones(md.mesh.numberofvertices,6);
 
 %Dirichlet Values
-if (length(md.inversion.vx_obs)==md.numberofnodes & length(md.inversion.vy_obs)==md.numberofnodes)
+if (length(md.inversion.vx_obs)==md.mesh.numberofvertices & length(md.inversion.vy_obs)==md.mesh.numberofvertices)
 	disp('      boundary conditions for diagnostic model: spc set as observed velocities');
 	md.diagnostic.spcvx(pos)=md.inversion.vx_obs(pos);
@@ -51,8 +51,8 @@
 	pressureload=md.mesh.segments(pos,:);
 elseif md.mesh.dimension==3
-	pressureload_layer1=[md.mesh.segments(pos,1:2)  md.mesh.segments(pos,2)+md.numberofnodes2d  md.mesh.segments(pos,1)+md.numberofnodes2d  md.mesh.segments(pos,3)];
+	pressureload_layer1=[md.mesh.segments(pos,1:2)  md.mesh.segments(pos,2)+md.mesh.numberofvertices2d  md.mesh.segments(pos,1)+md.mesh.numberofvertices2d  md.mesh.segments(pos,3)];
 	pressureload=[];
-	for i=1:md.numlayers-1,
-		pressureload=[pressureload ;pressureload_layer1(:,1:4)+(i-1)*md.numberofnodes2d pressureload_layer1(:,5)+(i-1)*md.numberofelements2d ];
+	for i=1:md.mesh.numberoflayers-1,
+		pressureload=[pressureload ;pressureload_layer1(:,1:4)+(i-1)*md.mesh.numberofvertices2d pressureload_layer1(:,5)+(i-1)*md.mesh.numberofelements2d ];
 	end
 end
@@ -67,32 +67,32 @@
 % and surfaceforcings.mass_balance if not specified
 if isnan(md.surfaceforcings.accumulation_rate),
-	md.surfaceforcings.accumulation_rate=zeros(md.numberofnodes,1);
+	md.surfaceforcings.accumulation_rate=zeros(md.mesh.numberofvertices,1);
 	disp('      no surfaceforcings.accumulation_rate specified: values set as zero');
 end
 if isnan(md.surfaceforcings.ablation_rate),
-	md.surfaceforcings.ablation_rate=zeros(md.numberofnodes,1);
+	md.surfaceforcings.ablation_rate=zeros(md.mesh.numberofvertices,1);
 	disp('      no surfaceforcings.ablation_rate specified: values set as zero');
 end
 if isnan(md.surfaceforcings.mass_balance),
-	md.surfaceforcings.mass_balance=zeros(md.numberofnodes,1);
+	md.surfaceforcings.mass_balance=zeros(md.mesh.numberofvertices,1);
 	disp('      no surfaceforcings.mass_balance specified: values set as zero');
 end
 if isnan(md.basalforcings.melting_rate),
-	md.basalforcings.melting_rate=zeros(md.numberofnodes,1);
+	md.basalforcings.melting_rate=zeros(md.mesh.numberofvertices,1);
 	disp('      no basalforcings.melting_rate specified: values set as zero');
 end
 if isnan(md.balancethickness.thickening_rate),
-	md.balancethickness.thickening_rate=zeros(md.numberofnodes,1);
+	md.balancethickness.thickening_rate=zeros(md.mesh.numberofvertices,1);
 	disp('      no balancethickness.thickening_rate specified: values set as zero');
 end
 
-md.prognostic.spcthickness=NaN*ones(md.numberofnodes,1);
-md.balancethickness.spcthickness=NaN*ones(md.numberofnodes,1);
+md.prognostic.spcthickness=NaN*ones(md.mesh.numberofvertices,1);
+md.balancethickness.spcthickness=NaN*ones(md.mesh.numberofvertices,1);
 
-if (length(md.initialization.temperature)==md.numberofnodes),
-	md.thermal.spctemperature=NaN*ones(md.numberofnodes,1);
+if (length(md.initialization.temperature)==md.mesh.numberofvertices),
+	md.thermal.spctemperature=NaN*ones(md.mesh.numberofvertices,1);
 	pos=find(md.nodeonsurface); md.thermal.spctemperature(pos)=md.initialization.temperature(pos); %impose observed temperature on surface
-	if (length(md.basalforcings.geothermalflux)~=md.numberofnodes),
-		md.basalforcings.geothermalflux=zeros(md.numberofnodes,1);
+	if (length(md.basalforcings.geothermalflux)~=md.mesh.numberofvertices),
+		md.basalforcings.geothermalflux=zeros(md.mesh.numberofvertices,1);
 	end
 else
Index: /issm/trunk/src/m/utils/BC/SetMarineIceSheetBC.m
===================================================================
--- /issm/trunk/src/m/utils/BC/SetMarineIceSheetBC.m	(revision 9724)
+++ /issm/trunk/src/m/utils/BC/SetMarineIceSheetBC.m	(revision 9725)
@@ -27,5 +27,5 @@
 else
 	%Guess where the ice front is
-	vertexonfloatingice=zeros(md.numberofnodes,1);
+	vertexonfloatingice=zeros(md.mesh.numberofvertices,1);
 	vertexonfloatingice(md.elements(find(md.mask.elementonfloatingice),:))=1;
 	vertexonicefront=double(md.mesh.vertexonboundary & vertexonfloatingice);
@@ -35,14 +35,14 @@
 	warning('SetMarineIceSheetBC warning: ice front all around the glacier, no dirichlet found. Dirichlet must be added manually')
 end
-md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
-md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
-md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
+md.diagnostic.spcvx=NaN*ones(md.mesh.numberofvertices,1);
+md.diagnostic.spcvy=NaN*ones(md.mesh.numberofvertices,1);
+md.diagnostic.spcvz=NaN*ones(md.mesh.numberofvertices,1);
 md.diagnostic.spcvx(pos)=0;
 md.diagnostic.spcvy(pos)=0;
 md.diagnostic.spcvz(pos)=0;
-md.diagnostic.referential=NaN*ones(md.numberofnodes,6);
+md.diagnostic.referential=NaN*ones(md.mesh.numberofvertices,6);
 
 %Dirichlet Values
-if (length(md.inversion.vx_obs)==md.numberofnodes & length(md.inversion.vy_obs)==md.numberofnodes)
+if (length(md.inversion.vx_obs)==md.mesh.numberofvertices & length(md.inversion.vy_obs)==md.mesh.numberofvertices)
 	disp('      boundary conditions for diagnostic model: spc set as observed velocities');
 	md.diagnostic.spcvx(pos)=md.inversion.vx_obs(pos);
@@ -52,5 +52,5 @@
 end
 
-md.hydrology.spcwatercolumn=zeros(md.numberofnodes,2);
+md.hydrology.spcwatercolumn=zeros(md.mesh.numberofvertices,2);
 pos=find(md.mesh.vertexonboundary); 
 md.hydrology.spcwatercolumn(pos,1)=1;
@@ -61,8 +61,8 @@
 	pressureload=md.mesh.segments(pos,:);
 elseif md.mesh.dimension==3
-	pressureload_layer1=[md.mesh.segments(pos,1:2)  md.mesh.segments(pos,2)+md.numberofnodes2d  md.mesh.segments(pos,1)+md.numberofnodes2d  md.mesh.segments(pos,3)];
+	pressureload_layer1=[md.mesh.segments(pos,1:2)  md.mesh.segments(pos,2)+md.mesh.numberofvertices2d  md.mesh.segments(pos,1)+md.mesh.numberofvertices2d  md.mesh.segments(pos,3)];
 	pressureload=[];
-	for i=1:md.numlayers-1,
-		pressureload=[pressureload ;pressureload_layer1(:,1:4)+(i-1)*md.numberofnodes2d pressureload_layer1(:,5)+(i-1)*md.numberofelements2d ];
+	for i=1:md.mesh.numberoflayers-1,
+		pressureload=[pressureload ;pressureload_layer1(:,1:4)+(i-1)*md.mesh.numberofvertices2d pressureload_layer1(:,5)+(i-1)*md.mesh.numberofelements2d ];
 	end
 end
@@ -78,32 +78,32 @@
 % and surfaceforcings.mass_balance if not specified
 if isnan(md.surfaceforcings.accumulation_rate),
-	md.surfaceforcings.accumulation_rate=zeros(md.numberofnodes,1);
+	md.surfaceforcings.accumulation_rate=zeros(md.mesh.numberofvertices,1);
 	disp('      no surfaceforcings.accumulation_rate specified: values set as zero');
 end
 if isnan(md.surfaceforcings.ablation_rate),
-	md.surfaceforcings.ablation_rate=zeros(md.numberofnodes,1);
+	md.surfaceforcings.ablation_rate=zeros(md.mesh.numberofvertices,1);
 	disp('      no surfaceforcings.ablation_rate specified: values set as zero');
 end
 if isnan(md.surfaceforcings.mass_balance),
-	md.surfaceforcings.mass_balance=zeros(md.numberofnodes,1);
+	md.surfaceforcings.mass_balance=zeros(md.mesh.numberofvertices,1);
 	disp('      no surfaceforcings.mass_balance specified: values set as zero');
 end
 if isnan(md.basalforcings.melting_rate),
-	md.basalforcings.melting_rate=zeros(md.numberofnodes,1);
+	md.basalforcings.melting_rate=zeros(md.mesh.numberofvertices,1);
 	disp('      no basalforcings.melting_rate specified: values set as zero');
 end
 if isnan(md.balancethickness.thickening_rate),
-	md.balancethickness.thickening_rate=zeros(md.numberofnodes,1);
+	md.balancethickness.thickening_rate=zeros(md.mesh.numberofvertices,1);
 	disp('      no balancethickness.thickening_rate specified: values set as zero');
 end
 
-md.prognostic.spcthickness=NaN*ones(md.numberofnodes,1);
-md.balancethickness.spcthickness=NaN*ones(md.numberofnodes,1);
+md.prognostic.spcthickness=NaN*ones(md.mesh.numberofvertices,1);
+md.balancethickness.spcthickness=NaN*ones(md.mesh.numberofvertices,1);
 
-if (length(md.initialization.temperature)==md.numberofnodes),
-	md.thermal.spctemperature=NaN*ones(md.numberofnodes,1);
+if (length(md.initialization.temperature)==md.mesh.numberofvertices),
+	md.thermal.spctemperature=NaN*ones(md.mesh.numberofvertices,1);
 	pos=find(md.nodeonsurface); md.thermal.spctemperature(pos)=md.initialization.temperature(pos); %impose observed temperature on surface
-	if (length(md.basalforcings.geothermalflux)~=md.numberofnodes),
-		md.basalforcings.geothermalflux=zeros(md.numberofnodes,1);
+	if (length(md.basalforcings.geothermalflux)~=md.mesh.numberofvertices),
+		md.basalforcings.geothermalflux=zeros(md.mesh.numberofvertices,1);
 		md.basalforcings.geothermalflux(find(md.mask.vertexongroundedice))=50*10^-3; %50mW/m2
 	end
Index: /issm/trunk/src/m/utils/Geometry/FlagElements.m
===================================================================
--- /issm/trunk/src/m/utils/Geometry/FlagElements.m	(revision 9724)
+++ /issm/trunk/src/m/utils/Geometry/FlagElements.m	(revision 9725)
@@ -16,8 +16,8 @@
 	if ischar(region),
 		if isempty(region),
-			flag=zeros(md.numberofelements,1);
+			flag=zeros(md.mesh.numberofelements,1);
 			invert=0;
 		elseif strcmpi(region,'all')
-			flag=ones(md.numberofelements,1);
+			flag=ones(md.mesh.numberofelements,1);
 			invert=0;
 		else
@@ -44,5 +44,5 @@
 		end
 	elseif isfloat(region) | islogical(region),
-		if size(region,1)~=md.numberofelements,
+		if size(region,1)~=md.mesh.numberofelements,
 			help FlagElements
 			error('Flaglist for region must be of same size as number of elements in model');
Index: /issm/trunk/src/m/utils/Mesh/BamgCall.m
===================================================================
--- /issm/trunk/src/m/utils/Mesh/BamgCall.m	(revision 9724)
+++ /issm/trunk/src/m/utils/Mesh/BamgCall.m	(revision 9725)
@@ -25,5 +25,5 @@
 %Compute metric
 t1=clock; fprintf('%s','      computing metric...');
-if length(md.nodeonwater)==md.numberofnodes,
+if length(md.nodeonwater)==md.mesh.numberofvertices,
 	pos=find(md.nodeonwater);
 else
@@ -36,5 +36,5 @@
 t1=clock; fprintf('%s','      writing initial mesh files...');
 fid=fopen('carre0.met','w');
-fprintf(fid,'%i %i\n',md.numberofnodes,3);
+fprintf(fid,'%i %i\n',md.mesh.numberofvertices,3);
 fprintf(fid,'%i %i %i\n',metric');
 fclose(fid);
@@ -49,11 +49,11 @@
 
 %Vertices
-fprintf(fid,'\n%s\n%i\n\n','Vertices',md.numberofnodes);
-fprintf(fid,'%8g %8g %i\n',[md.x md.y ones(md.numberofnodes,1)]');
+fprintf(fid,'\n%s\n%i\n\n','Vertices',md.mesh.numberofvertices);
+fprintf(fid,'%8g %8g %i\n',[md.x md.y ones(md.mesh.numberofvertices,1)]');
 
 %Triangles
-fprintf(fid,'\n\n%s\n%i\n\n','Triangles',md.numberofelements);
-fprintf(fid,'%i %i %i %i\n',[md.elements ones(md.numberofelements,1)]');
-numberofelements1=md.numberofelements;
+fprintf(fid,'\n\n%s\n%i\n\n','Triangles',md.mesh.numberofelements);
+fprintf(fid,'%i %i %i %i\n',[md.elements ones(md.mesh.numberofelements,1)]');
+numberofelements1=md.mesh.numberofelements;
 
 %close
@@ -72,7 +72,7 @@
 md.z=zeros(A.nods,1);
 md.elements=A.index;
-md.numberofnodes=A.nods;
-md.numberofelements=A.nels;
-numberofelements2=md.numberofelements;
+md.mesh.numberofvertices=A.nods;
+md.mesh.numberofelements=A.nels;
+numberofelements2=md.mesh.numberofelements;
 t2=clock;fprintf('%s\n\n',[' done (' num2str(etime(t2,t1)) ' seconds)']);
 
Index: /issm/trunk/src/m/utils/Mesh/BamgCallFromMetric.m
===================================================================
--- /issm/trunk/src/m/utils/Mesh/BamgCallFromMetric.m	(revision 9724)
+++ /issm/trunk/src/m/utils/Mesh/BamgCallFromMetric.m	(revision 9725)
@@ -17,5 +17,5 @@
 t1=clock; fprintf('%s','      writing initial mesh files...');
 fid=fopen('carre0.met','w');
-fprintf(fid,'%i %i\n',md.numberofnodes,3);
+fprintf(fid,'%i %i\n',md.mesh.numberofvertices,3);
 fprintf(fid,'%i %i %i\n',metric');
 fclose(fid);
@@ -30,11 +30,11 @@
 
 %Vertices
-fprintf(fid,'\n%s\n%i\n\n','Vertices',md.numberofnodes);
-fprintf(fid,'%8g %8g %i\n',[md.x md.y ones(md.numberofnodes,1)]');
+fprintf(fid,'\n%s\n%i\n\n','Vertices',md.mesh.numberofvertices);
+fprintf(fid,'%8g %8g %i\n',[md.x md.y ones(md.mesh.numberofvertices,1)]');
 
 %Triangles
-fprintf(fid,'\n\n%s\n%i\n\n','Triangles',md.numberofelements);
-fprintf(fid,'%i %i %i %i\n',[md.elements ones(md.numberofelements,1)]');
-numberofelements1=md.numberofelements;
+fprintf(fid,'\n\n%s\n%i\n\n','Triangles',md.mesh.numberofelements);
+fprintf(fid,'%i %i %i %i\n',[md.elements ones(md.mesh.numberofelements,1)]');
+numberofelements1=md.mesh.numberofelements;
 
 %close
@@ -53,7 +53,7 @@
 md.z=zeros(A.nods,1);
 md.elements=A.index;
-md.numberofnodes=A.nods;
-md.numberofelements=A.nels;
-numberofelements2=md.numberofelements;
+md.mesh.numberofvertices=A.nods;
+md.mesh.numberofelements=A.nels;
+numberofelements2=md.mesh.numberofelements;
 t2=clock;fprintf('%s\n\n',[' done (' num2str(etime(t2,t1)) ' seconds)']);
 
Index: /issm/trunk/src/m/utils/Mesh/MeshQuality.m
===================================================================
--- /issm/trunk/src/m/utils/Mesh/MeshQuality.m	(revision 9724)
+++ /issm/trunk/src/m/utils/Mesh/MeshQuality.m	(revision 9725)
@@ -17,5 +17,5 @@
 
 %Compute metric
-if length(md.nodeonwater)==md.numberofnodes,
+if length(md.nodeonwater)==md.mesh.numberofvertices,
 	pos=find(md.nodeonwater);
 else
@@ -60,5 +60,5 @@
 lambda1=min(max(abs(lambda1)*scale/epsilon,1/hmax^2),1/hmin^2);
 lambda2=min(max(abs(lambda2)*scale/epsilon,1/hmax^2),1/hmin^2);
-if length(md.nodeonwater)==md.numberofnodes;
+if length(md.nodeonwater)==md.mesh.numberofvertices;
 	pos=find(md.nodeonwater);
 	lambda1(pos)=0;
Index: /issm/trunk/src/m/utils/Mesh/YamsCall.m
===================================================================
--- /issm/trunk/src/m/utils/Mesh/YamsCall.m	(revision 9724)
+++ /issm/trunk/src/m/utils/Mesh/YamsCall.m	(revision 9725)
@@ -25,5 +25,5 @@
 %Compute metric
 t1=clock; fprintf('%s','      computing metric...');
-if length(md.nodeonwater)==md.numberofnodes,
+if length(md.nodeonwater)==md.mesh.numberofvertices,
 	pos=find(md.nodeonwater);
 else
@@ -46,11 +46,11 @@
 
 %Vertices
-fprintf(fid,'\n%s\n%i\n\n','Vertices',md.numberofnodes);
-fprintf(fid,'%8g %8g %i\n',[md.x md.y zeros(md.numberofnodes,1)]');
+fprintf(fid,'\n%s\n%i\n\n','Vertices',md.mesh.numberofvertices);
+fprintf(fid,'%8g %8g %i\n',[md.x md.y zeros(md.mesh.numberofvertices,1)]');
 
 %Triangles
-fprintf(fid,'\n\n%s\n%i\n\n','Triangles',md.numberofelements);
-fprintf(fid,'%i %i %i %i\n',[md.elements zeros(md.numberofelements,1)]');
-numberofelements1=md.numberofelements;
+fprintf(fid,'\n\n%s\n%i\n\n','Triangles',md.mesh.numberofelements);
+fprintf(fid,'%i %i %i %i\n',[md.elements zeros(md.mesh.numberofelements,1)]');
+numberofelements1=md.mesh.numberofelements;
 	
 %Deal with rifts
@@ -92,7 +92,7 @@
 md.z=zeros(size(Coor,1),1);
 md.elements=Tria;
-md.numberofnodes=size(Coor,1);
-md.numberofelements=size(Tria,1);
-numberofelements2=md.numberofelements;
+md.mesh.numberofvertices=size(Coor,1);
+md.mesh.numberofelements=size(Tria,1);
+numberofelements2=md.mesh.numberofelements;
 t2=clock;fprintf('%s\n\n',[' done (' num2str(etime(t2,t1)) ' seconds)']);
 
Index: /issm/trunk/src/m/utils/Mesh/argusmesh.m
===================================================================
--- /issm/trunk/src/m/utils/Mesh/argusmesh.m	(revision 9724)
+++ /issm/trunk/src/m/utils/Mesh/argusmesh.m	(revision 9725)
@@ -81,10 +81,10 @@
 md.y=y;
 md.z=z;
-md.numberofnodes=size(md.x,1);
-md.numberofelements=size(md.elements,1);
-md.nodeonbed=ones(md.numberofnodes,1);
-md.nodeonsurface=ones(md.numberofnodes,1);
-md.elementonbed=ones(md.numberofelements,1);
-md.elementonsurface=ones(md.numberofelements,1);
+md.mesh.numberofvertices=size(md.x,1);
+md.mesh.numberofelements=size(md.elements,1);
+md.nodeonbed=ones(md.mesh.numberofvertices,1);
+md.nodeonsurface=ones(md.mesh.numberofvertices,1);
+md.elementonbed=ones(md.mesh.numberofelements,1);
+md.elementonsurface=ones(md.mesh.numberofelements,1);
 md.mesh.dimension=2;
 md=addnote(md,notes);
@@ -92,5 +92,5 @@
 %Add segments and nodes on boundary
 md.mesh.segments=findsegments(md);
-md.mesh.vertexonboundary=zeros(md.numberofnodes,1);
+md.mesh.vertexonboundary=zeros(md.mesh.numberofvertices,1);
 md.mesh.vertexonboundary(md.mesh.segments(:,1))=1;
 md.mesh.vertexonboundary(md.mesh.segments(:,2))=1;
Index: /issm/trunk/src/m/utils/Mesh/squaremesh.m
===================================================================
--- /issm/trunk/src/m/utils/Mesh/squaremesh.m	(revision 9724)
+++ /issm/trunk/src/m/utils/Mesh/squaremesh.m	(revision 9725)
@@ -59,5 +59,5 @@
 md.y=y;
 md.z=zeros(nods,1);
-md.numberofnodes=nods;
+md.mesh.numberofvertices=nods;
 md.mesh.vertexonboundary=zeros(nods,1);md.mesh.vertexonboundary(segments(:,1:2))=1;
 md.nodeonbed=ones(nods,1);
@@ -67,10 +67,10 @@
 md.elements=index;
 md.mesh.segments=segments;
-md.numberofelements=nel;
+md.mesh.numberofelements=nel;
 md.elementonbed=ones(nel,1);
 md.elementonsurface=ones(nel,1);
 
 %Now, build the connectivity tables for this mesh.
-md.nodeconnectivity=NodeConnectivity(md.elements,md.numberofnodes);
+md.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
 md.elementconnectivity=ElementConnectivity(md.elements,md.nodeconnectivity);
 
Index: /issm/trunk/src/m/utils/Numerics/cfl_step.m
===================================================================
--- /issm/trunk/src/m/utils/Numerics/cfl_step.m	(revision 9724)
+++ /issm/trunk/src/m/utils/Numerics/cfl_step.m	(revision 9725)
@@ -11,6 +11,6 @@
 
 %Check length of velocities 
-if size(vx,1)~=md.numberofnodes & size(vy,1)~=md.numberofnodes,
-	error('timestpes error message: size of velocity components must be the same as md.numberofnodes');
+if size(vx,1)~=md.mesh.numberofvertices & size(vy,1)~=md.mesh.numberofvertices,
+	error('timestpes error message: size of velocity components must be the same as md.mesh.numberofvertices');
 end
 
Index: /issm/trunk/template
===================================================================
--- /issm/trunk/template	(revision 9724)
+++ /issm/trunk/template	(revision 9725)
@@ -6,8 +6,4 @@
 	  z
 	  elements 
-	  dim -> rename dimension
-	  numlayers -> rename numberoflayers
-	  numberofelements
-	  numberofnodes -> rename numberofvertices as well as nodeon...
 	  edges
 
@@ -17,6 +13,4 @@
 	  lowernodes
 
-	  numberofelements2d
-	  numberofnodes2d
 	  elements2d
 	  x2d
Index: /issm/trunk/test/Miscellaneous/Bump/Bump.par
===================================================================
--- /issm/trunk/test/Miscellaneous/Bump/Bump.par	(revision 9724)
+++ /issm/trunk/test/Miscellaneous/Bump/Bump.par	(revision 9725)
@@ -14,20 +14,20 @@
 
 md.drag_type=2; %0 none 1 plastic 2 viscous
-md.drag_coefficient=30*ones(md.numberofnodes,1); %q=1.
+md.drag_coefficient=30*ones(md.mesh.numberofvertices,1); %q=1.
 %Take care of iceshelves: no basal drag
 pos=find(md.mask.elementonfloatingice);
 md.drag_coefficient(md.elements(pos,:))=0;
-md.drag_p=ones(md.numberofelements,1);
-md.drag_q=ones(md.numberofelements,1);
+md.drag_p=ones(md.mesh.numberofelements,1);
+md.drag_q=ones(md.mesh.numberofelements,1);
 
-md.observed_temperature=(273-20)*ones(md.numberofnodes,1);
+md.observed_temperature=(273-20)*ones(md.mesh.numberofvertices,1);
 
 md.materials.rheology_B=paterson(md.observed_temperature);
-md.materials.rheology_n=3*ones(md.numberofelements,1);
+md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
 
 %Deal with boundary conditions:
 md=SetIceSheetBC(md);
-md.diagnostic.spcvx=zeros(md.numberofnodes,1);
-md.diagnostic.spcvy=200*ones(md.numberofnodes,1);
+md.diagnostic.spcvx=zeros(md.mesh.numberofvertices,1);
+md.diagnostic.spcvy=200*ones(md.mesh.numberofvertices,1);
 
 %Parallel options
Index: /issm/trunk/test/Miscellaneous/GJM_test1/SquareShelf.par
===================================================================
--- /issm/trunk/test/Miscellaneous/GJM_test1/SquareShelf.par	(revision 9724)
+++ /issm/trunk/test/Miscellaneous/GJM_test1/SquareShelf.par	(revision 9725)
@@ -11,7 +11,7 @@
 
 %Materials
-md.observed_temperature=(273-20)*ones(md.numberofnodes,1);
+md.observed_temperature=(273-20)*ones(md.mesh.numberofvertices,1);
 md.materials.rheology_B=paterson(md.observed_temperature);
-md.materials.rheology_n=3*ones(md.numberofelements,1);
+md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
 md.initialization.temperature=md.observed_temperature;
 
@@ -19,8 +19,8 @@
 pos=find(md.mask.elementonfloatingice);
 md.drag_type=2;
-md.drag_coefficient=20*ones(md.numberofnodes,1);
+md.drag_coefficient=20*ones(md.mesh.numberofvertices,1);
 md.drag_coefficient(md.elements(pos,:))=0;
-md.drag_p=ones(md.numberofelements,1);
-md.drag_q=ones(md.numberofelements,1);
+md.drag_p=ones(md.mesh.numberofelements,1);
+md.drag_q=ones(md.mesh.numberofelements,1);
 
 %Numerical parameters
Index: /issm/trunk/test/Miscellaneous/connectivity/Square.par
===================================================================
--- /issm/trunk/test/Miscellaneous/connectivity/Square.par	(revision 9724)
+++ /issm/trunk/test/Miscellaneous/connectivity/Square.par	(revision 9725)
@@ -16,16 +16,16 @@
 
 md.drag_type=2; %0 none 1 plastic 2 viscous
-md.drag_coefficient=200*ones(md.numberofnodes,1); %q=1.
+md.drag_coefficient=200*ones(md.mesh.numberofvertices,1); %q=1.
 %Take care of iceshelves: no basal drag
 pos=find(md.mask.elementonfloatingice);
 md.drag_coefficient(md.elements(pos,:))=0;
-md.drag_p=ones(md.numberofelements,1);
-md.drag_q=ones(md.numberofelements,1);
+md.drag_p=ones(md.mesh.numberofelements,1);
+md.drag_q=ones(md.mesh.numberofelements,1);
 md.viscosity_overshoot=0.3;
 
-md.observed_temperature=(273-20)*ones(md.numberofnodes,1);
+md.observed_temperature=(273-20)*ones(md.mesh.numberofvertices,1);
 
 md.materials.rheology_B=paterson(md.observed_temperature);
-md.materials.rheology_n=3*ones(md.numberofelements,1);
+md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
 
 %Deal with boundary conditions:
Index: /issm/trunk/test/Miscellaneous/connectivity/runme.m
===================================================================
--- /issm/trunk/test/Miscellaneous/connectivity/runme.m	(revision 9724)
+++ /issm/trunk/test/Miscellaneous/connectivity/runme.m	(revision 9725)
@@ -60,5 +60,5 @@
 
 	end
-	numelements(i)=md.numberofelements;
+	numelements(i)=md.mesh.numberofelements;
 end
 
Index: /issm/trunk/test/NightlyRun/test1101.m
===================================================================
--- /issm/trunk/test/NightlyRun/test1101.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test1101.m	(revision 9725)
@@ -21,7 +21,7 @@
 
 	%Create dirichlet on the bed only
-	md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
-	md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
-	md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
+	md.diagnostic.spcvx=NaN*ones(md.mesh.numberofvertices,1);
+	md.diagnostic.spcvy=NaN*ones(md.mesh.numberofvertices,1);
+	md.diagnostic.spcvz=NaN*ones(md.mesh.numberofvertices,1);
 
 	pos=find(md.nodeonbed);
@@ -47,9 +47,9 @@
 	vz=PatchToVec(md.results.DiagnosticSolution.Vz);
 	results{i}=md.results.DiagnosticSolution;
-	minvx(i)=min(vx(end-md.numberofnodes2d+1:end));
-	maxvx(i)=max(vx(end-md.numberofnodes2d+1:end));
+	minvx(i)=min(vx(end-md.mesh.numberofvertices2d+1:end));
+	maxvx(i)=max(vx(end-md.mesh.numberofvertices2d+1:end));
 
 	%Now plot vx, vy, vz and vx on a cross section
-	plotmodel(md,'data',vx,'layer#all',md.numlayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km')
+	plotmodel(md,'data',vx,'layer#all',md.mesh.numberoflayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km')
 	if printingflag, 
 		set(gcf,'Color','w')
@@ -57,5 +57,5 @@
 		system(['mv ismipapattynvx' num2str(L) '.png ' ISSM_DIR '/website/doc_pdf/validation/Images/ISMIP/TestA ']);
 	end
-	plotmodel(md,'data',vy,'layer#all',md.numlayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km')
+	plotmodel(md,'data',vy,'layer#all',md.mesh.numberoflayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km')
 	if printingflag, 
 		set(gcf,'Color','w')
@@ -63,5 +63,5 @@
 		system(['mv ismipapattynvy' num2str(L) '.png ' ISSM_DIR '/website/doc_pdf/validation/Images/ISMIP/TestA ']);
 	end
-	plotmodel(md,'data',vz,'layer#all',md.numlayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km')
+	plotmodel(md,'data',vz,'layer#all',md.mesh.numberoflayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km')
 	if printingflag, 
 		set(gcf,'Color','w')
@@ -71,20 +71,20 @@
 
 	if(L==5000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP5000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP5000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[10 18],'xlim',[0 5000],'title','','xlabel','')
 	elseif(L==10000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP10000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP10000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[10 30],'xlim',[0 10000],'title','','xlabel','')
 	elseif(L==20000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP20000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP20000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[0 50],'xlim',[0 20000],'title','','xlabel','')
 	elseif(L==40000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP40000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP40000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[0 80],'xlim',[0 40000],'title','','xlabel','')
 	elseif(L==80000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP80000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP80000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[0 100],'xlim',[0 80000],'title','','xlabel','')
 	elseif(L==160000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP160000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP160000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[0 120],'xlim',[0 160000],'title','','xlabel','')
 	end
Index: /issm/trunk/test/NightlyRun/test1102.m
===================================================================
--- /issm/trunk/test/NightlyRun/test1102.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test1102.m	(revision 9725)
@@ -19,5 +19,5 @@
 %	posnodes=find((md.x==0 | md.x==max(md.x)) & (md.y==0 | md.y==max(md.y)));
 %	[a,b]=find(ismember(md.elements,posnodes));
-%	elements=ones(md.numberofelements,1);
+%	elements=ones(md.mesh.numberofelements,1);
 %	elements(a)=0;
 %	md=modelextract(md,elements);
@@ -57,9 +57,9 @@
 	pressure=PatchToVec(md.results.DiagnosticSolution.Pressure);
 	results{i}=md.results.DiagnosticSolution;
-	minvx(i)=min(vx(end-md.numberofnodes2d+1:end));
-	maxvx(i)=max(vx(end-md.numberofnodes2d+1:end));
+	minvx(i)=min(vx(end-md.mesh.numberofvertices2d+1:end));
+	maxvx(i)=max(vx(end-md.mesh.numberofvertices2d+1:end));
 
 	%Now plot vx, vy, vz and vx on a cross section
-	plotmodel(md,'data',vx,'layer#all',md.numlayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km','figure',2)
+	plotmodel(md,'data',vx,'layer#all',md.mesh.numberoflayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km','figure',2)
 	if printingflag, 
 		set(gcf,'Color','w')
@@ -67,5 +67,5 @@
 		system(['mv ismipastokesvx' num2str(L) '.png ' ISSM_DIR '/website/doc_pdf/validation/Images/ISMIP/TestA ']);
 	end
-	plotmodel(md,'data',vy,'layer#all',md.numlayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km','figure',3)
+	plotmodel(md,'data',vy,'layer#all',md.mesh.numberoflayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km','figure',3)
 	if printingflag, 
 		set(gcf,'Color','w')
@@ -73,5 +73,5 @@
 		system(['mv ismipastokesvy' num2str(L) '.png ' ISSM_DIR '/website/doc_pdf/validation/Images/ISMIP/TestA ']);
 	end
-	plotmodel(md,'data',vz,'layer#all',md.numlayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km','figure',4)
+	plotmodel(md,'data',vz,'layer#all',md.mesh.numberoflayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km','figure',4)
 	if printingflag, 
 		set(gcf,'Color','w')
@@ -81,20 +81,20 @@
 
 	if(L==5000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP5000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP5000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[10 18],'xlim',[0 5000],'title','','xlabel','')
 	elseif(L==10000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP10000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP10000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[10 30],'xlim',[0 10000],'title','','xlabel','')
 	elseif(L==20000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP20000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP20000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[0 50],'xlim',[0 20000],'title','','xlabel','')
 	elseif(L==40000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP40000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP40000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[0 80],'xlim',[0 40000],'title','','xlabel','')
 	elseif(L==80000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP80000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP80000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[0 100],'xlim',[0 80000],'title','','xlabel','')
 	elseif(L==160000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP160000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP160000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[0 120],'xlim',[0 160000],'title','','xlabel','')
 	end
Index: /issm/trunk/test/NightlyRun/test1103.m
===================================================================
--- /issm/trunk/test/NightlyRun/test1103.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test1103.m	(revision 9725)
@@ -19,7 +19,7 @@
 
 	%Create dirichlet on the bed only
-	md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
-	md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
-	md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
+	md.diagnostic.spcvx=NaN*ones(md.mesh.numberofvertices,1);
+	md.diagnostic.spcvy=NaN*ones(md.mesh.numberofvertices,1);
+	md.diagnostic.spcvz=NaN*ones(md.mesh.numberofvertices,1);
 	pos=find(md.nodeonbed);
 	md.diagnostic.spcvx(pos)=0;
@@ -44,9 +44,9 @@
 	vz=PatchToVec(md.results.DiagnosticSolution.Vz);
 	results{i}=md.results.DiagnosticSolution;
-	minvx(i)=min(vx(end-md.numberofnodes2d+1:end));
-	maxvx(i)=max(vx(end-md.numberofnodes2d+1:end));
+	minvx(i)=min(vx(end-md.mesh.numberofvertices2d+1:end));
+	maxvx(i)=max(vx(end-md.mesh.numberofvertices2d+1:end));
 
 	%Now plot vx, vy, vz and vx on a cross section
-	plotmodel(md,'data',vx,'layer#all',md.numlayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km')
+	plotmodel(md,'data',vx,'layer#all',md.mesh.numberoflayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km')
 	if printingflag, 
 		set(gcf,'Color','w')
@@ -54,5 +54,5 @@
 		system(['mv ismipbpattynvx' num2str(L) '.png ' ISSM_DIR '/website/doc_pdf/validation/Images/ISMIP/TestB ']);
 	end
-	plotmodel(md,'data',vz,'layer#all',md.numlayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km')
+	plotmodel(md,'data',vz,'layer#all',md.mesh.numberoflayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km')
 	if printingflag, 
 		set(gcf,'Color','w')
@@ -62,20 +62,20 @@
 
 	if(L==5000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP5000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP5000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[6 16],'xlim',[0 5000],'title','','xlabel','')
 	elseif(L==10000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP10000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP10000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[0 40],'xlim',[0 10000],'title','','xlabel','')
 	elseif(L==20000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP20000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP20000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[0 60],'xlim',[0 20000],'title','','xlabel','')
 	elseif(L==40000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP40000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP40000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[0 100],'xlim',[0 40000],'title','','xlabel','')
 	elseif(L==80000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP80000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP80000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[0 120],'xlim',[0 80000],'title','','xlabel','')
 	elseif(L==160000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP160000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP160000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[0 120],'xlim',[0 160000],'title','','xlabel','')
 	end
Index: /issm/trunk/test/NightlyRun/test1104.m
===================================================================
--- /issm/trunk/test/NightlyRun/test1104.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test1104.m	(revision 9725)
@@ -18,7 +18,7 @@
 
 	%Create dirichlet on the bed only
-	md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
-	md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
-	md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
+	md.diagnostic.spcvx=NaN*ones(md.mesh.numberofvertices,1);
+	md.diagnostic.spcvy=NaN*ones(md.mesh.numberofvertices,1);
+	md.diagnostic.spcvz=NaN*ones(md.mesh.numberofvertices,1);
 
 	pos=find(md.nodeonbed);
@@ -45,5 +45,5 @@
 	results{i}=md.results.DiagnosticSolution;
 
-	plotmodel(md,'data',vx,'data',vy,'data',vz,'layer#all',md.numlayers)
+	plotmodel(md,'data',vx,'data',vy,'data',vz,'layer#all',md.mesh.numberoflayers)
 end
 
Index: /issm/trunk/test/NightlyRun/test1105.m
===================================================================
--- /issm/trunk/test/NightlyRun/test1105.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test1105.m	(revision 9725)
@@ -21,7 +21,7 @@
 
 	%Create MPCs to have periodic boundary conditions
-	md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
-	md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
-	md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
+	md.diagnostic.spcvx=NaN*ones(md.mesh.numberofvertices,1);
+	md.diagnostic.spcvy=NaN*ones(md.mesh.numberofvertices,1);
+	md.diagnostic.spcvz=NaN*ones(md.mesh.numberofvertices,1);
 
 	posx=find(md.x==0 & md.y~=0 & md.y~=L);
@@ -70,9 +70,9 @@
 	vz=PatchToVec(md.results.DiagnosticSolution.Vz);
 	results{i}=md.results.DiagnosticSolution;
-	minvx(i)=min(vx(end-md.numberofnodes2d+1:end));
-	maxvx(i)=max(vx(end-md.numberofnodes2d+1:end));
+	minvx(i)=min(vx(end-md.mesh.numberofvertices2d+1:end));
+	maxvx(i)=max(vx(end-md.mesh.numberofvertices2d+1:end));
 
 	%Now plot vx, vy, vz and vx on a cross section
-	plotmodel(md,'data',vx,'layer#all',md.numlayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km','figure',2)
+	plotmodel(md,'data',vx,'layer#all',md.mesh.numberoflayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km','figure',2)
 	if printingflag, 
 		set(gcf,'Color','w')
@@ -80,5 +80,5 @@
 		system(['mv ismipcpattynvx' num2str(L) '.png ' ISSM_DIR '/website/doc_pdf/validation/Images/ISMIP/TestC ']);
 	end
-	plotmodel(md,'data',vy,'layer#all',md.numlayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km','figure',3)
+	plotmodel(md,'data',vy,'layer#all',md.mesh.numberoflayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km','figure',3)
 	if printingflag, 
 		set(gcf,'Color','w')
@@ -86,5 +86,5 @@
 		system(['mv ismipcpattynvy' num2str(L) '.png ' ISSM_DIR '/website/doc_pdf/validation/Images/ISMIP/TestC ']);
 	end
-	plotmodel(md,'data',vz,'layer#all',md.numlayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km','figure',4)
+	plotmodel(md,'data',vz,'layer#all',md.mesh.numberoflayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km','figure',4)
 	if printingflag, 
 		set(gcf,'Color','w')
@@ -94,20 +94,20 @@
 
 	if(L==5000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP5000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP5000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[0 20],'xlim',[0 5000],'title','','xlabel','','figure',5)
 	elseif(L==10000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP10000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP10000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[13 18],'xlim',[0 10000],'title','','xlabel','')
 	elseif(L==20000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP20000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP20000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[14 22],'xlim',[0 20000],'title','','xlabel','')
 	elseif(L==40000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP40000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP40000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[10 40],'xlim',[0 40000],'title','','xlabel','')
 	elseif(L==80000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP80000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP80000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[0 80],'xlim',[0 80000],'title','','xlabel','')
 	elseif(L==160000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP160000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP160000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[0 200],'xlim',[0 160000],'title','','xlabel','')
 	end
Index: /issm/trunk/test/NightlyRun/test1106.m
===================================================================
--- /issm/trunk/test/NightlyRun/test1106.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test1106.m	(revision 9725)
@@ -38,5 +38,5 @@
 	results{i}=md.results.DiagnosticSolution;
 
-	plotmodel(md,'data',vx,'data',vy,'data',vz,'layer#all',md.numlayers)
+	plotmodel(md,'data',vx,'data',vy,'data',vz,'layer#all',md.mesh.numberoflayers)
 end
 
Index: /issm/trunk/test/NightlyRun/test1107.m
===================================================================
--- /issm/trunk/test/NightlyRun/test1107.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test1107.m	(revision 9725)
@@ -21,7 +21,7 @@
 
 	%We need one grd on dirichlet: the 4 corners are set to zero
-	md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
-	md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
-	md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
+	md.diagnostic.spcvx=NaN*ones(md.mesh.numberofvertices,1);
+	md.diagnostic.spcvy=NaN*ones(md.mesh.numberofvertices,1);
+	md.diagnostic.spcvz=NaN*ones(md.mesh.numberofvertices,1);
 
 	%Create MPCs to have periodic boundary conditions
@@ -65,9 +65,9 @@
 	vz=PatchToVec(md.results.DiagnosticSolution.Vz);
 	results{i}=md.results.DiagnosticSolution;
-	minvx(i)=min(vx(end-md.numberofnodes2d+1:end));
-	maxvx(i)=max(vx(end-md.numberofnodes2d+1:end));
+	minvx(i)=min(vx(end-md.mesh.numberofvertices2d+1:end));
+	maxvx(i)=max(vx(end-md.mesh.numberofvertices2d+1:end));
 
 	%Now plot vx, vy, vz and vx on a cross section
-	plotmodel(md,'data',vx,'layer#all',md.numlayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km','figure',2)
+	plotmodel(md,'data',vx,'layer#all',md.mesh.numberoflayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km','figure',2)
 	if printingflag, 
 		set(gcf,'Color','w')
@@ -75,5 +75,5 @@
 		system(['mv ismipdpattynvx' num2str(L) '.png ' ISSM_DIR '/website/doc_pdf/validation/Images/ISMIP/TestD ']);
 	end
-	plotmodel(md,'data',vz,'layer#all',md.numlayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km','figure',3)
+	plotmodel(md,'data',vz,'layer#all',md.mesh.numberoflayers,'xlim',[0 L/10^3],'ylim',[0 L/10^3],'unit','km','figure',3)
 	if printingflag, 
 		set(gcf,'Color','w')
@@ -83,20 +83,20 @@
 
 	if(L==5000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP5000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP5000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[0 20],'xlim',[0 5000],'title','','xlabel','','figure',4)
 	elseif(L==10000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP10000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP10000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[0 20],'xlim',[0 10000],'title','','xlabel','','figure',4)
 	elseif(L==20000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP20000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP20000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[0 30],'xlim',[0 20000],'title','','xlabel','','figure',4)
 	elseif(L==40000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP40000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP40000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[10 60],'xlim',[0 40000],'title','','xlabel','','figure',4)
 	elseif(L==80000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP80000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP80000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[0 200],'xlim',[0 80000],'title','','xlabel','','figure',4)
 	elseif(L==160000),
-		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP160000.exp','layer',md.numlayers,...
+		plotmodel(md,'data',vx,'sectionvalue','../Exp/ISMIP160000.exp','layer',md.mesh.numberoflayers,...
 			'resolution',[10 10],'ylim',[0 400],'xlim',[0 160000],'title','','xlabel','','figure',4)
 	end
Index: /issm/trunk/test/NightlyRun/test1108.m
===================================================================
--- /issm/trunk/test/NightlyRun/test1108.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test1108.m	(revision 9725)
@@ -18,7 +18,7 @@
 
 	%We need one grd on dirichlet: the 4 corners are set to zero
-	%md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
-	%md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
-	%md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
+	%md.diagnostic.spcvx=NaN*ones(md.mesh.numberofvertices,1);
+	%md.diagnostic.spcvy=NaN*ones(md.mesh.numberofvertices,1);
+	%md.diagnostic.spcvz=NaN*ones(md.mesh.numberofvertices,1);
 	
 	%pos=find((md.x==0 | md.x==max(md.x)) & (md.y==0 | md.y==max(md.y)));
@@ -46,5 +46,5 @@
 	results{i}=md.results.DiagnosticSolution;
 
-	plotmodel(md,'data',vx,'data',vy,'data',vz,'layer#all',md.numlayers)
+	plotmodel(md,'data',vx,'data',vy,'data',vz,'layer#all',md.mesh.numberoflayers)
 end
 
Index: /issm/trunk/test/NightlyRun/test1109.m
===================================================================
--- /issm/trunk/test/NightlyRun/test1109.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test1109.m	(revision 9725)
@@ -32,7 +32,7 @@
 	%Create spcs on the bed 
 	pos=find(md.nodeonbed);
-	md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
-	md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
-	md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
+	md.diagnostic.spcvx=NaN*ones(md.mesh.numberofvertices,1);
+	md.diagnostic.spcvy=NaN*ones(md.mesh.numberofvertices,1);
+	md.diagnostic.spcvz=NaN*ones(md.mesh.numberofvertices,1);
 	md.diagnostic.spcvx(pos)=0;
 	md.diagnostic.spcvy(pos)=0;
@@ -57,5 +57,5 @@
 
 	if i==1,
-		plotmodel(md,'data',vy,'ylim',[-10 80],'layer',md.numlayers,'sectionvalue','../Exp/ISMIPE.exp','resolution',[10 10],'title','','xlabel','')
+		plotmodel(md,'data',vy,'ylim',[-10 80],'layer',md.mesh.numberoflayers,'sectionvalue','../Exp/ISMIPE.exp','resolution',[10 10],'title','','xlabel','')
 		if printingflag, 
 			set(gcf,'Color','w')
@@ -64,5 +64,5 @@
 		end
 	elseif i==2,
-		plotmodel(md,'data',vy,'ylim',[-10 80],'layer',md.numlayers,'sectionvalue','../Exp/ISMIPE.exp','resolution',[10 10],'title','','xlabel','')
+		plotmodel(md,'data',vy,'ylim',[-10 80],'layer',md.mesh.numberoflayers,'sectionvalue','../Exp/ISMIPE.exp','resolution',[10 10],'title','','xlabel','')
 		if printingflag, 
 			set(gcf,'Color','w')
@@ -71,5 +71,5 @@
 		end
 	elseif i==3,
-		plotmodel(md,'data',vy,'ylim',[-50 200],'layer',md.numlayers,'sectionvalue','../Exp/ISMIPE.exp','resolution',[10 10],'title','','xlabel','')
+		plotmodel(md,'data',vy,'ylim',[-50 200],'layer',md.mesh.numberoflayers,'sectionvalue','../Exp/ISMIPE.exp','resolution',[10 10],'title','','xlabel','')
 		if printingflag, 
 			set(gcf,'Color','w')
@@ -78,5 +78,5 @@
 		end
 	elseif i==4,
-		plotmodel(md,'data',vy,'ylim',[-50 200],'layer',md.numlayers,'sectionvalue','../Exp/ISMIPE.exp','resolution',[10 10],'title','','xlabel','')
+		plotmodel(md,'data',vy,'ylim',[-50 200],'layer',md.mesh.numberoflayers,'sectionvalue','../Exp/ISMIPE.exp','resolution',[10 10],'title','','xlabel','')
 		if printingflag, 
 			set(gcf,'Color','w')
Index: /issm/trunk/test/NightlyRun/test1110.m
===================================================================
--- /issm/trunk/test/NightlyRun/test1110.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test1110.m	(revision 9725)
@@ -20,7 +20,7 @@
 	end
 
-	md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
-	md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
-	md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
+	md.diagnostic.spcvx=NaN*ones(md.mesh.numberofvertices,1);
+	md.diagnostic.spcvy=NaN*ones(md.mesh.numberofvertices,1);
+	md.diagnostic.spcvz=NaN*ones(md.mesh.numberofvertices,1);
 	if (i==1 | i==3),
 		%Create dirichlet on the bed if no slip
@@ -64,7 +64,7 @@
 	%Now plot vx and delta surface 
 	if (i==1 | i==3),
-		plotmodel(md,'data',PatchToVec(md.results.TransientSolution(end).Vx),'layer',md.numlayers,'sectionvalue','../Exp/ISMIP100000.exp','title','','xlabel','','ylabel','Velocity (m/yr)','linewidth',3,'grid','on','unit','km','ylim',[91 100])
+		plotmodel(md,'data',PatchToVec(md.results.TransientSolution(end).Vx),'layer',md.mesh.numberoflayers,'sectionvalue','../Exp/ISMIP100000.exp','title','','xlabel','','ylabel','Velocity (m/yr)','linewidth',3,'grid','on','unit','km','ylim',[91 100])
 	elseif (i==2 | i==4),
-		plotmodel(md,'data',PatchToVec(md.results.TransientSolution(end).Vx),'layer',md.numlayers,'sectionvalue','../Exp/ISMIP100000.exp','title','','xlabel','','ylabel','Velocity (m/yr)','linewidth',3,'grid','on','unit','km','ylim',[185 200])
+		plotmodel(md,'data',PatchToVec(md.results.TransientSolution(end).Vx),'layer',md.mesh.numberoflayers,'sectionvalue','../Exp/ISMIP100000.exp','title','','xlabel','','ylabel','Velocity (m/yr)','linewidth',3,'grid','on','unit','km','ylim',[185 200])
 	end
 	if printingflag, 
@@ -85,5 +85,5 @@
 	end
 
-	plotmodel(md,'data',PatchToVec(md.results.TransientSolution(end).Surface)-md.geometry.surface,'layer',md.numlayers,'sectionvalue','../Exp/ISMIP100000.exp','title','','xlabel','','ylabel','Surface (m)','linewidth',3,'grid','on','unit','km','ylim',[-30 50])
+	plotmodel(md,'data',PatchToVec(md.results.TransientSolution(end).Surface)-md.geometry.surface,'layer',md.mesh.numberoflayers,'sectionvalue','../Exp/ISMIP100000.exp','title','','xlabel','','ylabel','Surface (m)','linewidth',3,'grid','on','unit','km','ylim',[-30 50])
 	if printingflag, 
 		set(gcf,'Color','w')
Index: /issm/trunk/test/NightlyRun/test1201.m
===================================================================
--- /issm/trunk/test/NightlyRun/test1201.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test1201.m	(revision 9725)
@@ -14,6 +14,6 @@
 
 	disp('      initial velocity');
-	md.initialization.vx=zeros(md.numberofnodes,1);
-	md.initialization.vy=-400*ones(md.numberofnodes,1);
+	md.initialization.vx=zeros(md.mesh.numberofvertices,1);
+	md.initialization.vy=-400*ones(md.mesh.numberofvertices,1);
 
 	%Stabilization
@@ -29,5 +29,5 @@
 	pos=find(md.y>199999.9);
 	times=0:1:500;
-	md.prognostic.spcthickness=NaN*ones(md.numberofnodes+1,length(times));
+	md.prognostic.spcthickness=NaN*ones(md.mesh.numberofvertices+1,length(times));
 	md.prognostic.spcthickness(end,:)=times;
 	md.prognostic.spcthickness(pos,:)=repmat(500+100*sin(2*pi*times/200),length(pos),1);
Index: /issm/trunk/test/NightlyRun/test1205.m
===================================================================
--- /issm/trunk/test/NightlyRun/test1205.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test1205.m	(revision 9725)
@@ -34,12 +34,12 @@
 vx=PatchToVec(md.results.DiagnosticSolution.Vx);
 vy=PatchToVec(md.results.DiagnosticSolution.Vy);
-vel=zeros(md.numberofnodes2d,1);
+vel=zeros(md.mesh.numberofvertices2d,1);
 
 node_vel=0;
-for i=1:md.numberofnodes2d
-	for j=1:(md.numlayers-1)
-		node_vel=node_vel+1/(2*(md.numlayers-1))*(sqrt(vx(i+j*md.numberofnodes2d,1).^2+...
-			vy(i+j*md.numberofnodes2d,1).^2)+...
-			sqrt(vx(i+(j-1)*md.numberofnodes2d,1).^2+vy(i+(j-1)*md.numberofnodes2d,1).^2));
+for i=1:md.mesh.numberofvertices2d
+	for j=1:(md.mesh.numberoflayers-1)
+		node_vel=node_vel+1/(2*(md.mesh.numberoflayers-1))*(sqrt(vx(i+j*md.mesh.numberofvertices2d,1).^2+...
+			vy(i+j*md.mesh.numberofvertices2d,1).^2)+...
+			sqrt(vx(i+(j-1)*md.mesh.numberofvertices2d,1).^2+vy(i+(j-1)*md.mesh.numberofvertices2d,1).^2));
 	end
 	vel(i,1)=node_vel;
@@ -66,5 +66,5 @@
 subplot(2,2,3)
 hold on;
-plot(sqrt((md.x(1:md.numberofnodes2d)).^2+(md.y(1:md.numberofnodes2d)).^2),vel,'r.');
+plot(sqrt((md.x(1:md.mesh.numberofvertices2d)).^2+(md.y(1:md.mesh.numberofvertices2d)).^2),vel,'r.');
 plot(sqrt((md.x2d).^2+(md.y2d).^2),vel_obs,'b.');
 title('Analytical vs calculated velocity','FontSize',14,'FontWeight','bold');
Index: /issm/trunk/test/NightlyRun/test1206.m
===================================================================
--- /issm/trunk/test/NightlyRun/test1206.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test1206.m	(revision 9725)
@@ -34,12 +34,12 @@
 vx=PatchToVec(md.results.DiagnosticSolution.Vx);
 vy=PatchToVec(md.results.DiagnosticSolution.Vy);
-vel=zeros(md.numberofnodes2d,1);
+vel=zeros(md.mesh.numberofvertices2d,1);
 
 node_vel=0;
-for i=1:md.numberofnodes2d
-	for j=1:(md.numlayers-1)
-		node_vel=node_vel+1/(2*(md.numlayers-1))*(sqrt(vx(i+j*md.numberofnodes2d,1).^2+...
-			vy(i+j*md.numberofnodes2d,1).^2)+...
-			sqrt(vx(i+(j-1)*md.numberofnodes2d,1).^2+vy(i+(j-1)*md.numberofnodes2d,1).^2));
+for i=1:md.mesh.numberofvertices2d
+	for j=1:(md.mesh.numberoflayers-1)
+		node_vel=node_vel+1/(2*(md.mesh.numberoflayers-1))*(sqrt(vx(i+j*md.mesh.numberofvertices2d,1).^2+...
+			vy(i+j*md.mesh.numberofvertices2d,1).^2)+...
+			sqrt(vx(i+(j-1)*md.mesh.numberofvertices2d,1).^2+vy(i+(j-1)*md.mesh.numberofvertices2d,1).^2));
 	end
 	vel(i,1)=node_vel;
@@ -65,5 +65,5 @@
 subplot(2,2,3)
 hold on;
-plot(sqrt((md.x(1:md.numberofnodes2d)).^2+(md.y(1:md.numberofnodes2d)).^2),vel,'r.');
+plot(sqrt((md.x(1:md.mesh.numberofvertices2d)).^2+(md.y(1:md.mesh.numberofvertices2d)).^2),vel,'r.');
 plot(sqrt((md.x2d).^2+(md.y2d).^2),vel_obs,'b.');
 title('Analytical vs calculated velocity','FontSize',14,'FontWeight','bold');
Index: /issm/trunk/test/NightlyRun/test1207.m
===================================================================
--- /issm/trunk/test/NightlyRun/test1207.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test1207.m	(revision 9725)
@@ -34,12 +34,12 @@
 vx=PatchToVec(md.results.DiagnosticSolution.Vx);
 vy=PatchToVec(md.results.DiagnosticSolution.Vy);
-vel=zeros(md.numberofnodes2d,1);
+vel=zeros(md.mesh.numberofvertices2d,1);
 
 node_vel=0;
-for i=1:md.numberofnodes2d
-	for j=1:(md.numlayers-1)
-		node_vel=node_vel+1/(2*(md.numlayers-1))*(sqrt(vx(i+j*md.numberofnodes2d,1).^2+...
-			vy(i+j*md.numberofnodes2d,1).^2)+...
-			sqrt(vx(i+(j-1)*md.numberofnodes2d,1).^2+vy(i+(j-1)*md.numberofnodes2d,1).^2));
+for i=1:md.mesh.numberofvertices2d
+	for j=1:(md.mesh.numberoflayers-1)
+		node_vel=node_vel+1/(2*(md.mesh.numberoflayers-1))*(sqrt(vx(i+j*md.mesh.numberofvertices2d,1).^2+...
+			vy(i+j*md.mesh.numberofvertices2d,1).^2)+...
+			sqrt(vx(i+(j-1)*md.mesh.numberofvertices2d,1).^2+vy(i+(j-1)*md.mesh.numberofvertices2d,1).^2));
 	end
 	vel(i,1)=node_vel;
@@ -65,5 +65,5 @@
 subplot(2,2,3)
 hold on;
-plot(sqrt((md.x(1:md.numberofnodes2d)).^2+(md.y(1:md.numberofnodes2d)).^2),vel,'r.');
+plot(sqrt((md.x(1:md.mesh.numberofvertices2d)).^2+(md.y(1:md.mesh.numberofvertices2d)).^2),vel,'r.');
 plot(sqrt((md.x2d).^2+(md.y2d).^2),vel_obs,'b.');
 title('Analytical vs calculated velocity','FontSize',14,'FontWeight','bold');
Index: /issm/trunk/test/NightlyRun/test1301.m
===================================================================
--- /issm/trunk/test/NightlyRun/test1301.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test1301.m	(revision 9725)
@@ -13,6 +13,6 @@
 
 %Some conditions specific to melting test
-md.initialization.pressure=zeros(md.numberofnodes,1);
-md.initialization.temperature=273.15*ones(md.numberofnodes,1);
+md.initialization.pressure=zeros(md.mesh.numberofvertices,1);
+md.initialization.temperature=273.15*ones(md.mesh.numberofvertices,1);
 pos=find(md.nodeonsurface);
 md.thermal.spctemperature(pos)=md.initialization.temperature(pos);
@@ -29,5 +29,5 @@
 
 %plot results
-comp_melting=zeros(md.numberofnodes,1);
+comp_melting=zeros(md.mesh.numberofvertices,1);
 comp_melting(md.results.ThermalSolution.BasalforcingsMeltingRate.index)=md.results.ThermalSolution.BasalforcingsMeltingRate.value;
 relative=abs((comp_melting-melting)./melting)*100;
Index: /issm/trunk/test/NightlyRun/test1302.m
===================================================================
--- /issm/trunk/test/NightlyRun/test1302.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test1302.m	(revision 9725)
@@ -14,7 +14,7 @@
 pos1=find(md.elementonbed);     md.thermal.spctemperature(md.elements(pos1,1:3))=10;
 pos2=find(md.elementonsurface); md.thermal.spctemperature(md.elements(pos2,4:6))=0;
-md.initialization.vz=0.1*ones(md.numberofnodes,1);
+md.initialization.vz=0.1*ones(md.mesh.numberofvertices,1);
 md.initialization.vel=sqrt( md.initialization.vx.^2+ md.initialization.vy.^2+ md.initialization.vz.^2);
-md.initialization.pressure=zeros(md.numberofnodes,1);
+md.initialization.pressure=zeros(md.mesh.numberofvertices,1);
 
 %analytical results
@@ -30,5 +30,5 @@
 
 %plot results
-comp_temp=zeros(md.numberofnodes,1);
+comp_temp=zeros(md.mesh.numberofvertices,1);
 comp_temp(md.results.ThermalSolution.Temperature.index)=md.results.ThermalSolution.Temperature.value;
 relative=abs((comp_temp-md.initialization.temperature)./md.initialization.temperature)*100;
Index: /issm/trunk/test/NightlyRun/test1303.m
===================================================================
--- /issm/trunk/test/NightlyRun/test1303.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test1303.m	(revision 9725)
@@ -13,5 +13,5 @@
 pos1=find(md.elementonbed);     md.thermal.spctemperature(md.elements(pos1,1:3))=10;
 pos2=find(md.elementonsurface); md.thermal.spctemperature(md.elements(pos2,4:6))=0;
-md.initialization.pressure=zeros(md.numberofnodes,1);
+md.initialization.pressure=zeros(md.mesh.numberofvertices,1);
 
 %analytical results
@@ -25,5 +25,5 @@
 
 %plot results
-comp_temp=zeros(md.numberofnodes,1);
+comp_temp=zeros(md.mesh.numberofvertices,1);
 comp_temp(md.results.ThermalSolution.Temperature.index)=md.results.ThermalSolution.Temperature.value;
 relative=abs((comp_temp-md.initialization.temperature)./md.initialization.temperature)*100;
Index: /issm/trunk/test/NightlyRun/test1304.m
===================================================================
--- /issm/trunk/test/NightlyRun/test1304.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test1304.m	(revision 9725)
@@ -13,5 +13,5 @@
 
 pos2=find(md.elementonsurface); md.thermal.spctemperature(md.elements(pos2,4:6))=0;
-md.initialization.pressure=zeros(md.numberofnodes,1);
+md.initialization.pressure=zeros(md.mesh.numberofvertices,1);
 md.basalforcings.geothermalflux(:)=0.1; %100mW/m^2
 
@@ -26,5 +26,5 @@
 
 %plot results
-comp_temp=zeros(md.numberofnodes,1);
+comp_temp=zeros(md.mesh.numberofvertices,1);
 comp_temp(md.results.ThermalSolution.Temperature.index)=md.results.ThermalSolution.Temperature.value;
 relative=abs((comp_temp-md.initialization.temperature)./md.initialization.temperature)*100;
Index: /issm/trunk/test/NightlyRun/test137.m
===================================================================
--- /issm/trunk/test/NightlyRun/test137.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test137.m	(revision 9725)
@@ -13,5 +13,5 @@
 t0=clock;
 md=bamg(model,'domain','../Exp/Square.exp','hmax',3000);
-nbelements=md.numberofelements;
+nbelements=md.mesh.numberofelements;
 elapsedtime=etime(clock,t0);
 
Index: /issm/trunk/test/NightlyRun/test1501.m
===================================================================
--- /issm/trunk/test/NightlyRun/test1501.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test1501.m	(revision 9725)
@@ -13,5 +13,5 @@
 
 %Solve for thinning rate -> -1 * surface mass balance
-smb= 2*ones(md.numberofnodes,1);   
+smb= 2*ones(md.mesh.numberofvertices,1);   
 md.surfaceforcings.mass_balance= smb;
 md.basalforcings.melting_rate= smb;
Index: /issm/trunk/test/NightlyRun/test1502.m
===================================================================
--- /issm/trunk/test/NightlyRun/test1502.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test1502.m	(revision 9725)
@@ -14,5 +14,5 @@
 
 %Solve for thinning rate -> -1 * surface mass balance
-smb= 2*ones(md.numberofnodes,1);   
+smb= 2*ones(md.mesh.numberofvertices,1);   
 md.surfaceforcings.mass_balance= smb;
 md.basalforcings.melting_rate= smb;
Index: /issm/trunk/test/NightlyRun/test223.m
===================================================================
--- /issm/trunk/test/NightlyRun/test223.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test223.m	(revision 9725)
@@ -7,9 +7,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'MaterialsRheologyBbar'};
-md.inversion.min_parameters=10^6*ones(md.numberofnodes,1);
-md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1);
+md.inversion.min_parameters=10^6*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=2*10^9*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test224.m
===================================================================
--- /issm/trunk/test/NightlyRun/test224.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test224.m	(revision 9725)
@@ -7,9 +7,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'MaterialsRheologyBbar'};
-md.inversion.min_parameters=10^6*ones(md.numberofnodes,1);
-md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1);
+md.inversion.min_parameters=10^6*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=2*10^9*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test225.m
===================================================================
--- /issm/trunk/test/NightlyRun/test225.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test225.m	(revision 9725)
@@ -8,9 +8,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'MaterialsRheologyBbar'};
-md.inversion.min_parameters=10^6*ones(md.numberofnodes,1);
-md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1);
+md.inversion.min_parameters=10^6*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=2*10^9*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test226.m
===================================================================
--- /issm/trunk/test/NightlyRun/test226.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test226.m	(revision 9725)
@@ -8,9 +8,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'MaterialsRheologyBbar'};
-md.inversion.min_parameters=10^6*ones(md.numberofnodes,1);
-md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1);
+md.inversion.min_parameters=10^6*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=2*10^9*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test227.m
===================================================================
--- /issm/trunk/test/NightlyRun/test227.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test227.m	(revision 9725)
@@ -8,9 +8,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'MaterialsRheologyBbar'};
-md.inversion.min_parameters=10^6*ones(md.numberofnodes,1);
-md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1);
+md.inversion.min_parameters=10^6*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=2*10^9*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test228.m
===================================================================
--- /issm/trunk/test/NightlyRun/test228.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test228.m	(revision 9725)
@@ -8,9 +8,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'MaterialsRheologyBbar'};
-md.inversion.min_parameters=10^6*ones(md.numberofnodes,1);
-md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1);
+md.inversion.min_parameters=10^6*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=2*10^9*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test229.m
===================================================================
--- /issm/trunk/test/NightlyRun/test229.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test229.m	(revision 9725)
@@ -8,9 +8,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'MaterialsRheologyBbar'};
-md.inversion.min_parameters=10^6*ones(md.numberofnodes,1);
-md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1);
+md.inversion.min_parameters=10^6*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=2*10^9*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test230.m
===================================================================
--- /issm/trunk/test/NightlyRun/test230.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test230.m	(revision 9725)
@@ -8,9 +8,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'MaterialsRheologyBbar'};
-md.inversion.min_parameters=10^6*ones(md.numberofnodes,1);
-md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1);
+md.inversion.min_parameters=10^6*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=2*10^9*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test233.m
===================================================================
--- /issm/trunk/test/NightlyRun/test233.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test233.m	(revision 9725)
@@ -21,23 +21,23 @@
 
 h=1000;
-md.geometry.thickness=h*ones(md.numberofnodes,1);
+md.geometry.thickness=h*ones(md.mesh.numberofvertices,1);
 md.geometry.bed=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness;
 md.geometry.surface=md.geometry.bed+md.geometry.thickness;
 
 %Initial velocity and pressure
-md.initialization.vx=zeros(md.numberofnodes,1);
-md.initialization.vy=zeros(md.numberofnodes,1);
-md.initialization.vz=zeros(md.numberofnodes,1);
-md.initialization.pressure=zeros(md.numberofnodes,1);
+md.initialization.vx=zeros(md.mesh.numberofvertices,1);
+md.initialization.vy=zeros(md.mesh.numberofvertices,1);
+md.initialization.vz=zeros(md.mesh.numberofvertices,1);
+md.initialization.pressure=zeros(md.mesh.numberofvertices,1);
 
 %Materials
-md.initialization.temperature=(273-20)*ones(md.numberofnodes,1);
+md.initialization.temperature=(273-20)*ones(md.mesh.numberofvertices,1);
 md.materials.rheology_B=paterson(md.initialization.temperature);
-md.materials.rheology_n=3*ones(md.numberofelements,1);
+md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
 
 %Boundary conditions:
-md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
-md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
-md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
+md.diagnostic.spcvx=NaN*ones(md.mesh.numberofvertices,1);
+md.diagnostic.spcvy=NaN*ones(md.mesh.numberofvertices,1);
+md.diagnostic.spcvz=NaN*ones(md.mesh.numberofvertices,1);
 
 %constrain flanks to 0 normal velocity
@@ -52,5 +52,5 @@
 
 %icefront
-nodeonicefront=zeros(md.numberofnodes,1);
+nodeonicefront=zeros(md.mesh.numberofvertices,1);
 pos=find(md.y==ymax); nodeonicefront(pos)=1;
 pos=find(nodeonicefront(md.mesh.segments(:,1)) | nodeonicefront(md.mesh.segments(:,2))); diagnostic.icefront=md.mesh.segments(pos,:);
Index: /issm/trunk/test/NightlyRun/test234.m
===================================================================
--- /issm/trunk/test/NightlyRun/test234.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test234.m	(revision 9725)
@@ -21,23 +21,23 @@
 
 h=1000;
-md.geometry.thickness=h*ones(md.numberofnodes,1);
+md.geometry.thickness=h*ones(md.mesh.numberofvertices,1);
 md.geometry.bed=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness;
 md.geometry.surface=md.geometry.bed+md.geometry.thickness;
 
 %Initial velocity and pressure
-md.initialization.vx=zeros(md.numberofnodes,1);
-md.initialization.vy=zeros(md.numberofnodes,1);
-md.initialization.vz=zeros(md.numberofnodes,1);
-md.initialization.pressure=zeros(md.numberofnodes,1);
+md.initialization.vx=zeros(md.mesh.numberofvertices,1);
+md.initialization.vy=zeros(md.mesh.numberofvertices,1);
+md.initialization.vz=zeros(md.mesh.numberofvertices,1);
+md.initialization.pressure=zeros(md.mesh.numberofvertices,1);
 
 %Materials
-md.initialization.temperature=(273-20)*ones(md.numberofnodes,1);
+md.initialization.temperature=(273-20)*ones(md.mesh.numberofvertices,1);
 md.materials.rheology_B=paterson(md.initialization.temperature);
-md.materials.rheology_n=3*ones(md.numberofelements,1);
+md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
 
 %Boundary conditions:
-md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
-md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
-md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
+md.diagnostic.spcvx=NaN*ones(md.mesh.numberofvertices,1);
+md.diagnostic.spcvy=NaN*ones(md.mesh.numberofvertices,1);
+md.diagnostic.spcvz=NaN*ones(md.mesh.numberofvertices,1);
 
 %constrain flanks to 0 normal velocity
@@ -52,5 +52,5 @@
 
 %icefront
-nodeonicefront=zeros(md.numberofnodes,1);
+nodeonicefront=zeros(md.mesh.numberofvertices,1);
 pos=find(md.y==ymax); nodeonicefront(pos)=1;
 pos=find(nodeonicefront(md.mesh.segments(:,1)) | nodeonicefront(md.mesh.segments(:,2))); diagnostic.icefront=md.mesh.segments(pos,:);
Index: /issm/trunk/test/NightlyRun/test235.m
===================================================================
--- /issm/trunk/test/NightlyRun/test235.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test235.m	(revision 9725)
@@ -18,23 +18,23 @@
 
 h=1000;
-md.geometry.thickness=h*ones(md.numberofnodes,1);
+md.geometry.thickness=h*ones(md.mesh.numberofvertices,1);
 md.geometry.bed=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness;
 md.geometry.surface=md.geometry.bed+md.geometry.thickness;
 
 %Initial velocity and pressure
-md.initialization.vx=zeros(md.numberofnodes,1);
-md.initialization.vy=zeros(md.numberofnodes,1);
-md.initialization.vz=zeros(md.numberofnodes,1);
-md.initialization.pressure=zeros(md.numberofnodes,1);
+md.initialization.vx=zeros(md.mesh.numberofvertices,1);
+md.initialization.vy=zeros(md.mesh.numberofvertices,1);
+md.initialization.vz=zeros(md.mesh.numberofvertices,1);
+md.initialization.pressure=zeros(md.mesh.numberofvertices,1);
 
 %Materials
-md.initialization.temperature=(273-20)*ones(md.numberofnodes,1);
+md.initialization.temperature=(273-20)*ones(md.mesh.numberofvertices,1);
 md.materials.rheology_B=paterson(md.initialization.temperature);
-md.materials.rheology_n=3*ones(md.numberofelements,1);
+md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
 
 %Boundary conditions:
-md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
-md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
-md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
+md.diagnostic.spcvx=NaN*ones(md.mesh.numberofvertices,1);
+md.diagnostic.spcvy=NaN*ones(md.mesh.numberofvertices,1);
+md.diagnostic.spcvz=NaN*ones(md.mesh.numberofvertices,1);
 
 %constrain flanks to 0 normal velocity
@@ -49,5 +49,5 @@
 
 %icefront
-nodeonicefront=zeros(md.numberofnodes,1);
+nodeonicefront=zeros(md.mesh.numberofvertices,1);
 pos=find(md.y==ymax); nodeonicefront(pos)=1;
 pos=find(nodeonicefront(md.mesh.segments(:,1)) | nodeonicefront(md.mesh.segments(:,2))); diagnostic.icefront=md.mesh.segments(pos,:);
@@ -56,5 +56,5 @@
 
 %partitioning
-md.qmu.numberofpartitions=md.numberofnodes;
+md.qmu.numberofpartitions=md.mesh.numberofvertices;
 md=partitioner(md,'package','linear','npart',md.qmu.numberofpartitions);
 md.qmu.partition=md.qmu.partition-1;
Index: /issm/trunk/test/NightlyRun/test236.m
===================================================================
--- /issm/trunk/test/NightlyRun/test236.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test236.m	(revision 9725)
@@ -18,23 +18,23 @@
 
 h=1000;
-md.geometry.thickness=h*ones(md.numberofnodes,1);
+md.geometry.thickness=h*ones(md.mesh.numberofvertices,1);
 md.geometry.bed=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness;
 md.geometry.surface=md.geometry.bed+md.geometry.thickness;
 
 %Initial velocity and pressure
-md.initialization.vx=zeros(md.numberofnodes,1);
-md.initialization.vy=zeros(md.numberofnodes,1);
-md.initialization.vz=zeros(md.numberofnodes,1);
-md.initialization.pressure=zeros(md.numberofnodes,1);
+md.initialization.vx=zeros(md.mesh.numberofvertices,1);
+md.initialization.vy=zeros(md.mesh.numberofvertices,1);
+md.initialization.vz=zeros(md.mesh.numberofvertices,1);
+md.initialization.pressure=zeros(md.mesh.numberofvertices,1);
 
 %Materials
-md.initialization.temperature=(273-20)*ones(md.numberofnodes,1);
+md.initialization.temperature=(273-20)*ones(md.mesh.numberofvertices,1);
 md.materials.rheology_B=paterson(md.initialization.temperature);
-md.materials.rheology_n=3*ones(md.numberofelements,1);
+md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
 
 %Boundary conditions:
-md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
-md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
-md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
+md.diagnostic.spcvx=NaN*ones(md.mesh.numberofvertices,1);
+md.diagnostic.spcvy=NaN*ones(md.mesh.numberofvertices,1);
+md.diagnostic.spcvz=NaN*ones(md.mesh.numberofvertices,1);
 
 %constrain flanks to 0 normal velocity
@@ -49,5 +49,5 @@
 
 %icefront
-nodeonicefront=zeros(md.numberofnodes,1);
+nodeonicefront=zeros(md.mesh.numberofvertices,1);
 pos=find(md.y==ymax); nodeonicefront(pos)=1;
 pos=find(nodeonicefront(md.mesh.segments(:,1)) | nodeonicefront(md.mesh.segments(:,2))); diagnostic.icefront=md.mesh.segments(pos,:);
@@ -56,5 +56,5 @@
 
 %partitioning
-md.qmu.numberofpartitions=md.numberofnodes;
+md.qmu.numberofpartitions=md.mesh.numberofvertices;
 md=partitioner(md,'package','linear','npart',md.qmu.numberofpartitions);
 md.qmu.partition=md.qmu.partition-1;
Index: /issm/trunk/test/NightlyRun/test255.m
===================================================================
--- /issm/trunk/test/NightlyRun/test255.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test255.m	(revision 9725)
@@ -10,5 +10,5 @@
 
 %Set up transient
-smb = ones(md.numberofnodes,1)*3.6;
+smb = ones(md.mesh.numberofvertices,1)*3.6;
 smb=[ smb smb*-1 ];
 
Index: /issm/trunk/test/NightlyRun/test256.m
===================================================================
--- /issm/trunk/test/NightlyRun/test256.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test256.m	(revision 9725)
@@ -10,5 +10,5 @@
 
 %Set up transient
-smb = ones(md.numberofnodes,1)*3.6;
+smb = ones(md.mesh.numberofvertices,1)*3.6;
 smb=[ smb smb*-1 ];
 
Index: /issm/trunk/test/NightlyRun/test257.m
===================================================================
--- /issm/trunk/test/NightlyRun/test257.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test257.m	(revision 9725)
@@ -10,5 +10,5 @@
 
 %Set up transient
-smb = ones(md.numberofnodes,1)*3.6;
+smb = ones(md.mesh.numberofvertices,1)*3.6;
 smb=[ smb smb*2 ];
 
Index: /issm/trunk/test/NightlyRun/test258.m
===================================================================
--- /issm/trunk/test/NightlyRun/test258.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test258.m	(revision 9725)
@@ -10,5 +10,5 @@
 
 %Set up transient
-smb = ones(md.numberofnodes,1)*3.6;
+smb = ones(md.mesh.numberofvertices,1)*3.6;
 smb=[ smb smb*2 ];
 
Index: /issm/trunk/test/NightlyRun/test259.m
===================================================================
--- /issm/trunk/test/NightlyRun/test259.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test259.m	(revision 9725)
@@ -11,5 +11,5 @@
 
 %Set up transient
-smb = ones(md.numberofnodes,1)*3.6;
+smb = ones(md.mesh.numberofvertices,1)*3.6;
 smb=[ smb smb*-1 ];
 
Index: /issm/trunk/test/NightlyRun/test260.m
===================================================================
--- /issm/trunk/test/NightlyRun/test260.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test260.m	(revision 9725)
@@ -11,5 +11,5 @@
 
 %Set up transient
-smb = ones(md.numberofnodes,1)*3.6;
+smb = ones(md.mesh.numberofvertices,1)*3.6;
 smb=[ smb smb*-1 ];
 
Index: /issm/trunk/test/NightlyRun/test261.m
===================================================================
--- /issm/trunk/test/NightlyRun/test261.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test261.m	(revision 9725)
@@ -11,5 +11,5 @@
 
 %Set up transient
-smb = ones(md.numberofnodes,1)*3.6;
+smb = ones(md.mesh.numberofvertices,1)*3.6;
 smb=[ smb smb*2 ];
 
Index: /issm/trunk/test/NightlyRun/test262.m
===================================================================
--- /issm/trunk/test/NightlyRun/test262.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test262.m	(revision 9725)
@@ -11,5 +11,5 @@
 
 %Set up transient
-smb = ones(md.numberofnodes,1)*3.6;
+smb = ones(md.mesh.numberofvertices,1)*3.6;
 smb=[ smb smb*2 ];
 
Index: /issm/trunk/test/NightlyRun/test337.m
===================================================================
--- /issm/trunk/test/NightlyRun/test337.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test337.m	(revision 9725)
@@ -7,9 +7,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'FrictionCoefficient'};
-md.inversion.min_parameters=1*ones(md.numberofnodes,1);
-md.inversion.max_parameters=200*ones(md.numberofnodes,1);
+md.inversion.min_parameters=1*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=200*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=0*2*10^-7;
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=0*2*10^-7;
 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test338.m
===================================================================
--- /issm/trunk/test/NightlyRun/test338.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test338.m	(revision 9725)
@@ -7,9 +7,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'FrictionCoefficient'};
-md.inversion.min_parameters=1*ones(md.numberofnodes,1);
-md.inversion.max_parameters=200*ones(md.numberofnodes,1);
+md.inversion.min_parameters=1*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=200*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test339.m
===================================================================
--- /issm/trunk/test/NightlyRun/test339.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test339.m	(revision 9725)
@@ -8,9 +8,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'FrictionCoefficient'};
-md.inversion.min_parameters=1*ones(md.numberofnodes,1);
-md.inversion.max_parameters=200*ones(md.numberofnodes,1);
+md.inversion.min_parameters=1*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=200*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test340.m
===================================================================
--- /issm/trunk/test/NightlyRun/test340.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test340.m	(revision 9725)
@@ -8,9 +8,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'FrictionCoefficient'};
-md.inversion.min_parameters=1*ones(md.numberofnodes,1);
-md.inversion.max_parameters=200*ones(md.numberofnodes,1);
+md.inversion.min_parameters=1*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=200*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test341.m
===================================================================
--- /issm/trunk/test/NightlyRun/test341.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test341.m	(revision 9725)
@@ -8,9 +8,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'FrictionCoefficient'};
-md.inversion.min_parameters=1*ones(md.numberofnodes,1);
-md.inversion.max_parameters=200*ones(md.numberofnodes,1);
+md.inversion.min_parameters=1*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=200*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=[102*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test342.m
===================================================================
--- /issm/trunk/test/NightlyRun/test342.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test342.m	(revision 9725)
@@ -8,9 +8,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'FrictionCoefficient'};
-md.inversion.min_parameters=1*ones(md.numberofnodes,1);
-md.inversion.max_parameters=200*ones(md.numberofnodes,1);
+md.inversion.min_parameters=1*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=200*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=[102*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test343.m
===================================================================
--- /issm/trunk/test/NightlyRun/test343.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test343.m	(revision 9725)
@@ -8,9 +8,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'FrictionCoefficient'};
-md.inversion.min_parameters=1*ones(md.numberofnodes,1);
-md.inversion.max_parameters=200*ones(md.numberofnodes,1);
+md.inversion.min_parameters=1*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=200*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=[104*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test344.m
===================================================================
--- /issm/trunk/test/NightlyRun/test344.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test344.m	(revision 9725)
@@ -8,9 +8,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'FrictionCoefficient'};
-md.inversion.min_parameters=1*ones(md.numberofnodes,1);
-md.inversion.max_parameters=200*ones(md.numberofnodes,1);
+md.inversion.min_parameters=1*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=200*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=[104*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test423.m
===================================================================
--- /issm/trunk/test/NightlyRun/test423.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test423.m	(revision 9725)
@@ -6,5 +6,5 @@
 
 %partitioning
-md.qmu.numberofpartitions=md.numberofnodes;
+md.qmu.numberofpartitions=md.mesh.numberofvertices;
 md=partitioner(md,'package','linear','npart',md.qmu.numberofpartitions);
 md.qmu.partition=md.qmu.partition-1;
Index: /issm/trunk/test/NightlyRun/test424.m
===================================================================
--- /issm/trunk/test/NightlyRun/test424.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test424.m	(revision 9725)
@@ -6,5 +6,5 @@
 
 %partitioning
-md.qmu.numberofpartitions=md.numberofnodes;
+md.qmu.numberofpartitions=md.mesh.numberofvertices;
 md=partitioner(md,'package','linear','npart',md.qmu.numberofpartitions);
 md.qmu.partition=md.qmu.partition-1;
Index: /issm/trunk/test/NightlyRun/test428.m
===================================================================
--- /issm/trunk/test/NightlyRun/test428.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test428.m	(revision 9725)
@@ -8,7 +8,7 @@
 
 %constrain all velocities to 1 m/yr, in the y-direction
-md.diagnostic.spcvx=zeros(md.numberofnodes,1);
-md.diagnostic.spcvy=ones(md.numberofnodes,1);
-md.diagnostic.spcvz=zeros(md.numberofnodes,1);
+md.diagnostic.spcvx=zeros(md.mesh.numberofvertices,1);
+md.diagnostic.spcvy=ones(md.mesh.numberofvertices,1);
+md.diagnostic.spcvz=zeros(md.mesh.numberofvertices,1);
 
 %Dakota options
Index: /issm/trunk/test/NightlyRun/test429.m
===================================================================
--- /issm/trunk/test/NightlyRun/test429.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test429.m	(revision 9725)
@@ -8,9 +8,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'FrictionCoefficient'};
-md.inversion.min_parameters=1*ones(md.numberofnodes,1);
-md.inversion.max_parameters=200*ones(md.numberofnodes,1);
+md.inversion.min_parameters=1*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=200*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test430.m
===================================================================
--- /issm/trunk/test/NightlyRun/test430.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test430.m	(revision 9725)
@@ -8,9 +8,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'FrictionCoefficient'};
-md.inversion.min_parameters=1*ones(md.numberofnodes,1);
-md.inversion.max_parameters=200*ones(md.numberofnodes,1);
+md.inversion.min_parameters=1*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=200*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test431.m
===================================================================
--- /issm/trunk/test/NightlyRun/test431.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test431.m	(revision 9725)
@@ -8,9 +8,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'FrictionCoefficient'};
-md.inversion.min_parameters=1*ones(md.numberofnodes,1);
-md.inversion.max_parameters=200*ones(md.numberofnodes,1);
+md.inversion.min_parameters=1*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=200*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=[102*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test432.m
===================================================================
--- /issm/trunk/test/NightlyRun/test432.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test432.m	(revision 9725)
@@ -8,9 +8,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'FrictionCoefficient'};
-md.inversion.min_parameters=1*ones(md.numberofnodes,1);
-md.inversion.max_parameters=200*ones(md.numberofnodes,1);
+md.inversion.min_parameters=1*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=200*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=[102*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test435.m
===================================================================
--- /issm/trunk/test/NightlyRun/test435.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test435.m	(revision 9725)
@@ -11,5 +11,5 @@
 md.qmu.partition=md.qmu.partition-1;
 
-vector=(1:1:md.numberofnodes)';
+vector=(1:1:md.mesh.numberofvertices)';
 vector_on_partition=AreaAverageOntoPartition(md,vector);
 vector_on_nodes=vector_on_partition(md.qmu.partition+1);
Index: /issm/trunk/test/NightlyRun/test446.m
===================================================================
--- /issm/trunk/test/NightlyRun/test446.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test446.m	(revision 9725)
@@ -13,8 +13,8 @@
 yelem=md.y(md.elements)*[1;1;1]/3;
 rad=sqrt((xelem).*xelem+(yelem).*yelem);
-flags=zeros(md.numberofelements,1);
+flags=zeros(md.mesh.numberofelements,1);
 pos=find(rad>=(radius-shelfextent));
 flags(pos)=1;
-flags2=zeros(md.numberofelements,1);
+flags2=zeros(md.mesh.numberofelements,1);
 md=setmask(md,flags,flags2); 
 %}}}
@@ -44,10 +44,10 @@
 %grounding line: 
 md.groundingline.migration='AgressiveMigration';
-md=solve(md,GroundinglineMigration2DSolutionEnum);
-element_on_iceshelf_agressive=PatchToVec(md.results.GroundinglineMigration2DSolution.MaskElementonfloatingice);
+md=solve(md,GroundinglineMigration2dSolutionEnum);
+element_on_iceshelf_agressive=PatchToVec(md.results.GroundinglineMigration2dSolution.MaskElementonfloatingice);
 
 md.groundingline.migration='SoftMigration';
-md=solve(md,GroundinglineMigration2DSolutionEnum);
-element_on_iceshelf_soft=PatchToVec(md.results.GroundinglineMigration2DSolution.MaskElementonfloatingice);
+md=solve(md,GroundinglineMigration2dSolutionEnum);
+element_on_iceshelf_soft=PatchToVec(md.results.GroundinglineMigration2dSolution.MaskElementonfloatingice);
 
 %Fields and tolerances to track changes
Index: /issm/trunk/test/NightlyRun/test521.m
===================================================================
--- /issm/trunk/test/NightlyRun/test521.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test521.m	(revision 9725)
@@ -13,9 +13,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'MaterialsRheologyBbar'};
-md.inversion.min_parameters=10^6*ones(md.numberofnodes,1);
-md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1);
+md.inversion.min_parameters=10^6*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=2*10^9*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.gradient_scaling=10^8*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test522.m
===================================================================
--- /issm/trunk/test/NightlyRun/test522.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test522.m	(revision 9725)
@@ -13,9 +13,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'MaterialsRheologyBbar'};
-md.inversion.min_parameters=10^6*ones(md.numberofnodes,1);
-md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1);
+md.inversion.min_parameters=10^6*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=2*10^9*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.gradient_scaling=10^8*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test523.m
===================================================================
--- /issm/trunk/test/NightlyRun/test523.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test523.m	(revision 9725)
@@ -8,9 +8,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'FrictionCoefficient'};
-md.inversion.min_parameters=1*ones(md.numberofnodes,1);
-md.inversion.max_parameters=200*ones(md.numberofnodes,1);
+md.inversion.min_parameters=1*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=200*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test524.m
===================================================================
--- /issm/trunk/test/NightlyRun/test524.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test524.m	(revision 9725)
@@ -8,9 +8,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'FrictionCoefficient'};
-md.inversion.min_parameters=1*ones(md.numberofnodes,1);
-md.inversion.max_parameters=200*ones(md.numberofnodes,1);
+md.inversion.min_parameters=1*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=200*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test525.m
===================================================================
--- /issm/trunk/test/NightlyRun/test525.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test525.m	(revision 9725)
@@ -8,9 +8,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'FrictionCoefficient'};
-md.inversion.min_parameters=1*ones(md.numberofnodes,1);
-md.inversion.max_parameters=200*ones(md.numberofnodes,1);
+md.inversion.min_parameters=1*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=200*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test526.m
===================================================================
--- /issm/trunk/test/NightlyRun/test526.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test526.m	(revision 9725)
@@ -8,9 +8,9 @@
 md.inversion.iscontrol=1;
 md.inversion.control_parameters={'FrictionCoefficient'};
-md.inversion.min_parameters=1*ones(md.numberofnodes,1);
-md.inversion.max_parameters=200*ones(md.numberofnodes,1);
+md.inversion.min_parameters=1*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=200*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
 md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test527.m
===================================================================
--- /issm/trunk/test/NightlyRun/test527.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test527.m	(revision 9725)
@@ -27,5 +27,5 @@
 
 %refine existing mesh 3
-hVertices=NaN*ones(md.numberofnodes,1);
+hVertices=NaN*ones(md.mesh.numberofvertices,1);
 hVertices(find(md.mesh.vertexonboundary))=500;
 md2=bamg(md,'metric',md.miscellaneous.dummy,'hmin',1000,'hmax',20000,'gradation',3,'geometricalmetric',1,'anisomax',1,'hVertices',hVertices);
Index: /issm/trunk/test/NightlyRun/test621.m
===================================================================
--- /issm/trunk/test/NightlyRun/test621.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test621.m	(revision 9725)
@@ -10,8 +10,8 @@
 md.inversion.control_parameters={'BalancethicknessThickeningRate'};
 md.inversion.thickness_obs=md.geometry.thickness;
-md.inversion.min_parameters=-50*ones(md.numberofnodes,1);
-md.inversion.max_parameters=50*ones(md.numberofnodes,1);
+md.inversion.min_parameters=-50*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=50*ones(md.mesh.numberofvertices,1);
 md.inversion.cost_functions=201*ones(md.inversion.nsteps,1);
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.gradient_scaling=10/md.constants.yts*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=4*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test622.m
===================================================================
--- /issm/trunk/test/NightlyRun/test622.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test622.m	(revision 9725)
@@ -10,8 +10,8 @@
 md.inversion.control_parameters={'BalancethicknessThickeningRate'};
 md.inversion.thickness_obs=md.geometry.thickness;
-md.inversion.min_parameters=-50*ones(md.numberofnodes,1);
-md.inversion.max_parameters=50*ones(md.numberofnodes,1);
+md.inversion.min_parameters=-50*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=50*ones(md.mesh.numberofvertices,1);
 md.inversion.cost_functions=201*ones(md.inversion.nsteps,1);
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.gradient_scaling=10/md.constants.yts*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=4*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test623.m
===================================================================
--- /issm/trunk/test/NightlyRun/test623.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test623.m	(revision 9725)
@@ -11,8 +11,8 @@
 md.inversion.control_parameters={'BalancethicknessThickeningRate'};
 md.inversion.thickness_obs=md.geometry.thickness;
-md.inversion.min_parameters=-50*ones(md.numberofnodes,1);
-md.inversion.max_parameters=50*ones(md.numberofnodes,1);
+md.inversion.min_parameters=-50*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=50*ones(md.mesh.numberofvertices,1);
 md.inversion.cost_functions=201*ones(md.inversion.nsteps,1);
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.gradient_scaling=10/md.constants.yts*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=4*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test624.m
===================================================================
--- /issm/trunk/test/NightlyRun/test624.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test624.m	(revision 9725)
@@ -11,8 +11,8 @@
 md.inversion.control_parameters={'BalancethicknessThickeningRate'};
 md.inversion.thickness_obs=md.geometry.thickness;
-md.inversion.min_parameters=-50*ones(md.numberofnodes,1);
-md.inversion.max_parameters=50*ones(md.numberofnodes,1);
+md.inversion.min_parameters=-50*ones(md.mesh.numberofvertices,1);
+md.inversion.max_parameters=50*ones(md.mesh.numberofvertices,1);
 md.inversion.cost_functions=201*ones(md.inversion.nsteps,1);
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.gradient_scaling=10/md.constants.yts*ones(md.inversion.nsteps,1);
 md.inversion.maxiter_per_step=4*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test625.m
===================================================================
--- /issm/trunk/test/NightlyRun/test625.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test625.m	(revision 9725)
@@ -18,8 +18,8 @@
 md.balancethickness.stabilization=1;
 md.inversion.gradient_scaling=[10/md.constants.yts*ones(md.inversion.nsteps,1) 10/md.constants.yts*ones(md.inversion.nsteps,1)];
-md.inversion.min_parameters=[-2000*ones(md.numberofnodes,1) -2000*ones(md.numberofnodes,1)];
-md.inversion.max_parameters=[+2000*ones(md.numberofnodes,1) +2000*ones(md.numberofnodes,1)];
+md.inversion.min_parameters=[-2000*ones(md.mesh.numberofvertices,1) -2000*ones(md.mesh.numberofvertices,1)];
+md.inversion.max_parameters=[+2000*ones(md.mesh.numberofvertices,1) +2000*ones(md.mesh.numberofvertices,1)];
 md.inversion.cost_functions=201*ones(md.inversion.nsteps,1);
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.maxiter_per_step=4*ones(md.inversion.nsteps,1);
 md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/NightlyRun/test626.m
===================================================================
--- /issm/trunk/test/NightlyRun/test626.m	(revision 9724)
+++ /issm/trunk/test/NightlyRun/test626.m	(revision 9725)
@@ -18,8 +18,8 @@
 md.balancethickness.stabilization=1;
 md.inversion.gradient_scaling=[10/md.constants.yts*ones(md.inversion.nsteps,1) 10/md.constants.yts*ones(md.inversion.nsteps,1)];
-md.inversion.min_parameters=[-2000*ones(md.numberofnodes,1) -2000*ones(md.numberofnodes,1)];
-md.inversion.max_parameters=[+2000*ones(md.numberofnodes,1) +2000*ones(md.numberofnodes,1)];
+md.inversion.min_parameters=[-2000*ones(md.mesh.numberofvertices,1) -2000*ones(md.mesh.numberofvertices,1)];
+md.inversion.max_parameters=[+2000*ones(md.mesh.numberofvertices,1) +2000*ones(md.mesh.numberofvertices,1)];
 md.inversion.cost_functions=201*ones(md.inversion.nsteps,1);
-md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1);
+md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.maxiter_per_step=4*ones(md.inversion.nsteps,1);
 md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1);
Index: /issm/trunk/test/Par/79North.par
===================================================================
--- /issm/trunk/test/Par/79North.par	(revision 9724)
+++ /issm/trunk/test/Par/79North.par	(revision 9725)
@@ -11,21 +11,21 @@
 
 %Materials
-md.initialization.temperature=(273-20)*ones(md.numberofnodes,1);
+md.initialization.temperature=(273-20)*ones(md.mesh.numberofvertices,1);
 md.materials.rheology_B=paterson(md.initialization.temperature);
-md.materials.rheology_n=3*ones(md.numberofelements,1);
+md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
 
 %Friction
 pos=find(md.mask.elementonfloatingice);
-md.friction.coefficient=50*ones(md.numberofnodes,1);
+md.friction.coefficient=50*ones(md.mesh.numberofvertices,1);
 md.friction.coefficient(md.elements(pos,:))=0;
-md.friction.p=ones(md.numberofelements,1);
-md.friction.q=ones(md.numberofelements,1);
+md.friction.p=ones(md.mesh.numberofelements,1);
+md.friction.q=ones(md.mesh.numberofelements,1);
 
 %Ice shelf melting and surface mass balance 
-md.basalforcings.melting_rate=zeros(md.numberofnodes,1);
-pos=zeros(md.numberofnodes,1);
+md.basalforcings.melting_rate=zeros(md.mesh.numberofvertices,1);
+pos=zeros(md.mesh.numberofvertices,1);
 pos(md.elements(find(md.mask.elementonfloatingice),:))=1;
 md.basalforcings.melting_rate(find(pos))=10;
-md.surfaceforcings.mass_balance=15*ones(md.numberofnodes,1);
+md.surfaceforcings.mass_balance=15*ones(md.mesh.numberofvertices,1);
 
 %Numerical parameters
Index: /issm/trunk/test/Par/ISMIPA.par
===================================================================
--- /issm/trunk/test/Par/ISMIPA.par	(revision 9724)
+++ /issm/trunk/test/Par/ISMIPA.par	(revision 9725)
@@ -7,14 +7,14 @@
 
 disp('      creating drag');
-md.friction.coefficient=200*ones(md.numberofnodes,1); %q=1.
+md.friction.coefficient=200*ones(md.mesh.numberofvertices,1); %q=1.
 %Take care of iceshelves: no basal drag
 pos=find(md.mask.elementonfloatingice);
 md.friction.coefficient(md.elements(pos,:))=0;
-md.friction.p=ones(md.numberofelements,1);
-md.friction.q=ones(md.numberofelements,1);
+md.friction.p=ones(md.mesh.numberofelements,1);
+md.friction.q=ones(md.mesh.numberofelements,1);
 
 disp('      creating flow law paramter');
-md.materials.rheology_B=6.8067*10^7*ones(md.numberofnodes,1);
-md.materials.rheology_n=3*ones(md.numberofelements,1);
+md.materials.rheology_B=6.8067*10^7*ones(md.mesh.numberofvertices,1);
+md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
 
 disp('      boundary conditions for diagnostic model');
Index: /issm/trunk/test/Par/ISMIPB.par
===================================================================
--- /issm/trunk/test/Par/ISMIPB.par	(revision 9724)
+++ /issm/trunk/test/Par/ISMIPB.par	(revision 9725)
@@ -7,14 +7,14 @@
 
 disp('      creating drag');
-md.friction.coefficient=200*ones(md.numberofnodes,1); %q=1.
+md.friction.coefficient=200*ones(md.mesh.numberofvertices,1); %q=1.
 %Take care of iceshelves: no basal drag
 pos=find(md.mask.elementonfloatingice);
 md.friction.coefficient(md.elements(pos,:))=0;
-md.friction.p=ones(md.numberofelements,1);
-md.friction.q=ones(md.numberofelements,1);
+md.friction.p=ones(md.mesh.numberofelements,1);
+md.friction.q=ones(md.mesh.numberofelements,1);
 
 disp('      creating flow law paramter');
-md.materials.rheology_B=6.8067*10^7*ones(md.numberofnodes,1);
-md.materials.rheology_n=3*ones(md.numberofelements,1);
+md.materials.rheology_B=6.8067*10^7*ones(md.mesh.numberofvertices,1);
+md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
 
 disp('      boundary conditions for diagnostic model');
Index: /issm/trunk/test/Par/ISMIPC.par
===================================================================
--- /issm/trunk/test/Par/ISMIPC.par	(revision 9724)
+++ /issm/trunk/test/Par/ISMIPC.par	(revision 9725)
@@ -12,10 +12,10 @@
 pos=find(md.mask.elementonfloatingice);
 md.friction.coefficient(md.elements(pos,:))=0;
-md.friction.p=ones(md.numberofelements,1);
-md.friction.q=zeros(md.numberofelements,1);
+md.friction.p=ones(md.mesh.numberofelements,1);
+md.friction.q=zeros(md.mesh.numberofelements,1);
 
 disp('      creating flow law paramter');
-md.materials.rheology_B=6.8067*10^7*ones(md.numberofnodes,1);
-md.materials.rheology_n=3*ones(md.numberofelements,1);
+md.materials.rheology_B=6.8067*10^7*ones(md.mesh.numberofvertices,1);
+md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
 
 disp('      boundary conditions for diagnostic model: ');
Index: /issm/trunk/test/Par/ISMIPD.par
===================================================================
--- /issm/trunk/test/Par/ISMIPD.par	(revision 9724)
+++ /issm/trunk/test/Par/ISMIPD.par	(revision 9725)
@@ -11,10 +11,10 @@
 pos=find(md.mask.elementonfloatingice);
 md.friction.coefficient(md.elements(pos,:))=0;
-md.friction.p=ones(md.numberofelements,1);
-md.friction.q=zeros(md.numberofelements,1);
+md.friction.p=ones(md.mesh.numberofelements,1);
+md.friction.q=zeros(md.mesh.numberofelements,1);
 
 disp('      creating flow law paramter');
-md.materials.rheology_B=6.8067*10^7*ones(md.numberofnodes,1);
-md.materials.rheology_n=3*ones(md.numberofelements,1);
+md.materials.rheology_B=6.8067*10^7*ones(md.mesh.numberofvertices,1);
+md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
 
 disp('      boundary conditions for diagnostic model: ');
Index: /issm/trunk/test/Par/ISMIPE.par
===================================================================
--- /issm/trunk/test/Par/ISMIPE.par	(revision 9724)
+++ /issm/trunk/test/Par/ISMIPE.par	(revision 9725)
@@ -4,7 +4,7 @@
 data=load('../Data/ISMIPE.data','-mat');
 data=data.data;
-md.geometry.surface=zeros(md.numberofnodes,1);
-md.geometry.bed=zeros(md.numberofnodes,1);
-for i=1:md.numberofnodes
+md.geometry.surface=zeros(md.mesh.numberofvertices,1);
+md.geometry.bed=zeros(md.mesh.numberofvertices,1);
+for i=1:md.mesh.numberofvertices
 	y=md.y(i);
 	point1=floor(y/100)+1;
@@ -19,11 +19,11 @@
 
 disp('      creating drag');
-md.friction.coefficient=zeros(md.numberofnodes,1);
-md.friction.p=ones(md.numberofelements,1);
-md.friction.q=ones(md.numberofelements,1);
+md.friction.coefficient=zeros(md.mesh.numberofvertices,1);
+md.friction.p=ones(md.mesh.numberofelements,1);
+md.friction.q=ones(md.mesh.numberofelements,1);
 
 disp('      creating flow law paramter');
-md.materials.rheology_B=6.8067*10^7*ones(md.numberofnodes,1);
-md.materials.rheology_n=3*ones(md.numberofelements,1);
+md.materials.rheology_B=6.8067*10^7*ones(md.mesh.numberofvertices,1);
+md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
 
 disp('      boundary conditions for diagnostic model: ');
Index: /issm/trunk/test/Par/ISMIPF.par
===================================================================
--- /issm/trunk/test/Par/ISMIPF.par	(revision 9724)
+++ /issm/trunk/test/Par/ISMIPF.par	(revision 9725)
@@ -9,11 +9,11 @@
 
 disp('      creating drag');
-md.friction.coefficient=sqrt(md.constants.yts/(2.140373*10^-7*1000))*ones(md.numberofnodes,1);
-md.friction.p=ones(md.numberofelements,1);
-md.friction.q=zeros(md.numberofelements,1);
+md.friction.coefficient=sqrt(md.constants.yts/(2.140373*10^-7*1000))*ones(md.mesh.numberofvertices,1);
+md.friction.p=ones(md.mesh.numberofelements,1);
+md.friction.q=zeros(md.mesh.numberofelements,1);
 
 disp('      creating flow law paramter');
-md.materials.rheology_B=1.4734*10^14*ones(md.numberofnodes,1);
-md.materials.rheology_n=1*ones(md.numberofelements,1);
+md.materials.rheology_B=1.4734*10^14*ones(md.mesh.numberofvertices,1);
+md.materials.rheology_n=1*ones(md.mesh.numberofelements,1);
 md.materials.rheology_law='None';
 
@@ -21,18 +21,18 @@
 %Create node on boundary fist (because we cannot use mesh)
 md=SetIceSheetBC(md);
-md.diagnostic.spcvx=100*ones(md.numberofnodes,1);
-md.initialization.vx=zeros(md.numberofnodes,1);
-md.initialization.vy=zeros(md.numberofnodes,1);
-md.initialization.vz=zeros(md.numberofnodes,1);
-md.initialization.vel=zeros(md.numberofnodes,1);
-md.initialization.pressure=zeros(md.numberofnodes,1);
-md.initialization.temperature=255*ones(md.numberofnodes,1);
+md.diagnostic.spcvx=100*ones(md.mesh.numberofvertices,1);
+md.initialization.vx=zeros(md.mesh.numberofvertices,1);
+md.initialization.vy=zeros(md.mesh.numberofvertices,1);
+md.initialization.vz=zeros(md.mesh.numberofvertices,1);
+md.initialization.vel=zeros(md.mesh.numberofvertices,1);
+md.initialization.pressure=zeros(md.mesh.numberofvertices,1);
+md.initialization.temperature=255*ones(md.mesh.numberofvertices,1);
 pos=find(md.x==min(md.x) | md.x==max(md.x) | md.y==min(md.y) | md.y==max(md.y));
-md.balancethickness.spcthickness=NaN*ones(md.numberofnodes,1);
+md.balancethickness.spcthickness=NaN*ones(md.mesh.numberofvertices,1);
 md.balancethickness.spcthickness(pos)=md.geometry.thickness(pos);
-md.prognostic.spcthickness=NaN*ones(md.numberofnodes,1);
+md.prognostic.spcthickness=NaN*ones(md.mesh.numberofvertices,1);
 md.prognostic.spcthickness(pos)=md.geometry.thickness(pos);
-md.thermal.spctemperature=255*ones(md.numberofnodes,1);
-md.basalforcings.geothermalflux=0.4*ones(md.numberofnodes,1);
+md.thermal.spctemperature=255*ones(md.mesh.numberofvertices,1);
+md.basalforcings.geothermalflux=0.4*ones(md.mesh.numberofvertices,1);
 
 %Parallel options
Index: /issm/trunk/test/Par/Pig.par
===================================================================
--- /issm/trunk/test/Par/Pig.par	(revision 9724)
+++ /issm/trunk/test/Par/Pig.par	(revision 9725)
@@ -11,19 +11,19 @@
 md.initialization.vx=md.inversion.vx_obs;
 md.initialization.vy=md.inversion.vy_obs;
-md.initialization.vz=zeros(md.numberofnodes,1);
-md.initialization.pressure=zeros(md.numberofnodes,1);
+md.initialization.vz=zeros(md.mesh.numberofvertices,1);
+md.initialization.pressure=zeros(md.mesh.numberofvertices,1);
 
 %Materials
-md.initialization.temperature=(273-20)*ones(md.numberofnodes,1);
+md.initialization.temperature=(273-20)*ones(md.mesh.numberofvertices,1);
 md.materials.rheology_B=paterson(md.initialization.temperature);
-md.materials.rheology_n=3*ones(md.numberofelements,1);
+md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
 md.initialization.temperature=md.initialization.temperature;
 
 %Friction
 pos=find(md.mask.elementonfloatingice);
-md.friction.coefficient=50*ones(md.numberofnodes,1);
+md.friction.coefficient=50*ones(md.mesh.numberofvertices,1);
 md.friction.coefficient(md.elements(pos,:))=0;
-md.friction.p=ones(md.numberofelements,1);
-md.friction.q=ones(md.numberofelements,1);
+md.friction.p=ones(md.mesh.numberofelements,1);
+md.friction.q=ones(md.mesh.numberofelements,1);
 
 %Numerical parameters
Index: /issm/trunk/test/Par/RoundSheetEISMINT.par
===================================================================
--- /issm/trunk/test/Par/RoundSheetEISMINT.par	(revision 9724)
+++ /issm/trunk/test/Par/RoundSheetEISMINT.par	(revision 9725)
@@ -1,12 +1,12 @@
 %Ok, start defining model parameters here
 disp('      creating thickness');
-md.geometry.thickness=10*ones(md.numberofnodes,1);
-md.geometry.bed=zeros(md.numberofnodes,1);
+md.geometry.thickness=10*ones(md.mesh.numberofvertices,1);
+md.geometry.bed=zeros(md.mesh.numberofvertices,1);
 md.geometry.surface=md.geometry.bed+md.geometry.thickness;
 
 disp('      creating drag');
-md.friction.coefficient=20*ones(md.numberofnodes,1); %q=1. %no drag is specified in the analytical solution
-md.friction.p=ones(md.numberofelements,1);
-md.friction.q=ones(md.numberofelements,1);
+md.friction.coefficient=20*ones(md.mesh.numberofvertices,1); %q=1. %no drag is specified in the analytical solution
+md.friction.p=ones(md.mesh.numberofelements,1);
+md.friction.q=ones(md.mesh.numberofelements,1);
 
 disp('      creating temperatures');
@@ -15,9 +15,9 @@
 radius=sqrt((md.x).^2+(md.y).^2);
 md.initialization.temperature=(tmin+st*radius);
-md.basalforcings.geothermalflux=4.2*10^-2*ones(md.numberofnodes,1);
+md.basalforcings.geothermalflux=4.2*10^-2*ones(md.mesh.numberofvertices,1);
 
 disp('      creating flow law paramter');
-md.materials.rheology_B=6.81*10^(7)*ones(md.numberofnodes,1); %to have the same B as the analytical solution 
-md.materials.rheology_n=3*ones(md.numberofelements,1);
+md.materials.rheology_B=6.81*10^(7)*ones(md.mesh.numberofvertices,1); %to have the same B as the analytical solution 
+md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
 
 disp('      creating surface mass balance');
@@ -32,8 +32,8 @@
 md.inversion.vy_obs=constant/2*md.y.*(md.geometry.thickness).^-1;
 md.inversion.vel_obs=(sqrt((md.inversion.vx_obs).^2+(md.inversion.vy_obs).^2));
-md.initialization.vx=zeros(md.numberofnodes,1);
-md.initialization.vy=zeros(md.numberofnodes,1);
-md.initialization.vz=zeros(md.numberofnodes,1);
-md.initialization.pressure=zeros(md.numberofnodes,1);
+md.initialization.vx=zeros(md.mesh.numberofvertices,1);
+md.initialization.vy=zeros(md.mesh.numberofvertices,1);
+md.initialization.vz=zeros(md.mesh.numberofvertices,1);
+md.initialization.pressure=zeros(md.mesh.numberofvertices,1);
 
 %Deal with boundary conditions:
Index: /issm/trunk/test/Par/RoundSheetShelf.par
===================================================================
--- /issm/trunk/test/Par/RoundSheetShelf.par	(revision 9724)
+++ /issm/trunk/test/Par/RoundSheetShelf.par	(revision 9725)
@@ -34,25 +34,25 @@
 
 %Initial velocity 
-md.initialization.vx=zeros(md.numberofnodes,1);
-md.initialization.vy=zeros(md.numberofnodes,1);
-md.initialization.vz=zeros(md.numberofnodes,1);
-md.initialization.pressure=zeros(md.numberofnodes,1);
+md.initialization.vx=zeros(md.mesh.numberofvertices,1);
+md.initialization.vy=zeros(md.mesh.numberofvertices,1);
+md.initialization.vz=zeros(md.mesh.numberofvertices,1);
+md.initialization.pressure=zeros(md.mesh.numberofvertices,1);
 
 %Materials
-md.initialization.temperature=(273-20)*ones(md.numberofnodes,1);
+md.initialization.temperature=(273-20)*ones(md.mesh.numberofvertices,1);
 md.materials.rheology_B=paterson(md.initialization.temperature);
-md.materials.rheology_n=3*ones(md.numberofelements,1);
+md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
 
 %Surface mass balance and basal melting
-md.surfaceforcings.mass_balance=-10*ones(md.numberofnodes,1);
-md.basalforcings.melting_rate=zeros(md.numberofnodes,1);
+md.surfaceforcings.mass_balance=-10*ones(md.mesh.numberofvertices,1);
+md.basalforcings.melting_rate=zeros(md.mesh.numberofvertices,1);
 pos=find(md.mask.vertexonfloatingice);md.basalforcings.melting_rate(pos)=10;
 
 %Friction
 pos=find(md.mask.elementonfloatingice);
-md.friction.coefficient=20*ones(md.numberofnodes,1);
+md.friction.coefficient=20*ones(md.mesh.numberofvertices,1);
 md.friction.coefficient(md.elements(pos,:))=0;
-md.friction.p=ones(md.numberofelements,1);
-md.friction.q=ones(md.numberofelements,1);
+md.friction.p=ones(md.mesh.numberofelements,1);
+md.friction.q=ones(md.mesh.numberofelements,1);
 
 %Numerical parameters
@@ -75,7 +75,7 @@
 
 %Deal with boundary conditions:
-md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1);
-md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1);
-md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1);
+md.diagnostic.spcvx=NaN*ones(md.mesh.numberofvertices,1);
+md.diagnostic.spcvy=NaN*ones(md.mesh.numberofvertices,1);
+md.diagnostic.spcvz=NaN*ones(md.mesh.numberofvertices,1);
 
 pos=find(md.x==0 & md.y==0);
@@ -86,7 +86,7 @@
 pressureload=[pressureload 1*md.mask.elementonfloatingice(pressureload(:,end)) + 0*md.mask.elementongroundedice(pressureload(:,end))];
 md.diagnostic.icefront=pressureload;
-md.balancethickness.spcthickness=NaN*ones(md.numberofnodes,1);
-md.prognostic.spcthickness=NaN*ones(md.numberofnodes,1);
-md.diagnostic.referential=NaN*ones(md.numberofnodes,6);
+md.balancethickness.spcthickness=NaN*ones(md.mesh.numberofvertices,1);
+md.prognostic.spcthickness=NaN*ones(md.mesh.numberofvertices,1);
+md.diagnostic.referential=NaN*ones(md.mesh.numberofvertices,6);
 
 %Change name so that no test have the same name
Index: /issm/trunk/test/Par/RoundSheetStaticEISMINT.par
===================================================================
--- /issm/trunk/test/Par/RoundSheetStaticEISMINT.par	(revision 9724)
+++ /issm/trunk/test/Par/RoundSheetStaticEISMINT.par	(revision 9725)
@@ -9,10 +9,10 @@
 
 disp('      creating drag');
-md.friction.coefficient=20*ones(md.numberofnodes,1); %q=1. %no drag is specified in the analytical solution
+md.friction.coefficient=20*ones(md.mesh.numberofvertices,1); %q=1. %no drag is specified in the analytical solution
 %Take care of iceshelves: no basal drag
 pos=find(md.mask.elementonfloatingice);
 md.friction.coefficient(md.elements(pos,:))=0;
-md.friction.p=ones(md.numberofelements,1);
-md.friction.q=ones(md.numberofelements,1);
+md.friction.p=ones(md.mesh.numberofelements,1);
+md.friction.q=ones(md.mesh.numberofelements,1);
 
 disp('      creating temperatures');
@@ -20,9 +20,9 @@
 st=1.67*10^-2/1000; %k/m;
 md.initialization.temperature=(tmin+st*radius);
-md.basalforcings.geothermalflux=4.2*10^-2*ones(md.numberofnodes,1);
+md.basalforcings.geothermalflux=4.2*10^-2*ones(md.mesh.numberofvertices,1);
 
 disp('      creating flow law paramter');
-md.materials.rheology_B=6.81*10^(7)*ones(md.numberofnodes,1); %to have the same B as the analytical solution 
-md.materials.rheology_n=3*ones(md.numberofelements,1);
+md.materials.rheology_B=6.81*10^(7)*ones(md.mesh.numberofvertices,1); %to have the same B as the analytical solution 
+md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
 
 disp('      creating surface mass balance');
@@ -37,8 +37,8 @@
 md.inversion.vy_obs=constant/2*md.y.*(md.geometry.thickness).^-1;
 md.inversion.vel_obs=(sqrt((md.inversion.vx_obs).^2+(md.inversion.vy_obs).^2));
-md.initialization.vx=zeros(md.numberofnodes,1);
-md.initialization.vy=zeros(md.numberofnodes,1);
-md.initialization.vz=zeros(md.numberofnodes,1);
-md.initialization.pressure=zeros(md.numberofnodes,1);
+md.initialization.vx=zeros(md.mesh.numberofvertices,1);
+md.initialization.vy=zeros(md.mesh.numberofvertices,1);
+md.initialization.vz=zeros(md.mesh.numberofvertices,1);
+md.initialization.pressure=zeros(md.mesh.numberofvertices,1);
 
 %Deal with boundary conditions:
Index: /issm/trunk/test/Par/SquareEISMINT.par
===================================================================
--- /issm/trunk/test/Par/SquareEISMINT.par	(revision 9724)
+++ /issm/trunk/test/Par/SquareEISMINT.par	(revision 9725)
@@ -4,26 +4,26 @@
 ymin=min(md.y);
 ymax=max(md.y);
-md.geometry.thickness=500*ones(md.numberofnodes,1);
+md.geometry.thickness=500*ones(md.mesh.numberofvertices,1);
 md.geometry.bed=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness;
 md.geometry.surface=md.geometry.bed+md.geometry.thickness;
 
 disp('      creating drag');
-md.friction.coefficient=200*ones(md.numberofnodes,1); %q=1.
+md.friction.coefficient=200*ones(md.mesh.numberofvertices,1); %q=1.
 %Take care of iceshelves: no basal drag
 pos=find(md.mask.elementonfloatingice);
 md.friction.coefficient(md.elements(pos,:))=0;
-md.friction.p=ones(md.numberofelements,1);
-md.friction.q=ones(md.numberofelements,1);
+md.friction.p=ones(md.mesh.numberofelements,1);
+md.friction.q=ones(md.mesh.numberofelements,1);
 
 disp('      creating temperature');
-md.initialization.temperature=(273-20)*ones(md.numberofnodes,1);
+md.initialization.temperature=(273-20)*ones(md.mesh.numberofvertices,1);
 
 disp('      creating flow law paramter');
-md.materials.rheology_B=1.7687*10^8*ones(md.numberofnodes,1);
-md.materials.rheology_n=3*ones(md.numberofelements,1);
+md.materials.rheology_B=1.7687*10^8*ones(md.mesh.numberofvertices,1);
+md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
 
 disp('      creating surface mass balance');
-md.surfaceforcings.mass_balance=0.2*ones(md.numberofnodes,1); %0m/a
-md.basalforcings.melting_rate=0*ones(md.numberofnodes,1); %0m/a
+md.surfaceforcings.mass_balance=0.2*ones(md.mesh.numberofvertices,1); %0m/a
+md.basalforcings.melting_rate=0*ones(md.mesh.numberofvertices,1); %0m/a
 
 disp('      boundary conditions ');
@@ -32,7 +32,7 @@
 %Evolution of the ice shelf
 pos=find(md.y==200000); %nodes on the upper boundary condition
-md.balancethickness.spcthickness=NaN*ones(md.numberofnodes,1);
+md.balancethickness.spcthickness=NaN*ones(md.mesh.numberofvertices,1);
 md.balancethickness.spcthickness(pos)=500;
-md.prognostic.spcthickness=NaN*ones(md.numberofnodes,1);
+md.prognostic.spcthickness=NaN*ones(md.mesh.numberofvertices,1);
 md.prognostic.spcthickness(pos)=500;
 md.prognostic.stabilization=0; %Better result with no artificial diffusivity
Index: /issm/trunk/test/Par/SquareSheetConstrained.par
===================================================================
--- /issm/trunk/test/Par/SquareSheetConstrained.par	(revision 9724)
+++ /issm/trunk/test/Par/SquareSheetConstrained.par	(revision 9725)
@@ -15,18 +15,18 @@
 md.initialization.vy=InterpFromMeshToMesh2d(index,x,y,vy,md.x,md.y);
 clear vx vy x y index;
-md.initialization.vz=zeros(md.numberofnodes,1);
-md.initialization.pressure=zeros(md.numberofnodes,1);
+md.initialization.vz=zeros(md.mesh.numberofvertices,1);
+md.initialization.pressure=zeros(md.mesh.numberofvertices,1);
 
 %Materials
-md.initialization.temperature=(273-20)*ones(md.numberofnodes,1);
+md.initialization.temperature=(273-20)*ones(md.mesh.numberofvertices,1);
 md.materials.rheology_B=paterson(md.initialization.temperature);
-md.materials.rheology_n=3*ones(md.numberofelements,1);
+md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
 
 %Friction
 pos=find(md.mask.elementonfloatingice);
-md.friction.coefficient=20*ones(md.numberofnodes,1);
+md.friction.coefficient=20*ones(md.mesh.numberofvertices,1);
 md.friction.coefficient(md.elements(pos,:))=0;
-md.friction.p=ones(md.numberofelements,1);
-md.friction.q=ones(md.numberofelements,1);
+md.friction.p=ones(md.mesh.numberofelements,1);
+md.friction.q=ones(md.mesh.numberofelements,1);
 
 %Numerical parameters
Index: /issm/trunk/test/Par/SquareSheetShelf.par
===================================================================
--- /issm/trunk/test/Par/SquareSheetShelf.par	(revision 9724)
+++ /issm/trunk/test/Par/SquareSheetShelf.par	(revision 9725)
@@ -18,22 +18,22 @@
 md.initialization.vy=InterpFromMeshToMesh2d(index,x,y,vy,md.x,md.y);
 clear vx vy x y index;
-md.initialization.vz=zeros(md.numberofnodes,1);
-md.initialization.pressure=zeros(md.numberofnodes,1);
+md.initialization.vz=zeros(md.mesh.numberofvertices,1);
+md.initialization.pressure=zeros(md.mesh.numberofvertices,1);
 
 %Materials
-md.initialization.temperature=(273-20)*ones(md.numberofnodes,1);
+md.initialization.temperature=(273-20)*ones(md.mesh.numberofvertices,1);
 md.materials.rheology_B=paterson(md.initialization.temperature);
-md.materials.rheology_n=3*ones(md.numberofelements,1);
+md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
 
 %Accumulation and melting
-md.surfaceforcings.mass_balance=10*ones(md.numberofnodes,1);
-md.basalforcings.melting_rate=5*ones(md.numberofnodes,1);
+md.surfaceforcings.mass_balance=10*ones(md.mesh.numberofvertices,1);
+md.basalforcings.melting_rate=5*ones(md.mesh.numberofvertices,1);
 
 %Friction
 pos=find(md.mask.elementonfloatingice);
-md.friction.coefficient=20*ones(md.numberofnodes,1);
+md.friction.coefficient=20*ones(md.mesh.numberofvertices,1);
 md.friction.coefficient(md.elements(pos,:))=0;
-md.friction.p=ones(md.numberofelements,1);
-md.friction.q=ones(md.numberofelements,1);
+md.friction.p=ones(md.mesh.numberofelements,1);
+md.friction.q=ones(md.mesh.numberofelements,1);
 
 %Numerical parameters
Index: /issm/trunk/test/Par/SquareShelf.par
===================================================================
--- /issm/trunk/test/Par/SquareShelf.par	(revision 9724)
+++ /issm/trunk/test/Par/SquareShelf.par	(revision 9725)
@@ -15,18 +15,18 @@
 md.initialization.vy=InterpFromMeshToMesh2d(index,x,y,vy,md.x,md.y);
 clear vx vy x y index;
-md.initialization.vz=zeros(md.numberofnodes,1);
-md.initialization.pressure=zeros(md.numberofnodes,1);
+md.initialization.vz=zeros(md.mesh.numberofvertices,1);
+md.initialization.pressure=zeros(md.mesh.numberofvertices,1);
 
 %Materials
-md.initialization.temperature=(273-20)*ones(md.numberofnodes,1);
+md.initialization.temperature=(273-20)*ones(md.mesh.numberofvertices,1);
 md.materials.rheology_B=paterson(md.initialization.temperature);
-md.materials.rheology_n=3*ones(md.numberofelements,1);
+md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
 
 %Friction
 pos=find(md.mask.elementonfloatingice);
-md.friction.coefficient=20*ones(md.numberofnodes,1);
+md.friction.coefficient=20*ones(md.mesh.numberofvertices,1);
 md.friction.coefficient(md.elements(pos,:))=0;
-md.friction.p=ones(md.numberofelements,1);
-md.friction.q=ones(md.numberofelements,1);
+md.friction.p=ones(md.mesh.numberofelements,1);
+md.friction.q=ones(md.mesh.numberofelements,1);
 
 %Numerical parameters
Index: /issm/trunk/test/Par/SquareShelfConstrained.par
===================================================================
--- /issm/trunk/test/Par/SquareShelfConstrained.par	(revision 9724)
+++ /issm/trunk/test/Par/SquareShelfConstrained.par	(revision 9725)
@@ -15,22 +15,22 @@
 md.initialization.vy=InterpFromMeshToMesh2d(index,x,y,vy,md.x,md.y);
 clear vx vy x y index;
-md.initialization.vz=zeros(md.numberofnodes,1);
-md.initialization.pressure=zeros(md.numberofnodes,1);
+md.initialization.vz=zeros(md.mesh.numberofvertices,1);
+md.initialization.pressure=zeros(md.mesh.numberofvertices,1);
 
 %Materials
-md.initialization.temperature=(273-20)*ones(md.numberofnodes,1);
+md.initialization.temperature=(273-20)*ones(md.mesh.numberofvertices,1);
 md.materials.rheology_B=paterson(md.initialization.temperature);
-md.materials.rheology_n=3*ones(md.numberofelements,1);
+md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
 
 %Surface mass balance and basal melting
-md.surfaceforcings.mass_balance=10*ones(md.numberofnodes,1);
-md.basalforcings.melting_rate=5*ones(md.numberofnodes,1);
+md.surfaceforcings.mass_balance=10*ones(md.mesh.numberofvertices,1);
+md.basalforcings.melting_rate=5*ones(md.mesh.numberofvertices,1);
 
 %Friction
 pos=find(md.mask.elementonfloatingice);
-md.friction.coefficient=20*ones(md.numberofnodes,1);
+md.friction.coefficient=20*ones(md.mesh.numberofvertices,1);
 md.friction.coefficient(md.elements(pos,:))=0;
-md.friction.p=ones(md.numberofelements,1);
-md.friction.q=ones(md.numberofelements,1);
+md.friction.p=ones(md.mesh.numberofelements,1);
+md.friction.q=ones(md.mesh.numberofelements,1);
 
 %Numerical parameters
Index: /issm/trunk/test/Par/SquareThermal.par
===================================================================
--- /issm/trunk/test/Par/SquareThermal.par	(revision 9724)
+++ /issm/trunk/test/Par/SquareThermal.par	(revision 9725)
@@ -5,31 +5,31 @@
 disp('      creating thickness');
 h=1000;
-md.geometry.thickness=h*ones(md.numberofnodes,1);
-md.geometry.bed=-1000*ones(md.numberofnodes,1);
+md.geometry.thickness=h*ones(md.mesh.numberofvertices,1);
+md.geometry.bed=-1000*ones(md.mesh.numberofvertices,1);
 md.geometry.surface=md.geometry.bed+md.geometry.thickness;
 
 disp('      creating velocities');
-md.initialization.vx=zeros(md.numberofnodes,1);
-md.initialization.vy=zeros(md.numberofnodes,1);
-md.initialization.vz=zeros(md.numberofnodes,1);
+md.initialization.vx=zeros(md.mesh.numberofvertices,1);
+md.initialization.vy=zeros(md.mesh.numberofvertices,1);
+md.initialization.vz=zeros(md.mesh.numberofvertices,1);
 
 disp('      creating drag');
-md.friction.coefficient=200*ones(md.numberofnodes,1); %q=1.
+md.friction.coefficient=200*ones(md.mesh.numberofvertices,1); %q=1.
 %Take care of iceshelves: no basal drag
 pos=find(md.mask.elementonfloatingice);
 md.friction.coefficient(md.elements(pos,:))=0;
-md.friction.p=ones(md.numberofelements,1);
-md.friction.q=ones(md.numberofelements,1);
+md.friction.p=ones(md.mesh.numberofelements,1);
+md.friction.q=ones(md.mesh.numberofelements,1);
 
 disp('      creating temperatures');
-md.initialization.temperature=(273-20)*ones(md.numberofnodes,1);
+md.initialization.temperature=(273-20)*ones(md.mesh.numberofvertices,1);
 
 disp('      creating flow law paramter');
 md.materials.rheology_B=paterson(md.initialization.temperature);
-md.materials.rheology_n=3*ones(md.numberofelements,1);
+md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
 
 disp('      creating surface mass balance');
-md.surfaceforcings.mass_balance=ones(md.numberofnodes,1)/md.constants.yts; %1m/a
-md.basalforcings.melting_rate=0*ones(md.numberofnodes,1)/md.constants.yts; %1m/a
+md.surfaceforcings.mass_balance=ones(md.mesh.numberofvertices,1)/md.constants.yts; %1m/a
+md.basalforcings.melting_rate=0*ones(md.mesh.numberofvertices,1)/md.constants.yts; %1m/a
 
 %Deal with boundary conditions:
@@ -40,4 +40,4 @@
 disp('      boundary conditions for thermal model');
 md.thermal.spctemperature(:)=md.initialization.temperature;
-md.basalforcings.geothermalflux=zeros(md.numberofnodes,1); 
+md.basalforcings.geothermalflux=zeros(md.mesh.numberofvertices,1); 
 pos=find(md.mask.elementongroundedice);md.basalforcings.geothermalflux(md.elements(pos,:))=1*10^-3; %1 mW/m^2
