Index: /issm/trunk-jpl/test/NightlyRun/IdFromString.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/IdFromString.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/IdFromString.py	(revision 23707)
@@ -38,5 +38,5 @@
 	#Return if no test found
 	if not ids:
-		print "No test matches '%s'." % string
+		print("No test matches '%s'." % string)
 		return ids
 
@@ -48,7 +48,7 @@
 
 	if verbose:
-		print "%s tests match '%s':" % (len(ids),string)
+		print("%s tests match '%s':" % (len(ids),string))
 		for i in range(len(ids)):
-			print "   %s : %s" % (ids[i],idnames[i])
+			print("   %s : %s" % (ids[i],idnames[i]))
 	#else:
 		#print ids
Index: /issm/trunk-jpl/test/NightlyRun/runme.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/runme.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/runme.py	(revision 23707)
@@ -7,4 +7,9 @@
 from socket import gethostname
 from GetIds import *
+from parallelrange import parallelrange
+from IdToName import IdToName
+from arch import archread
+from arch import archwrite
+from arch import archdisp
 
 def runme(id=None,exclude=None,benchmark='nightly',procedure='check',output='none',rank=1,numprocs=1):
@@ -49,10 +54,4 @@
 	       runme(id=[[101,102],['Dakota','Slr']])
 	"""
-	from parallelrange import parallelrange
-	from IdToName import IdToName
-	from arch import archread
-	from arch import archwrite
-	from arch import archdisp
-
 	#Get ISSM_DIR variable
 	ISSM_DIR=os.environ['ISSM_DIR']
@@ -61,15 +60,15 @@
 	#GET benchmark {{{
 	if not benchmark in ['all','nightly','ismip','eismint','thermal','mesh','validation','tranforcing','adolc','slr','referential']:
-		print("runme warning: benchmark '{}' not supported, defaulting to test 'nightly'.".format(benchmark))
+		print(("runme warning: benchmark '{}' not supported, defaulting to test 'nightly'.".format(benchmark)))
 		benchmark='nightly'
 	# }}}
 	#GET procedure {{{
 	if not procedure in ['check','update']:
-		print("runme warning: procedure '{}' not supported, defaulting to test 'check'.".format(procedure))
+		print(("runme warning: procedure '{}' not supported, defaulting to test 'check'.".format(procedure)))
 		procedure='check'
 	# }}}
 	#GET output {{{
 	if not output in ['nightly','none']:
-		print("runme warning: output '{}' not supported, defaulting to test 'none'.".format(output))
+		print(("runme warning: output '{}' not supported, defaulting to test 'none'.".format(output)))
 		output='none'
 	# }}}
@@ -126,5 +125,5 @@
 	root=os.getcwd()
 	for id in test_ids:
-		print "----------------starting:%i-----------------------" % id
+		print(("----------------starting:{}-----------------------".format(id)))
 		try:
 
@@ -132,5 +131,5 @@
 			os.chdir(root)
 			id_string=IdToName(id)
-			execfile('test'+str(id)+'.py',globals())
+			exec(compile(open('test'+str(id)+'.py').read(), 'test'+str(id)+'.py', 'exec'),globals())
 
 			#UPDATE ARCHIVE?
@@ -151,5 +150,5 @@
 					# Matlab uses base 1, so use base 1 in labels
 					archwrite(archive_file,archive_name+'_field'+str(k+1),field)
-				print "File '%s' saved.\n" % os.path.join('..','Archives',archive_name+'.arch')
+				print(("File {} saved. \n".format(os.path.join('..','Archives',archive_name+'.arch'))))
 
 			#ELSE: CHECK TEST
@@ -185,17 +184,17 @@
 
 						error_diff=np.amax(np.abs(archive-field),axis=0)/(np.amax(np.abs(archive),axis=0)+float_info.epsilon)
-
-                                                if not np.isscalar(error_diff): error_diff=error_diff[0]
+						if not np.isscalar(error_diff):
+							error_diff=error_diff[0]
 
 						#disp test result
 						if (np.any(error_diff>tolerance) or np.isnan(error_diff)):
-							print('ERROR   difference: {} > {} test id: {} test name: {} field: {}'.format(error_diff,tolerance,id,id_string,fieldname))
+							print(('ERROR   difference: {} > {} test id: {} test name: {} field: {}'.format(error_diff,tolerance,id,id_string,fieldname)))
 						else:
-							print('SUCCESS difference: {} < {} test id: {} test name: {} field: {}'.format(error_diff,tolerance,id,id_string,fieldname))
+							print(('SUCCESS difference: {} < {} test id: {} test name: {} field: {}'.format(error_diff,tolerance,id,id_string,fieldname)))
 
 					except Exception as message:
 
 						#something went wrong, print failure message:
-						print format_exc()
+						print((format_exc()))
 						directory=os.getcwd().split('/')    #  not used?
 						if output=='nightly':
@@ -204,7 +203,7 @@
 							fid.write('\n------------------------------------------------------------------\n')
 							fid.close()
-							print('FAILURE difference: N/A test id: {} test name: {} field: {}'.format(id,id_string,fieldname))
+							print(('FAILURE difference: N/A test id: {} test name: {} field: {}'.format(id,id_string,fieldname)))
 						else:
-							print('FAILURE difference: N/A test id: {} test name: {} field: {}'.format(id,id_string,fieldname))
+							print(('FAILURE difference: N/A test id: {} test name: {} field: {}'.format(id,id_string,fieldname)))
 							raise RuntimeError(message)
 
@@ -213,5 +212,5 @@
 
 			#something went wrong, print failure message:
-			print format_exc()
+			print((format_exc()))
 			directory=os.getcwd().split('/')    #  not used?
 			if output=='nightly':
@@ -220,10 +219,10 @@
 				fid.write('\n------------------------------------------------------------------\n')
 				fid.close()
-				print('FAILURE difference: N/A test id: {} test name: {} field: {}'.format(id,id_string,'N/A'))
+				print(('FAILURE difference: N/A test id: {} test name: {} field: {}'.format(id,id_string,'N/A')))
 			else:
-				print('FAILURE difference: N/A test id: {} test name: {} field: {}'.format(id,id_string,'N/A'))
+				print(('FAILURE difference: N/A test id: {} test name: {} field: {}'.format(id,id_string,'N/A')))
 				raise RuntimeError(message)
 
-		print "----------------finished:%i-----------------------" % id
+		print(("----------------finished:{}-----------------------".format(id)))
 	return
 
@@ -235,9 +234,9 @@
 		if os.path.exists(PYTHONSTARTUP):
 			try:
-				execfile(PYTHONSTARTUP)
+				exec(compile(open(PYTHONSTARTUP).read(), PYTHONSTARTUP, 'exec'))
 			except Exception as e:
-				print "PYTHONSTARTUP error: ",e
+				print(("PYTHONSTARTUP error: ",e))
 		else:
-			print("PYTHONSTARTUP file '{}' does not exist.".format(PYTHONSTARTUP))
+			print(("PYTHONSTARTUP file '{}' does not exist.".format(PYTHONSTARTUP)))
 
 	parser = argparse.ArgumentParser(description='RUNME - test deck for ISSM nightly runs')
@@ -256,5 +255,5 @@
 
 	if args.output=='nightly':
-		print "PYTHONEXITEDCORRECTLY"
+		print("PYTHONEXITEDCORRECTLY")
 
 	exit(md)
Index: /issm/trunk-jpl/test/NightlyRun/test101.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test101.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test101.py	(revision 23707)
@@ -15,5 +15,6 @@
 md=setflowequation(md,'SSA','all')
 md.cluster=generic('name',gethostname(),'np',3)
-
+md.verbose=verbose('all')
+md.verbose.solver=True
 #outputs
 md.stressbalance.requested_outputs=['default','DeviatoricStressxx','DeviatoricStressyy','DeviatoricStressxy','MassFlux1','MassFlux2','MassFlux3','MassFlux4','MassFlux5','MassFlux6']
Index: /issm/trunk-jpl/test/NightlyRun/test1104.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test1104.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test1104.py	(revision 23707)
@@ -44,5 +44,5 @@
 
 	md.stressbalance.vertex_pairing=np.vstack((np.vstack((posx+1,posx2+1)).T,np.vstack((posy+1,posy2+1)).T))
-	print np.shape(md.stressbalance.vertex_pairing)
+	print(np.shape(md.stressbalance.vertex_pairing))
 	#Compute the stressbalance
 	md.stressbalance.abstol=np.nan
Index: /issm/trunk-jpl/test/NightlyRun/test1201.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test1201.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test1201.py	(revision 23707)
@@ -17,5 +17,5 @@
 results=[]
 
-for stabilization in xrange(1,4):
+for stabilization in range(1,4):
 	#The goal is to test the masstransport model
 	md=bamg(model(),'domain','../Exp/SquareEISMINT.exp','hmax',3000.)
@@ -26,5 +26,5 @@
 	md.cluster=generic('name',gethostname(),'np',8)
 
-	print "      initial velocity"
+	print("      initial velocity")
 	md.initialization.vx=np.zeros((md.mesh.numberofvertices))
 	md.initialization.vy=-400.*np.ones((md.mesh.numberofvertices))
Index: /issm/trunk-jpl/test/NightlyRun/test1205.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test1205.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test1205.py	(revision 23707)
@@ -50,7 +50,7 @@
 vel=np.zeros((md.mesh.numberofvertices2d))
 
-for i in xrange(0,md.mesh.numberofvertices2d):
+for i in range(0,md.mesh.numberofvertices2d):
 	node_vel=0.
-	for j in xrange(0,md.mesh.numberoflayers-1):
+	for j in range(0,md.mesh.numberoflayers-1):
 		node_vel=node_vel+1./(2.*(md.mesh.numberoflayers-1))*(np.sqrt(vx[i+(j+1)*md.mesh.numberofvertices2d,0]**2+vy[i+(j+1)*md.mesh.numberofvertices2d,0]**2)+np.sqrt(vx[i+j*md.mesh.numberofvertices2d,0]**2+vy[i+j*md.mesh.numberofvertices2d,0]**2))
 	vel[i]=node_vel
Index: /issm/trunk-jpl/test/NightlyRun/test1206.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test1206.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test1206.py	(revision 23707)
@@ -50,7 +50,7 @@
 vel=np.zeros((md.mesh.numberofvertices2d))
 
-for i in xrange(0,md.mesh.numberofvertices2d):
+for i in range(0,md.mesh.numberofvertices2d):
 	node_vel=0.
-	for j in xrange(0,md.mesh.numberoflayers-1):
+	for j in range(0,md.mesh.numberoflayers-1):
 		node_vel=node_vel+1./(2.*(md.mesh.numberoflayers-1))*\
 			(np.sqrt(vx[i+(j+1)*md.mesh.numberofvertices2d,0]**2+vy[i+(j+1)*md.mesh.numberofvertices2d,0]**2)+\
Index: /issm/trunk-jpl/test/NightlyRun/test1207.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test1207.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test1207.py	(revision 23707)
@@ -50,7 +50,7 @@
 vel=np.zeros((md.mesh.numberofvertices2d))
 
-for i in xrange(0,md.mesh.numberofvertices2d):
+for i in range(0,md.mesh.numberofvertices2d):
 	node_vel=0.
-	for j in xrange(0,md.mesh.numberoflayers-1):
+	for j in range(0,md.mesh.numberoflayers-1):
 		node_vel=node_vel+1./(2.*(md.mesh.numberoflayers-1))*\
 			(np.sqrt(vx[i+(j+1)*md.mesh.numberofvertices2d,0]**2+vy[i+(j+1)*md.mesh.numberofvertices2d,0]**2)+\
Index: /issm/trunk-jpl/test/NightlyRun/test1501.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test1501.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test1501.py	(revision 23707)
@@ -31,5 +31,5 @@
 md=solve(md,'Masstransport')
 
-for i in xrange(1,11):
+for i in range(1,11):
 	 md=solve(md,'Masstransport')
 	 md.smb.mass_balance= md.smb.mass_balance - ((md.results.MasstransportSolution.Thickness)-md.geometry.thickness)
Index: /issm/trunk-jpl/test/NightlyRun/test1502.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test1502.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test1502.py	(revision 23707)
@@ -32,5 +32,5 @@
 md=solve(md,'Masstransport')
 
-for i in xrange(1,11):
+for i in range(1,11):
 	 md=solve(md,'Masstransport')
 	 md.smb.mass_balance= md.smb.mass_balance - ((md.results.MasstransportSolution.Thickness)-md.geometry.thickness)
Index: /issm/trunk-jpl/test/NightlyRun/test1601.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test1601.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test1601.py	(revision 23707)
@@ -35,5 +35,5 @@
 vel1=md.results.StressbalanceSolution.Vel
 #plotmodel(md,'data',vel0,'data',vel1,'data',vel1-vel0,'title','Cartesian CS','title','Rotated CS','title','difference')
-print "Error between Cartesian and rotated CS: %g" % (np.max(np.abs(vel0-vel1))/(np.max(np.abs(vel0))+sys.float_info.epsilon))
+print("Error between Cartesian and rotated CS: %g" % (np.max(np.abs(vel0-vel1))/(np.max(np.abs(vel0))+sys.float_info.epsilon)))
 
 #Now, put CS back to normal except on the side where the spc are applied
@@ -46,5 +46,5 @@
 
 #plotmodel(md,'data',vel0,'data',vel2,'data',vel2-vel0,'title','Cartesian CS','title','Rotated CS','title','difference')
-print "Error between Cartesian and rotated CS: %g" % (np.max(np.abs(vel0-vel2))/(np.max(np.abs(vel0))+sys.float_info.epsilon))
+print("Error between Cartesian and rotated CS: %g" % (np.max(np.abs(vel0-vel2))/(np.max(np.abs(vel0))+sys.float_info.epsilon)))
 
 #Fields and tolerances to track changes
Index: /issm/trunk-jpl/test/NightlyRun/test1602.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test1602.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test1602.py	(revision 23707)
@@ -37,5 +37,5 @@
 
 #plotmodel(md,'data',vel0,'data',vel1,'data',vel1-vel0,'title','Cartesian CS','title','Rotated CS','title','difference','view#all',2)
-print "Error between Cartesian and rotated CS: %g" % (np.max(np.abs(vel0-vel1))/(np.max(np.abs(vel0))+sys.float_info.epsilon))
+print("Error between Cartesian and rotated CS: %g" % (np.max(np.abs(vel0-vel1))/(np.max(np.abs(vel0))+sys.float_info.epsilon)))
 
 #Fields and tolerances to track changes
Index: /issm/trunk-jpl/test/NightlyRun/test234.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test234.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test234.py	(revision 23707)
@@ -3,4 +3,5 @@
 import scipy.io as spio
 from os import getcwd
+from IssmConfig import IssmConfig
 from model import *
 from socket import gethostname
Index: /issm/trunk-jpl/test/NightlyRun/test235.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test235.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test235.py	(revision 23707)
@@ -4,4 +4,5 @@
 from os import getcwd
 from model import *
+from IssmConfig import IssmConfig
 from socket import gethostname
 from triangle import *
Index: /issm/trunk-jpl/test/NightlyRun/test236.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test236.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test236.py	(revision 23707)
@@ -32,5 +32,5 @@
 md.smb.temperatures_presentday=np.zeros((md.mesh.numberofvertices+1,12))
 md.smb.temperatures_lgm=np.zeros((md.mesh.numberofvertices+1,12))
-for imonth in xrange(0,12):
+for imonth in range(0,12):
     md.smb.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
     md.smb.temperatures_lgm[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]-20.
@@ -51,5 +51,5 @@
 md.smb.precipitations_presentday=np.zeros((md.mesh.numberofvertices+1,12))
 md.smb.precipitations_lgm=np.zeros((md.mesh.numberofvertices+1,12))
-for imonth in xrange(0,12):
+for imonth in range(0,12):
 	md.smb.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
 	md.smb.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
Index: /issm/trunk-jpl/test/NightlyRun/test237.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test237.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test237.py	(revision 23707)
@@ -30,5 +30,5 @@
 md.smb.temperatures_presentday=np.zeros((md.mesh.numberofvertices+1,12))
 md.smb.temperatures_lgm=np.zeros((md.mesh.numberofvertices+1,12))
-for imonth in xrange(0,12):
+for imonth in range(0,12):
     md.smb.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
     md.smb.temperatures_lgm[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]-20.
@@ -49,5 +49,5 @@
 md.smb.precipitations_presentday=np.zeros((md.mesh.numberofvertices+1,12))
 md.smb.precipitations_lgm=np.zeros((md.mesh.numberofvertices+1,12))
-for imonth in xrange(0,12):
+for imonth in range(0,12):
     md.smb.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
     md.smb.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
@@ -59,5 +59,5 @@
 md.smb.Tdiff=np.zeros((2,fsize))
 md.smb.sealev=np.zeros((2,fsize))
-for iint in xrange(0,fsize):
+for iint in range(0,fsize):
     # Interpolation factors
 	 md.smb.Pfac[0,iint]=0.15*(iint+1)
Index: /issm/trunk-jpl/test/NightlyRun/test238.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test238.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test238.py	(revision 23707)
@@ -27,5 +27,5 @@
 tmonth=np.ones(12)*(238.15+20.)
 md.smb.temperatures_presentday=np.zeros((md.mesh.numberofvertices+1,12))
-for imonth in xrange(0,12):
+for imonth in range(0,12):
     md.smb.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
     # Time for the last line:
@@ -40,5 +40,5 @@
 # creating precipitation
 md.smb.precipitations_presentday=np.zeros((md.mesh.numberofvertices+1,12))
-for imonth in xrange(0,12):
+for imonth in range(0,12):
     md.smb.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
     md.smb.precipitations_presentday[md.mesh.numberofvertices,imonth]=(float(imonth)/12.)
Index: /issm/trunk-jpl/test/NightlyRun/test239.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test239.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test239.py	(revision 23707)
@@ -27,5 +27,5 @@
 tmonth=np.ones(12)*(238.15+20.)
 md.smb.temperatures_presentday=np.zeros((md.mesh.numberofvertices+1,12))
-for imonth in xrange(0,12):
+for imonth in range(0,12):
     md.smb.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
     # Time for the last line:
@@ -40,5 +40,5 @@
 # creating precipitation
 md.smb.precipitations_presentday=np.zeros((md.mesh.numberofvertices+1,12))
-for imonth in xrange(0,12):
+for imonth in range(0,12):
     md.smb.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
     md.smb.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
Index: /issm/trunk-jpl/test/NightlyRun/test240.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test240.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test240.py	(revision 23707)
@@ -27,5 +27,5 @@
 tmonth=np.ones(12)*(238.15+20.)
 md.smb.temperatures_presentday=np.zeros((md.mesh.numberofvertices+1,12))
-for imonth in xrange(0,12):
+for imonth in range(0,12):
     md.smb.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
     # Time for the last line:
@@ -40,5 +40,5 @@
 # creating precipitation
 md.smb.precipitations_presentday=np.zeros((md.mesh.numberofvertices+1,12))
-for imonth in xrange(0,12):
+for imonth in range(0,12):
     md.smb.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
     md.smb.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
Index: /issm/trunk-jpl/test/NightlyRun/test243.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test243.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test243.py	(revision 23707)
@@ -20,22 +20,22 @@
 md.smb = SMBgemb()
 md.smb.setdefaultparameters(md.mesh,md.geometry)
-md.smb.dsnowIdx = 0 
+md.smb.dsnowIdx = 0
 
 #load hourly surface forcing date from 1979 to 2009:
-inputs = np.load('../Data/gemb_input.npy').item()
+inputs = np.load('../Data/gemb_input.npy',encoding='bytes').item()
 
 #setup the inputs:
-md.smb.Ta = np.append(np.tile(np.conjugate(inputs['Ta0']),(md.mesh.numberofelements,1)),np.conjugate([inputs['dateN']]),axis=0)
-md.smb.V = np.append(np.tile(np.conjugate(inputs['V0']),(md.mesh.numberofelements,1)),np.conjugate([inputs['dateN']]),axis=0)
-md.smb.dswrf = np.append(np.tile(np.conjugate(inputs['dsw0']),(md.mesh.numberofelements,1)),np.conjugate([inputs['dateN']]),axis=0)
-md.smb.dlwrf = np.append(np.tile(np.conjugate(inputs['dlw0']),(md.mesh.numberofelements,1)),np.conjugate([inputs['dateN']]),axis=0)
-md.smb.P = np.append(np.tile(np.conjugate(inputs['P0']),(md.mesh.numberofelements,1)),np.conjugate([inputs['dateN']]),axis=0)
-md.smb.eAir = np.append(np.tile(np.conjugate(inputs['eAir0']),(md.mesh.numberofelements,1)),np.conjugate([inputs['dateN']]),axis=0)
-md.smb.pAir = np.append(np.tile(np.conjugate(inputs['pAir0']),(md.mesh.numberofelements,1)),np.conjugate([inputs['dateN']]),axis=0)
-md.smb.pAir = np.append(np.tile(np.conjugate(inputs['pAir0']),(md.mesh.numberofelements,1)),np.conjugate([inputs['dateN']]),axis=0)
-md.smb.Vz = np.tile(np.conjugate(inputs['LP']['Vz']),(md.mesh.numberofelements,1)).flatten()
-md.smb.Tz = np.tile(np.conjugate(inputs['LP']['Tz']),(md.mesh.numberofelements,1)).flatten()
-md.smb.Tmean = np.tile(np.conjugate(inputs['LP']['Tmean']),(md.mesh.numberofelements,1)).flatten()
-md.smb.C = np.tile(np.conjugate(inputs['LP']['C']),(md.mesh.numberofelements,1)).flatten()
+md.smb.Ta = np.append(np.tile(np.conjugate(inputs[b'Ta0']),(md.mesh.numberofelements,1)),np.conjugate([inputs[b'dateN']]),axis=0)
+md.smb.V = np.append(np.tile(np.conjugate(inputs[b'V0']),(md.mesh.numberofelements,1)),np.conjugate([inputs[b'dateN']]),axis=0)
+md.smb.dswrf = np.append(np.tile(np.conjugate(inputs[b'dsw0']),(md.mesh.numberofelements,1)),np.conjugate([inputs[b'dateN']]),axis=0)
+md.smb.dlwrf = np.append(np.tile(np.conjugate(inputs[b'dlw0']),(md.mesh.numberofelements,1)),np.conjugate([inputs[b'dateN']]),axis=0)
+md.smb.P = np.append(np.tile(np.conjugate(inputs[b'P0']),(md.mesh.numberofelements,1)),np.conjugate([inputs[b'dateN']]),axis=0)
+md.smb.eAir = np.append(np.tile(np.conjugate(inputs[b'eAir0']),(md.mesh.numberofelements,1)),np.conjugate([inputs[b'dateN']]),axis=0)
+md.smb.pAir = np.append(np.tile(np.conjugate(inputs[b'pAir0']),(md.mesh.numberofelements,1)),np.conjugate([inputs[b'dateN']]),axis=0)
+md.smb.pAir = np.append(np.tile(np.conjugate(inputs[b'pAir0']),(md.mesh.numberofelements,1)),np.conjugate([inputs[b'dateN']]),axis=0)
+md.smb.Vz = np.tile(np.conjugate(inputs[b'LP']['Vz']),(md.mesh.numberofelements,1)).flatten()
+md.smb.Tz = np.tile(np.conjugate(inputs[b'LP']['Tz']),(md.mesh.numberofelements,1)).flatten()
+md.smb.Tmean = np.tile(np.conjugate(inputs[b'LP']['Tmean']),(md.mesh.numberofelements,1)).flatten()
+md.smb.C = np.tile(np.conjugate(inputs[b'LP']['C']),(md.mesh.numberofelements,1)).flatten()
 
 #smb settings
Index: /issm/trunk-jpl/test/NightlyRun/test274.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test274.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test274.py	(revision 23707)
@@ -24,5 +24,5 @@
 
 md.cluster=generic('name',gethostname(),'np',3)
-print md.rifts.riftstruct[0]['fill']
+print(md.rifts.riftstruct[0]['fill'])
 md=solve(md,'Stressbalance')
 
Index: /issm/trunk-jpl/test/NightlyRun/test3015.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test3015.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test3015.py	(revision 23707)
@@ -88,5 +88,5 @@
 dVdh_ad=md.results.MasstransportSolution.AutodiffJacobian
 
-print "dV/dh: analytical:  %16.16g\n       using adolc:  %16.16g\n" % (dVdh_an,dVdh_ad)
+print("dV/dh: analytical:  %16.16g\n       using adolc:  %16.16g\n" % (dVdh_an,dVdh_ad))
 
 #Fields and tolerances to track changes
Index: /issm/trunk-jpl/test/NightlyRun/test3020.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test3020.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test3020.py	(revision 23707)
@@ -94,6 +94,6 @@
 dMaxVdh_ad=md.results.TransientSolution[0].AutodiffJacobian[1]
 
-print "dV/dh: analytical:  %16.16g\n       using adolc:  %16.16g\n" % (dVdh_an,dVdh_ad)
-print "dMaxV/dh: analytical:  %16.16g\n       using adolc:  %16.16g\n" % (dMaxVdh_an,dMaxVdh_ad)
+print("dV/dh: analytical:  %16.16g\n       using adolc:  %16.16g\n" % (dVdh_an,dVdh_ad))
+print("dMaxV/dh: analytical:  %16.16g\n       using adolc:  %16.16g\n" % (dMaxVdh_an,dMaxVdh_ad))
 
 #Fields and tolerances to track changes
Index: /issm/trunk-jpl/test/NightlyRun/test333.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test333.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test333.py	(revision 23707)
@@ -17,5 +17,5 @@
 md.transient=transient.setallnullparameters(md.transient)
 md.transient.ishydrology=True
-md.transient.issmb=True
+#md.transient.issmb=True
 md=setflowequation(md,'SSA','all')
 md.cluster=generic('name',gethostname(),'np',1)
@@ -47,4 +47,5 @@
 md.timestepping.final_time=2.0
 
+#md.debug.valgrind=True
 md=solve(md,'Transient')
 
Index: /issm/trunk-jpl/test/NightlyRun/test436.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test436.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test436.py	(revision 23707)
@@ -25,6 +25,6 @@
 field_values = []
 for i in ['LliboutryDuval', 'CuffeyTemperate']:
-	print ' '
-	print '====== Testing rheology law: ' + i + ' ====='
+	print(' ')
+	print('====== Testing rheology law: ' + i + ' =====')
 
 	md.materials.rheology_law = i
Index: /issm/trunk-jpl/test/NightlyRun/test701.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test701.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test701.py	(revision 23707)
@@ -62,6 +62,6 @@
 #md.initialization.pressure = md.constants.g*md.materials.rho_ice*(md.geometry.surface-md.mesh.y)
 for i in ['MINI','MINIcondensed','TaylorHood','LATaylorHood','CrouzeixRaviart','LACrouzeixRaviart']:
-	print ' '
-	print '======Testing ' +i+ ' Full-Stokes Finite element====='
+	print(' ')
+	print('======Testing ' +i+ ' Full-Stokes Finite element=====')
 	md.flowequation.fe_FS = i
 	md = solve(md,'Stressbalance')
Index: /issm/trunk-jpl/test/NightlyRun/test702.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test702.py	(revision 23706)
+++ /issm/trunk-jpl/test/NightlyRun/test702.py	(revision 23707)
@@ -72,6 +72,6 @@
 field_values = []
 for i in ['MINI','MINIcondensed','TaylorHood','XTaylorHood','LATaylorHood']:
-	print ' '
-	print '======Testing ' +i+ ' Full-Stokes Finite element====='
+	print(' ')
+	print('======Testing ' +i+ ' Full-Stokes Finite element=====')
 	md.flowequation.fe_FS = i
 	md = solve(md,'Stressbalance')
Index: /issm/trunk-jpl/test/Par/ISMIPA.py
===================================================================
--- /issm/trunk-jpl/test/Par/ISMIPA.py	(revision 23706)
+++ /issm/trunk-jpl/test/Par/ISMIPA.py	(revision 23707)
@@ -4,10 +4,10 @@
 #Ok, start defining model parameters here
 
-print "      creating thickness"
+print("      creating thickness")
 md.geometry.surface=-md.mesh.x*numpy.tan(0.5*numpy.pi/180.)
 md.geometry.base=md.geometry.surface-1000.+500.*numpy.sin(md.mesh.x*2.*numpy.pi/numpy.max(md.mesh.x))*numpy.sin(md.mesh.y*2.*numpy.pi/numpy.max(md.mesh.x))
 md.geometry.thickness=md.geometry.surface-md.geometry.base
 
-print "      creating drag"
+print("      creating drag")
 md.friction.coefficient=200.*numpy.ones((md.mesh.numberofvertices))
 md.friction.coefficient[numpy.nonzero(md.mask.groundedice_levelset<0.)[0]]=0.
@@ -15,9 +15,9 @@
 md.friction.q=numpy.ones((md.mesh.numberofelements))
 
-print "      creating flow law parameter"
+print("      creating flow law parameter")
 md.materials.rheology_B=6.8067*10**7*numpy.ones((md.mesh.numberofvertices))
 md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements))
 
-print "      boundary conditions for stressbalance model"
+print("      boundary conditions for stressbalance model")
 #Create node on boundary first (because we cannot use mesh)
 md=SetIceSheetBC(md)
Index: /issm/trunk-jpl/test/Par/ISMIPB.py
===================================================================
--- /issm/trunk-jpl/test/Par/ISMIPB.py	(revision 23706)
+++ /issm/trunk-jpl/test/Par/ISMIPB.py	(revision 23707)
@@ -4,10 +4,10 @@
 #Ok, start defining model parameters here
 
-print "      creating thickness"
+print("      creating thickness")
 md.geometry.surface=-md.mesh.x*numpy.tan(0.5*numpy.pi/180.)
 md.geometry.base=md.geometry.surface-1000.+500.*numpy.sin(md.mesh.x*2.*numpy.pi/numpy.max(md.mesh.x))
 md.geometry.thickness=md.geometry.surface-md.geometry.base
 
-print "      creating drag"
+print("      creating drag")
 md.friction.coefficient=200.*numpy.ones((md.mesh.numberofvertices))
 md.friction.coefficient[numpy.nonzero(md.mask.groundedice_levelset<0.)[0]]=0.
@@ -15,9 +15,9 @@
 md.friction.q=numpy.ones((md.mesh.numberofelements))
 
-print "      creating flow law parameter"
+print("      creating flow law parameter")
 md.materials.rheology_B=6.8067*10**7*numpy.ones((md.mesh.numberofvertices))
 md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements))
 
-print "      boundary conditions for stressbalance model"
+print("      boundary conditions for stressbalance model")
 #Create node on boundary first (because we cannot use mesh)
 md=SetIceSheetBC(md)
Index: /issm/trunk-jpl/test/Par/ISMIPC.py
===================================================================
--- /issm/trunk-jpl/test/Par/ISMIPC.py	(revision 23706)
+++ /issm/trunk-jpl/test/Par/ISMIPC.py	(revision 23707)
@@ -4,10 +4,10 @@
 #Ok, start defining model parameters here
 
-print "      creating thickness"
+print("      creating thickness")
 md.geometry.surface=2000.-md.mesh.x*numpy.tan(0.1*numpy.pi/180.)    #to have z>0
 md.geometry.base=md.geometry.surface-1000.
 md.geometry.thickness=md.geometry.surface-md.geometry.base
 
-print "      creating drag"
+print("      creating drag")
 #md.friction.coefficient=sqrt(md.constants.yts.*(1000.+1000.*sin(md.mesh.x*2.*pi/max(md.mesh.x/2.)).*sin(md.mesh.y*2.*pi/max(md.mesh.x/2.)))./(md.constants.g*(md.materials.rho_ice*md.geometry.thickness+md.materials.rho_water*md.geometry.base)));
 md.friction.coefficient=numpy.sqrt(md.constants.yts*(1000.+1000.*numpy.sin(md.mesh.x*2.*numpy.pi/numpy.max(md.mesh.x))*numpy.sin(md.mesh.y*2.*numpy.pi/numpy.max(md.mesh.x))))
@@ -16,9 +16,9 @@
 md.friction.q=numpy.zeros((md.mesh.numberofelements))
 
-print "      creating flow law parameter"
+print("      creating flow law parameter")
 md.materials.rheology_B=6.8067*10**7*numpy.ones((md.mesh.numberofvertices))
 md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements))
 
-print "      boundary conditions for stressbalance model:"
+print("      boundary conditions for stressbalance model:")
 #Create node on boundary first (because we can not use mesh)
 md=SetIceSheetBC(md)
Index: /issm/trunk-jpl/test/Par/ISMIPD.py
===================================================================
--- /issm/trunk-jpl/test/Par/ISMIPD.py	(revision 23706)
+++ /issm/trunk-jpl/test/Par/ISMIPD.py	(revision 23707)
@@ -4,10 +4,10 @@
 #Ok, start defining model parameters here
 
-print "      creating thickness"
+print("      creating thickness")
 md.geometry.surface=2000.-md.mesh.x*numpy.tan(0.1*numpy.pi/180.)    #to have z>0
 md.geometry.base=md.geometry.surface-1000.
 md.geometry.thickness=md.geometry.surface-md.geometry.base
 
-print "      creating drag"
+print("      creating drag")
 md.friction.coefficient=numpy.sqrt(md.constants.yts*(1000.+1000.*numpy.sin(md.mesh.x*2.*numpy.pi/numpy.max(md.mesh.x))))
 md.friction.coefficient[numpy.nonzero(md.mask.groundedice_levelset<0.)[0]]=0.
@@ -15,9 +15,9 @@
 md.friction.q=numpy.zeros((md.mesh.numberofelements))
 
-print "      creating flow law parameter"
+print("      creating flow law parameter")
 md.materials.rheology_B=6.8067*10**7*numpy.ones((md.mesh.numberofvertices))
 md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements))
 
-print "      boundary conditions for stressbalance model:"
+print("      boundary conditions for stressbalance model:")
 #Create node on boundary first (because we can not use mesh)
 md=SetIceSheetBC(md)
Index: /issm/trunk-jpl/test/Par/ISMIPE.py
===================================================================
--- /issm/trunk-jpl/test/Par/ISMIPE.py	(revision 23706)
+++ /issm/trunk-jpl/test/Par/ISMIPE.py	(revision 23707)
@@ -5,9 +5,9 @@
 #Ok, start defining model parameters here
 
-print "      creating thickness"
+print("      creating thickness")
 data = numpy.array(archread('../Data/ISMIPE.arch','data'));
 md.geometry.surface=numpy.zeros((md.mesh.numberofvertices))
 md.geometry.base=numpy.zeros((md.mesh.numberofvertices))
-for i in xrange(0,md.mesh.numberofvertices):
+for i in range(0,md.mesh.numberofvertices):
 	y=md.mesh.y[i]
 	point1=numpy.floor(y/100.)
@@ -21,14 +21,14 @@
 md.geometry.base=md.geometry.surface-md.geometry.thickness
 
-print "      creating drag"
+print("      creating drag")
 md.friction.coefficient=numpy.zeros((md.mesh.numberofvertices))
 md.friction.p=numpy.ones((md.mesh.numberofelements))
 md.friction.q=numpy.ones((md.mesh.numberofelements))
 
-print "      creating flow law parameter"
+print("      creating flow law parameter")
 md.materials.rheology_B=6.8067*10**7*numpy.ones((md.mesh.numberofvertices))
 md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements))
 
-print "      boundary conditions for stressbalance model:"
+print("      boundary conditions for stressbalance model:")
 #Create node on boundary first (because we can not use mesh)
 md=SetIceSheetBC(md)
Index: /issm/trunk-jpl/test/Par/ISMIPF.py
===================================================================
--- /issm/trunk-jpl/test/Par/ISMIPF.py	(revision 23706)
+++ /issm/trunk-jpl/test/Par/ISMIPF.py	(revision 23707)
@@ -5,5 +5,5 @@
 md.verbose=2
 
-print "      creating thickness"
+print("      creating thickness")
 md.geometry.surface=-md.mesh.x*numpy.tan(3.*numpy.pi/180.)
 #md.geometry.base=md.geometry.surface-1000.
@@ -11,15 +11,15 @@
 md.geometry.thickness=md.geometry.surface-md.geometry.base
 
-print "      creating drag"
+print("      creating drag")
 md.friction.coefficient=numpy.sqrt(md.constants.yts/(2.140373*10**-7*1000.))*numpy.ones((md.mesh.numberofvertices))
 md.friction.p=numpy.ones((md.mesh.numberofelements))
 md.friction.q=numpy.zeros((md.mesh.numberofelements))
 
-print "      creating flow law parameter"
+print("      creating flow law parameter")
 md.materials.rheology_B=1.4734*10**14*numpy.ones((md.mesh.numberofvertices))
 md.materials.rheology_n=1.*numpy.ones((md.mesh.numberofelements))
 md.materials.rheology_law='None'
 
-print "      boundary conditions for stressbalance model"
+print("      boundary conditions for stressbalance model")
 #Create node on boundary first (because we cannot use mesh)
 md=SetIceSheetBC(md)
Index: /issm/trunk-jpl/test/Par/RoundSheetEISMINT.py
===================================================================
--- /issm/trunk-jpl/test/Par/RoundSheetEISMINT.py	(revision 23706)
+++ /issm/trunk-jpl/test/Par/RoundSheetEISMINT.py	(revision 23707)
@@ -3,15 +3,15 @@
 
 #Ok, start defining model parameters here
-print "      creating thickness"
+print("      creating thickness")
 md.geometry.thickness=10.*numpy.ones((md.mesh.numberofvertices))
 md.geometry.base=numpy.zeros((md.mesh.numberofvertices))
 md.geometry.surface=md.geometry.base+md.geometry.thickness
 
-print "      creating drag"
+print("      creating drag")
 md.friction.coefficient=20.*numpy.ones((md.mesh.numberofvertices)) 
 md.friction.p=numpy.ones((md.mesh.numberofelements))
 md.friction.q=numpy.ones((md.mesh.numberofelements))
 
-print "      creating temperatures"
+print("      creating temperatures")
 tmin=238.15    #K
 st=1.67*10**-2/1000.    #k/m
@@ -20,9 +20,9 @@
 md.basalforcings.geothermalflux=4.2*10**-2*numpy.ones((md.mesh.numberofvertices))
 
-print "      creating flow law parameter"
+print("      creating flow law parameter")
 md.materials.rheology_B=6.81*10**7*numpy.ones((md.mesh.numberofvertices))    #to have the same B as the analytical solution 
 md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements))
 
-print "      creating surface mass balance"
+print("      creating surface mass balance")
 smb_max=0.5    #m/yr
 sb=10**-2/1000.    #m/yr/m
@@ -30,5 +30,5 @@
 md.smb.mass_balance=numpy.minimum(smb_max*numpy.ones_like(radius),sb*(rel-radius))
 
-print "      creating velocities"
+print("      creating velocities")
 constant=0.3
 md.inversion.vx_obs=constant/2.*md.mesh.x*(md.geometry.thickness)**-1
@@ -41,5 +41,5 @@
 
 #Deal with boundary conditions:
-print "      boundary conditions for stressbalance model:"
+print("      boundary conditions for stressbalance model:")
 md=SetMarineIceSheetBC(md,'../Exp/RoundFrontEISMINT.exp')
 
Index: /issm/trunk-jpl/test/Par/RoundSheetStaticEISMINT.py
===================================================================
--- /issm/trunk-jpl/test/Par/RoundSheetStaticEISMINT.py	(revision 23706)
+++ /issm/trunk-jpl/test/Par/RoundSheetStaticEISMINT.py	(revision 23707)
@@ -2,5 +2,5 @@
 from SetMarineIceSheetBC import SetMarineIceSheetBC
 
-print "      creating thickness"
+print("      creating thickness")
 hmin=0.01
 hmax=2756.7
@@ -12,5 +12,5 @@
 md.geometry.surface=md.geometry.base+md.geometry.thickness
 
-print "      creating drag"
+print("      creating drag")
 md.friction.coefficient=20.*numpy.ones((md.mesh.numberofvertices))
 md.friction.coefficient[numpy.nonzero(md.mask.groundedice_levelset<0.)[0]]=0.
@@ -18,5 +18,5 @@
 md.friction.q=numpy.ones((md.mesh.numberofelements))
 
-print "      creating temperatures"
+print("      creating temperatures")
 tmin=238.15    #K
 st=1.67*10**-2/1000.    #k/m
@@ -24,9 +24,9 @@
 md.basalforcings.geothermalflux=4.2*10**-2*numpy.ones((md.mesh.numberofvertices))
 
-print "      creating flow law parameter"
+print("      creating flow law parameter")
 md.materials.rheology_B=6.81*10**7*numpy.ones((md.mesh.numberofvertices))    #to have the same B as the analytical solution 
 md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements))
 
-print "      creating surface mass balance"
+print("      creating surface mass balance")
 smb_max=0.5    #m/yr
 sb=10**-2/1000.    #m/yr/m
@@ -34,5 +34,5 @@
 md.smb.mass_balance=numpy.minimum(smb_max*numpy.ones_like(radius),sb*(rel-radius))
 
-print "      creating velocities"
+print("      creating velocities")
 constant=0.3
 md.inversion.vx_obs=constant/2.*md.mesh.x*(md.geometry.thickness)**-1
@@ -45,5 +45,5 @@
 
 #Deal with boundary conditions:
-print "      boundary conditions for stressbalance model:"
+print("      boundary conditions for stressbalance model:")
 md=SetMarineIceSheetBC(md,'../Exp/RoundFrontEISMINT.exp')
 
Index: /issm/trunk-jpl/test/Par/SquareEISMINT.py
===================================================================
--- /issm/trunk-jpl/test/Par/SquareEISMINT.py	(revision 23706)
+++ /issm/trunk-jpl/test/Par/SquareEISMINT.py	(revision 23707)
@@ -4,5 +4,5 @@
 #Ok, start defining model parameters here
 
-print "      creating thickness"
+print("      creating thickness")
 ymin=numpy.min(md.mesh.y)
 ymax=numpy.max(md.mesh.y)
@@ -11,5 +11,5 @@
 md.geometry.surface=md.geometry.base+md.geometry.thickness
 
-print "      creating drag"
+print("      creating drag")
 md.friction.coefficient=200.*numpy.ones((md.mesh.numberofvertices))
 md.friction.coefficient[numpy.nonzero(md.mask.groundedice_levelset<0.)[0]]=0.
@@ -17,5 +17,5 @@
 md.friction.q=numpy.ones((md.mesh.numberofelements))
 
-print "      creating initial values"
+print("      creating initial values")
 md.initialization.temperature=(273.-20.)*numpy.ones((md.mesh.numberofvertices))
 md.initialization.vx=numpy.zeros((md.mesh.numberofvertices))
@@ -25,14 +25,14 @@
 md.initialization.pressure=numpy.zeros((md.mesh.numberofvertices))
 
-print "      creating flow law parameter"
+print("      creating flow law parameter")
 md.materials.rheology_B=1.7687*10**8*numpy.ones((md.mesh.numberofvertices))
 md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements))
 
-print "      creating surface mass balance"
+print("      creating surface mass balance")
 md.smb.mass_balance=0.2*numpy.ones((md.mesh.numberofvertices))    #0m/a
 md.basalforcings.floatingice_melting_rate=0.*numpy.ones((md.mesh.numberofvertices))    #0m/a
 md.basalforcings.groundedice_melting_rate=0.*numpy.ones((md.mesh.numberofvertices))    #0m/a
 
-print "      boundary conditions"
+print("      boundary conditions")
 md=SetMarineIceSheetBC(md,'../Exp/SquareFrontEISMINT.exp')
 
Index: /issm/trunk-jpl/test/Par/SquareShelfConstrained.py
===================================================================
--- /issm/trunk-jpl/test/Par/SquareShelfConstrained.py	(revision 23706)
+++ /issm/trunk-jpl/test/Par/SquareShelfConstrained.py	(revision 23707)
@@ -1,4 +1,4 @@
 import os.path
-from arch import *
+from arch import archread
 import numpy as np
 import inspect
@@ -21,7 +21,5 @@
 md.geometry.bed=md.geometry.base-10;
 
-#Initial velocity 
-#x         = np.reshape(np.array(archread('../Data/SquareShelfConstrained.arch','x')),(-1))
-#y         = np.reshape(np.array(archread('../Data/SquareShelfConstrained.arch','y')),(-1))
+#Initial velocity
 x         = np.array(archread('../Data/SquareShelfConstrained.arch','x'))
 y         = np.array(archread('../Data/SquareShelfConstrained.arch','y'))
@@ -52,6 +50,6 @@
 
 #Numerical parameters
-md.masstransport.stabilization=1.
-md.thermal.stabilization=1.
+md.masstransport.stabilization=1
+md.thermal.stabilization=1
 md.verbose = verbose(0)
 md.settings.waitonlock=30
Index: /issm/trunk-jpl/test/Par/SquareThermal.py
===================================================================
--- /issm/trunk-jpl/test/Par/SquareThermal.py	(revision 23706)
+++ /issm/trunk-jpl/test/Par/SquareThermal.py	(revision 23707)
@@ -8,5 +8,5 @@
 md.groundingline.migration='None'
 
-print "      creating thickness"
+print("      creating thickness")
 h=1000.
 md.geometry.thickness=h*numpy.ones((md.mesh.numberofvertices))
@@ -14,10 +14,10 @@
 md.geometry.surface=md.geometry.base+md.geometry.thickness;
 
-print "      creating velocities"
+print("      creating velocities")
 md.initialization.vx=numpy.zeros((md.mesh.numberofvertices))
 md.initialization.vy=numpy.zeros((md.mesh.numberofvertices))
 md.initialization.vz=numpy.zeros((md.mesh.numberofvertices))
 
-print "      creating drag"
+print("      creating drag")
 md.friction.coefficient=200.*numpy.ones((md.mesh.numberofvertices))
 md.friction.coefficient[numpy.nonzero(md.mask.groundedice_levelset<0.)[0]]=0.
@@ -25,5 +25,5 @@
 md.friction.q=numpy.ones((md.mesh.numberofelements))
 
-print "      creating temperatures"
+print("      creating temperatures")
 md.initialization.temperature=(273.-20.)*numpy.ones((md.mesh.numberofvertices))
 md.initialization.pressure=numpy.zeros((md.mesh.numberofvertices,))
@@ -31,9 +31,9 @@
 md.initialization.watercolumn=numpy.zeros((md.mesh.numberofvertices,))
 
-print "      creating flow law parameter"
+print("      creating flow law parameter")
 md.materials.rheology_B=paterson(md.initialization.temperature)
 md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements))
 
-print "      creating surface mass balance"
+print("      creating surface mass balance")
 md.smb.mass_balance=numpy.ones((md.mesh.numberofvertices))/md.constants.yts    #1m/a
 #md.basalforcings.melting_rate=0.*numpy.ones((md.mesh.numberofvertices))/md.constants.yts    #1m/a
@@ -43,8 +43,8 @@
 #Deal with boundary conditions:
 
-print "      boundary conditions for stressbalance model"
+print("      boundary conditions for stressbalance model")
 md=SetMarineIceSheetBC(md,'../Exp/SquareFront.exp')
 
-print "      boundary conditions for thermal model"
+print("      boundary conditions for thermal model")
 md.thermal.spctemperature[:]=md.initialization.temperature
 md.basalforcings.geothermalflux=numpy.zeros((md.mesh.numberofvertices)) 
