Index: /issm/trunk-jpl/src/m/model/collapse.m
===================================================================
--- /issm/trunk-jpl/src/m/model/collapse.m	(revision 12087)
+++ /issm/trunk-jpl/src/m/model/collapse.m	(revision 12088)
@@ -30,6 +30,6 @@
 if ~isnan(md.inversion.vel_obs), md.inversion.vel_obs=project2d(md,md.inversion.vel_obs,md.mesh.numberoflayers); end;
 if ~isnan(md.inversion.cost_functions_coefficients), md.inversion.cost_functions_coefficients=project2d(md,md.inversion.cost_functions_coefficients,md.mesh.numberoflayers); end;
-if ~isnan(md.inversion.min_parameters), md.inversion.min_parameters=project2d(md,md.inversion.min_parameters,md.mesh.numberoflayers); end;
-if ~isnan(md.inversion.max_parameters), md.inversion.max_parameters=project2d(md,md.inversion.max_parameters,md.mesh.numberoflayers); end;
+if numel(md.inversion.min_parameters)>1, md.inversion.min_parameters=project2d(md,md.inversion.min_parameters,md.mesh.numberoflayers); end;
+if numel(md.inversion.max_parameters)>1, md.inversion.max_parameters=project2d(md,md.inversion.max_parameters,md.mesh.numberoflayers); end;
 if ~isnan(md.surfaceforcings.mass_balance),
 	md.surfaceforcings.mass_balance=project2d(md,md.surfaceforcings.mass_balance,md.mesh.numberoflayers); 
@@ -101,6 +101,6 @@
 
 %lat long
-md.mesh.lat=project2d(md,md.mesh.lat,1);
-md.mesh.long=project2d(md,md.mesh.long,1);
+if numel(md.mesh.lat)>1,  md.mesh.lat=project2d(md,md.mesh.lat,1); end
+if numel(md.mesh.long)>1, md.mesh.long=project2d(md,md.mesh.long,1); end
 
 %Initialize with the 2d mesh
Index: sm/trunk-jpl/src/m/model/mesh/meshnodensity.m
===================================================================
--- /issm/trunk-jpl/src/m/model/mesh/meshnodensity.m	(revision 12087)
+++ 	(revision )
@@ -1,71 +1,0 @@
-function md=meshnodensity(md,domainname,varargin)
-%MESH - create model mesh
-%
-%   This routine creates a model mesh using TriMeshNoDensity and a domain outline
-%   where md is a @model object, domainname is the name of an Argus domain outline file, 
-%   Riftname is an optional argument (Argus domain outline) describing rifts.
-%   The  difference with mesh.m is that the resolution of the mesh follows that of the domain 
-%   outline and the riftoutline
-%
-%   Usage:
-%      md=meshnodensity(md,domainname)
-%   or md=meshnodensity(md,domainname,riftname);
-%
-%   Examples:
-%      md=meshnodensity(md,'DomainOutline.exp');
-%      md=meshnodensity(md,'DomainOutline.exp','Rifts.exp');
-
-if (nargin==2),
-	riftname='';
-end
-if (nargin==3),
-	riftname=varargin{1};
-end
-
-%Mesh using TriMeshNoDensity
-if strcmp(riftname,''),
-	[md.mesh.elements,md.mesh.x,md.mesh.y,md.mesh.segments,md.mesh.segmentmarkers]=TriMeshNoDensity(domainname);
-else
-	[elements,x,y,segments,segmentmarkers]=TriMeshNoDensity(domainname,riftname);
-
-	%check that all the created nodes belong to at least one element
-	orphan=find(~ismember([1:length(x)],sort(unique(elements(:)))));
-	for i=1:length(orphan),
-		%get rid of the orphan node i
-		%update x and y
-		x=[x(1:orphan(i)-(i-1)-1); x(orphan(i)-(i-1)+1:end)];
-		y=[y(1:orphan(i)-(i-1)-1); y(orphan(i)-(i-1)+1:end)];
-		%update elements
-		pos=find(elements>orphan(i)-(i-1));
-		elements(pos)=elements(pos)-1;
-		%update segments
-		pos1=find(segments(:,1)>orphan(i)-(i-1));
-		pos2=find(segments(:,2)>orphan(i)-(i-1));
-		segments(pos1,1)=segments(pos1,1)-1;
-		segments(pos2,2)=segments(pos2,2)-1;
-	end
-
-	%plug into md
-	md.mesh.x=x;
-	md.mesh.y=y;
-	md.mesh.elements=elements;
-	md.mesh.segments=segments;
-	md.mesh.segmentmarkers=segmentmarkers;
-end
-
-%Fill in rest of fields:
-md.mesh.numberofelements=length(md.mesh.elements);
-md.mesh.numberofvertices=length(md.mesh.x);
-md.mesh.z=zeros(md.mesh.numberofvertices,1);
-md.mesh.vertexonboundary=zeros(md.mesh.numberofvertices,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
-md.mesh.vertexonbed=ones(md.mesh.numberofvertices,1);
-md.mesh.vertexonsurface=ones(md.mesh.numberofvertices,1);
-md.mesh.elementonbed=ones(md.mesh.numberofelements,1);
-md.mesh.elementonsurface=ones(md.mesh.numberofelements,1);
-
-%Now, build the connectivity tables for this mesh.
-md.mesh.vertexconnectivity=NodeConnectivity(md.mesh.elements,md.mesh.numberofvertices);
-md.mesh.elementconnectivity=ElementConnectivity(md.mesh.elements,md.mesh.vertexconnectivity);
-
-%type of model
-md.mesh.dimension=2;
Index: sm/trunk-jpl/src/m/model/mesh/meshrefine.m
===================================================================
--- /issm/trunk-jpl/src/m/model/mesh/meshrefine.m	(revision 12087)
+++ 	(revision )
@@ -1,40 +1,0 @@
-function md=meshrefine(md,areas)
-%MESHREFINE:  refined the mesh from a model, according to an area metric.
-%
-%   Usage:
-%      md=meshrefine(md,metric)
-
-%some checks on list of arguments
-if ((nargin~=2) | (nargout~=1)),
-	meshrefineusage();
-	error('meshrefine error message');
-end
-if ( (isempty(areas)) |  (length(areas)~=md.mesh.numberofelements) | (length(find(isnan(areas))))),
-	meshrefineusage();
-	error('meshrefine error message');
-end
-
-%Refine using TriMeshRefine
-[md.mesh.elements,md.mesh.x,md.mesh.y,md.mesh.segments,md.mesh.segmentmarkers]=TriMeshRefine(md.mesh.elements,md.mesh.x,md.mesh.y,md.mesh.segments,md.mesh.segmentmarkers,areas,'yes');
-
-%Fill in rest of fields:
-md.mesh.numberofelements=length(md.mesh.elements);
-md.mesh.numberofvertices=length(md.mesh.x);
-md.mesh.z=zeros(md.mesh.numberofvertices,1);
-md.mesh.vertexonboundary=zeros(md.mesh.numberofvertices,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
-md.mesh.vertexonbed=ones(md.mesh.numberofvertices,1);
-md.mesh.vertexonsurface=ones(md.mesh.numberofvertices,1);
-md.mesh.elementonbed=ones(md.mesh.numberofelements,1);
-md.mesh.elementonsurface=ones(md.mesh.numberofelements,1);
-
-%Now, build the connectivity tables for this mesh.
-md.mesh.vertexconnectivity=NodeConnectivity(md.mesh.elements,md.mesh.numberofvertices);
-md.mesh.elementconnectivity=ElementConnectivity(md.mesh.elements,md.mesh.vertexconnectivity);
-
-%type of model
-md.mesh.dimension=2;
-end
-
-function meshrefineusage(),
-disp('usage: md=meshrefine(md,areas)');
-end
Index: /issm/trunk-jpl/src/m/model/plot/applyoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/model/plot/applyoptions.m	(revision 12087)
+++ /issm/trunk-jpl/src/m/model/plot/applyoptions.m	(revision 12088)
@@ -219,4 +219,7 @@
 		warning on MATLAB:log:logOfZero;
 		set(c,'YTickLabel',labels);
+	end
+	if exist(options,'cbYLim');
+		set(c,'YLim',getfieldvalue(options,'cbYLim'));
 	end
 	if exist(options,'colorbartitle'),
Index: /issm/trunk-jpl/src/m/model/plot/plot_gridded.m
===================================================================
--- /issm/trunk-jpl/src/m/model/plot/plot_gridded.m	(revision 12087)
+++ /issm/trunk-jpl/src/m/model/plot/plot_gridded.m	(revision 12088)
@@ -40,4 +40,5 @@
 	data_max=max(data_grid(:));
 end
+options=changefieldvalue(options,'cbYLim',[data_min data_max]);
 if whitepos==1,
 	white  =data_max + (data_max-data_min)/55;
Index: /issm/trunk-jpl/src/m/utils/Exp/exptool.m
===================================================================
--- /issm/trunk-jpl/src/m/utils/Exp/exptool.m	(revision 12087)
+++ /issm/trunk-jpl/src/m/utils/Exp/exptool.m	(revision 12088)
@@ -71,5 +71,5 @@
 		else
 			%read file
-			B=expread(filename,1);
+			B=expread(filename);
 			%go through all profiles of B
 			for i=1:size(B,2)
