Index: /issm/trunk/src/m/utils/Analysis/runmemessage.m
===================================================================
--- /issm/trunk/src/m/utils/Analysis/runmemessage.m	(revision 2953)
+++ /issm/trunk/src/m/utils/Analysis/runmemessage.m	(revision 2953)
@@ -0,0 +1,12 @@
+function runmemessage(messages,num,type)
+
+found=0;
+for i=1:size(messages,1),
+	if messages{i,1}==num,
+		disp(sprintf('\n%s: %g\n',[messages{i,2} ' in ' type],num));
+		found=1;
+	end
+end
+if ~found, 
+	error(['runmemessage error message: could not find run ' num]);
+end
Index: /issm/trunk/src/m/utils/Analysis/setcluster.m
===================================================================
--- /issm/trunk/src/m/utils/Analysis/setcluster.m	(revision 2953)
+++ /issm/trunk/src/m/utils/Analysis/setcluster.m	(revision 2953)
@@ -0,0 +1,6 @@
+function md=setcluster(md,cluster,np,queue,time);
+
+	md.cluster=cluster;
+	md.np=np;
+	md.queue=queue;
+	md.time=time;
Index: /issm/trunk/src/m/utils/Mesh/BamgCallFromMetric.m
===================================================================
--- /issm/trunk/src/m/utils/Mesh/BamgCallFromMetric.m	(revision 2953)
+++ /issm/trunk/src/m/utils/Mesh/BamgCallFromMetric.m	(revision 2953)
@@ -0,0 +1,67 @@
+function md=BamgCallFromMetric(md,metric,gradation),
+%BAMGCALL - call bam
+%
+%   call Bamg and the output mesh is plugged onto the model
+%   -gradation = maximum edge length gradation between 2 elements
+%
+%   Usage:
+%      md=BamgCallFromMetric(md,metric,gradation);
+%
+%   Example:
+%      md=BamgCall(md,metric,1500,10^8,1.3,0.9);
+
+global ISSM_DIR
+
+%2d geometric parameter (do not change)
+scale=2/9; 
+
+%write files
+t1=clock; fprintf('%s','      writing initial mesh files...');
+fid=fopen('carre0.met','w');
+fprintf(fid,'%i %i\n',md.numberofgrids,3);
+fprintf(fid,'%i %i %i\n',metric');
+fclose(fid);
+
+fid=fopen('carre0.mesh','w');
+
+%initialiation
+fprintf(fid,'%s %i\n','MeshVersionFormatted',0);
+
+%dimension
+fprintf(fid,'\n%s\n%i\n','Dimension',2);
+
+%Vertices
+fprintf(fid,'\n%s\n%i\n\n','Vertices',md.numberofgrids);
+fprintf(fid,'%8g %8g %i\n',[md.x md.y ones(md.numberofgrids,1)]');
+
+%Triangles
+fprintf(fid,'\n\n%s\n%i\n\n','Triangles',md.numberofelements);
+fprintf(fid,'%i %i %i %i\n',[md.elements ones(md.numberofelements,1)]');
+numberofelements1=md.numberofelements;
+
+%close
+fclose(fid);
+t2=clock;fprintf('%s\n',[' done (' num2str(etime(t2,t1)) ' seconds)']);
+
+%call bamg
+fprintf('%s\n','      call Bamg...');
+system(['bamg -ratio ' num2str(gradation) ' -splitpbedge -nbv 1000000 -M carre0.met -b carre0.mesh -o carre1.mesh']);
+
+%plug new mesh
+t1=clock; fprintf('\n%s','      reading final mesh files...');
+A=meshread('carre1.mesh');
+md.x=A.x;
+md.y=A.y;
+md.z=zeros(A.nods,1);
+md.elements=A.index;
+md.numberofgrids=A.nods;
+md.numberofelements=A.nels;
+numberofelements2=md.numberofelements;
+t2=clock;fprintf('%s\n\n',[' done (' num2str(etime(t2,t1)) ' seconds)']);
+
+%display number of elements
+fprintf('\n%s %i','      inital number of elements:',numberofelements1);
+fprintf('\n%s %i\n\n','      new    number of elements:',numberofelements2);
+
+%clean up:
+system('rm carre0.mesh carre0.met carre1.mesh carre1.mesh.gmsh');
Index: /issm/trunk/src/m/utils/OS/issmssh.m
===================================================================
--- /issm/trunk/src/m/utils/OS/issmssh.m	(revision 2952)
+++ /issm/trunk/src/m/utils/OS/issmssh.m	(revision 2953)
@@ -29,5 +29,5 @@
 	else
 		%just use standard unix ssh
-		system(['ssh ' host ' ' command]);
+		eval(['!ssh ' host ' ' command]);
 	end
 end
Index: /issm/trunk/src/m/utils/OS/oshostname.m
===================================================================
--- /issm/trunk/src/m/utils/OS/oshostname.m	(revision 2952)
+++ /issm/trunk/src/m/utils/OS/oshostname.m	(revision 2953)
@@ -19,3 +19,4 @@
 	end
 	hostname=hostname(1:end-1);
+	hostname=ddewhite(hostname);
 end
Index: /issm/trunk/src/m/utils/OS/scpin.m
===================================================================
--- /issm/trunk/src/m/utils/OS/scpin.m	(revision 2952)
+++ /issm/trunk/src/m/utils/OS/scpin.m	(revision 2953)
@@ -58,5 +58,5 @@
 		string=[string packages{end} '\}'];
 
-		system(['scp ' host ':' path '/' string ' ./']);
+		eval(['!scp ' host ':' path '/' string ' ./']);
 		for i=1:numel(packages),
 			if ~exist(['./' packages{i}]),
Index: /issm/trunk/src/m/utils/OS/scpout.m
===================================================================
--- /issm/trunk/src/m/utils/OS/scpout.m	(revision 2952)
+++ /issm/trunk/src/m/utils/OS/scpout.m	(revision 2953)
@@ -48,8 +48,5 @@
 		end
 		string=[string ' '];
-		[status,result]=system(['scp ' string host ':' path]);
-		if status, 
-			error('scpout error message: could not call scp on *nix system');
-		end
+		eval(['!scp ' string host ':' path]);
 	end
 end
Index: /issm/trunk/src/m/utils/Plot/basinzoom.m
===================================================================
--- /issm/trunk/src/m/utils/Plot/basinzoom.m	(revision 2952)
+++ /issm/trunk/src/m/utils/Plot/basinzoom.m	(revision 2953)
@@ -104,5 +104,5 @@
 
 function regions=InitializeRegionInfo()
-	regions=AddAvailableRegion([],'abbot',-2.1473*10^6,-1.6815*10^6,-3.5119*10^5,.3785*10^5);
+	regions=AddAvailableRegion([],'abbot',-2.1473*10^6,-1.6815*10^6,-4.519*10^5,.3785*10^5);
 	regions=AddAvailableRegion(regions,'adelieland',2.699*10^4,2.4636*10^6,-2.1848*10^6,-5.2865*10^5);
 	regions=AddAvailableRegion(regions,'ameryiceshelf',1.5945*10^6,2.3807*10^6,5.1372*10^5,9.0186*10^5);
@@ -112,5 +112,7 @@
 	regions=AddAvailableRegion(regions,'banzarecoast',1.6*10^6,2.3*10^6,-1.9*10^6,-1.2*10^6);
 	regions=AddAvailableRegion(regions,'berknerisland',-1.0709*10^6,-.6405*10^6,5.1823*10^5,9.8177*10^5);
+	regions=AddAvailableRegion(regions,'berkner',-1.0709*10^6,-.6405*10^6,5.1823*10^5,9.8177*10^5);
 	regions=AddAvailableRegion(regions,'borchgrevinkcoast',3*10^5,7*10^5,-2.05*10^6,-1.6*10^6);
+	regions=AddAvailableRegion(regions,'brunt',-8.36*10^5,-4.4*10^5,1.33*10^6,1.64*10^6);
 	regions=AddAvailableRegion(regions,'bryan',-1.9727*10^6,-1.7421*10^6,-0.4427*10^5,1.9010*10^5);
 	regions=AddAvailableRegion(regions,'buddcoast',2.1*10^6,2.7*10^6,-1.3*10^6,-.7*10^6);
@@ -130,4 +132,6 @@
 	regions=AddAvailableRegion(regions,'jakobshavn',-2.4*10^5,-.8*10^5,-2.3*10^6,-2.2*10^6);
 	regions=AddAvailableRegion(regions,'larseniceshelf',-2.3855*10^6,-1.9649*10^6,0.9498*10^6,1.2996*10^6);
+	regions=AddAvailableRegion(regions,'larc',-2.3855*10^6,-1.9649*10^6,0.9498*10^6,1.2996*10^6);
+	regions=AddAvailableRegion(regions,'larc2',-2.332760*10^6,-1.995350*10^6,0.9895*10^6,1.28559*10^6);
 	regions=AddAvailableRegion(regions,'mcmurdo',1.3750*10^5,4.8255*10^5,-1.4569*10^6,-1.1119*10^6);
 	regions=AddAvailableRegion(regions,'nimrodglacier',1*10^5,3.8*10^5,-9*10^5,-7*10^5);
@@ -142,4 +146,5 @@
 	regions=AddAvailableRegion(regions,'roosevelt',-6.2797*10^5,-1.5414*10^5,-1.2734*10^6,-.9609*10^6);
 	regions=AddAvailableRegion(regions,'rossiceshelf',-8*10^5,4.5*10^5,-13.8*10^5,-5*10^5);
+	regions=AddAvailableRegion(regions,'rois',-8*10^5,4.5*10^5,-13.8*10^5,-5*10^5);
 	regions=AddAvailableRegion(regions,'ruppertcoast',-11*10^5,-8.5*10^5,-1.34*10^6,-1.14*10^6);
 	regions=AddAvailableRegion(regions,'scottcoast',2.5*10^5,6*10^5,-1.6*10^6,-1.2*10^6);
Index: /issm/trunk/src/m/utils/String/ddeblank.m
===================================================================
--- /issm/trunk/src/m/utils/String/ddeblank.m	(revision 2953)
+++ /issm/trunk/src/m/utils/String/ddeblank.m	(revision 2953)
@@ -0,0 +1,29 @@
+function sout = ddeblank(s)
+%DDEBLANK Double deblank. Strip both leading and trailing blanks.
+%
+%   DDEBLANK(S) removes leading and trailing blanks and null characters from
+%   the string S.  A null character is one that has a value of 0.
+%
+%   See also DEBLANK, DEWHITE, DDEWHITE.
+
+%   Author:      Peter J. Acklam
+%   Time-stamp:  2003-10-13 11:13:07 +0200
+%   E-mail:      pjacklam@online.no
+%   URL:         http://home.online.no/~pjacklam
+
+   error(nargchk(1, 1, nargin));
+   if ~ischar(s)
+      warning('Input must be a string (char array).');
+   end
+
+   if isempty(s)
+      sout = s;
+      return;
+   end
+
+   [r, c] = find( (s ~= ' ') & (s ~= 0) );
+   if size(s, 1) == 1
+      sout = s(min(c) : max(c));
+   else
+      sout = s(:, min(c) : max(c));
+   end
Index: /issm/trunk/src/m/utils/String/ddewhite.m
===================================================================
--- /issm/trunk/src/m/utils/String/ddewhite.m	(revision 2953)
+++ /issm/trunk/src/m/utils/String/ddewhite.m	(revision 2953)
@@ -0,0 +1,30 @@
+function sout = ddewhite(s)
+%DDEWHITE Double dewhite. Strip both leading and trailing whitespace.
+%
+%   DDEWHITE(S) removes leading and trailing white space and any null
+%   characters from the string S.  A null character is one that has an absolute
+%   value of 0.
+%
+%   See also DEWHITE, DEBLANK, DDEBLANK.
+
+%   Author:      Peter J. Acklam
+%   Time-stamp:  2003-10-13 11:12:57 +0200
+%   E-mail:      pjacklam@online.no
+%   URL:         http://home.online.no/~pjacklam
+
+   error(nargchk(1, 1, nargin));
+   if ~ischar(s)
+      error('Input must be a string (char array).');
+   end
+
+   if isempty(s)
+      sout = s;
+      return;
+   end
+
+   [r, c] = find(~isspace(s));
+   if size(s, 1) == 1
+      sout = s(min(c) : max(c));
+   else
+      sout = s(:, min(c) : max(c));
+   end
Index: /issm/trunk/src/m/utils/String/dewhite.m
===================================================================
--- /issm/trunk/src/m/utils/String/dewhite.m	(revision 2953)
+++ /issm/trunk/src/m/utils/String/dewhite.m	(revision 2953)
@@ -0,0 +1,30 @@
+function sout = dewhite(s)
+%DEWHITE Dewhite. Strip trailing whitespace.
+%
+%   DEWHITE(S) removes leading and trailing white space and any null characters
+%   from the string S.  A null character is one that has an absolute value of
+%   0.
+%
+%   See also DDEWHITE, DEBLANK, DDEBLANK.
+
+%   Author:      Peter J. Acklam
+%   Time-stamp:  2003-10-13 11:12:52 +0200
+%   E-mail:      pjacklam@online.no
+%   URL:         http://home.online.no/~pjacklam
+
+   error(nargchk(1, 1, nargin));
+   if ~ischar(s)
+      error( 'Input must be a string (char array).' );
+   end
+
+   if isempty(s)
+      sout = s;
+      return;
+   end
+
+   [r, c] = find(~isspace(s));
+   if size(s, 1) == 1
+      sout = s(1:max(c));
+   else
+      sout = s(:,1:max(c));
+   end
