Index: /issm/trunk-jpl/src/m/model/AnalysisConfiguration.py
===================================================================
--- /issm/trunk-jpl/src/m/model/AnalysisConfiguration.py	(revision 12889)
+++ /issm/trunk-jpl/src/m/model/AnalysisConfiguration.py	(revision 12889)
@@ -0,0 +1,59 @@
+from EnumDefinitions import *
+
+def AnalysisConfiguration(solutiontype):
+	"""
+	ANALYSISCONFIGURATION - return type of analyses, number of analyses 
+
+	    Usage:
+	       [analyses, numanalyses]=AnalysisConfiguration(solutiontype);
+	"""
+
+	if   solutiontype == DiagnosticSolutionEnum:
+		numanalyses=5
+		analyses=[DiagnosticHorizAnalysisEnum,DiagnosticVertAnalysisEnum,DiagnosticHutterAnalysisEnum,SurfaceSlopeAnalysisEnum,BedSlopeAnalysisEnum]
+
+	elif solutiontype == SteadystateSolutionEnum:
+		numanalyses=7 
+		analyses=[DiagnosticHorizAnalysisEnum,DiagnosticVertAnalysisEnum,DiagnosticHutterAnalysisEnum,SurfaceSlopeAnalysisEnum,BedSlopeAnalysisEnum,ThermalAnalysisEnum,MeltingAnalysisEnum]
+
+	elif solutiontype == ThermalSolutionEnum:
+		numanalyses=2 
+		analyses=[ThermalAnalysisEnum,MeltingAnalysisEnum]
+
+	elif solutiontype == EnthalpySolutionEnum:
+		numanalyses=1 
+		analyses=[EnthalpyAnalysisEnum]
+
+	elif solutiontype == PrognosticSolutionEnum:
+		numanalyses=1 
+		analyses=[PrognosticAnalysisEnum]
+
+	elif solutiontype == BalancethicknessSolutionEnum:
+		numanalyses=1 
+		analyses=[BalancethicknessAnalysisEnum]
+
+	elif solutiontype == SurfaceSlopeSolutionEnum:
+		numanalyses=1 
+		analyses=[SurfaceSlopeAnalysisEnum]
+
+	elif solutiontype == BedSlopeSolutionEnum:
+		numanalyses=1 
+		analyses=[BedSlopeAnalysisEnum]
+
+	elif solutiontype == TransientSolutionEnum:
+		numanalyses=9 
+		analyses=[DiagnosticHorizAnalysisEnum,DiagnosticVertAnalysisEnum,DiagnosticHutterAnalysisEnum,SurfaceSlopeAnalysisEnum,BedSlopeAnalysisEnum,ThermalAnalysisEnum,MeltingAnalysisEnum,EnthalpyAnalysisEnum,PrognosticAnalysisEnum]
+
+	elif solutiontype == FlaimSolutionEnum:
+		numanalyses=1 
+		analyses=[FlaimAnalysisEnum]
+
+	elif solutiontype == HydrologySolutionEnum:
+		numanalyses=3 
+		analyses=[BedSlopeAnalysisEnum,SurfaceSlopeAnalysisEnum,HydrologyAnalysisEnum]
+
+	else:
+		raise TypeError("solution type: '%s' not supported yet!" % EnumToString(solutiontype))
+
+	return analyses,numanalyses
+
Index: /issm/trunk-jpl/src/m/model/MatlabFuncs.py
===================================================================
--- /issm/trunk-jpl/src/m/model/MatlabFuncs.py	(revision 12888)
+++ /issm/trunk-jpl/src/m/model/MatlabFuncs.py	(revision 12889)
@@ -1,2 +1,7 @@
+def oshostname():
+	import socket
+
+	return socket.gethostname().lower().split('.')[0]
+
 def strcmp(s1,s2):
 
Index: /issm/trunk-jpl/src/m/model/ismodelselfconsistent.py
===================================================================
--- /issm/trunk-jpl/src/m/model/ismodelselfconsistent.py	(revision 12888)
+++ /issm/trunk-jpl/src/m/model/ismodelselfconsistent.py	(revision 12889)
@@ -1,2 +1,4 @@
+from AnalysisConfiguration import *
+
 def ismodelselfconsistent(md):
 	"""
@@ -8,5 +10,5 @@
 
 	#initialize consistency as true
-	md.private.isconsistent=true
+	md.private.isconsistent=True
 
 	#Get solution and associated analyses
@@ -15,5 +17,6 @@
 
 	#Go through a model fields, check that it is a class, and call checkconsistency
-	fields=vars('model')
+#	fields=vars('model')
+	fields=dir(md)
 	for field in fields:
 
@@ -24,5 +27,5 @@
 		#Check that current field is an object
 		if not hasattr(getattr(md,field),'checkconsistency'):
-			md=checkmessage(md,"field '%s' is not an object." % field)
+			md.checkmessage("field '%s' is not an object." % field)
 
 		#Check consistency of the object
Index: /issm/trunk-jpl/src/m/model/marshall.py
===================================================================
--- /issm/trunk-jpl/src/m/model/marshall.py	(revision 12888)
+++ /issm/trunk-jpl/src/m/model/marshall.py	(revision 12889)
@@ -21,5 +21,5 @@
 
 	#First, write MaximumNumberOfEnum to make sure that the Enums are synchronized
-	WriteData(fid,'enum',MaximumNumberOfEnums(),'data',true,'format','Boolean')
+	WriteData(fid,'enum',MaximumNumberOfEnums(),'data',True,'format','Boolean')
 
 	#Go through all model fields: check that it is a class and call checkconsistency
Index: /issm/trunk-jpl/src/m/model/process_solve_options.py
===================================================================
--- /issm/trunk-jpl/src/m/model/process_solve_options.py	(revision 12888)
+++ /issm/trunk-jpl/src/m/model/process_solve_options.py	(revision 12889)
@@ -1,3 +1,4 @@
 import os
+from EnumDefinitions import *
 
 def process_solve_options(options):
@@ -15,5 +16,5 @@
 	#solution_type: check on this option, error out otherwise
 	solution_type=options.getfieldvalue('solution_type')
-	if solution_type in (DiagnosticSolutionEnum,PrognosticSolutionEnum,ThermalSolutionEnum,\
+	if not solution_type in (DiagnosticSolutionEnum,PrognosticSolutionEnum,ThermalSolutionEnum,\
 			SteadystateSolutionEnum,TransientSolutionEnum,EnthalpySolutionEnum,\
 			BalancethicknessSolutionEnum,BedSlopeSolutionEnum,SurfaceSlopeSolutionEnum,HydrologySolutionEnum,FlaimSolutionEnum):
@@ -42,5 +43,5 @@
 	outoptions['keep']=options.getfieldvalue('keep','y')
 	outoptions['latsgn']=options.getfieldvalue('latsgn',0)
-	outoptions['cmap']=options.getfieldvalue('cmap',None)
+	outoptions['cmap']=options.getfieldvalue('cmap',[])
 
 	return outoptions
Index: /issm/trunk-jpl/src/m/model/solve.py
===================================================================
--- /issm/trunk-jpl/src/m/model/solve.py	(revision 12888)
+++ /issm/trunk-jpl/src/m/model/solve.py	(revision 12889)
@@ -2,4 +2,8 @@
 import os
 import shutil
+from pairoptions import *
+from process_solve_options import *
+from EnumDefinitions import *
+from ismodelselfconsistent import *
 
 def solve(md,solutionenum,*args):
Index: /issm/trunk-jpl/test/NightlyRun/test101.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test101.py	(revision 12888)
+++ /issm/trunk-jpl/test/NightlyRun/test101.py	(revision 12889)
@@ -3,4 +3,8 @@
 from setmask import *
 from parameterize import *
+from setflowequation import *
+from EnumDefinitions import *
+from solve import *
+from MatlabFuncs import *
 
 md=model()
@@ -8,4 +12,8 @@
 md=setmask(md,'all','')
 md=parameterize(md,'../Par/SquareShelfConstrained.py')
+md=setflowequation(md,'macayeal','all')
+md.cluster=generic('name',oshostname(),'np',3)
+md.diagnostic.requested_outputs=StressTensorEnum
+md=solve(md,DiagnosticSolutionEnum)
 
 #Fields and tolerances to track changes
