Index: /issm/trunk-jpl/src/m/model/plot/applyoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/model/plot/applyoptions.m	(revision 12390)
+++ /issm/trunk-jpl/src/m/model/plot/applyoptions.m	(revision 12391)
@@ -117,45 +117,6 @@
 
 %colormap
-if exist(options,'colormap'),
-	cname=getfieldvalue(options,'colormap');
-	if strcmpi(cname,'Ala'),
-		c = jet(64);
-		c = c (32:end,:);
-	elseif strcmpi(cname,'redblue'),
-		c = hsv(64);
-		c = rgb2hsv(c);
-		c(:,2) = max(min( abs(c(:,1)-0.5)/0.5 ,1),0);
-		c(1:32,1)   = 0.7;
-		c(33:end,1) = 1;
-		c = hsv2rgb(c);
-	elseif strcmpi(cname,'Rignot'),
-		c = hsv(252);
-		c = rgb2hsv(c);
-		alpha=getfieldvalue(options,'alpha',1);
-		c(:,2) = max(min( (0.1+c(:,1)).^(1/alpha) ,1),0);
-		c = hsv2rgb(c);
-	elseif strcmpi(cname,'Rignot2'),
-		c = hsv(252);
-		c = rgb2hsv(c);
-		alpha=getfieldvalue(options,'alpha',1);
-		c(:,2) = max(min( (0.1+c(:,1)).^(1/alpha) ,1),0);
-		c = hsv2rgb(c);
-		c=flipud(c);
-	elseif strcmpi(cname,'Seroussi'),
-		c = hsv(252);
-		c = flipud(c);
-		c = c(1:floor(0.7*size(c,1)),:);
-		c = rgb2hsv(c);
-		alpha=getfieldvalue(options,'alpha',1);
-		c(:,2) = max(min( (0.1+c(:,1)).^(1/alpha) ,1),0);
-		c = hsv2rgb(c);
-		%c = flipud(c);
-	else
-		c = cname;
-	end
-	h=colormap(c);
-else
-	h=colormap(jet(60));
-end
+c = getcolormap(options);
+h=colormap(c);
 
 %wrapping
Index: /issm/trunk-jpl/src/m/model/plot/getcolormap.m
===================================================================
--- /issm/trunk-jpl/src/m/model/plot/getcolormap.m	(revision 12391)
+++ /issm/trunk-jpl/src/m/model/plot/getcolormap.m	(revision 12391)
@@ -0,0 +1,55 @@
+function map = getcolormap(options)
+%GETCOLORMAP - get colormap from options
+%
+%   Usage:
+%      map = getcolormap(options)
+
+%default is jet(256)
+if ~exist(options,'colormap'),
+	map = jet(256);
+	return
+end
+
+map = getfieldvalue(options,'colormap');
+if isnumeric(map);
+	%user provided a full colormap
+	return;
+end
+
+%OK this is an in-house colormap
+if ~ischar(map), error('colormap format not supported'); end
+
+if strcmpi(map,'Ala'),
+	map = jet(256);
+	map = map(128:end,:);
+elseif strcmpi(map,'redblue'),
+	map = hsv(256);
+	map = rgb2hsv(map);
+	map(:,2)       = max(min( abs(map(:,1)-0.5)/0.5 ,1),0);
+	map(1:128,1)   = 0.7;
+	map(129:end,1) = 1;
+	map = hsv2rgb(map);
+elseif strcmpi(map,'Rignot'),
+	alpha=getfieldvalue(options,'alpha',1);
+	map = hsv(256);
+	map = rgb2hsv(map);
+	map(:,2) = max(min( (0.1+map(:,1)).^(1/alpha) ,1),0);
+	map = hsv2rgb(map);
+elseif strcmpi(map,'Rignot2'),
+	alpha=getfieldvalue(options,'alpha',1);
+	map = hsv(256);
+	map = rgb2hsv(map);
+	map(:,2) = max(min( (0.1+map(:,1)).^(1/alpha) ,1),0);
+	map = hsv2rgb(map);
+	map=flipud(map);
+elseif strcmpi(map,'Seroussi'),
+	alpha=getfieldvalue(options,'alpha',1);
+	map = hsv(256);
+	map = flipud(map);
+	map = map(1:floor(0.7*size(map,1)),:);
+	map = rgb2hsv(map);
+	map(:,2) = max(min( (0.1+map(:,1)).^(1/alpha) ,1),0);
+	map = hsv2rgb(map);
+else
+	eval(['map = ' map ';']);
+end
Index: /issm/trunk-jpl/src/m/model/plot/plot_gridded.m
===================================================================
--- /issm/trunk-jpl/src/m/model/plot/plot_gridded.m	(revision 12390)
+++ /issm/trunk-jpl/src/m/model/plot/plot_gridded.m	(revision 12391)
@@ -6,6 +6,4 @@
 %
 %   See also: PLOTMODEL
-
-whitepos=getfieldvalue(options,'whitepos',2); %1: up, 2: down, else: none
 
 %process mesh and data
@@ -29,4 +27,10 @@
 end
 
+%Get and change colormap
+map    = getcolormap(options);
+lenmap = size(map,1);
+map    = [1 1 1; map];
+options=changefieldvalue(options,'colormap',map);
+
 %Process data_grid: add white in NaN and correct caxis accordingly
 if exist(options,'caxis'),
@@ -40,14 +44,8 @@
 	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;
-	options=changefieldvalue(options,'caxis',[data_min white]);
-	data_grid(isnan(data_grid))=white;
-elseif whitepos==2,
-	white  =data_min - (data_max-data_min)/55;
-	options=changefieldvalue(options,'caxis',[white data_max]);
-	data_grid(isnan(data_grid))=white;
-end
+options = changefieldvalue(options,'cbYLim',[data_min data_max]);
+white   = data_min - (data_max-data_min)/(lenmap);
+options = changefieldvalue(options,'caxis',[white data_max]);
+data_grid(isnan(data_grid))=white;
 
 %Select plot area 
@@ -56,11 +54,4 @@
 %shading interp;
 h=imagesc(xlim,ylim,data_grid);set(gca,'YDir','normal');
-map=getfieldvalue(options,'colormap',jet);
-if whitepos==1,
-	map(end,:)=[1 1 1];
-elseif whitepos==2,
-	map(1,:)=[1 1 1];
-end
-options=changefieldvalue(options,'colormap',map);
 
 %last step: mesh gridded?
Index: /issm/trunk-jpl/src/m/model/plot/plot_overlay.m
===================================================================
--- /issm/trunk-jpl/src/m/model/plot/plot_overlay.m	(revision 12390)
+++ /issm/trunk-jpl/src/m/model/plot/plot_overlay.m	(revision 12391)
@@ -112,10 +112,9 @@
 	image_rgb=hsv2rgb(image_hsv);
 else
-	if ischar(colorm),
-		eval(['colorm = ' colorm ';']);
-	end
+	colorm = getcolormap(options);
 	len = size(colorm,1);
 
-	ind = floor((len-1)*(data_grid-data_min)/(data_max - data_min + eps) +1);
+	ind = round((len-1)*(data_grid-data_min)/(data_max - data_min + eps) +1);
+	ind(find(ind>len))=len;
 	image_rgb=zeros(size(data_grid,1),size(data_grid,2),3);
 	r=colorm(:,1); image_rgb(:,:,1)=r(ind); clear r;
