Index: /issm/trunk-jpl/src/c/classes/FemModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 28093)
+++ /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 28094)
@@ -860,5 +860,5 @@
 		case TransientSolutionEnum:{
 			/*We have multiple analyses here, process one by one*/
-			bool isSIA,isFS,isthermal,isenthalpy,ismasstransport,isoceantransport,isgroundingline,isstressbalance,ismovingfront,ishydrology,isdamage,issmb,isslc,isesa,isdebris,issampling;
+			bool isSIA,isFS,isthermal,isenthalpy,ismasstransport,isoceantransport,isgroundingline,isstressbalance,ismovingfront,ishydrology,isdamage,issmb,isslc,isesa,isdebris,issampling,isfreesurface;
 			iomodel->FindConstant(&isthermal,"md.transient.isthermal");
 			iomodel->FindConstant(&ismovingfront,"md.transient.ismovingfront");
@@ -870,4 +870,5 @@
 			iomodel->FindConstant(&ishydrology,"md.transient.ishydrology");
 			iomodel->FindConstant(&issmb,"md.transient.issmb");
+			iomodel->FindConstant(&isfreesurface,"md.masstransport.isfreesurface");
 			iomodel->FindConstant(&isslc,"md.transient.isslc");
 			iomodel->FindConstant(&isesa,"md.transient.isesa");
@@ -888,4 +889,8 @@
 			if(ismasstransport || isgroundingline){
 				analyses_temp[numanalyses++]=MasstransportAnalysisEnum;
+				if(isfreesurface){
+					analyses_temp[numanalyses++]=FreeSurfaceBaseAnalysisEnum;
+					analyses_temp[numanalyses++]=FreeSurfaceTopAnalysisEnum;
+				}
 				int  basalforcing_model;
 				iomodel->FindConstant(&basalforcing_model,"md.basalforcings.model");
@@ -933,6 +938,4 @@
 				analyses_temp[numanalyses++]=ExtrudeFromBaseAnalysisEnum;
 				analyses_temp[numanalyses++]=ExtrudeFromTopAnalysisEnum;
-				analyses_temp[numanalyses++]=FreeSurfaceBaseAnalysisEnum;
-				analyses_temp[numanalyses++]=FreeSurfaceTopAnalysisEnum;
 			}
 			analyses_temp[numanalyses++]=L2ProjectionBaseAnalysisEnum;
