Index: /issm/trunk-jpl/src/py/classes/pairoptions.py
===================================================================
--- /issm/trunk-jpl/src/py/classes/pairoptions.py	(revision 11788)
+++ /issm/trunk-jpl/src/py/classes/pairoptions.py	(revision 11788)
@@ -0,0 +1,38 @@
+class pairoptions:
+	#properties
+	def __init__(self,*args):
+		# {{{ Properties
+		if len(args)%2==1:
+			raise RuntimeError('pairoption error message: an even number of options is required')
+
+		#create a pairoption object
+		if len(args)==0:
+			self.list=[]
+		else:
+			self.list=[]
+			for i in range(int(round(len(args)/2))):
+				if isinstance(args[2*i],str):
+					self.list.append([args[2*i],args[2*i+1]])
+				else:
+					#option is not a string, ignore it
+					print("%s%i%s"%('buildlist info: option number ',i,' is not a string, it will be ignored'))
+					continue
+
+		#}}}
+	def __repr__(obj):
+		# {{{ Display
+		if not obj.list:
+			string='   list: empty'
+		else:
+			string="   list: (%i)"%(len(obj.list))
+			for i in range(len(obj.list)):
+				if isinstance(obj.list[i][1],str):
+					string2="     field: %-10s value: '%s'"%(obj.list[i][0],obj.list[i][1])
+				elif isinstance(obj.list[i][1],float):
+					string2="     field: %-10s value: %g"%(obj.list[i][0],obj.list[i][1])
+				elif isinstance(obj.list[i][1],int):
+					string2="     field: %-10s value: %i"%(obj.list[i][0],obj.list[i][1])
+				else:
+					string2="     field: %-10s value: (%i)"%(len(obj.list[i][1]))
+				string="%s\n%s"%(string,string2)
+		return string
Index: /issm/trunk-jpl/src/py/classes/solver.py
===================================================================
--- /issm/trunk-jpl/src/py/classes/solver.py	(revision 11787)
+++ /issm/trunk-jpl/src/py/classes/solver.py	(revision 11788)
@@ -1,4 +1,5 @@
 #module imports
-from fielddisplay import fielddisplay
+import fielddisplay 
+import ismumps
 
 class solver:
@@ -6,5 +7,8 @@
 	def __init__(self):
 		# {{{ Properties
-		self.options           = [];
+		if ismumps:
+			self.options=['NoneAnalysis',mumpsoptions]
+		else:
+			self.options=['NoneAnalysis',iluasmoptions]
 		#}}}
 	def __repr__(obj):
@@ -12,5 +16,5 @@
 		
 		string2="   solver parameters:"
-		for i in range(len(obj.options,1)):
+		for i in range(len(obj.options)):
 			option=obj.options[i]
 			analysis=option[0]
@@ -33,9 +37,8 @@
 						string="%s%s%s%s%s"%(string," -",option[0]," ",option[1])
 					else:
-						print("%s%s%s"%("PetscString error: option #","%i"%(i)," is not well formatted"))
-						sys.exit();
+						raise RuntimeError("%s%s%s"%("PetscString error: option #","%i"%(i)," is not well formatted"))
 				else:
-					print("%s%s%s"%("PetscString error: option #","%i"%(i)," is not well formatted"))
-					sys.exit()
+					raise RuntimeError("%s%s%s"%("PetscString error: option #","%i"%(i)," is not well formatted"))
+
 			string2="%s\n%s"%(string2,"   %s -> '%s'"%(analysis,string))
 		return string2
