Index: /issm/trunk-jpl/src/m/miscellaneous/fielddisplay.m
===================================================================
--- /issm/trunk-jpl/src/m/miscellaneous/fielddisplay.m	(revision 13124)
+++ /issm/trunk-jpl/src/m/miscellaneous/fielddisplay.m	(revision 13125)
@@ -3,5 +3,5 @@
 %
 %   Usage:
-%      fielddisplay(md,offset,name,comment)
+%      fielddisplay(md,name,comment)
 
 	%get field
@@ -56,12 +56,7 @@
 		end
 
-		%structure
+	%structure
 	elseif isstruct(field),
-		if ~isempty(fields(field))
-			displayunit(offset,name,'(structure)',comment),
-			struct_display(field,[offset '   ']),
-		else
-			displayunit(offset,name,'N/A',comment),
-		end
+		struct_display(offset,name,field,comment),
 
 	%cell
@@ -75,22 +70,24 @@
 end%}}}
 
-function struct_display(structure,offset) % {{{
+function struct_display(offset,name,field,comment) % {{{
 
-	structure_fields=fields(structure);
+	if ~isempty(fields(field))
+		displayunit(offset,name,'(structure)',comment),
+		offset=[offset '   '];
 
-	for i=1:length(structure_fields),
+		structure_fields=fields(field);
 
-		%get current field
-		field=structure.(structure_fields{i});
+		for i=1:length(structure_fields),
 
-		%recursive call if necessary
-		if isstruct(field),
-			displayunit(offset,structure_fields{i},'(structure)',''),
-			struct_display(field,[offset '   ']);
+			%get current field
+			sfield=field.(structure_fields{i});
 
-		%display value
-		else
-			parsedisplay(offset,structure_fields{i},field,'');
+			%display value
+			parsedisplay(offset,structure_fields{i},sfield,'');
 		end
+
+	else
+		displayunit(offset,name,'N/A',comment),
+
 	end
 end% }}}
@@ -149,5 +146,5 @@
 			end
 		else
-			error('fielddisplay error message: format for comment not supportet yet');
+			error('fielddisplay error message: format for comment not supported yet');
 		end
 	end
Index: /issm/trunk-jpl/src/m/miscellaneous/fielddisplay.py
===================================================================
--- /issm/trunk-jpl/src/m/miscellaneous/fielddisplay.py	(revision 13124)
+++ /issm/trunk-jpl/src/m/miscellaneous/fielddisplay.py	(revision 13125)
@@ -1,11 +1,14 @@
 #Module import 
+import numpy
 from math import isnan
-
+from MatlabFuncs import *
 
 def fielddisplay(md,name,comment):
-#FIELDDISPLAY - display model field
-#
-#   Usage:
-#      fielddisplay(md,name,comment)
+	"""
+	FIELDDISPLAY - display model field
+
+	   Usage:
+	      fielddisplay(md,name,comment)
+	"""
 
 	#get field
@@ -15,49 +18,36 @@
 	return parsedisplay("         ",name,field,comment);
 
-#parsedisplay{{{ 
-def  parsedisplay(offset,name,field,comment):
+def parsedisplay(offset,name,field,comment):    # {{{ 
 
 	#string
 	if isinstance(field,(str,unicode)):
+
 		if len(field)>30:
 			string=displayunit(offset,name,"not displayed",comment)
 		else:
-			string=displayunit(offset,name,field,comment)
+			string=displayunit(offset,name,"'%s'" % field,comment)
 
 	#numeric
-	elif isinstance(field, (int,long)):
-		string=displayunit(offset,name,"%i" % (field),comment) 
+	elif isinstance(field,(int,long,float)):
+		string=displayunit(offset,name,str(field),comment) 
 
-	elif isinstance(field, complex):
-		raise RuntimeError("fielddisplay cannot handle complex numbers")
-
-	elif isinstance(field, float):
-		string=displayunit(offset,name,"%g"%(field),comment)
+	#matrix
+	elif isinstance(field,numpy.ndarray):
+		string=displayunit(offset,name,str(field.shape),comment)
 
 	#logical
 	elif isinstance(field,bool):
 		if field:
-			string=displayunit(offset,name,"true",comment)
+			string=displayunit(offset,name,"True",comment)
 		else:
-			string=displayunit(offset,name,"false",comment)
+			string=displayunit(offset,name,"False",comment)
 	
+	#dictionary
 	elif isinstance(field,dict):
-		if not field:
-			string=displayunit(offset,name,'N/A',comment)
-		else:
-			string=displayunit(offset,name,'(dictionary)',comment)
-			for key in field.keys():
-				string="%s\n%s"%(string,parsedisplay(offset + '   ',key,field[key],''))
+		string=dict_display(offset,name,field,comment)
 
-	elif isinstance(field,list):
-		if not field:
-			string=displayunit(offset,name,'N/A',comment),
-		else:
-			string=displayunit(offset,name,'(structure)',comment)
-			for i in range(len(field)):
-				string="%s\n%s"%(string,displayunit(offset + '   ',name,field[i],comment))
-	#cell
-	#elif  iscell(field):
-	#	cell_display(offset,name,field,comment),
+	#list or tuple
+	elif isinstance(field,(list,tuple)):
+		string=list_display(offset,name,field,comment)
 
 	else:
@@ -65,22 +55,67 @@
 		
 	return string
+	# }}}
 
-#}}}
-#displayunit {{{
-def  displayunit(offset,name,characterization,comment):
+def dict_display(offset,name,field,comment):    # {{{
+
+	if field:
+		string =displayunit(offset,name,'{dictionary}',comment)+'\n'
+		offset+='   '
+
+		for structure_field,sfield in field.iteritems():
+			string+=parsedisplay(offset,str(structure_field),sfield,'')+'\n'
+
+		if string and string[-1]=='\n':
+			string=string[:-1]
+
+	else:
+		string=displayunit(offset,name,'N/A',comment)
+
+	return string
+	# }}}
+
+def list_display(offset,name,field,comment):    # {{{
+
+	#initialization
+	if   isinstance(field,tuple):
+		sbeg='('
+		send=')'
+	elif isinstance(field,list):
+		sbeg='['
+		send=']'
+	string=sbeg
+
+	#go through the cell and fill string
+	if len(field)<5:
+		for fieldi in field:
+			if   isinstance(fieldi,(str,unicode)):
+				string+="'%s'," % fieldi
+			elif isinstance(fieldi,(bool,int,long,float)):
+				string+="%s," % str(fieldi)
+			else:
+				string=sbeg
+				break
+
+	if strcmp(string,sbeg):
+		string="%s%dx1%s" % (sbeg,len(field),send)
+	else:
+		string=string[:-1]+send
+
+	#call displayunit
+	return displayunit(offset,name,string,comment)
+	# }}}
+
+def displayunit(offset,name,characterization,comment):    # {{{
 
 	#take care of name
 	if len(name)>23:
-		name="%s..." % (name[:19])
+		name="%s..." % name[:20]
 	
 	#take care of characterization
-	if characterization=="":
-		characterization="N/A"
-	
-	if characterization=="nan":
+	if strcmp(characterization,"''") or strcmp(characterization,'""') or strcmpi(characterization,'nan'):
 		characterization="N/A"
 	
 	if len(characterization)>15:
-		characterization="%s%s" % (characterization[:11],"...")
+		characterization="%s..." % characterization[:12]
 	
 	#print
@@ -88,15 +123,14 @@
 		string="%s%-23s: %-15s" % (offset,name,characterization)
 	else:
-		if isinstance(comment,(str,unicode)):
+		if   isinstance(comment,(str,unicode)):
 			string="%s%-23s: %-15s -- %s" % (offset,name,characterization,comment)
 		elif isinstance(comment,list):
-			print(comment)
 			string="%s%-23s: %-15s -- %s" % (offset,name,characterization,comment[0])
-			for i in range(1,len(comment)):
-				string2="%s%-23s  %-15s    %s" %(offset,"","",comment[i])
-				string="%s\n%s"%(string,string2)
+			for commenti in comment:
+				string+="\n%s%-23s  %-15s    %s" % (offset,'','',comment[i])
 		else:
-			raise RuntimeError("fielddisplay error message: format for comment not supportet yet")
+			raise RuntimeError("fielddisplay error message: format for comment not supported yet")
 
 	return string
-#}}}
+	# }}}
+
