Index: /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
===================================================================
--- /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 9618)
+++ /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 9619)
@@ -24,4 +24,6 @@
 	FrictionPEnum,
 	FrictionQEnum,
+	RiftsRiftstructEnum,
+	RiftsNumriftsEnum,
 	HydrologySpcwatercolumnEnum,
 	HydrologyKnEnum,
@@ -350,5 +352,4 @@
 	MinThermalConstraintsEnum,
 	NdtEnum,
-	NumriftsEnum,
 	NumberOfElementsEnum,
 	NumberOfVerticesEnum,
@@ -425,5 +426,4 @@
 	NodeOnHutterEnum,
 	ZEnum,
-	RiftsEnum,
 	SpcthicknessEnum,
 	SpctemperatureEnum,
Index: /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp
===================================================================
--- /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 9618)
+++ /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 9619)
@@ -28,4 +28,6 @@
 		case FrictionPEnum : return "FrictionP";
 		case FrictionQEnum : return "FrictionQ";
+		case RiftsRiftstructEnum : return "RiftsRiftstruct";
+		case RiftsNumriftsEnum : return "RiftsNumrifts";
 		case HydrologySpcwatercolumnEnum : return "HydrologySpcwatercolumn";
 		case HydrologyKnEnum : return "HydrologyKn";
@@ -299,5 +301,4 @@
 		case MinThermalConstraintsEnum : return "MinThermalConstraints";
 		case NdtEnum : return "Ndt";
-		case NumriftsEnum : return "Numrifts";
 		case NumberOfElementsEnum : return "NumberOfElements";
 		case NumberOfVerticesEnum : return "NumberOfVertices";
@@ -366,5 +367,4 @@
 		case NodeOnHutterEnum : return "NodeOnHutter";
 		case ZEnum : return "Z";
-		case RiftsEnum : return "Rifts";
 		case SpcthicknessEnum : return "Spcthickness";
 		case SpctemperatureEnum : return "Spctemperature";
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp	(revision 9618)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp	(revision 9619)
@@ -44,5 +44,5 @@
 	iomodel->Constant(&isstokes,IsstokesEnum);
 	iomodel->Constant(&ismacayealpattyn,IsmacayealpattynEnum);
-	iomodel->Constant(&numrifts,NumriftsEnum);
+	iomodel->Constant(&numrifts,RiftsNumriftsEnum);
 
 	/*Recover pointer: */
@@ -173,6 +173,6 @@
 	/*Create Riffront loads for rifts: */
 	if(numrifts){
-		iomodel->FetchData(&riftinfo,&numriftsegments,NULL,RiftsEnum);
-		iomodel->FetchData(5,RiftsEnum,ThicknessEnum,BedEnum,SurfaceEnum,NodeOnIceShelfEnum);
+		iomodel->FetchData(&riftinfo,&numriftsegments,NULL,RiftsRiftstructEnum);
+		iomodel->FetchData(5,RiftsRiftstructEnum,ThicknessEnum,BedEnum,SurfaceEnum,NodeOnIceShelfEnum);
 		for(i=0;i<numriftsegments;i++){
 			if(iomodel->my_elements[(int)*(riftinfo+RIFTINFOSIZE*i+2)-1]){
@@ -181,5 +181,5 @@
 			}
 		}
-		iomodel->DeleteData(5,RiftsEnum,ThicknessEnum,BedEnum,SurfaceEnum,NodeOnIceShelfEnum);
+		iomodel->DeleteData(5,RiftsRiftstructEnum,ThicknessEnum,BedEnum,SurfaceEnum,NodeOnIceShelfEnum);
 		xfree((void**)&riftfront);
 	}
Index: /issm/trunk/src/c/modules/ModelProcessorx/ElementsAndVerticesPartitioning.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/ElementsAndVerticesPartitioning.cpp	(revision 9618)
+++ /issm/trunk/src/c/modules/ModelProcessorx/ElementsAndVerticesPartitioning.cpp	(revision 9619)
@@ -54,5 +54,5 @@
 	iomodel->Constant(&numberofvertices2d,NumberOfNodes2DEnum);
 	iomodel->Constant(&numlayers,NumlayersEnum);
-	iomodel->Constant(&numrifts,NumriftsEnum);
+	iomodel->Constant(&numrifts,RiftsNumriftsEnum);
 
 	/*First, check that partitioning has not yet been carryed out. Just check whether my_elements pointers is not already assigned a value: */
@@ -87,5 +87,5 @@
 	/*Deal with rifts, they have to be included into one partition only, not several: */
 	if(numrifts){
-		iomodel->FetchData(&riftinfo,&numrifts,NULL,RiftsEnum);
+		iomodel->FetchData(&riftinfo,&numrifts,NULL,RiftsRiftstructEnum);
 		for(i=0;i<numrifts;i++){
 			el1=(int)*(riftinfo+RIFTINFOSIZE*i+2)-1; //matlab indexing to c indexing
Index: /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp
===================================================================
--- /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 9618)
+++ /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 9619)
@@ -26,4 +26,6 @@
 	else if (strcmp(name,"FrictionP")==0) return FrictionPEnum;
 	else if (strcmp(name,"FrictionQ")==0) return FrictionQEnum;
+	else if (strcmp(name,"RiftsRiftstruct")==0) return RiftsRiftstructEnum;
+	else if (strcmp(name,"RiftsNumrifts")==0) return RiftsNumriftsEnum;
 	else if (strcmp(name,"HydrologySpcwatercolumn")==0) return HydrologySpcwatercolumnEnum;
 	else if (strcmp(name,"HydrologyKn")==0) return HydrologyKnEnum;
@@ -297,5 +299,4 @@
 	else if (strcmp(name,"MinThermalConstraints")==0) return MinThermalConstraintsEnum;
 	else if (strcmp(name,"Ndt")==0) return NdtEnum;
-	else if (strcmp(name,"Numrifts")==0) return NumriftsEnum;
 	else if (strcmp(name,"NumberOfElements")==0) return NumberOfElementsEnum;
 	else if (strcmp(name,"NumberOfVertices")==0) return NumberOfVerticesEnum;
@@ -364,5 +365,4 @@
 	else if (strcmp(name,"NodeOnHutter")==0) return NodeOnHutterEnum;
 	else if (strcmp(name,"Z")==0) return ZEnum;
-	else if (strcmp(name,"Rifts")==0) return RiftsEnum;
 	else if (strcmp(name,"Spcthickness")==0) return SpcthicknessEnum;
 	else if (strcmp(name,"Spctemperature")==0) return SpctemperatureEnum;
Index: /issm/trunk/src/c/objects/Loads/Riftfront.cpp
===================================================================
--- /issm/trunk/src/c/objects/Loads/Riftfront.cpp	(revision 9618)
+++ /issm/trunk/src/c/objects/Loads/Riftfront.cpp	(revision 9619)
@@ -60,9 +60,9 @@
 
 	/*Ok, retrieve all the data needed to add a penalty between the two nodes: */
-	el1=(int)*(iomodel->Data(RiftsEnum)+RIFTINFOSIZE*i+2);
-	el2=(int)*(iomodel->Data(RiftsEnum)+RIFTINFOSIZE*i+3); 
-
-	node1=(int)*(iomodel->Data(RiftsEnum)+RIFTINFOSIZE*i+0); 
-	node2=(int)*(iomodel->Data(RiftsEnum)+RIFTINFOSIZE*i+1);
+	el1=(int)*(iomodel->Data(RiftsRiftstructEnum)+RIFTINFOSIZE*i+2);
+	el2=(int)*(iomodel->Data(RiftsRiftstructEnum)+RIFTINFOSIZE*i+3); 
+
+	node1=(int)*(iomodel->Data(RiftsRiftstructEnum)+RIFTINFOSIZE*i+0); 
+	node2=(int)*(iomodel->Data(RiftsRiftstructEnum)+RIFTINFOSIZE*i+1);
 
 	/*id: */
@@ -89,9 +89,9 @@
 	this->penalty_lock=penalty_lock;
 	this->material_converged=0;
-	this->normal[0]=*(iomodel->Data(RiftsEnum)+RIFTINFOSIZE*i+4);
-	this->normal[1]=*(iomodel->Data(RiftsEnum)+RIFTINFOSIZE*i+5);
-	this->length=*(iomodel->Data(RiftsEnum)+RIFTINFOSIZE*i+6);
-	this->fraction=*(iomodel->Data(RiftsEnum)+RIFTINFOSIZE*i+9);
-	this->state=(int)*(iomodel->Data(RiftsEnum)+RIFTINFOSIZE*i+11);
+	this->normal[0]=*(iomodel->Data(RiftsRiftstructEnum)+RIFTINFOSIZE*i+4);
+	this->normal[1]=*(iomodel->Data(RiftsRiftstructEnum)+RIFTINFOSIZE*i+5);
+	this->length=*(iomodel->Data(RiftsRiftstructEnum)+RIFTINFOSIZE*i+6);
+	this->fraction=*(iomodel->Data(RiftsRiftstructEnum)+RIFTINFOSIZE*i+9);
+	this->state=(int)*(iomodel->Data(RiftsRiftstructEnum)+RIFTINFOSIZE*i+11);
 
 	//intialize inputs, and add as many inputs per element as requested: 
@@ -99,7 +99,7 @@
 		
 	riftfront_type=SegmentRiftfrontEnum;
-	riftfront_fill = (int)*(iomodel->Data(RiftsEnum)+RIFTINFOSIZE*i+7);
-	riftfront_friction=*(iomodel->Data(RiftsEnum)+RIFTINFOSIZE*i+8);
-	riftfront_fractionincrement=*(iomodel->Data(RiftsEnum)+RIFTINFOSIZE*i+10);
+	riftfront_fill = (int)*(iomodel->Data(RiftsRiftstructEnum)+RIFTINFOSIZE*i+7);
+	riftfront_friction=*(iomodel->Data(RiftsRiftstructEnum)+RIFTINFOSIZE*i+8);
+	riftfront_fractionincrement=*(iomodel->Data(RiftsRiftstructEnum)+RIFTINFOSIZE*i+10);
 	riftfront_shelf=(bool)iomodel->Data(NodeOnIceShelfEnum)[node1-1];
 
Index: /issm/trunk/src/m/classes/model/model.m
===================================================================
--- /issm/trunk/src/m/classes/model/model.m	(revision 9618)
+++ /issm/trunk/src/m/classes/model/model.m	(revision 9619)
@@ -19,4 +19,5 @@
 		 friction  = modelfield('default',0,'marshall',true);
 		 private   = modelfield('default',0,'marshall',false);
+		 rifts     = modelfield('default',0,'marshall',true);
 		 hydrology = modelfield('default',0,'marshall',true);
 
@@ -83,7 +84,4 @@
 		 segments             = modelfield('default',NaN,'marshall',false);
 		 segmentmarkers       = modelfield('default',NaN,'marshall',false);
-		 rifts                = modelfield('default',NaN,'marshall',true,'preprocess','marshallrifts','format','DoubleMat','mattype',3);
-		 riftproperties       = modelfield('default',NaN,'marshall',false);
-		 numrifts             = modelfield('default',0,'marshall',true,'format','Integer');
 
 		 %Projections
@@ -379,8 +377,6 @@
 			 disp(sprintf('   Parallel:'));
 			 disp(sprintf('%s%s%s','      Parallel options: type ''',inputname(1),'.parallel'' to display'));
-			 if(md.numrifts)disp(sprintf('      rifts: %i',md.numrifts));end
 			 disp(sprintf('   Results:'));
 			 disp(sprintf('%s%s%s','      Results: type ''',inputname(1),'.res'' to display'));
-			 if(md.numrifts)disp(sprintf('      rifts: %i',md.numrifts));end
 		 end
 		 %}}}
@@ -429,4 +425,8 @@
 			 if isfield(structmd,'drag_p'), md.friction.p=structmd.drag_p; end
 			 if isfield(structmd,'drag_q'), md.friction.q=structmd.drag_q; end
+			 if isfield(structmd,'numrifts'), md.rifts.numrifts=structmd.numrifts; end
+			 if isfield(structmd,'rifts'), md.rifts.riftstruct=structmd.rifts; end
+			 if isfield(structmd,'riftproperties'), md.rifts.riftproperties=structmd.riftproperties; end
+			 if isfield(structmd,'bamg'), md.private.bamg=structmd.bamg; end
 
 			 %Field changes
@@ -539,4 +539,5 @@
 			 md.friction=friction;
 			 md.private=private;
+			 md.rifts=rifts;
 			 md.hydrology=hydrology;
 
Index: /issm/trunk/src/m/classes/rifts.m
===================================================================
--- /issm/trunk/src/m/classes/rifts.m	(revision 9619)
+++ /issm/trunk/src/m/classes/rifts.m	(revision 9619)
@@ -0,0 +1,38 @@
+%RIFTS class definition
+%
+%   Usage:
+%      rifts=rifts();
+
+classdef rifts
+	properties (SetAccess=public) 
+		riftstruct     = modelfield('default',NaN,'marshall',true,'preprocess','marshallrifts','format','DoubleMat','mattype',3);
+		riftproperties = modelfield('default',NaN,'marshall',false);
+		numrifts       = modelfield('default',0,'marshall',true,'format','Integer');
+	end
+	methods
+		function obj = rifts(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/enum/NumriftsEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NumriftsEnum.m	(revision 9618)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=NumriftsEnum()
-%NUMRIFTSENUM - Enum of Numrifts
-%
-%   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=NumriftsEnum()
-
-macro=StringToEnum('Numrifts');
Index: sm/trunk/src/m/enum/RiftsEnum.m
===================================================================
--- /issm/trunk/src/m/enum/RiftsEnum.m	(revision 9618)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=RiftsEnum()
-%RIFTSENUM - Enum of Rifts
-%
-%   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=RiftsEnum()
-
-macro=StringToEnum('Rifts');
Index: /issm/trunk/src/m/enum/RiftsNumriftsEnum.m
===================================================================
--- /issm/trunk/src/m/enum/RiftsNumriftsEnum.m	(revision 9619)
+++ /issm/trunk/src/m/enum/RiftsNumriftsEnum.m	(revision 9619)
@@ -0,0 +1,11 @@
+function macro=RiftsNumriftsEnum()
+%RIFTSNUMRIFTSENUM - Enum of RiftsNumrifts
+%
+%   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=RiftsNumriftsEnum()
+
+macro=StringToEnum('RiftsNumrifts');
Index: /issm/trunk/src/m/enum/RiftsRiftstructEnum.m
===================================================================
--- /issm/trunk/src/m/enum/RiftsRiftstructEnum.m	(revision 9619)
+++ /issm/trunk/src/m/enum/RiftsRiftstructEnum.m	(revision 9619)
@@ -0,0 +1,11 @@
+function macro=RiftsRiftstructEnum()
+%RIFTSRIFTSTRUCTENUM - Enum of RiftsRiftstruct
+%
+%   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=RiftsRiftstructEnum()
+
+macro=StringToEnum('RiftsRiftstruct');
Index: /issm/trunk/src/m/model/bamg.m
===================================================================
--- /issm/trunk/src/m/model/bamg.m	(revision 9618)
+++ /issm/trunk/src/m/model/bamg.m	(revision 9619)
@@ -274,5 +274,5 @@
 	end
 
-	if isstruct(md.rifts)
+	if isstruct(md.rifts.riftstruct)
 		error('bamg error message: rifts not supported yet. Do meshprocessrift AFTER bamg');
 	end
Index: /issm/trunk/src/m/model/ismodelselfconsistent.m
===================================================================
--- /issm/trunk/src/m/model/ismodelselfconsistent.m	(revision 9618)
+++ /issm/trunk/src/m/model/ismodelselfconsistent.m	(revision 9619)
@@ -143,9 +143,9 @@
 %}}}
 %RIFTS{{{1
-if md.numrifts,
+if md.rifts.numrifts,
 	if ~(md.dim==2),
 		message(['model not consistent: models with rifts are only supported in 2d for now!']);
 	end
-	if ~isstruct(md.rifts),
+	if ~isstruct(md.rifts.riftstruct),
 		message(['model not consistent: md.rifts should be a structure!']);
 	end
@@ -155,8 +155,8 @@
 	end
 	%Check that rifts are filled with proper material
-	checkvalues(md,{'rifts.fill'},[WaterEnum() AirEnum() IceEnum() MelangeEnum()]);
+	checkvalues(md,{'rifts.riftstruct.fill'},[WaterEnum() AirEnum() IceEnum() MelangeEnum()]);
 else
-	if ~isnans(md.rifts),
-		message(['model not consistent: md.rifts shoud be NaN since md.numrifts is 0!']);
+	if ~isnans(md.rifts.riftstruct),
+		message(['model not consistent: md.rifts.riftstruct shoud be NaN since md.rifts.numrifts is 0!']);
 	end
 end
Index: /issm/trunk/src/m/model/mesh/meshrefine.m
===================================================================
--- /issm/trunk/src/m/model/mesh/meshrefine.m	(revision 9618)
+++ /issm/trunk/src/m/model/mesh/meshrefine.m	(revision 9619)
@@ -16,5 +16,4 @@
 
 %Refine using TriMeshRefine
-%[md.elements,md.x,md.y,md.segments,md.rifts]=TriMeshRefine(md.elements,md.x,md.y,md.segments,md.rifts,areas,'yes');
 [md.elements,md.x,md.y,md.segments,md.segmentmarkers]=TriMeshRefine(md.elements,md.x,md.y,md.segments,md.segmentmarkers,areas,'yes');
 
Index: /issm/trunk/src/m/model/mesh/meshyams.m
===================================================================
--- /issm/trunk/src/m/model/mesh/meshyams.m	(revision 9618)
+++ /issm/trunk/src/m/model/mesh/meshyams.m	(revision 9619)
@@ -94,5 +94,5 @@
 	%if we have rifts, we just messed them up, we need to recreate the segments that constitute those 
 	%rifts, because the segments are used in YamsCall to freeze the rifts elements during refinement.
-	if md.numrifts, 
+	if md.rifts.numrifts, 
 		md.nodeconnectivity=NodeConnectivity(md.elements,md.numberofnodes);
 		md.elementconnectivity=ElementConnectivity(md.elements,md.nodeconnectivity);
@@ -136,11 +136,11 @@
 
 %deal with rifts 
-if md.numrifts,
+if md.rifts.numrifts,
 	%first, recreate rift segments
 	md=meshyamsrecreateriftsegments(md);
 
 	%using the segments, recreate the penaltypairs
-	for j=1:md.numrifts,
-		rift=md.rifts(j);
+	for j=1:md.rifts.numrifts,
+		rift=md.rifts.riftstruct(j);
 
 		%build normals and lengths of segments:
@@ -167,5 +167,5 @@
 		rift.penaltypairs(:,6)=rift.penaltypairs(:,6)./norms;
 
-		md.rifts(j)=rift;
+		md.rifts.riftstruct(j)=rift;
 	end
 
Index: /issm/trunk/src/m/model/mesh/rifts/meshaddrifts.m
===================================================================
--- /issm/trunk/src/m/model/mesh/rifts/meshaddrifts.m	(revision 9618)
+++ /issm/trunk/src/m/model/mesh/rifts/meshaddrifts.m	(revision 9619)
@@ -62,14 +62,14 @@
 	md2.rifts=updateriftindexing(md2.rifts,elconv2,nodeconv2);
 	
-	for i=1:md.numrifts,
-		md.rifts(i)=updateriftindexing(md.rifts(i),elconv,nodeconv);
+	for i=1:md.rifts.numrifts,
+		md.rifts.riftstruct(i)=updateriftindexing(md.rifts.riftstruct(i),elconv,nodeconv);
 	end
 	
-	if md.numrifts==0,
-		md.rifts=md2.rifts;
-		md.numrifts=1;
+	if md.rifts.numrifts==0,
+		md.rifts.riftstruct=md2.rifts;
+		md.rifts.numrifts=1;
 	else
-		md.rifts(end+1,1)=md2.rifts;
-		md.numrifts=md.numrifts+1;
+		md.rifts.riftstruct(end+1,1)=md2.rifts;
+		md.rifts.numrifts=md.rifts.numrifts+1;
 	end
 	
Index: /issm/trunk/src/m/model/mesh/rifts/meshprocessoutsiderifts.m
===================================================================
--- /issm/trunk/src/m/model/mesh/rifts/meshprocessoutsiderifts.m	(revision 9618)
+++ /issm/trunk/src/m/model/mesh/rifts/meshprocessoutsiderifts.m	(revision 9619)
@@ -9,10 +9,10 @@
 
 %go through rifts, and figure out which ones touch the domain outline
-for i=1:md.numrifts,
+for i=1:md.rifts.numrifts,
 	
 	%first, flag nodes that belong to the domain outline
 	flags=ContourToMesh(md.elements,md.x,md.y,domainoutline,'node',0);
 
-	rift=md.rifts(i);
+	rift=md.rifts.riftstruct(i);
 	tips=rift.tips;
 	outsidetips=tips(find(flags(rift.tips)==0));
@@ -65,5 +65,5 @@
 		newelements(pos)=num;
 		md.elements(elements,:)=newelements;
-		md.rifts(i).tips=[md.rifts(i).tips num];
+		md.rifts.riftstruct(i).tips=[md.rifts.riftstruct(i).tips num];
 
 		%deal with segments
@@ -87,5 +87,5 @@
 md.z=zeros(md.numberofnodes,1);
 md.nodeonboundary=zeros(length(md.x),1); md.nodeonboundary(md.segments(:,1:2))=1;
-md.numrifts=length(md.rifts);
+md.rifts.numrifts=length(md.rifts.riftstruct);
 md.elements_type=3*ones(md.numberofelements,1);
 md.nodeonbed=ones(md.numberofnodes,1);
Index: /issm/trunk/src/m/model/mesh/rifts/meshprocessrifts.m
===================================================================
--- /issm/trunk/src/m/model/mesh/rifts/meshprocessrifts.m	(revision 9618)
+++ /issm/trunk/src/m/model/mesh/rifts/meshprocessrifts.m	(revision 9619)
@@ -25,6 +25,6 @@
 
 %Call MEX file
-[md.elements,md.x,md.y,md.segments,md.segmentmarkers,md.rifts]=TriMeshProcessRifts(md.elements,md.x,md.y,md.segments,md.segmentmarkers);
-if ~isstruct(md.rifts),
+[md.elements,md.x,md.y,md.segments,md.segmentmarkers,md.rifts.riftstruct]=TriMeshProcessRifts(md.elements,md.x,md.y,md.segments,md.segmentmarkers);
+if ~isstruct(md.rifts.riftstruct),
 	error('TriMeshProcessRifts did not find any rift');
 end
@@ -35,5 +35,5 @@
 md.z=zeros(md.numberofnodes,1);
 md.nodeonboundary=zeros(length(md.x),1); md.nodeonboundary(md.segments(:,1:2))=1;
-md.numrifts=length(md.rifts);
+md.rifts.numrifts=length(md.rifts.riftstruct);
 md.elements_type=3*ones(md.numberofelements,1);
 md.nodeonbed=ones(md.numberofnodes,1);
@@ -43,7 +43,7 @@
 
 %get coordinates of rift tips
-for i=1:md.numrifts,
-	md.rifts(i).tip1coordinates=[md.x(md.rifts(i).tips(1)) md.y(md.rifts(i).tips(1))];
-	md.rifts(i).tip2coordinates=[md.x(md.rifts(i).tips(2)) md.y(md.rifts(i).tips(2))];
+for i=1:md.rifts.numrifts,
+	md.rifts.riftstruct(i).tip1coordinates=[md.x(md.rifts.riftstruct(i).tips(1)) md.y(md.rifts.riftstruct(i).tips(1))];
+	md.rifts.riftstruct(i).tip2coordinates=[md.x(md.rifts.riftstruct(i).tips(2)) md.y(md.rifts.riftstruct(i).tips(2))];
 end
 
@@ -51,10 +51,10 @@
 flags=ContourToMesh(md.elements,md.x,md.y,domainoutline,'node',0);
 found=0;
-for i=1:md.numrifts,
-	if flags(md.rifts(i).tips(1))==0,
+for i=1:md.rifts.numrifts,
+	if flags(md.rifts.riftstruct(i).tips(1))==0,
 		found=1;
 		break;
 	end
-	if flags(md.rifts(i).tips(2))==0,
+	if flags(md.rifts.riftstruct(i).tips(2))==0,
 		found=1;
 		break;
Index: /issm/trunk/src/m/model/mesh/rifts/meshyamsrecreateriftsegments.m
===================================================================
--- /issm/trunk/src/m/model/mesh/rifts/meshyamsrecreateriftsegments.m	(revision 9618)
+++ /issm/trunk/src/m/model/mesh/rifts/meshyamsrecreateriftsegments.m	(revision 9619)
@@ -3,7 +3,7 @@
 	%recreate rift segments: just used for yams. temporaroy routine.
 	pos_record=[];
-	if md.numrifts,
-		for i=1:md.numrifts,
-			rift=md.rifts(i);
+	if md.rifts.numrifts,
+		for i=1:md.rifts.numrifts,
+			rift=md.rifts.riftstruct(i);
 
 			%closed rifts first:
@@ -30,6 +30,6 @@
 					end
 				end
-				md.rifts(i).segments=riftsegs;
-				md.rifts(i).tips=[tip1 tip2];
+				md.rifts.riftstruct(i).segments=riftsegs;
+				md.rifts.riftstruct(i).tips=[tip1 tip2];
 
 			else
@@ -81,6 +81,6 @@
 					end
 				end
-				md.rifts(i).segments=riftsegs;
-				md.rifts(i).tips=[tip1 tip2(1) tip2(2)];
+				md.rifts.riftstruct(i).segments=riftsegs;
+				md.rifts.riftstruct(i).tips=[tip1 tip2(1) tip2(2)];
 
 			end
Index: /issm/trunk/src/m/model/plot/plot_boundaries.m
===================================================================
--- /issm/trunk/src/m/model/plot/plot_boundaries.m	(revision 9618)
+++ /issm/trunk/src/m/model/plot/plot_boundaries.m	(revision 9619)
@@ -20,7 +20,7 @@
 
 %plot rifts if present: 
-if isstruct(md.rifts),
-	for i=1:size(md.rifts,1),
-		segments=md.rifts(i).segments;
+if isstruct(md.rifts.riftstruct),
+	for i=1:size(md.rifts.riftstruct,1),
+		segments=md.rifts.riftstruct(i).segments;
 		for j=1:size(segments,1),
 			plot(x(segments(j,1:2)),y(segments(j,1:2)),'r.-');
@@ -28,6 +28,6 @@
 		text(x(segments(floor(size(segments,1)/4),1)),y(segments(floor(size(segments,1)/4),1)),['Rift #' num2str(i)]);
 		%point out the tips
-		plot(x(md.rifts(i).tips(1)),y(md.rifts(i).tips(1)),'b*');
-		plot(x(md.rifts(i).tips(2)),y(md.rifts(i).tips(2)),'b*');
+		plot(x(md.rifts.riftstruct(i).tips(1)),y(md.rifts.riftstruct(i).tips(1)),'b*');
+		plot(x(md.rifts.riftstruct(i).tips(2)),y(md.rifts.riftstruct(i).tips(2)),'b*');
 	end
 end
Index: /issm/trunk/src/m/model/plot/plot_riftfraction.m
===================================================================
--- /issm/trunk/src/m/model/plot/plot_riftfraction.m	(revision 9618)
+++ /issm/trunk/src/m/model/plot/plot_riftfraction.m	(revision 9619)
@@ -8,5 +8,5 @@
 
 %check that there is something in riftproperties
-if isnan(md.riftproperties),
+if isnan(md.rifts.riftstruct.riftproperties),
 	error('plot_riftfraction error message: field riftproperies is empty, run the model first')
 end
@@ -27,12 +27,12 @@
 
 %complete the tips.
-for i=1:length(md.rifts), 
-	tips=md.rifts(i).tips;
+for i=1:length(md.rifts.riftstruct), 
+	tips=md.rifts.riftstruct(i).tips;
 	fractions(tips)=1;
 end
 
 hold on;
-for i=1:length(md.rifts), 
-	segments=md.rifts(i).segments(:,1:2)';
+for i=1:length(md.rifts.riftstruct), 
+	segments=md.rifts.riftstruct(i).segments(:,1:2)';
 	xc=x(segments(:));
 	yc=y(segments(:));
Index: /issm/trunk/src/m/model/plot/plot_riftnumbering.m
===================================================================
--- /issm/trunk/src/m/model/plot/plot_riftnumbering.m	(revision 9618)
+++ /issm/trunk/src/m/model/plot/plot_riftnumbering.m	(revision 9619)
@@ -22,13 +22,13 @@
 isp2=0;
 
-if isstruct(md.rifts),
+if isstruct(md.rifts.riftstruct),
 	%plot mesh boundaries
 	for i=1:size(md.segments,1),
 		h1=plot(x(md.segments(i,1:2)),y(md.segments(i,1:2)),'b-');
 	end
-	for i=1:size(md.rifts,1),
-		penaltypairs=md.rifts(i).penaltypairs;
+	for i=1:size(md.rifts.riftstruct,1),
+		penaltypairs=md.rifts.riftstruct(i).penaltypairs;
 
-		segments=md.rifts(i).segments;
+		segments=md.rifts.riftstruct(i).segments;
 		for j=1:size(segments,1),
 			plot(x(segments(j,1:2)),y(segments(j,1:2)),'b-');
@@ -58,6 +58,6 @@
 
 		%point out the tips
-		h2=plot(x(md.rifts(i).tips(1)),y(md.rifts(i).tips(1)),'g*');
-		plot(x(md.rifts(i).tips(2)),y(md.rifts(i).tips(2)),'g*');
+		h2=plot(x(md.rifts.riftstruct(i).tips(1)),y(md.rifts.riftstruct(i).tips(1)),'g*');
+		plot(x(md.rifts.riftstruct(i).tips(2)),y(md.rifts.riftstruct(i).tips(2)),'g*');
 	end
 	if strcmpi(getfieldvalue(options,'legend','on'),'on'),
@@ -78,6 +78,6 @@
 
 %Now, plot rift vertices numbers.
-for i=1:size(md.rifts,1),
-	penaltypairs=md.rifts(i).penaltypairs;
+for i=1:size(md.rifts.riftstruct,1),
+	penaltypairs=md.rifts.riftstruct(i).penaltypairs;
 
 	for j=1:size(penaltypairs,1),
Index: /issm/trunk/src/m/model/plot/plot_riftpenetration.m
===================================================================
--- /issm/trunk/src/m/model/plot/plot_riftpenetration.m	(revision 9618)
+++ /issm/trunk/src/m/model/plot/plot_riftpenetration.m	(revision 9619)
@@ -21,13 +21,13 @@
 isp2=0;
 
-if isstruct(md.rifts),
+if isstruct(md.rifts.riftstruct),
 	%plot mesh boundaries
 	for i=1:size(md.segments,1),
 		h1=plot(x(md.segments(i,1:2)),y(md.segments(i,1:2)),'b-');
 	end
-	for i=1:size(md.rifts,1),
-		penaltypairs=md.rifts(i).penaltypairs;
+	for i=1:size(md.rifts.riftstruct,1),
+		penaltypairs=md.rifts.riftstruct(i).penaltypairs;
 
-		segments=md.rifts(i).segments;
+		segments=md.rifts.riftstruct(i).segments;
 		for j=1:size(segments,1),
 			plot(x(segments(j,1:2)),y(segments(j,1:2)),'b-');
@@ -57,6 +57,6 @@
 
 		%point out the tips
-		h2=plot(x(md.rifts(i).tips(1)),y(md.rifts(i).tips(1)),'g*');
-		plot(x(md.rifts(i).tips(2)),y(md.rifts(i).tips(2)),'g*');
+		h2=plot(x(md.rifts.riftstruct(i).tips(1)),y(md.rifts.riftstruct(i).tips(1)),'g*');
+		plot(x(md.rifts.riftstruct(i).tips(2)),y(md.rifts.riftstruct(i).tips(2)),'g*');
 	end
 	if strcmpi(getfieldvalue(options,'legend','on'),'on'),
Index: /issm/trunk/src/m/model/plot/plot_riftrelvel.m
===================================================================
--- /issm/trunk/src/m/model/plot/plot_riftrelvel.m	(revision 9618)
+++ /issm/trunk/src/m/model/plot/plot_riftrelvel.m	(revision 9619)
@@ -11,5 +11,5 @@
 	error('plot_riftvel error message: vx and vy do not have the right size'),
 end
-if ~isstruct(md.rifts),
+if ~isstruct(md.rifts.riftstruct),
 	error('plot error message: no rifts available!');
 end
@@ -23,8 +23,8 @@
 u=NaN*ones(md.numberofnodes,1);
 v=NaN*ones(md.numberofnodes,1);
-for i=1:md.numrifts,
-	penaltypairs=md.rifts(i).penaltypairs(:,[1 2]);
-	u(md.rifts(i).penaltypairs(:,1))=vx(penaltypairs(:,1))-vx(penaltypairs(:,2));
-	v(md.rifts(i).penaltypairs(:,1))=vy(penaltypairs(:,1))-vy(penaltypairs(:,2));
+for i=1:md.rifts.numrifts,
+	penaltypairs=md.rifts.riftstruct(i).penaltypairs(:,[1 2]);
+	u(md.rifts.riftstruct(i).penaltypairs(:,1))=vx(penaltypairs(:,1))-vx(penaltypairs(:,2));
+	v(md.rifts.riftstruct(i).penaltypairs(:,1))=vy(penaltypairs(:,1))-vy(penaltypairs(:,2));
 end
 
@@ -62,10 +62,10 @@
 	h1=plot(x(md.segments(i,1:2)),y(md.segments(i,1:2)),'b-');
 end
-for i=1:md.numrifts,
+for i=1:md.rifts.numrifts,
 	
 	%get nodes on rift
-	penaltypairs=md.rifts(i).penaltypairs;
+	penaltypairs=md.rifts.riftstruct(i).penaltypairs;
 
-	segments=md.rifts(i).segments;
+	segments=md.rifts.riftstruct(i).segments;
 	for j=1:size(segments,1),
 		plot(x(segments(j,1:2)),y(segments(j,1:2)),'k-');
@@ -90,7 +90,7 @@
 
 	%point out the tips
-	h2=plot(x(md.rifts(i).tips(1)),y(md.rifts(i).tips(1)),'g*');
-	plot(x(md.rifts(i).tips(2)),y(md.rifts(i).tips(2)),'g*');
-	segments=md.rifts(i).segments(:,1:2);
+	h2=plot(x(md.rifts.riftstruct(i).tips(1)),y(md.rifts.riftstruct(i).tips(1)),'g*');
+	plot(x(md.rifts.riftstruct(i).tips(2)),y(md.rifts.riftstruct(i).tips(2)),'g*');
+	segments=md.rifts.riftstruct(i).segments(:,1:2);
 end
 %legend
Index: /issm/trunk/src/m/model/plot/plot_rifts.m
===================================================================
--- /issm/trunk/src/m/model/plot/plot_rifts.m	(revision 9618)
+++ /issm/trunk/src/m/model/plot/plot_rifts.m	(revision 9619)
@@ -15,8 +15,8 @@
 %offset to separate rift flanks.
 offset=getfieldvalue(options,'offset',500);
-if isstruct(md.rifts),
+if isstruct(md.rifts.riftstruct),
 	
-	for i=1:md.numrifts,
-		penaltypairs=md.rifts(i).penaltypairs;
+	for i=1:md.rifts.numrifts,
+		penaltypairs=md.rifts.riftstruct(i).penaltypairs;
 
 		normal=zeros(2,1);
@@ -27,6 +27,6 @@
 			y(penaltypairs(j,1))=y(penaltypairs(j,1))-normal(2)*offset;
 		end
-		if length(md.rifts(i).tips)==3,
-			tip=md.rifts(i).tips(3);
+		if length(md.rifts.riftstruct(i).tips)==3,
+			tip=md.rifts.riftstruct(i).tips(3);
 			%who is tip connected to? 
 			if isconnected(md.elements,penaltypairs(1,1),tip),
Index: /issm/trunk/src/m/model/plot/plot_riftvel.m
===================================================================
--- /issm/trunk/src/m/model/plot/plot_riftvel.m	(revision 9618)
+++ /issm/trunk/src/m/model/plot/plot_riftvel.m	(revision 9619)
@@ -11,5 +11,5 @@
 	error('plot_riftvel error message: vx and vy do not have the right size'),
 end
-if ~isstruct(md.rifts),
+if ~isstruct(md.rifts.riftstruct),
 	error('plot error message: no rifts available!');
 end
@@ -19,6 +19,6 @@
 u=NaN*ones(md.numberofnodes,1);
 v=NaN*ones(md.numberofnodes,1);
-for i=1:md.numrifts,
-	penaltypairs=md.rifts(i).penaltypairs(:,[1 2]);
+for i=1:md.rifts.numrifts,
+	penaltypairs=md.rifts.riftstruct(i).penaltypairs(:,[1 2]);
 	u(penaltypairs(:))=md.vx(penaltypairs(:));
 	v(penaltypairs(:))=md.vy(penaltypairs(:));
@@ -57,9 +57,9 @@
 end
 
-for i=1:size(md.rifts,1),
+for i=1:size(md.rifts.riftstruct,1),
 	%get nodes on rift
-	penaltypairs=md.rifts(i).penaltypairs;
+	penaltypairs=md.rifts.riftstruct(i).penaltypairs;
 
-	segments=md.rifts(i).segments;
+	segments=md.rifts.riftstruct(i).segments;
 	for j=1:size(segments,1),
 		plot(x(segments(j,1:2)),y(segments(j,1:2)),'b-');
@@ -84,7 +84,7 @@
 
 	%point out the tips
-	h2=plot(x(md.rifts(i).tips(1)),y(md.rifts(i).tips(1)),'g*');
-	plot(x(md.rifts(i).tips(2)),y(md.rifts(i).tips(2)),'g*');
-	segments=md.rifts(i).segments(:,1:2);
+	h2=plot(x(md.rifts.riftstruct(i).tips(1)),y(md.rifts.riftstruct(i).tips(1)),'g*');
+	plot(x(md.rifts.riftstruct(i).tips(2)),y(md.rifts.riftstruct(i).tips(2)),'g*');
+	segments=md.rifts.riftstruct(i).segments(:,1:2);
 end
 
Index: /issm/trunk/src/m/model/presolve.m
===================================================================
--- /issm/trunk/src/m/model/presolve.m	(revision 9618)
+++ /issm/trunk/src/m/model/presolve.m	(revision 9619)
@@ -6,8 +6,8 @@
 
 %deal with rifts.
-if isempty(md.rifts) | isnans(md.rifts),
-	md.numrifts=0;
+if isempty(md.rifts.riftstruct) | isnans(md.rifts.riftstruct),
+	md.rifts.numrifts=0;
 else
-	md.numrifts=numel(md.rifts);
+	md.rifts.numrifts=numel(md.rifts.riftstruct);
 end
 
Index: /issm/trunk/src/m/model/tres.m
===================================================================
--- /issm/trunk/src/m/model/tres.m	(revision 9618)
+++ /issm/trunk/src/m/model/tres.m	(revision 9619)
@@ -34,7 +34,7 @@
 		md.pressure=PatchToVec(md.results.DiagnosticSolution.Pressure);
 	end
-	if md.numrifts,
+	if md.rifts.numrifts,
 		if isfield(md.results.DiagnosticSolution,'riftproperties'),
-			md.riftproperties=md.results.DiagnosticSolution.riftproperties;
+			md.rifts.riftproperties=md.results.DiagnosticSolution.riftproperties;
 		end
 	end
Index: /issm/trunk/src/m/qmu/examples/all_parameters.m
===================================================================
--- /issm/trunk/src/m/qmu/examples/all_parameters.m	(revision 9618)
+++ /issm/trunk/src/m/qmu/examples/all_parameters.m	(revision 9619)
@@ -87,5 +87,5 @@
 
 md.npart=10;
-md.numrifts=5;
+md.rifts.numrifts=5;
 
 md.qmu
Index: /issm/trunk/src/m/qmu/setupdesign/setupriftsfriction.m
===================================================================
--- /issm/trunk/src/m/qmu/setupdesign/setupriftsfriction.m	(revision 9618)
+++ /issm/trunk/src/m/qmu/setupdesign/setupriftsfriction.m	(revision 9619)
@@ -3,5 +3,5 @@
 %we have several rifts.
 
-for j=1:md.numrifts
+for j=1:md.rifts.numrifts
 	dvar(end+1)           =variables;
 	dvar(end  ).descriptor=sprintf('%s%d',variables.descriptor,j);
Index: /issm/trunk/src/m/utils/Mesh/YamsCall.m
===================================================================
--- /issm/trunk/src/m/utils/Mesh/YamsCall.m	(revision 9618)
+++ /issm/trunk/src/m/utils/Mesh/YamsCall.m	(revision 9619)
@@ -55,9 +55,9 @@
 	
 %Deal with rifts
-if md.numrifts,
+if md.rifts.numrifts,
 	
 	%we have the list of triangles that make up the rift. keep those triangles around during refinement.
 	triangles=[];
-	for i=1:md.numrifts,
+	for i=1:md.rifts.numrifts,
 		triangles=[triangles md.rifts(i).segments(:,3)'];
 	end
Index: /issm/trunk/test/NightlyRun/test1501.m
===================================================================
--- /issm/trunk/test/NightlyRun/test1501.m	(revision 9618)
+++ /issm/trunk/test/NightlyRun/test1501.m	(revision 9619)
@@ -36,9 +36,9 @@
 
 %Fields and tolerances to track changes
-field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceMassBalance1', ...
-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceMassBalance2', ...
-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceMassBalance3', ...
-	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceMassBalance4', ...
-	'Vx5','Vy5','Vel5','Pressure5','Bed5','Surface5','Thickness5','SurfaceMassBalance5'};
+field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
+	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
+	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
+	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4', ...
+	'Vx5','Vy5','Vel5','Pressure5','Bed5','Surface5','Thickness5','SurfaceforcingsMassBalance5'};
 field_tolerances={1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,...
 	1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,...
@@ -54,5 +54,5 @@
 	PatchToVec(md.results.TransientSolution(400).Surface),...
 	PatchToVec(md.results.TransientSolution(400).Thickness),...
-	PatchToVec(md.results.TransientSolution(400).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(400).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(800).Vx),...
 	PatchToVec(md.results.TransientSolution(800).Vy),...
@@ -62,5 +62,5 @@
 	PatchToVec(md.results.TransientSolution(800).Surface),...
 	PatchToVec(md.results.TransientSolution(800).Thickness),...
-	PatchToVec(md.results.TransientSolution(800).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(800).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(1200).Vx),...
 	PatchToVec(md.results.TransientSolution(1200).Vy),...
@@ -70,5 +70,5 @@
 	PatchToVec(md.results.TransientSolution(1200).Surface),...
 	PatchToVec(md.results.TransientSolution(1200).Thickness),...
-	PatchToVec(md.results.TransientSolution(1200).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(1200).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(1600).Vx),...
 	PatchToVec(md.results.TransientSolution(1600).Vy),...
@@ -78,5 +78,5 @@
 	PatchToVec(md.results.TransientSolution(1600).Surface),...
 	PatchToVec(md.results.TransientSolution(1600).Thickness),...
-	PatchToVec(md.results.TransientSolution(1600).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(1600).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(2000).Vx),...
 	PatchToVec(md.results.TransientSolution(2000).Vy),...
@@ -86,5 +86,5 @@
 	PatchToVec(md.results.TransientSolution(2000).Surface),...
 	PatchToVec(md.results.TransientSolution(2000).Thickness),...
-	PatchToVec(md.results.TransientSolution(2000).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(2000).SurfaceforcingsMassBalance),...
 	};
 
@@ -108,5 +108,5 @@
 		thickness = [thickness PatchToVec(md.results.TransientSolution(t).Thickness)];
 		volume = [volume mean(md.results.TransientSolution(t).Thickness.value,2).*areas];
-		massbal = [massbal PatchToVec(md.results.TransientSolution(t).SurfaceMassBalance)];
+		massbal = [massbal PatchToVec(md.results.TransientSolution(t).SurfaceforcingsMassBalance)];
 		velocity = [velocity PatchToVec(md.results.TransientSolution(t).Vel)];
 	end
Index: /issm/trunk/test/NightlyRun/test1502.m
===================================================================
--- /issm/trunk/test/NightlyRun/test1502.m	(revision 9618)
+++ /issm/trunk/test/NightlyRun/test1502.m	(revision 9619)
@@ -37,9 +37,9 @@
 
 %Fields and tolerances to track changes
-field_names={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceMassBalance1', ...
-	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceMassBalance2', ...
-	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceMassBalance3', ...
-	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceMassBalance4', ...
-	'Vx5','Vy5','Vz5','Vel5','Pressure5','Bed5','Surface5','Thickness5','SurfaceMassBalance5'};
+field_names={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
+	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
+	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
+	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4', ...
+	'Vx5','Vy5','Vz5','Vel5','Pressure5','Bed5','Surface5','Thickness5','SurfaceforcingsMassBalance5'};
 field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
 	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
@@ -56,5 +56,5 @@
 	PatchToVec(md.results.TransientSolution(400).Surface),...
 	PatchToVec(md.results.TransientSolution(400).Thickness),...
-	PatchToVec(md.results.TransientSolution(400).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(400).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(800).Vx),...
 	PatchToVec(md.results.TransientSolution(800).Vy),...
@@ -65,5 +65,5 @@
 	PatchToVec(md.results.TransientSolution(800).Surface),...
 	PatchToVec(md.results.TransientSolution(800).Thickness),...
-	PatchToVec(md.results.TransientSolution(800).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(800).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(1200).Vx),...
 	PatchToVec(md.results.TransientSolution(1200).Vy),...
@@ -74,5 +74,5 @@
 	PatchToVec(md.results.TransientSolution(1200).Surface),...
 	PatchToVec(md.results.TransientSolution(1200).Thickness),...
-	PatchToVec(md.results.TransientSolution(1200).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(1200).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(1600).Vx),...
 	PatchToVec(md.results.TransientSolution(1600).Vy),...
@@ -83,5 +83,5 @@
 	PatchToVec(md.results.TransientSolution(1600).Surface),...
 	PatchToVec(md.results.TransientSolution(1600).Thickness),...
-	PatchToVec(md.results.TransientSolution(1600).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(1600).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(2000).Vx),...
 	PatchToVec(md.results.TransientSolution(2000).Vy),...
@@ -92,5 +92,5 @@
 	PatchToVec(md.results.TransientSolution(2000).Surface),...
 	PatchToVec(md.results.TransientSolution(2000).Thickness),...
-	PatchToVec(md.results.TransientSolution(2000).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(2000).SurfaceforcingsMassBalance),...
 	};
 
@@ -114,5 +114,5 @@
 		thickness = [thickness PatchToVec(md.results.TransientSolution(t).Thickness)];
 		volume = [volume mean(md.results.TransientSolution(t).Thickness.value,2).*areas];
-		massbal = [massbal PatchToVec(md.results.TransientSolution(t).SurfaceMassBalance)];
+		massbal = [massbal PatchToVec(md.results.TransientSolution(t).SurfaceforcingsMassBalance)];
 		velocity = [velocity PatchToVec(md.results.TransientSolution(t).Vel)];
 	end
Index: /issm/trunk/test/NightlyRun/test232.m
===================================================================
--- /issm/trunk/test/NightlyRun/test232.m	(revision 9618)
+++ /issm/trunk/test/NightlyRun/test232.m	(revision 9619)
@@ -7,9 +7,9 @@
 
 %rift settings
-md.rifts.fill=MelangeEnum();
-md.rifts.fraction=0;
+md.rifts.riftstruct.fill=MelangeEnum();
+md.rifts.riftstruct.fraction=0;
 md.penalty_lock=2;
 md.min_mechanical_constraints=0;
-md.rifts.fractionincrement=.1;
+md.rifts.riftstruct.fractionincrement=.1;
 md=solve(md,DiagnosticSolutionEnum);
 
Index: /issm/trunk/test/NightlyRun/test255.m
===================================================================
--- /issm/trunk/test/NightlyRun/test255.m	(revision 9618)
+++ /issm/trunk/test/NightlyRun/test255.m	(revision 9619)
@@ -20,8 +20,8 @@
 
 %Fields and tolerances to track changes
-field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceMassBalance1', ...
-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceMassBalance2', ...
-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceMassBalance3', ...
-	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceMassBalance4'};
+field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
+	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
+	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
+	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4'};
 field_tolerances={1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
 	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
@@ -37,5 +37,5 @@
 	PatchToVec(md.results.TransientSolution(1).Surface),...
 	PatchToVec(md.results.TransientSolution(1).Thickness),...
-	PatchToVec(md.results.TransientSolution(1).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(2).Vx),...
 	PatchToVec(md.results.TransientSolution(2).Vy),...
@@ -45,5 +45,5 @@
 	PatchToVec(md.results.TransientSolution(2).Surface),...
 	PatchToVec(md.results.TransientSolution(2).Thickness),...
-	PatchToVec(md.results.TransientSolution(2).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(3).Vx),...
 	PatchToVec(md.results.TransientSolution(3).Vy),...
@@ -53,5 +53,5 @@
 	PatchToVec(md.results.TransientSolution(3).Surface),...
 	PatchToVec(md.results.TransientSolution(3).Thickness),...
-	PatchToVec(md.results.TransientSolution(3).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(4).Vx),...
 	PatchToVec(md.results.TransientSolution(4).Vy),...
@@ -61,4 +61,4 @@
 	PatchToVec(md.results.TransientSolution(4).Surface),...
 	PatchToVec(md.results.TransientSolution(4).Thickness),...
-	PatchToVec(md.results.TransientSolution(4).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
 	};
Index: /issm/trunk/test/NightlyRun/test256.m
===================================================================
--- /issm/trunk/test/NightlyRun/test256.m	(revision 9618)
+++ /issm/trunk/test/NightlyRun/test256.m	(revision 9619)
@@ -20,8 +20,8 @@
 
 %Fields and tolerances to track changes
-field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceMassBalance1', ...
-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceMassBalance2', ...
-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceMassBalance3', ...
-	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceMassBalance4'};
+field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
+	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
+	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
+	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4'};
 field_tolerances={1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
 	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
@@ -37,5 +37,5 @@
 	PatchToVec(md.results.TransientSolution(1).Surface),...
 	PatchToVec(md.results.TransientSolution(1).Thickness),...
-	PatchToVec(md.results.TransientSolution(1).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(2).Vx),...
 	PatchToVec(md.results.TransientSolution(2).Vy),...
@@ -45,5 +45,5 @@
 	PatchToVec(md.results.TransientSolution(2).Surface),...
 	PatchToVec(md.results.TransientSolution(2).Thickness),...
-	PatchToVec(md.results.TransientSolution(2).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(3).Vx),...
 	PatchToVec(md.results.TransientSolution(3).Vy),...
@@ -53,5 +53,5 @@
 	PatchToVec(md.results.TransientSolution(3).Surface),...
 	PatchToVec(md.results.TransientSolution(3).Thickness),...
-	PatchToVec(md.results.TransientSolution(3).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(4).Vx),...
 	PatchToVec(md.results.TransientSolution(4).Vy),...
@@ -61,4 +61,4 @@
 	PatchToVec(md.results.TransientSolution(4).Surface),...
 	PatchToVec(md.results.TransientSolution(4).Thickness),...
-	PatchToVec(md.results.TransientSolution(4).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
 	};
Index: /issm/trunk/test/NightlyRun/test257.m
===================================================================
--- /issm/trunk/test/NightlyRun/test257.m	(revision 9618)
+++ /issm/trunk/test/NightlyRun/test257.m	(revision 9619)
@@ -20,8 +20,8 @@
 
 %Fields and tolerances to track changes
-field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceMassBalance1', ...
-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceMassBalance2', ...
-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceMassBalance3', ...
-	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceMassBalance4'};
+field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
+	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
+	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
+	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4'};
 field_tolerances={1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
 	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
@@ -37,5 +37,5 @@
 	PatchToVec(md.results.TransientSolution(1).Surface),...
 	PatchToVec(md.results.TransientSolution(1).Thickness),...
-	PatchToVec(md.results.TransientSolution(1).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(2).Vx),...
 	PatchToVec(md.results.TransientSolution(2).Vy),...
@@ -45,5 +45,5 @@
 	PatchToVec(md.results.TransientSolution(2).Surface),...
 	PatchToVec(md.results.TransientSolution(2).Thickness),...
-	PatchToVec(md.results.TransientSolution(2).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(3).Vx),...
 	PatchToVec(md.results.TransientSolution(3).Vy),...
@@ -53,5 +53,5 @@
 	PatchToVec(md.results.TransientSolution(3).Surface),...
 	PatchToVec(md.results.TransientSolution(3).Thickness),...
-	PatchToVec(md.results.TransientSolution(3).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(4).Vx),...
 	PatchToVec(md.results.TransientSolution(4).Vy),...
@@ -61,4 +61,4 @@
 	PatchToVec(md.results.TransientSolution(4).Surface),...
 	PatchToVec(md.results.TransientSolution(4).Thickness),...
-	PatchToVec(md.results.TransientSolution(4).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
 	};
Index: /issm/trunk/test/NightlyRun/test258.m
===================================================================
--- /issm/trunk/test/NightlyRun/test258.m	(revision 9618)
+++ /issm/trunk/test/NightlyRun/test258.m	(revision 9619)
@@ -20,8 +20,8 @@
 
 %Fields and tolerances to track changes
-field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceMassBalance1', ...
-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceMassBalance2', ...
-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceMassBalance3', ...
-	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceMassBalance4'};
+field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
+	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
+	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
+	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4'};
 field_tolerances={1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
 	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
@@ -37,5 +37,5 @@
 	PatchToVec(md.results.TransientSolution(1).Surface),...
 	PatchToVec(md.results.TransientSolution(1).Thickness),...
-	PatchToVec(md.results.TransientSolution(1).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(2).Vx),...
 	PatchToVec(md.results.TransientSolution(2).Vy),...
@@ -45,5 +45,5 @@
 	PatchToVec(md.results.TransientSolution(2).Surface),...
 	PatchToVec(md.results.TransientSolution(2).Thickness),...
-	PatchToVec(md.results.TransientSolution(2).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(3).Vx),...
 	PatchToVec(md.results.TransientSolution(3).Vy),...
@@ -53,5 +53,5 @@
 	PatchToVec(md.results.TransientSolution(3).Surface),...
 	PatchToVec(md.results.TransientSolution(3).Thickness),...
-	PatchToVec(md.results.TransientSolution(3).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(4).Vx),...
 	PatchToVec(md.results.TransientSolution(4).Vy),...
@@ -61,4 +61,4 @@
 	PatchToVec(md.results.TransientSolution(4).Surface),...
 	PatchToVec(md.results.TransientSolution(4).Thickness),...
-	PatchToVec(md.results.TransientSolution(4).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
 	};
Index: /issm/trunk/test/NightlyRun/test259.m
===================================================================
--- /issm/trunk/test/NightlyRun/test259.m	(revision 9618)
+++ /issm/trunk/test/NightlyRun/test259.m	(revision 9619)
@@ -21,7 +21,7 @@
 
 %Fields and tolerances to track changes
-field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceMassBalance1', ...
-	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceMassBalance2', ...
-	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceMassBalance3',...
+field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
+	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
+	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3',...
 	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceMassbalance4'};
 field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
@@ -39,5 +39,5 @@
 	PatchToVec(md.results.TransientSolution(1).Surface),...
 	PatchToVec(md.results.TransientSolution(1).Thickness),...
-	PatchToVec(md.results.TransientSolution(1).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(2).Vx),...
 	PatchToVec(md.results.TransientSolution(2).Vy),...
@@ -48,5 +48,5 @@
 	PatchToVec(md.results.TransientSolution(2).Surface),...
 	PatchToVec(md.results.TransientSolution(2).Thickness),...
-	PatchToVec(md.results.TransientSolution(2).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(3).Vx),...
 	PatchToVec(md.results.TransientSolution(3).Vy),...
@@ -57,5 +57,5 @@
 	PatchToVec(md.results.TransientSolution(3).Surface),...
 	PatchToVec(md.results.TransientSolution(3).Thickness),...
-	PatchToVec(md.results.TransientSolution(3).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(4).Vx),...
 	PatchToVec(md.results.TransientSolution(4).Vy),...
@@ -66,4 +66,4 @@
 	PatchToVec(md.results.TransientSolution(4).Surface),...
 	PatchToVec(md.results.TransientSolution(4).Thickness),...
-	PatchToVec(md.results.TransientSolution(4).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
 	};
Index: /issm/trunk/test/NightlyRun/test260.m
===================================================================
--- /issm/trunk/test/NightlyRun/test260.m	(revision 9618)
+++ /issm/trunk/test/NightlyRun/test260.m	(revision 9619)
@@ -21,7 +21,7 @@
 
 %Fields and tolerances to track changes
-field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceMassBalance1', ...
-	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceMassBalance2', ...
-	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceMassBalance3',...
+field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
+	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
+	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3',...
 	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceMassbalance4'};
 field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
@@ -39,5 +39,5 @@
 	PatchToVec(md.results.TransientSolution(1).Surface),...
 	PatchToVec(md.results.TransientSolution(1).Thickness),...
-	PatchToVec(md.results.TransientSolution(1).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(2).Vx),...
 	PatchToVec(md.results.TransientSolution(2).Vy),...
@@ -48,5 +48,5 @@
 	PatchToVec(md.results.TransientSolution(2).Surface),...
 	PatchToVec(md.results.TransientSolution(2).Thickness),...
-	PatchToVec(md.results.TransientSolution(2).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(3).Vx),...
 	PatchToVec(md.results.TransientSolution(3).Vy),...
@@ -57,5 +57,5 @@
 	PatchToVec(md.results.TransientSolution(3).Surface),...
 	PatchToVec(md.results.TransientSolution(3).Thickness),...
-	PatchToVec(md.results.TransientSolution(3).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(4).Vx),...
 	PatchToVec(md.results.TransientSolution(4).Vy),...
@@ -66,4 +66,4 @@
 	PatchToVec(md.results.TransientSolution(4).Surface),...
 	PatchToVec(md.results.TransientSolution(4).Thickness),...
-	PatchToVec(md.results.TransientSolution(4).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
 	};
Index: /issm/trunk/test/NightlyRun/test261.m
===================================================================
--- /issm/trunk/test/NightlyRun/test261.m	(revision 9618)
+++ /issm/trunk/test/NightlyRun/test261.m	(revision 9619)
@@ -21,7 +21,7 @@
 
 %Fields and tolerances to track changes
-field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceMassBalance1', ...
-	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceMassBalance2', ...
-	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceMassBalance3',...
+field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
+	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
+	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3',...
 	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceMassbalance4'};
 field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
@@ -39,5 +39,5 @@
 	PatchToVec(md.results.TransientSolution(1).Surface),...
 	PatchToVec(md.results.TransientSolution(1).Thickness),...
-	PatchToVec(md.results.TransientSolution(1).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(2).Vx),...
 	PatchToVec(md.results.TransientSolution(2).Vy),...
@@ -48,5 +48,5 @@
 	PatchToVec(md.results.TransientSolution(2).Surface),...
 	PatchToVec(md.results.TransientSolution(2).Thickness),...
-	PatchToVec(md.results.TransientSolution(2).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(3).Vx),...
 	PatchToVec(md.results.TransientSolution(3).Vy),...
@@ -57,5 +57,5 @@
 	PatchToVec(md.results.TransientSolution(3).Surface),...
 	PatchToVec(md.results.TransientSolution(3).Thickness),...
-	PatchToVec(md.results.TransientSolution(3).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(4).Vx),...
 	PatchToVec(md.results.TransientSolution(4).Vy),...
@@ -66,4 +66,4 @@
 	PatchToVec(md.results.TransientSolution(4).Surface),...
 	PatchToVec(md.results.TransientSolution(4).Thickness),...
-	PatchToVec(md.results.TransientSolution(4).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
 	};
Index: /issm/trunk/test/NightlyRun/test262.m
===================================================================
--- /issm/trunk/test/NightlyRun/test262.m	(revision 9618)
+++ /issm/trunk/test/NightlyRun/test262.m	(revision 9619)
@@ -21,7 +21,7 @@
 
 %Fields and tolerances to track changes
-field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceMassBalance1', ...
-	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceMassBalance2', ...
-	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceMassBalance3',...
+field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
+	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
+	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3',...
 	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceMassbalance4'};
 field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
@@ -39,5 +39,5 @@
 	PatchToVec(md.results.TransientSolution(1).Surface),...
 	PatchToVec(md.results.TransientSolution(1).Thickness),...
-	PatchToVec(md.results.TransientSolution(1).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(2).Vx),...
 	PatchToVec(md.results.TransientSolution(2).Vy),...
@@ -48,5 +48,5 @@
 	PatchToVec(md.results.TransientSolution(2).Surface),...
 	PatchToVec(md.results.TransientSolution(2).Thickness),...
-	PatchToVec(md.results.TransientSolution(2).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(3).Vx),...
 	PatchToVec(md.results.TransientSolution(3).Vy),...
@@ -57,5 +57,5 @@
 	PatchToVec(md.results.TransientSolution(3).Surface),...
 	PatchToVec(md.results.TransientSolution(3).Thickness),...
-	PatchToVec(md.results.TransientSolution(3).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
 	PatchToVec(md.results.TransientSolution(4).Vx),...
 	PatchToVec(md.results.TransientSolution(4).Vy),...
@@ -66,4 +66,4 @@
 	PatchToVec(md.results.TransientSolution(4).Surface),...
 	PatchToVec(md.results.TransientSolution(4).Thickness),...
-	PatchToVec(md.results.TransientSolution(4).SurfaceMassBalance),...
+	PatchToVec(md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
 	};
