Index: /issm/trunk-jpl/src/m/classes/SMBd18opdd.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/SMBd18opdd.m	(revision 19284)
+++ /issm/trunk-jpl/src/m/classes/SMBd18opdd.m	(revision 19285)
@@ -66,5 +66,5 @@
 					md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
 					md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
-					md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,NaN],'timeseries',1);
+					md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,NaN],'singletimeseries',1);
 					md = checkfield(md,'fieldname','surfaceforcings.dpermil','>=',0,'numel',1);
 				end
Index: /issm/trunk-jpl/src/m/classes/SMBd18opdd.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/SMBd18opdd.py	(revision 19284)
+++ /issm/trunk-jpl/src/m/classes/SMBd18opdd.py	(revision 19285)
@@ -89,5 +89,5 @@
 				md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
 				md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
-				md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,numpy.nan],'timeseries',1)
+				md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
 				md = checkfield(md,'fieldname','surfaceforcings.dpermil','>=',0,'numel',[1])
 
Index: /issm/trunk-jpl/src/m/classes/SMBpdd.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/SMBpdd.m	(revision 19284)
+++ /issm/trunk-jpl/src/m/classes/SMBpdd.m	(revision 19285)
@@ -78,12 +78,12 @@
 					md = checkfield(md,'fieldname','surfaceforcings.precipitation','timeseries',1,'NaN',1);
 				elseif(self.isdelta18o==1) 
-					md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,NaN],'timeseries',1);
-					md = checkfield(md,'fieldname','surfaceforcings.delta18o_surface','NaN',1,'size',[2,NaN],'timeseries',1);
+					md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,NaN],'singletimeseries',1);
+					md = checkfield(md,'fieldname','surfaceforcings.delta18o_surface','NaN',1,'size',[2,NaN],'singletimeseries',1);
 					md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
 					md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
 					md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
 					md = checkfield(md,'fieldname','surfaceforcings.precipitations_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);                                       
-					md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,NaN],'timeseries',1);
-					md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,NaN],'timeseries',1);
+					md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,NaN],'singletimeseries',1);
+					md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,NaN],'singletimeseries',1);
 				elseif(self.ismungsm==1) 
 					md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
@@ -91,7 +91,7 @@
 					md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
 					md = checkfield(md,'fieldname','surfaceforcings.precipitations_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);                                       
-					md = checkfield(md,'fieldname','surfaceforcings.Pfac','NaN',1,'size',[2,NaN],'timeseries',1);
-					md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,NaN],'timeseries',1);
-					md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,NaN],'timeseries',1);
+					md = checkfield(md,'fieldname','surfaceforcings.Pfac','NaN',1,'size',[2,NaN],'singletimeseries',1);
+					md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,NaN],'singletimeseries',1);
+					md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,NaN],'singletimeseries',1);
 				end
 			end
Index: /issm/trunk-jpl/src/m/classes/SMBpdd.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/SMBpdd.py	(revision 19284)
+++ /issm/trunk-jpl/src/m/classes/SMBpdd.py	(revision 19285)
@@ -118,12 +118,12 @@
 				md = checkfield(md,'fieldname','surfaceforcings.precipitation','NaN',1,'timeseries',1)
 			elif self.isdelta18o:
-				md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,numpy.nan],'timeseries',1)
-				md = checkfield(md,'fieldname','surfaceforcings.delta18o_surface','NaN',1,'size',[2,numpy.nan],'timeseries',1)
+				md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+				md = checkfield(md,'fieldname','surfaceforcings.delta18o_surface','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
 				md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
 				md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
 				md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
 				md = checkfield(md,'fieldname','surfaceforcings.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)                                       
-				md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,numpy.nan],'timeseries',1)
-				md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,numpy.nan],'timeseries',1)
+				md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+				md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
 			elif self.ismungsm:
 				md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
@@ -131,7 +131,7 @@
 				md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
 				md = checkfield(md,'fieldname','surfaceforcings.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)                                       
-				md = checkfield(md,'fieldname','surfaceforcings.Pfac','NaN',1,'size',[2,numpy.nan],'timeseries',1)
-				md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,numpy.nan],'timeseries',1)
-				md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,numpy.nan],'timeseries',1)
+				md = checkfield(md,'fieldname','surfaceforcings.Pfac','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+				md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+				md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
 
 		return md
Index: /issm/trunk-jpl/src/m/consistency/checkfield.m
===================================================================
--- /issm/trunk-jpl/src/m/consistency/checkfield.m	(revision 19284)
+++ /issm/trunk-jpl/src/m/consistency/checkfield.m	(revision 19285)
@@ -204,5 +204,5 @@
 				['field ''' fieldname ''' should have only one column as there are md.mesh.numberofvertices lines']));
 		end
-	elseif size(field,1)==md.mesh.numberofvertices+1 || size(field,1)==2
+	elseif size(field,1)==md.mesh.numberofvertices+1
 		if any(field(end,:)~=sort(field(end,:))),
 			md = checkmessage(md,getfieldvalue(options,'message',...
@@ -218,2 +218,19 @@
 	end
 end
+
+%Check single value forcings (size and times)
+if getfieldvalue(options,'singletimeseries',0),
+	if size(field,1)==2
+		if any(field(end,:)~=sort(field(end,:))),
+			md = checkmessage(md,getfieldvalue(options,'message',...
+				['field ''' fieldname ''' columns should be sorted chronologically']));
+		end
+		if any(field(end,1:end-1)==field(end,2:end)),
+			md = checkmessage(md,getfieldvalue(options,'message',...
+				['field ''' fieldname ''' columns must not contain duplicate timesteps']));
+		end
+	else
+		md = checkmessage(md,getfieldvalue(options,'message',...
+			['field ''' fieldname ''' should have 2 lines']));
+	end
+end
Index: /issm/trunk-jpl/src/m/consistency/checkfield.py
===================================================================
--- /issm/trunk-jpl/src/m/consistency/checkfield.py	(revision 19284)
+++ /issm/trunk-jpl/src/m/consistency/checkfield.py	(revision 19285)
@@ -167,4 +167,17 @@
 				"field '%s' should have md.mesh.numberofvertices or md.mesh.numberofvertices+1 lines" % fieldname))
 
+	#Check single value forcings (size and times)
+	if options.getfieldvalue('singletimeseries',0):
+		if numpy.size(field,0)==2:
+			if not all(field[-1,:]==numpy.sort(field[-1,:])):
+				md = md.checkmessage(options.getfieldvalue('message',\
+						"field '%s' columns should be sorted chronologically" % fieldname))
+			if any(field[-1,0:-1]==field[-1,1:]):
+				md = md.checkmessage(options.getfieldvalue('message',\
+						"field '%s' columns must not contain duplicate timesteps" % fieldname))
+		else:
+				md = md.checkmessage(options.getfieldvalue('message',\
+				"field '%s' should have 2 lines" % fieldname))
+
 	return md
 
