Index: /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
===================================================================
--- /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 9521)
+++ /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 9522)
@@ -490,5 +490,5 @@
 	ZEnum,
 	Fake36Enum,
-	RiftinfoEnum,
+	RiftsEnum,
 	ElementOnIceSheetEnum,
 	SpcthicknessEnum,
Index: /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp
===================================================================
--- /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 9521)
+++ /issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 9522)
@@ -432,5 +432,5 @@
 		case ZEnum : return "Z";
 		case Fake36Enum : return "Fake36";
-		case RiftinfoEnum : return "Riftinfo";
+		case RiftsEnum : return "Rifts";
 		case ElementOnIceSheetEnum : return "ElementOnIceSheet";
 		case SpcthicknessEnum : return "Spcthickness";
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp	(revision 9521)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp	(revision 9522)
@@ -173,6 +173,6 @@
 	/*Create Riffront loads for rifts: */
 	if(numrifts){
-		iomodel->FetchData(&riftinfo,&numriftsegments,NULL,RiftinfoEnum);
-		iomodel->FetchData(5,RiftinfoEnum,ThicknessEnum,BedEnum,SurfaceEnum,NodeOnIceShelfEnum);
+		iomodel->FetchData(&riftinfo,&numriftsegments,NULL,RiftsEnum);
+		iomodel->FetchData(5,RiftsEnum,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,RiftinfoEnum,ThicknessEnum,BedEnum,SurfaceEnum,NodeOnIceShelfEnum);
+		iomodel->DeleteData(5,RiftsEnum,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 9521)
+++ /issm/trunk/src/c/modules/ModelProcessorx/ElementsAndVerticesPartitioning.cpp	(revision 9522)
@@ -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,RiftinfoEnum);
+		iomodel->FetchData(&riftinfo,&numrifts,NULL,RiftsEnum);
 		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 9521)
+++ /issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 9522)
@@ -430,5 +430,5 @@
 	else if (strcmp(name,"Z")==0) return ZEnum;
 	else if (strcmp(name,"Fake36")==0) return Fake36Enum;
-	else if (strcmp(name,"Riftinfo")==0) return RiftinfoEnum;
+	else if (strcmp(name,"Rifts")==0) return RiftsEnum;
 	else if (strcmp(name,"ElementOnIceSheet")==0) return ElementOnIceSheetEnum;
 	else if (strcmp(name,"Spcthickness")==0) return SpcthicknessEnum;
Index: /issm/trunk/src/c/objects/Loads/Riftfront.cpp
===================================================================
--- /issm/trunk/src/c/objects/Loads/Riftfront.cpp	(revision 9521)
+++ /issm/trunk/src/c/objects/Loads/Riftfront.cpp	(revision 9522)
@@ -60,9 +60,9 @@
 
 	/*Ok, retrieve all the data needed to add a penalty between the two nodes: */
-	el1=(int)*(iomodel->Data(RiftinfoEnum)+RIFTINFOSIZE*i+2);
-	el2=(int)*(iomodel->Data(RiftinfoEnum)+RIFTINFOSIZE*i+3); 
-
-	node1=(int)*(iomodel->Data(RiftinfoEnum)+RIFTINFOSIZE*i+0); 
-	node2=(int)*(iomodel->Data(RiftinfoEnum)+RIFTINFOSIZE*i+1);
+	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);
 
 	/*id: */
@@ -89,9 +89,9 @@
 	this->penalty_lock=penalty_lock;
 	this->material_converged=0;
-	this->normal[0]=*(iomodel->Data(RiftinfoEnum)+RIFTINFOSIZE*i+4);
-	this->normal[1]=*(iomodel->Data(RiftinfoEnum)+RIFTINFOSIZE*i+5);
-	this->length=*(iomodel->Data(RiftinfoEnum)+RIFTINFOSIZE*i+6);
-	this->fraction=*(iomodel->Data(RiftinfoEnum)+RIFTINFOSIZE*i+9);
-	this->state=(int)*(iomodel->Data(RiftinfoEnum)+RIFTINFOSIZE*i+11);
+	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);
 
 	//intialize inputs, and add as many inputs per element as requested: 
@@ -99,7 +99,7 @@
 		
 	riftfront_type=SegmentRiftfrontEnum;
-	riftfront_fill = (int)*(iomodel->Data(RiftinfoEnum)+RIFTINFOSIZE*i+7);
-	riftfront_friction=*(iomodel->Data(RiftinfoEnum)+RIFTINFOSIZE*i+8);
-	riftfront_fractionincrement=*(iomodel->Data(RiftinfoEnum)+RIFTINFOSIZE*i+10);
+	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_shelf=(bool)iomodel->Data(NodeOnIceShelfEnum)[node1-1];
 
Index: /issm/trunk/src/m/classes/model.m
===================================================================
--- /issm/trunk/src/m/classes/model.m	(revision 9521)
+++ /issm/trunk/src/m/classes/model.m	(revision 9522)
@@ -77,6 +77,5 @@
 		 segments             = modelfield('default',NaN,'marshall',false);
 		 segmentmarkers       = modelfield('default',NaN,'marshall',false);
-		 rifts                = modelfield('default',NaN,'marshall',false);
-		 riftinfo             = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);
+		 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');
Index: /issm/trunk/src/m/model/marshall.m
===================================================================
--- /issm/trunk/src/m/model/marshall.m	(revision 9521)
+++ /issm/trunk/src/m/model/marshall.m	(revision 9522)
@@ -345,2 +345,28 @@
 	pos=find(in(:,end)==1); out(pos,end)=WaterEnum;
 	pos=find(in(:,end)==2); out(pos,end)=IceEnum;
+
+function out=marshallrifts(in)
+	if isempty(in) | isnans(in),
+		numrifts=0;
+	else
+		numrifts=numel(in);
+	end
+	numpairs=0;
+	for i=1:numrifts,
+		numpairs=numpairs+size(in(i).penaltypairs,1);
+	end
+
+	out=zeros(numpairs,12); % 2 for nodes + 2 for elements+ 2 for  normals + 1 for length + 1 for fill + 1 for friction + 1 for fraction + 1 for fractionincrement + 1 for state.
+
+	count=1;
+	for i=1:numrifts,
+		numpairsforthisrift=size(in(i).penaltypairs,1);
+		out(count:count+numpairsforthisrift-1,1:7)=in(i).penaltypairs;
+		out(count:count+numpairsforthisrift-1,8)=in(i).fill;
+		out(count:count+numpairsforthisrift-1,9)=in(i).friction;
+		out(count:count+numpairsforthisrift-1,10)=in(i).fraction;
+		out(count:count+numpairsforthisrift-1,11)=in(i).fractionincrement;
+		out(count:count+numpairsforthisrift-1,12)=in(i).state;
+		count=count+numpairsforthisrift;
+	end
+
Index: /issm/trunk/src/m/model/plot/plot_riftfraction.m
===================================================================
--- /issm/trunk/src/m/model/plot/plot_riftfraction.m	(revision 9521)
+++ /issm/trunk/src/m/model/plot/plot_riftfraction.m	(revision 9522)
@@ -26,8 +26,4 @@
 fractions=zeros(md.numberofnodes,1);
 
-%plug riftproperties fractions:
-fractions(md.riftinfo(:,1))=md.riftproperties;
-fractions(md.riftinfo(:,2))=md.riftproperties;
-
 %complete the tips.
 for i=1:length(md.rifts), 
Index: /issm/trunk/src/m/model/presolve.m
===================================================================
--- /issm/trunk/src/m/model/presolve.m	(revision 9521)
+++ /issm/trunk/src/m/model/presolve.m	(revision 9522)
@@ -16,23 +16,4 @@
 end
 
-numpairs=0;
-for i=1:md.numrifts,
-	numpairs=numpairs+size(md.rifts(i).penaltypairs,1);
-end
-
-md.riftinfo=zeros(numpairs,12); % 2 for nodes + 2 for elements+ 2 for  normals + 1 for length + 1 for fill + 1 for friction + 1 for fraction + 1 for fractionincrement + 1 for state.
-
-count=1;
-for i=1:md.numrifts,
-	numpairsforthisrift=size(md.rifts(i).penaltypairs,1);
-	md.riftinfo(count:count+numpairsforthisrift-1,1:7)=md.rifts(i).penaltypairs;
-	md.riftinfo(count:count+numpairsforthisrift-1,8)=md.rifts(i).fill;
-	md.riftinfo(count:count+numpairsforthisrift-1,9)=md.rifts(i).friction;
-	md.riftinfo(count:count+numpairsforthisrift-1,10)=md.rifts(i).fraction;
-	md.riftinfo(count:count+numpairsforthisrift-1,11)=md.rifts(i).fractionincrement;
-	md.riftinfo(count:count+numpairsforthisrift-1,12)=md.rifts(i).state;
-	count=count+numpairsforthisrift;
-end
-
 %Control methods
 md.num_control_type=numel(md.control_type);
