Index: /issm/trunk-jpl/src/m/consistency/checkfield.py
===================================================================
--- /issm/trunk-jpl/src/m/consistency/checkfield.py	(revision 22870)
+++ /issm/trunk-jpl/src/m/consistency/checkfield.py	(revision 22871)
@@ -132,53 +132,74 @@
 	if options.exist('>='):
 		lowerbound = options.getfieldvalue('>=')
-		field2 = np.reshape(field,(np.prod(np.shape(field)),1),order='F').copy()
-		if options.getfieldvalue('timeseries',0):
-			field2 = np.reshape(field[:-1],np.prod(np.shape(field[:-1])),1)
-
-		if options.getfieldvalue('singletimeseries',0):
-			field2 = np.reshape(field[0],np.prod(np.shape(field[0])),1)
-
-		if np.any(field2<lowerbound):
-			md = md.checkmessage(options.getfieldvalue('message',\
-				"field '%s' should have values above %d" % (fieldname,lowerbound)))
+		if np.size(lowerbound)>1: #checking elementwise
+			if any(field<upperbound):
+				md = md.checkmessage(options.getfieldvalue('message',"field '%s' should have values below %d" % (fieldname,upperbound)))
+		else:
+			minval=np.nanmin(field)
+			if options.getfieldvalue('timeseries',0):
+				minval=np.nanmin(field[:-1])
+			elif options.getfieldvalue('singletimeseries',0):
+				if np.size(field)==1: #some singletimeseries are just one value
+					minval=field
+				else:
+					minval=np.nanmin(field[0])
+
+			if minval<lowerbound:
+				md = md.checkmessage(options.getfieldvalue('message',"field '%s' should have values above %d" % (fieldname,lowerbound)))
 
 	if options.exist('>'):
 		lowerbound=options.getfieldvalue('>')
-		field2 = np.reshape(field,(np.prod(np.shape(field)),1),order='F').copy()
-		if options.getfieldvalue('timeseries',0):
-			field2 = np.reshape(field[:-1],np.prod(np.shape(field[:-1])),1)
-
-		if options.getfieldvalue('singletimeseries',0):
-			field2 = np.reshape(field[0],np.prod(np.shape(field[0])),1)
-
-		if np.any(field2<=lowerbound):
-			md = md.checkmessage(options.getfieldvalue('message',\
-				"field '%s' should have values above %d" % (fieldname,lowerbound)))
+		if np.size(lowerbound)>1: #checking elementwise
+			if any(field<=upperbound):
+				md = md.checkmessage(options.getfieldvalue('message',"field '%s' should have values below %d" % (fieldname,upperbound)))
+		else:
+			minval=np.nanmin(field)
+			if options.getfieldvalue('timeseries',0) :
+				minval=np.nanmin(field[:-1])
+			elif options.getfieldvalue('singletimeseries',0):
+				if np.size(field)==1: #some singletimeseries are just one value
+					minval=field
+				else:
+					minval=np.nanmin(field[0])
+
+			if minval<=lowerbound:
+				md = md.checkmessage(options.getfieldvalue('message',"field '%s' should have values above %d" % (fieldname,lowerbound)))
 
 	#check smaller
 	if options.exist('<='):
 		upperbound=options.getfieldvalue('<=')
-		field2 = np.reshape(field,(np.prod(np.shape(field)),1),order='F').copy()
-		if options.getfieldvalue('timeseries',0):
-			field2 = np.reshape(field[:-1],np.prod(np.shape(field[:-1])),1)
-
-		if options.getfieldvalue('singletimeseries',0):
-			field2 = np.reshape(field[0],int(np.prod(np.shape(field[0]))),1)
-
-		if np.any(field2>upperbound):
-			md = md.checkmessage(options.getfieldvalue('message',\
-				"field '%s' should have values below %d" % (fieldname,upperbound)))
+		if np.size(upperbound)>1: #checking elementwise
+			if any(field>upperbound):
+				md = md.checkmessage(options.getfieldvalue('message',"field '%s' should have values below %d" % (fieldname,upperbound)))
+		else:
+			maxval=np.nanmax(field)
+			if options.getfieldvalue('timeseries',0):
+				maxval=np.nanmax(field[:-1])
+			elif  options.getfieldvalue('singletimeseries',0):
+				if np.size(field)==1: #some singletimeseries are just one value
+					maxval=field
+				else:
+					maxval=np.nanmax(field[0])
+			if maxval>upperbound:
+				md = md.checkmessage(options.getfieldvalue('message',"field '%s' should have values below %d" % (fieldname,upperbound)))
+
 	if options.exist('<'):
 		upperbound=options.getfieldvalue('<')
-		field2 = np.reshape(field,(np.prod(np.shape(field)),1),order='F').copy()
-		if options.getfieldvalue('timeseries',0):
-			field2 = np.reshape(field[:-1],np.prod(np.shape(field[:-1])),1)
-
-		if options.getfieldvalue('singletimeseries',0):
-			field2 = np.reshape(field[0],int(np.prod(np.shape(field[0]))),1)
-
-		if np.any(field2>=upperbound):
-			md = md.checkmessage(options.getfieldvalue('message',\
-				"field '%s' should have values below %d" % (fieldname,upperbound)))
+		if np.size(upperbound)>1: #checking elementwise
+			if any(field>=upperbound):
+				md = md.checkmessage(options.getfieldvalue('message',"field '%s' should have values below %d" % (fieldname,upperbound)))
+
+		else:
+			maxval=np.nanmax(field)
+			if options.getfieldvalue('timeseries',0):
+				maxval=np.nanmax(field[:-1])
+			elif options.getfieldvalue('singletimeseries',0):
+				if np.size(field)==1: #some singletimeseries are just one value
+					maxval=field.copy()
+				else:
+					maxval=np.nanmax(field[0])
+
+				if maxval>=upperbound:
+					md = md.checkmessage(options.getfieldvalue('message',"field '%s' should have values below %d" % (fieldname,upperbound)))
 
 	#check file
