Index: /issm/trunk-jpl/src/m/classes/clusters/acenet.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/acenet.m	(revision 12362)
+++ /issm/trunk-jpl/src/m/classes/clusters/acenet.m	(revision 12363)
@@ -110,32 +110,11 @@
 		 end
 		 %}}}
-		 function Download(cluster,md)% {{{
+		 function Download(cluster,dirname,filelist)% {{{
 
-			%some check
-			if isempty(md.private.runtimename),
-				error('pfe Download error message: supply runtime name for results to be loaded!');
-			end
+			 %copy files from cluster to current directory
+			 directory=[cluster.executionpath '/' dirname '/'];
+			 issmscpin(cluster.name,cluster.login,cluster.port,directory,filelist);
 
-			%Figure out the  directory where all the files are in: 
-			directory=[cluster.executionpath '/' md.private.runtimename '/'];
-
-			%What packages are we picking up from remote cluster
-			packages={[md.miscellaneous.name '.outlog'],[md.miscellaneous.name '.errlog']};
-			%packages={};
-			if md.qmu.isdakota,
-				packages{end+1}=[md.miscellaneous.name '.qmu.err'];
-				packages{end+1}=[md.miscellaneous.name '.qmu.out'];
-				if isfield(md.qmu.params,'tabular_graphics_data'),
-					if md.qmu.params.tabular_graphics_data==true,
-						packages{end+1}='dakota_tabular.dat'; 
-					end
-				end
-			else
-				packages{end+1}=[md.miscellaneous.name '.outbin'];
-			end
-
-			%copy files from cluster to present directory
-			issmscpin(cluster.name, cluster.login, cluster.port, directory, packages);
-		end %}}}
+		 end %}}}
 	end
 end
Index: /issm/trunk-jpl/src/m/classes/clusters/castor.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/castor.m	(revision 12362)
+++ /issm/trunk-jpl/src/m/classes/clusters/castor.m	(revision 12363)
@@ -98,31 +98,11 @@
 		 end
 		 %}}}
-		 function Download(cluster,md)% {{{
+		 function Download(cluster,dirname,filelist)% {{{
 
-			%some check
-			if isempty(md.private.runtimename),
-				error('pfe Download error message: supply runtime name for results to be loaded!');
-			end
+			 %copy files from cluster to current directory
+			 directory=[cluster.executionpath '/' dirname '/'];
+			 issmscpin(cluster.name,cluster.login,cluster.port,directory,filelist);
 
-			%Figure out the  directory where all the files are in: 
-			directory=[cluster.executionpath '/' md.private.runtimename '/'];
-
-			%What packages are we picking up from remote cluster
-			packages={[md.miscellaneous.name '.outlog'],[md.miscellaneous.name '.errlog']};
-			if md.qmu.isdakota,
-				packages{end+1}=[md.miscellaneous.name '.qmu.err'];
-				packages{end+1}=[md.miscellaneous.name '.qmu.out'];
-				if isfield(md.qmu.params,'tabular_graphics_data'),
-					if md.qmu.params.tabular_graphics_data==true,
-						packages{end+1}='dakota_tabular.dat'; 
-					end
-				end
-			else
-				packages{end+1}=[md.miscellaneous.name '.outbin'];
-			end
-
-			%copy files from cluster to present directory
-			issmscpin(cluster.name, cluster.login, cluster.port, directory, packages);
-		end %}}}
+		 end %}}}
 	end
 end
Index: /issm/trunk-jpl/src/m/classes/clusters/cosmos.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/cosmos.m	(revision 12362)
+++ /issm/trunk-jpl/src/m/classes/clusters/cosmos.m	(revision 12363)
@@ -98,31 +98,11 @@
 		 end
 		 %}}}
-		 function Download(cluster,md)% {{{
+		 function Download(cluster,dirname,filelist)% {{{
 
-			%some check
-			if isempty(md.private.runtimename),
-				error('pfe Download error message: supply runtime name for results to be loaded!');
-			end
+			 %copy files from cluster to current directory
+			 directory=[cluster.executionpath '/' dirname '/'];
+			 issmscpin(cluster.name,cluster.login,cluster.port,directory,filelist);
 
-			%Figure out the  directory where all the files are in: 
-			directory=[cluster.executionpath '/' md.private.runtimename '/'];
-
-			%What packages are we picking up from remote cluster
-			packages={[md.miscellaneous.name '.outlog'],[md.miscellaneous.name '.errlog']};
-			if md.qmu.isdakota,
-				packages{end+1}=[md.miscellaneous.name '.qmu.err'];
-				packages{end+1}=[md.miscellaneous.name '.qmu.out'];
-				if isfield(md.qmu.params,'tabular_graphics_data'),
-					if md.qmu.params.tabular_graphics_data==true,
-						packages{end+1}='dakota_tabular.dat'; 
-					end
-				end
-			else
-				packages{end+1}=[md.miscellaneous.name '.outbin'];
-			end
-
-			%copy files from cluster to present directory
-			issmscpin(cluster.name, cluster.login, cluster.port, directory, packages);
-		end %}}}
+		 end %}}}
 	end
 end
Index: /issm/trunk-jpl/src/m/classes/clusters/gemini.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/gemini.m	(revision 12362)
+++ /issm/trunk-jpl/src/m/classes/clusters/gemini.m	(revision 12363)
@@ -99,31 +99,11 @@
 		 end
 		 %}}}
-		 function Download(cluster,md)% {{{
+		 function Download(cluster,dirname,filelist)% {{{
 
-			%some check
-			if isempty(md.private.runtimename),
-				error('pfe Download error message: supply runtime name for results to be loaded!');
-			end
+			 %copy files from cluster to current directory
+			 directory=[cluster.executionpath '/' dirname '/'];
+			 issmscpin(cluster.name,cluster.login,cluster.port,directory,filelist);
 
-			%Figure out the  directory where all the files are in: 
-			directory=[cluster.executionpath '/' md.private.runtimename '/'];
-
-			%What packages are we picking up from remote cluster
-			packages={[md.miscellaneous.name '.outlog'],[md.miscellaneous.name '.errlog']};
-			if md.qmu.isdakota,
-				packages{end+1}=[md.miscellaneous.name '.qmu.err'];
-				packages{end+1}=[md.miscellaneous.name '.qmu.out'];
-				if isfield(md.qmu.params,'tabular_graphics_data'),
-					if md.qmu.params.tabular_graphics_data==true,
-						packages{end+1}='dakota_tabular.dat'; 
-					end
-				end
-			else
-				packages{end+1}=[md.miscellaneous.name '.outbin'];
-			end
-
-			%copy files from cluster to present directory
-			issmscpin(cluster.name, cluster.login, cluster.port, directory, packages);
-		end %}}}
+		 end %}}}
 	end
 end
Index: /issm/trunk-jpl/src/m/classes/clusters/generic.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/generic.m	(revision 12362)
+++ /issm/trunk-jpl/src/m/classes/clusters/generic.m	(revision 12363)
@@ -60,61 +60,41 @@
 		 %}}}
 		 function BuildQueueScript(cluster,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
-		 
+
 			 %write queuing script 
 			 if ~ispc,
+
 				 fid=fopen([modelname '.queue'],'w');
-			 else
-				 fid=fopen([modelname '.bat'],'w');
-			 end
-
-			 %write instructions for launching a job on the cluster
-			 if ~ispc,
 				 fprintf(fid,'#!/bin/sh\n');
-			 else
-				 fprintf(fid,'@echo off\n');
-			 end
-			 
-			 if ~isvalgrind,
-				 if cluster.interactive
-					 if ~ispc,
+				 if ~isvalgrind,
+					 if cluster.interactive
 						 fprintf(fid,'mpiexec -np %i %s/issm.exe %s %s %s ',cluster.np,cluster.codepath,EnumToString(solution),cluster.executionpath,modelname);
 					 else
-						 fprintf(fid,'"%s/issm.exe" %s "%s" %s ',cluster.codepath,EnumToString(solution),cluster.executionpath,modelname);
+						 fprintf(fid,'mpiexec -np %i %s/issm.exe %s %s %s 2> %s.errlog >%s.outlog ',cluster.np,cluster.codepath,EnumToString(solution),cluster.executionpath,modelname,modelname,modelname);
 					 end
+				 elseif isgprof,
+					 fprintf(fid,'\n gprof %s/issm.exe gmon.out > %s.performance',cluster.codepath,modelname);
 				 else
-					 if ~ispc,
-						 fprintf(fid,'mpiexec -np %i %s/issm.exe %s %s %s 2> %s.errlog >%s.outlog ',cluster.np,cluster.codepath,EnumToString(solution),cluster.executionpath,modelname,modelname,modelname);
-					 else
-						 fprintf(fid,'"%s/issm.exe" %s "%s" %s 2> %s.errlog >%s.outlog ',cluster.codepath,EnumToString(solution),cluster.executionpath,modelname,modelname,modelname);
-					 end
-				 end
-			 else
-				 if ~ispc,
 					 %Add --gen-suppressions=all to get suppression lines
 					 fprintf(fid,'LD_PRELOAD=%s \\\n',cluster.valgrindlib);
 					 fprintf(fid,'mpiexec -np %i %s --leak-check=full --suppressions=%s %s/issm.exe %s %s %s 2> %s.errlog >%s.outlog ',...
-					 cluster.np,cluster.valgrind,cluster.valgrindsup, cluster.codepath,EnumToString(solution),cluster.executionpath,modelname,modelname,modelname);
+						 cluster.np,cluster.valgrind,cluster.valgrindsup,cluster.codepath,EnumToString(solution),cluster.executionpath,modelname,modelname,modelname);
+				 end
+				 if ~io_gather, %concatenate the output files:
+					 fprintf(fid,'\ncat %s.outbin.* > %s.outbin',modelname,modelname);
+				 end
+				 fclose(fid);
+
+			 else % Windows
+
+				 fid=fopen([modelname '.bat'],'w');
+				 fprintf(fid,'@echo off\n');
+				 if cluster.interactive
+					 fprintf(fid,'"%s/issm.exe" %s "%s" %s ',cluster.codepath,EnumToString(solution),cluster.executionpath,modelname);
 				 else
-					 error('valgrind not supported on windows platforms');
+					 fprintf(fid,'"%s/issm.exe" %s "%s" %s 2> %s.errlog >%s.outlog',...
+						 cluster.codepath,EnumToString(solution),cluster.executionpath,modelname,modelname,modelname);
 				 end
+				 fclose(fid);
 			 end
-
-			 if isgprof,
-				 if ~ispc,
-					 fprintf(fid,'\n gprof %s/issm.exe gmon.out > %s.performance',cluster.codepath,modelname);
-				 else
-					 error('gprof not supported on windows platforms');
-				 end
-
-			 end
-
-			 if ~io_gather,
-				 if ~ispc, %concatenate the output files:
-					 fprintf(fid,'\ncat %s.outbin.* > %s.outbin',modelname,modelname);
-				 else
-					 error('iogather not supported on windows platforms');
-				 end
-			 end
-			 fclose(fid);
 
 			 %in interactive mode, create a run file, and errlog and outlog file
@@ -125,68 +105,40 @@
 		 end
 		 %}}}
-		 function LaunchQueueJob(cluster,md,options)% {{{
+		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
 			 
-			 if ~ispc,
-					 %lauch command, to be executed via ssh
-					 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' md.private.runtimename ' && mkdir ' md.private.runtimename ...
-					 ' && cd ' md.private.runtimename ' && mv ../' md.private.runtimename '.tar.gz ./ && tar -zxf ' md.private.runtimename '.tar.gz  && source  ' md.miscellaneous.name '.queue '];
+			 if ispc,
+				 %launch right here, do not compress or archive
+				 system([modelname '.bat']);
+				 return;
+			 end
 
-					 if ~strcmpi(options.batch,'yes'),
+			 %compress the files into one zip.
+			 compressstring=['tar -zcf ' dirname '.tar.gz ' modelname '.bin ' modelname '.queue '  modelname '.petsc '];
+			 for i=1:numel(filelist),
+				 compressstring = [compressstring ' ' filelist{i}];
+			 end
+			 if cluster.interactive,
+				 compressstring = [compressstring ' ' modelname '.errlog ' modelname '.outlog '];
+			 end
+			 system(compressstring);
 
-						 %compress the files into one zip.
-						 compressstring=['tar -zcf ' md.private.runtimename '.tar.gz ' md.miscellaneous.name '.bin ' md.miscellaneous.name '.queue '  md.miscellaneous.name '.petsc '];
-						 if md.qmu.isdakota,
-							 compressstring=[compressstring md.miscellaneous.name '.qmu.in'];
-					end
-					if cluster.interactive,
-						compressstring=[compressstring ' ' md.miscellaneous.name '.errlog ' md.miscellaneous.name '.outlog '];
-					end
-					system(compressstring);
+			 disp('uploading input file and queueing script');
+			 issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[dirname '.tar.gz']});
 
-					disp('uploading input file and queueing script');
-					issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[md.private.runtimename '.tar.gz']});
+			 disp('launching solution sequence on remote cluster');
+			 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+				 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && source  ' modelname '.queue '];
+			 issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
+		end %}}}
+		 function Download(cluster,dirname,filelist)% {{{
 
-					disp('launching solution sequence on remote cluster');
-					issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
-				else
-					disp('batch mode requested: not launching job interactively');
-					disp('launch solution sequence on remote cluster by hand');
-				end
-			else
-				%launch right here, do not compress or archive.
-				system([md.miscellaneous.name '.bat']);
+			if ispc,
+				%do nothing
+				return;
 			end
 
-		end %}}}
-		 function Download(cluster,md)% {{{
-
-			if ~ispc,
-				%some check
-				if isempty(md.private.runtimename),
-					error('supply runtime name for results to be loaded!');
-				end
-
-				%Figure out the  directory where all the files are in: 
-				directory=[cluster.executionpath '/' md.private.runtimename '/'];
-
-				%What packages are we picking up from remote cluster
-				packages={[md.miscellaneous.name '.outlog'],[md.miscellaneous.name '.errlog']};
-				if md.qmu.isdakota,
-					packages{end+1}=[md.miscellaneous.name '.qmu.err'];
-					packages{end+1}=[md.miscellaneous.name '.qmu.out'];
-					if isfield(md.qmu.params,'tabular_graphics_data'),
-						if md.qmu.params.tabular_graphics_data==true,
-							packages{end+1}='dakota_tabular.dat'; 
-						end
-					end
-				else
-					packages{end+1}=[md.miscellaneous.name '.outbin'];
-				end
-
-				%copy files from cluster to present directory
-				issmscpin(cluster.name, cluster.login, cluster.port, directory, packages);
-			else
-				%do nothing!
-			end
+			%copy files from cluster to current directory
+			directory=[cluster.executionpath '/' dirname '/'];
+			issmscpin(cluster.name,cluster.login,cluster.port,directory,filelist);
 		end %}}}
 	end
Index: /issm/trunk-jpl/src/m/classes/clusters/greenplanet.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/greenplanet.m	(revision 12362)
+++ /issm/trunk-jpl/src/m/classes/clusters/greenplanet.m	(revision 12363)
@@ -142,42 +142,11 @@
 		 end
 		 %}}}
-		 function Download(cluster,md)% {{{
+		 function Download(cluster,dirname,filelist)% {{{
 
-			%some check
-			if isempty(md.private.runtimename),
-				if ~cluster.interactive,
-					error('greenplanet Download error message: supply runtime name for results to be loaded!');
-				end
-			end
+			 %copy files from cluster to current directory
+			 directory=[cluster.executionpath '/' dirname '/'];
+			 issmscpin(cluster.name,cluster.login,cluster.port,directory,filelist);
 
-			%Figure out the  directory where all the files are in: 
-			if ~cluster.interactive,
-				directory=[cluster.executionpath '/' md.private.runtimename '/'];
-			else
-				directory=[cluster.executionpath '/Interactive' num2str(cluster.interactive) '/'];
-			end
-
-			%What packages are we picking up from remote cluster
-			if ~cluster.interactive,
-				packages={[md.miscellaneous.name '.outlog'],[md.miscellaneous.name '.errlog']};
-			else
-				packages={};
-			end
-			if md.qmu.isdakota,
-				packages{end+1}=[md.miscellaneous.name '.qmu.err'];
-				packages{end+1}=[md.miscellaneous.name '.qmu.out'];
-				if isfield(md.qmu.params,'tabular_graphics_data'),
-					if md.qmu.params.tabular_graphics_data==true,
-						packages{end+1}='dakota_tabular.dat'; 
-					end
-				end
-			else
-				packages{end+1}=[md.miscellaneous.name '.outbin'];
-			end
-
-			%copy files from cluster to present directory
-			issmscpin(cluster.name, cluster.login, cluster.port, directory, packages);
-
-		end %}}}
+		 end %}}}
 	end
 end
Index: /issm/trunk-jpl/src/m/classes/clusters/pfe.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/pfe.m	(revision 12362)
+++ /issm/trunk-jpl/src/m/classes/clusters/pfe.m	(revision 12363)
@@ -189,46 +189,20 @@
 		 end
 		 %}}}
-		 function Download(cluster,md)% {{{
-
-			%some check
-			if isempty(md.private.runtimename),
-				if ~cluster.interactive,
-					error('pfe Download error message: supply runtime name for results to be loaded!');
-				end
-			end
-
-			%Figure out the  directory where all the files are in: 
-			if ~cluster.interactive,
-				directory=[cluster.executionpath '/' md.private.runtimename '/'];
-			else
-				directory=[cluster.executionpath '/Interactive' num2str(cluster.interactive) '/'];
-			end
-
-			%What packages are we picking up from remote cluster
-			if ~cluster.interactive,
-				packages={[md.miscellaneous.name '.outlog'],[md.miscellaneous.name '.errlog']};
-			else
-				packages={};
-			end
-			if md.qmu.isdakota,
-				packages{end+1}=[md.miscellaneous.name '.qmu.err'];
-				packages{end+1}=[md.miscellaneous.name '.qmu.out'];
-				if isfield(md.qmu.params,'tabular_graphics_data'),
-					if md.qmu.params.tabular_graphics_data==true,
-						packages{end+1}='dakota_tabular.dat'; 
-					end
-				end
-			else
-				packages{end+1}=[md.miscellaneous.name '.outbin'];
-			end
-
-			%copy files from cluster to present directory
-			if ~cluster.bbftp,
-				issmscpin(cluster.name, cluster.login, cluster.port, directory, packages);
-			else
-				issmbbftpin(cluster.name, cluster.login, cluster.port, cluster.numstreams, directory, packages);
-			end
-
-		end %}}}
+		 function Download(cluster,dirname,filelist)% {{{
+
+			 %copy files from cluster to current directory
+			 if ~cluster.interactive,
+				 directory=[cluster.executionpath '/' dirname '/'];
+			 else
+				 directory=[cluster.executionpath '/Interactive' num2str(cluster.interactive) '/'];
+			 end
+
+			 if ~cluster.bbftp,
+				 issmscpin(cluster.name, cluster.login, cluster.port, directory, packages);
+			 else
+				 issmbbftpin(cluster.name, cluster.login, cluster.port, cluster.numstreams, directory, packages);
+			 end
+
+		 end %}}}
 	end
 end
Index: /issm/trunk-jpl/src/m/classes/clusters/pollux.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/pollux.m	(revision 12362)
+++ /issm/trunk-jpl/src/m/classes/clusters/pollux.m	(revision 12363)
@@ -98,31 +98,11 @@
 		 end
 		 %}}}
-		 function Download(cluster,md)% {{{
+		 function Download(cluster,dirname,filelist)% {{{
 
-			%some check
-			if isempty(md.private.runtimename),
-				error('pfe Download error message: supply runtime name for results to be loaded!');
-			end
+			 %copy files from cluster to current directory
+			 directory=[cluster.executionpath '/' dirname '/'];
+			 issmscpin(cluster.name,cluster.login,cluster.port,directory,filelist);
 
-			%Figure out the  directory where all the files are in: 
-			directory=[cluster.executionpath '/' md.private.runtimename '/'];
-
-			%What packages are we picking up from remote cluster
-			packages={[md.miscellaneous.name '.outlog'],[md.miscellaneous.name '.errlog']};
-			if md.qmu.isdakota,
-				packages{end+1}=[md.miscellaneous.name '.qmu.err'];
-				packages{end+1}=[md.miscellaneous.name '.qmu.out'];
-				if isfield(md.qmu.params,'tabular_graphics_data'),
-					if md.qmu.params.tabular_graphics_data==true,
-						packages{end+1}='dakota_tabular.dat'; 
-					end
-				end
-			else
-				packages{end+1}=[md.miscellaneous.name '.outbin'];
-			end
-
-			%copy files from cluster to present directory
-			issmscpin(cluster.name, cluster.login, cluster.port, directory, packages);
-		end %}}}
+		 end %}}}
 	end
 end
Index: /issm/trunk-jpl/src/m/model/loadresultsfromcluster.m
===================================================================
--- /issm/trunk-jpl/src/m/model/loadresultsfromcluster.m	(revision 12362)
+++ /issm/trunk-jpl/src/m/model/loadresultsfromcluster.m	(revision 12363)
@@ -13,9 +13,17 @@
 
 %Download outputs from the cluster
-if verLessThan('matlab', '7.6');
-	Download(cluster,md);
+filelist={[md.miscellaneous.name '.outlog'],[md.miscellaneous.name '.errlog']};
+if md.qmu.isdakota,
+	filelist{end+1}=[md.miscellaneous.name '.qmu.err'];
+	filelist{end+1}=[md.miscellaneous.name '.qmu.out'];
+	if isfield(md.qmu.params,'tabular_graphics_data'),
+		if md.qmu.params.tabular_graphics_data==true,
+			filelist{end+1}='dakota_tabular.dat';
+		end
+	end
 else
-	cluster.Download(md);
+	filelist{end+1}=[md.miscellaneous.name '.outbin'];
 end
+Download(cluster,md.private.runtimename,filelist);
 
 %If we are here, no errors in the solution sequence, call loadresultsfromdisk.
Index: /issm/trunk-jpl/src/m/model/loadresultsfromdisk.m
===================================================================
--- /issm/trunk-jpl/src/m/model/loadresultsfromdisk.m	(revision 12362)
+++ /issm/trunk-jpl/src/m/model/loadresultsfromdisk.m	(revision 12363)
@@ -59,4 +59,3 @@
 	md=postqmu(md);
 	cd ..
-
 end
Index: /issm/trunk-jpl/src/m/model/solve.m
===================================================================
--- /issm/trunk-jpl/src/m/model/solve.m	(revision 12362)
+++ /issm/trunk-jpl/src/m/model/solve.m	(revision 12363)
@@ -30,4 +30,5 @@
 %recover some fields
 md.private.solution=options.solution_type;
+cluster=md.cluster;
 
 %check model consistency
@@ -43,4 +44,8 @@
 	ismodelselfconsistent(md),
 end
+
+%First, build a runtime name that is unique
+c=clock;
+md.private.runtimename=sprintf('%s-%02i-%02i-%04i-%02i-%02i-%02i-%i',md.miscellaneous.name,c(2),c(3),c(1),c(4),c(5),floor(c(6)),feature('GetPid'));
 
 %if running qmu analysis, some preprocessing of dakota files using models
@@ -66,7 +71,5 @@
 marshall(md);                                          % bin file
 PetscFile(md.solver,[md.miscellaneous.name '.petsc']); % petsc file
-
-%Launch job on remote cluster
-cluster=md.cluster;
+BuildQueueScript(cluster,md.miscellaneous.name,md.private.solution,md.settings.io_gather,md.debug.valgrind,md.debug.gprof); % queue file
 
 %we need to make sure we have PETSC support, otherwise, we run with only one cpu: 
@@ -76,31 +79,41 @@
 end
 
-%First, build a runtime name that is unique
-c=clock; md.private.runtimename=sprintf('%s-%02i-%02i-%04i-%02i-%02i-%02i-%i',md.miscellaneous.name,c(2),c(3),c(1),c(4),c(5),floor(c(6)),feature('GetPid'));
+%Stop here if batch mode
+if strcmpi(options.batch,'yes')
+	disp('batch mode requested: not launching job interactively');
+	disp('launch solution sequence on remote cluster by hand');
+	return;
+end
 
-BuildQueueScript(cluster,md.miscellaneous.name,md.private.solution,md.settings.io_gather,md.debug.valgrind,md.debug.gprof);
-LaunchQueueJob(cluster,md,options);
+%Launch job
+modelname = md.miscellaneous.name;
+filelist  = {[modelname '.bin '] [modelname '.petsc '] [modelname '.queue ']};
+if md.qmu.isdakota,
+	filelist{end+1} = [modelname '.qmu.in'];
+end
+LaunchQueueJob(cluster,md.miscellaneous.name,md.private.runtimename,filelist);
 
-if ~strcmpi(options.upload,'on'), %did we even try to run? if so, wait on lock
+%did we even try to run? if so, wait on lock
+if strcmpi(options.upload,'on'),
+	disp('solve done uploading test decks');
+	return;
+end
 
-	%Do we return, or just wait for results?
-	if (md.settings.waitonlock>0 &  ~strcmpi(options.batch,'yes')),
-		%we wait for the done file
-		islock=waitonlock(md);
-		if islock==0, %no results to be loaded
-			disp('The results must be loaded manually with md=loadresultsfromcluster(md).');
-		else          %load results
-			disp('loading results from cluster');
-			md=loadresultsfromcluster(md);
-		end
+%wait on lock
+if md.settings.waitonlock>0,
+	%we wait for the done file
+	islock=waitonlock(md);
+	if islock==0, %no results to be loaded
+		disp('The results must be loaded manually with md=loadresultsfromcluster(md).');
+	else          %load results
+		disp('loading results from cluster');
+		md=loadresultsfromcluster(md);
 	end
+end
 
-	%post processes qmu results if necessary
-	if md.qmu.isdakota,
-		if ~strncmpi(options.keep,'y',1)
-			system(['rm -rf qmu' num2str(feature('GetPid'))]);
-		end
+%post processes qmu results if necessary
+if md.qmu.isdakota,
+	if ~strncmpi(options.keep,'y',1)
+		system(['rm -rf qmu' num2str(feature('GetPid'))]);
 	end
-else
-	disp('solve done uploading test decks');
 end
