Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp	(revision 15695)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp	(revision 15696)
@@ -89,7 +89,30 @@
 		iomodel->FetchData(9,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,FlowequationBorderSSAEnum,FlowequationBorderFSEnum,
 					MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,FlowequationVertexEquationEnum,DiagnosticReferentialEnum);
-		for(int i=0;i<iomodel->numberofvertices;i++){
-			if(iomodel->my_vertices[i]){
-				nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,i,iomodel,DiagnosticHorizAnalysisEnum,reCast<int>(iomodel->Data(FlowequationVertexEquationEnum)[i])));
+		if(isFS){
+			/*P1+ velocity*/
+			for(int i=0;i<iomodel->numberofvertices;i++){
+				if(iomodel->my_vertices[i]){
+					approximation=reCast<int>(iomodel->Data(FlowequationVertexEquationEnum)[i]);
+					if(approximation==FSApproximationEnum)  approximation=FSvelocityEnum;
+					nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,i,iomodel,DiagnosticHorizAnalysisEnum,approximation));
+				}
+			}
+			for(int i=0;i<iomodel->numberofelements;i++){
+				if(iomodel->my_elements[i]){
+					nodes->AddObject(new Node(iomodel->nodecounter+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,0,iomodel,DiagnosticHorizAnalysisEnum,FSvelocityEnum));
+				}
+			}
+			/*P1 pressure*/
+			for(int i=0;i<iomodel->numberofvertices;i++){
+				if(iomodel->my_vertices[i]){
+					nodes->AddObject(new Node(iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,i,iomodel,DiagnosticHorizAnalysisEnum,FSpressureEnum));
+				}
+			}
+		}
+		else{
+			for(int i=0;i<iomodel->numberofvertices;i++){
+				if(iomodel->my_vertices[i]){
+					nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,i,iomodel,DiagnosticHorizAnalysisEnum,reCast<int>(iomodel->Data(FlowequationVertexEquationEnum)[i])));
+				}
 			}
 		}
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp	(revision 15695)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp	(revision 15696)
@@ -40,5 +40,4 @@
 
 	/*Get finite element type*/
-	finiteelement = P1Enum;
 	if(!iscoupling){
 		if(isSSA){
@@ -78,4 +77,13 @@
 			}
 		}
+	}
+	else{
+		if(isFS){
+			finiteelement = MINIEnum;
+		}
+		else{
+			finiteelement = P1Enum;
+		}
+
 	}
 
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/DistributeNumDofs.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/DistributeNumDofs.cpp	(revision 15695)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/DistributeNumDofs.cpp	(revision 15696)
@@ -30,7 +30,4 @@
 					numdofs=2;
 					break;
-				case FSApproximationEnum:
-					numdofs=4;
-					break;
 				case FSvelocityEnum:
 					numdofs=3;
@@ -51,22 +48,20 @@
 					break;
 				case HOFSApproximationEnum:
-					numdofs=6;
+					numdofs=5;
 					doftype=xNew<int>(numdofs);
 					doftype[0]=HOApproximationEnum;
 					doftype[1]=HOApproximationEnum;
-					doftype[2]=FSApproximationEnum;
-					doftype[3]=FSApproximationEnum;
-					doftype[4]=FSApproximationEnum;
-					doftype[5]=FSApproximationEnum;
+					doftype[2]=FSvelocityEnum;
+					doftype[3]=FSvelocityEnum;
+					doftype[4]=FSvelocityEnum;
 					break;
 				case SSAFSApproximationEnum:
-					numdofs=6;
+					numdofs=5;
 					doftype=xNew<int>(numdofs);
 					doftype[0]=SSAApproximationEnum;
 					doftype[1]=SSAApproximationEnum;
-					doftype[2]=FSApproximationEnum;
-					doftype[3]=FSApproximationEnum;
-					doftype[4]=FSApproximationEnum;
-					doftype[5]=FSApproximationEnum;
+					doftype[2]=FSvelocityEnum;
+					doftype[3]=FSvelocityEnum;
+					doftype[4]=FSvelocityEnum;
 					break;
 				default:
