Index: /issm/trunk-jpl/src/m/classes/linearbasalforcings.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/linearbasalforcings.py	(revision 22149)
+++ /issm/trunk-jpl/src/m/classes/linearbasalforcings.py	(revision 22150)
@@ -69,19 +69,19 @@
 		if 'MasstransportAnalysis' in analyses and not (solution=='TransientSolution' and not md.transient.ismasstransport):
 			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1)
-			md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0);
-			md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<',md.basalforcings.upperwater_elevation);
-			md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<',0);
+			md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0,'singletimeseries',1)
+			md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<','basalforcings.upperwater_elevation','singletimeseries',1)
+			md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<=',0,'singletimeseries',1)
 
 		if 'BalancethicknessAnalysis' in analyses:
 			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
-			md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0);
-			md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<',md.basalforcings.upperwater_elevation);
-			md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<',0);
+			md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0,'singletimeseries',1)
+			md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<','basalforcings.upperwater_elevation','singletimeseries',1)
+			md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<=',0,'singletimeseries',1)
 
 		if 'ThermalAnalysis' in analyses and not (solution=='TransientSolution' and not md.transient.isthermal):
 			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1)
-			md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0);
-			md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<',md.basalforcings.upperwater_elevation);
-			md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<=',0);
+			md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0,'singletimeseries',1)
+			md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<','basalforcings.upperwater_elevation','singletimeseries',1)
+			md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<=',0,'singletimeseries',1)
 			md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'Inf',1,'timeseries',1,'>=',0)
 
@@ -93,15 +93,18 @@
 
 		floatingice_melting_rate = np.zeros((md.mesh.numberofvertices))
-		pos=np.nonzero(md.geometry.base<=md.basalforcings.deepwater_elevation)
-		floatingice_melting_rate[pos]=md.basalforcings.deepwater_melting_rate
-		pos=np.nonzero(np.logical_and(md.geometry.base>md.basalforcings.deepwater_elevation,md.geometry.base<md.basalforcings.upperwater_elevation))
-		floatingice_melting_rate[pos]=md.basalforcings.deepwater_melting_rate*(md.geometry.base[pos]-md.basalforcings.upperwater_elevation)/(md.basalforcings.deepwater_elevation-md.basalforcings.upperwater_elevation)
 
-		WriteData(fid,prefix,'name','md.basalforcings.model','data',2,'format','Integer');
+		pos = np.nonzero(md.geometry.base <= md.basalforcings.deepwater_elevation)
+		floatingice_melting_rate[pos] = md.basalforcings.deepwater_melting_rate[0][0]
+
+		pos = np.nonzero(np.logical_and(md.geometry.base > md.basalforcings.deepwater_elevation, md.geometry.base < md.basalforcings.upperwater_elevation))
+
+		floatingice_melting_rate[pos] =	md.basalforcings.deepwater_melting_rate[0][0] * (md.geometry.base[pos] - md.basalforcings.upperwater_elevation) / (md.basalforcings.deepwater_elevation - md.basalforcings.upperwater_elevation)
+
+		WriteData(fid,prefix,'name','md.basalforcings.model','data',2,'format','Integer')
+		WriteData(fid,prefix,'data',floatingice_melting_rate,'name','md.basalforcings.floatingice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)
 		WriteData(fid,prefix,'object',self,'fieldname','groundedice_melting_rate','name','md.basalforcings.groundedice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)
-		WriteData(fid,prefix,'data',floatingice_melting_rate,'name','md.basalforcings.floatingice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)
 		WriteData(fid,prefix,'object',self,'fieldname','geothermalflux','name','md.basalforcings.geothermalflux','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts)
-		WriteData(fid,prefix,'object',self,'fieldname','deepwater_melting_rate','name','md.basalforcings.deepwater_melting_rate','format','DoubleMat','mattype',3,'timeserieslength',2,'yts',md.constants.yts,'scale',1./yts,)
-		WriteData(fid,prefix,'object',self,'fieldname','deepwater_elevation','name','md.basalforcings.deepwater_elevation','format','DoubleMat','mattype',3,'timeserieslength',2,'yts',md.constants.yts)
-		WriteData(fid,prefix,'object',self,'fieldname','upperwater_elevation','name','md.basalforcings.upperwater_elevation','format','DoubleMat','mattype',3,'timeserieslength',2,'yts',md.constants.yts)
+		WriteData(fid,prefix,'object',self,'fieldname','deepwater_melting_rate','format','DoubleMat','mattype',3,'timeserieslength',2,'name','md.basalforcings.deepwater_melting_rate','scale',1./yts,'yts',md.constants.yts)
+		WriteData(fid,prefix,'object',self,'fieldname','deepwater_elevation','format','DoubleMat','mattype',3,'name','md.basalforcings.deepwater_elevation','yts',md.constants.yts)
+		WriteData(fid,prefix,'object',self,'fieldname','upperwater_elevation','format','DoubleMat','mattype',3,'name','md.basalforcings.upperwater_elevation','yts',md.constants.yts)
 	# }}}
Index: /issm/trunk-jpl/src/m/classes/mesh2d.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/mesh2d.py	(revision 22149)
+++ /issm/trunk-jpl/src/m/classes/mesh2d.py	(revision 22150)
@@ -120,4 +120,5 @@
 		WriteData(fid,prefix,'object',self,'class','mesh','fieldname','numberofvertices','format','Integer')
 		WriteData(fid,prefix,'object',self,'class','mesh','fieldname','average_vertex_connectivity','format','Integer')
-		WriteData(fid,prefix,'object',self,'class','mesh','fieldname','segments','format','DoubleMat','mattype',3);
+		WriteData(fid,prefix,'object',self,'class','mesh','fieldname','vertexonboundary','format','DoubleMat','mattype',1)
+		WriteData(fid,prefix,'object',self,'class','mesh','fieldname','segments','format','DoubleMat','mattype',3)
 	# }}}
Index: /issm/trunk-jpl/src/m/classes/model.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/model.py	(revision 22149)
+++ /issm/trunk-jpl/src/m/classes/model.py	(revision 22150)
@@ -156,7 +156,7 @@
 		        'levelset',
 		        'calving',
-						'gia',
-						'esa',
-						'love',
+			'love',
+			'gia',
+			'esa',
 		        'autodiff',
 		        'inversion',
Index: /issm/trunk-jpl/src/m/classes/settings.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/settings.py	(revision 22149)
+++ /issm/trunk-jpl/src/m/classes/settings.py	(revision 22150)
@@ -79,8 +79,9 @@
 		WriteData(fid,prefix,'object',self,'fieldname','output_frequency','format','Integer')
 		WriteData(fid,prefix,'object',self,'fieldname','recording_frequency','format','Integer')
+		
+		if self.waitonlock>0:
+			WriteData(fid,prefix,'name','md.settings.waitonlock','data',True,'format','Boolean')
+		else:
+			WriteData(fid,prefix,'name','md.settings.waitonlock','data',False,'format','Boolean')
 		WriteData(fid,prefix,'object',self,'fieldname','solver_residue_threshold','format','Double')
-		if self.waitonlock>0:
-			WriteData(fid,prefix,'name','md.settings.waitonlock','data',True,'format','Boolean');
-		else:
-			WriteData(fid,prefix,'name','md.settings.waitonlock','data',False,'format','Boolean');
 	# }}}
Index: /issm/trunk-jpl/src/m/consistency/checkfield.py
===================================================================
--- /issm/trunk-jpl/src/m/consistency/checkfield.py	(revision 22149)
+++ /issm/trunk-jpl/src/m/consistency/checkfield.py	(revision 22150)
@@ -188,7 +188,11 @@
 				md = md.checkmessage(options.getfieldvalue('message',\
 						"field '%s' columns must not contain duplicate timesteps" % fieldname))
+		elif np.size(field,0) == 1:
+			if np.ndim(field) > 1 and not np.size(field,1) == 1:
+				md = md.checkmessage(options.getfieldvalue('message',\
+				"field '%s' should be either a scalar or have 2 lines" % fieldname))
 		else:
 				md = md.checkmessage(options.getfieldvalue('message',\
-				"field '%s' should have 2 lines" % fieldname))
+				"field '%s' should have 2 lines or be a scalar" % fieldname))
 
 	return md
Index: /issm/trunk-jpl/test/NightlyRun/test292.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test292.py	(revision 22149)
+++ /issm/trunk-jpl/test/NightlyRun/test292.py	(revision 22150)
@@ -18,4 +18,5 @@
 md.cluster=generic('name',gethostname(),'np',3)
 md.basalforcings=linearbasalforcings(md.basalforcings)
+md.basalforcings.deepwater_melting_rate = np.array([[50.,50.],[0.,6.]])
 md=solve(md,'Transient')
 
