Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp	(revision 15721)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp	(revision 15722)
@@ -17,4 +17,6 @@
 
 	int    materials_type,finiteelement,temp;
+	int    approximation;
+	int*   finiteelement_list=NULL;
 	bool   isSSA,isL1L2,isHO,isFS,iscoupling;
 	bool   control_analysis;
@@ -29,4 +31,8 @@
 	iomodel->Constant(&dakota_analysis,QmuIsdakotaEnum);
 	iomodel->Constant(&materials_type,MaterialsEnum);
+
+	/*Fetch data needed and allocate vectors: */
+	iomodel->FetchData(1,FlowequationElementEquationEnum);
+	finiteelement_list=xNewZeroInit<int>(iomodel->numberofelements);
 
 	/*Now, is the flag macayaealHO on? otherwise, do nothing: */
@@ -77,17 +83,27 @@
 			}
 		}
+		for(int i=0;i<iomodel->numberofelements;i++){
+			finiteelement_list[i]=finiteelement;
+		}
 	}
 	else{
 		if(isFS){
-			finiteelement = MINIEnum;
+			for(int i=0;i<iomodel->numberofelements;i++){
+				approximation=reCast<int>(iomodel->Data(FlowequationElementEquationEnum)[i]);
+				if(approximation==FSApproximationEnum || approximation==HOFSApproximationEnum || approximation==SSAFSApproximationEnum){
+					finiteelement_list[i]=MINIcondensedEnum;
+				}
+				else{
+					finiteelement_list[i]=P1Enum;
+				}
+			}
 		}
 		else{
 			finiteelement = P1Enum;
+			for(int i=0;i<iomodel->numberofelements;i++){
+				finiteelement_list[i]=finiteelement;
+			}
 		}
-
 	}
-
-	/*Fetch data needed: */
-	iomodel->FetchData(1,FlowequationElementEquationEnum);
 
 	/*Update elements: */
@@ -96,5 +112,5 @@
 		if(iomodel->my_elements[i]){
 			Element* element=(Element*)elements->GetObjectByOffset(counter);
-			element->Update(i,iomodel,analysis_counter,analysis_type,finiteelement);
+			element->Update(i,iomodel,analysis_counter,analysis_type,finiteelement_list[i]);
 			counter++;
 		}
@@ -157,3 +173,4 @@
 	/*Free data: */
 	iomodel->DeleteData(1,FlowequationElementEquationEnum);
+	xDelete<int>(finiteelement_list);
 }
