Index: /issm/trunk-jpl/src/m/classes/model/model.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/model/model.py	(revision 12937)
+++ /issm/trunk-jpl/src/m/classes/model/model.py	(revision 12938)
@@ -32,5 +32,7 @@
 from miscellaneous import miscellaneous
 from private import private
+from EnumDefinitions import *
 #}}}
+
 class model(object):
 	#properties
@@ -51,7 +53,12 @@
 
 		self.debug            = debug()
-		self.verbose          = verbose()
+		self.verbose          = verbose('solution',True,'qmu',True,'control',True)
 		self.settings         = settings()
 		self.solver           = solver()
+#		need EnumToString for these to work
+#		if ismumps:
+#			md.solver.addoptions(DiagnosticVertAnalysisEnum(),mumpsoptions)
+#		else:
+#			md.solver.addoptions(DiagnosticVertAnalysisEnum(),iluasmoptions)
 		self.cluster          = generic()
 
@@ -70,9 +77,10 @@
 		self.qmu              = qmu()
 
-		self.results          = [];
+		self.results          = {}
 		self.radaroverlay     = radaroverlay()
 		self.miscellaneous    = miscellaneous()
 		self.private          = private()
 		#}}}
+
 	def __repr__(obj):
 		# {{{ Display
@@ -111,4 +119,10 @@
 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("radaroverlay","[%s,%s]" % ("1x1",obj.radaroverlay.__class__.__name__),"radar image for plot overlay"))
 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("miscellaneous","[%s,%s]" % ("1x1",obj.miscellaneous.__class__.__name__),"miscellaneous fields"))
-		return string;
-		 #}}}
+		return string
+	# }}}
+
+	def checkmessage(self,string):    # {{{
+		print ("model not consistent: %s" % string)
+		self.private.isconsistent=False
+	# }}}
+
Index: /issm/trunk-jpl/src/m/classes/verbose.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/verbose.m	(revision 12937)
+++ /issm/trunk-jpl/src/m/classes/verbose.m	(revision 12938)
@@ -42,5 +42,5 @@
 				case 1,
 					binary=varargin{1};
-					if ischar(binary),
+					if     ischar(binary),
 						if strcmpi(binary,'all'),
 							binary=2^11-1; %all ones
@@ -51,4 +51,6 @@
 							verbose=BinaryToVerbose(verbose,binary);
 						end
+					elseif isnumeric(binary),
+						verbose=BinaryToVerbose(verbose,binary);
 					end 
 				otherwise,
Index: /issm/trunk-jpl/src/m/classes/verbose.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/verbose.py	(revision 12937)
+++ /issm/trunk-jpl/src/m/classes/verbose.py	(revision 12938)
@@ -1,9 +1,32 @@
-#module imports
-from fielddisplay import fielddisplay
+from pairoptions import *
+from MatlabFuncs import *
+from WriteData import *
+from EnumDefinitions import *
 
-class verbose:
-	#properties
-	def __init__(self):
-		# {{{ Properties
+class verbose(object):
+	"""
+	VERBOSE class definition
+
+	   Available verbosity levels:
+	      mprocessor  : model processing 
+	      module      : modules
+	      solution    : solution sequence
+	      solver      : solver info (extensive)
+	      convergence : convergence criteria
+	      control     : control method
+	      qmu         : sensitivity analysis
+
+	   Usage:
+	      verbose=verbose();
+	      verbose=verbose(3);
+	      verbose=verbose('001100');
+	      verbose=verbose('module',True,'solver',False);
+
+	WARNING: some parts of this file are Synchronized with src/c/shared/Numerics/Verbosity.h
+	         Do not modify these sections. See src/c/shared/Numerics/README for more info
+	"""
+
+	def __init__(self,*args):    # {{{
+		#BEGINFIELDS
 		self.mprocessor  = False
 		self.module      = False
@@ -13,15 +36,94 @@
 		self.control     = False
 		self.qmu         = False
-		#}}}
-	def __repr__(obj):
-		# {{{ Display
-		string="%s%s%s\n\n"%("class '",obj.__class__.__name__,"'=")
-		string="%s%s\n"%(string,"   %15s : %s"%("mprocessor",obj.mprocessor))
-		string="%s%s\n"%(string,"   %15s : %s"%("module",obj.module))
-		string="%s%s\n"%(string,"   %15s : %s"%("solution",obj.solution))
-		string="%s%s\n"%(string,"   %15s : %s"%("solver",obj.solver))
-		string="%s%s\n"%(string,"   %15s : %s"%("convergence",obj.convergence))
-		string="%s%s\n"%(string,"   %15s : %s"%("control",obj.control))
-		string="%s%s\n"%(string,"   %15s : %s"%("qmu",obj.qmu))
-		return string
-		#}}}
+		#ENDFIELDS
+
+		if not len(args):
+			#Don't do anything
+			pass
+
+		elif len(args) == 1:
+			binary=args[0]
+			if   isinstance(binary,str):
+				if strcmpi(binary,'all'):
+					binary=2**11-1    #all ones
+					self.BinaryToVerbose(binary)
+					self.solver=False    #Do not use by default
+				else:
+					binary=int(binary,2)
+					self.BinaryToVerbose(binary)
+			elif isinstance(binary,(int,float)):
+				self.BinaryToVerbose(int(binary))
+
+		else:
+			#Use options to initialize object
+			self=pairoptions(*args).AssignObjectFields(self)
+
+			#Cast to logicals
+			listproperties=vars(self)
+			for [fieldname,fieldvalue] in listproperties.iteritems():
+				if isinstance(fieldvalue,bool) or isinstance(fieldvalue,(int,float)):
+					setattr(self,fieldname,bool(fieldvalue))
+				else:
+					raise TypeError("verbose supported field values are logicals only (True or False)")
+	# }}}
+
+	def VerboseToBinary(self):    # {{{
+
+		#BEGINVERB2BIN
+		binary=0
+		if self.mprocessor:
+			binary=binary |  1
+		if self.module:
+			binary=binary |  2
+		if self.solution:
+			binary=binary |  4
+		if self.solver:
+			binary=binary |  8
+		if self.convergence:
+			binary=binary | 16
+		if self.control:
+			binary=binary | 32
+		if self.qmu:
+			binary=binary | 64
+		#ENDVERB2BIN
+
+		return binary
+	# }}}
+
+	def BinaryToVerbose(self,binary):    # {{{
+
+		#BEGINBIN2VERB
+		self.mprocessor =bool(binary &  1)
+		self.module     =bool(binary &  2)
+		self.solution   =bool(binary &  4)
+		self.solver     =bool(binary &  8)
+		self.convergence=bool(binary & 16)
+		self.control    =bool(binary & 32)
+		self.qmu        =bool(binary & 64)
+		#ENDBIN2VERB
+	# }}}
+
+	def checkconsistency(self,md,solution,analyses):    # {{{
+		return md
+	# }}}
+
+	def __repr__(self):    # {{{
+			
+		#BEGINDISP
+		s ="class '%s'  = \n" % type(self)
+		s+="   %15s : %s\n" % ('mprocessor',self.mprocessor)
+		s+="   %15s : %s\n" % ('module',self.module)
+		s+="   %15s : %s\n" % ('solution',self.solution)
+		s+="   %15s : %s\n" % ('solver',self.solver)
+		s+="   %15s : %s\n" % ('convergence',self.convergence)
+		s+="   %15s : %s\n" % ('control',self.control)
+		s+="   %15s : %s\n" % ('qmu',self.qmu)
+		#ENDDISP
+
+		return s
+	# }}}
+
+	def marshall(self,fid):    # {{{
+			WriteData(fid,'data',VerboseToBinary(self),'enum',VerboseEnum,'format','Integer')
+	# }}}
+
