Index: /issm/trunk/src/m/classes/public/BuildQueueingScriptgemini.m
===================================================================
--- /issm/trunk/src/m/classes/public/BuildQueueingScriptgemini.m	(revision 1267)
+++ /issm/trunk/src/m/classes/public/BuildQueueingScriptgemini.m	(revision 1268)
@@ -12,6 +12,6 @@
 end
 
-fprintf(fid,'#!/bin/csh\n');
-fprintf(fid,'#PBS -l walltime=%i\n',md.time);
+fprintf(fid,'#!/bin/sh\n');
+fprintf(fid,'#PBS -l walltime=%i\n',md.time*60); %walltime is in seconds.
 fprintf(fid,'#PBS -l ncpus=%i\n',md.np);
 if ~isempty(md.queue),
@@ -21,7 +21,7 @@
 fprintf(fid,'#PBS -e %s.errlog \n',md.name);
 
-fprintf(fid,'setenv PBS_O_WORKDIR %s\n',executionpath);
+fprintf(fid,'export PBS_O_WORKDIR=%s\n',executionpath);
 fprintf(fid,'cd $PBS_O_WORKDIR\n');
-fprintf(fid,'setenv OMP_NUM_THREADS 1\n');
+fprintf(fid,'export OMP_NUM_THREADS=1\n');
 fprintf(fid,'mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock',md.np,codepath,md.analysis_type,executionpath,md.name,md.name,md.name);
 
Index: /issm/trunk/src/m/classes/public/LaunchQueueJob.m
===================================================================
--- /issm/trunk/src/m/classes/public/LaunchQueueJob.m	(revision 1267)
+++ /issm/trunk/src/m/classes/public/LaunchQueueJob.m	(revision 1268)
@@ -1,3 +1,3 @@
-function LaunchQueueJob(md,executionpath)
+function md=LaunchQueueJob(md,executionpath,options)
 %LAUNCHQUEUEJOB - ...
 %
@@ -17,7 +17,7 @@
 if exist(function_name,'file'),
 	%Call this function:
-	eval([function_name '(md,executionpath);']);
+	eval(['md=' function_name '(md,executionpath,options);']);
 else
 	%Call the generic LaunchQueueJob:
-	LaunchQueueJobGeneric(md,executionpath);
+	md=LaunchQueueJobGeneric(md,executionpath,options);
 end
Index: /issm/trunk/src/m/classes/public/LaunchQueueJobGeneric.m
===================================================================
--- /issm/trunk/src/m/classes/public/LaunchQueueJobGeneric.m	(revision 1267)
+++ /issm/trunk/src/m/classes/public/LaunchQueueJobGeneric.m	(revision 1268)
@@ -1,3 +1,3 @@
-function LaunchQueueJobGeneric(md,executionpath)
+function md=LaunchQueueJobGeneric(md,executionpath,options)
 %LAUNCHQUEUEJOBGENERIC - ...
 %
Index: /issm/trunk/src/m/classes/public/LaunchQueueJobcosmos.m
===================================================================
--- /issm/trunk/src/m/classes/public/LaunchQueueJobcosmos.m	(revision 1267)
+++ /issm/trunk/src/m/classes/public/LaunchQueueJobcosmos.m	(revision 1268)
@@ -1,3 +1,3 @@
-function LaunchQueueJobcosmos(md,executionpath)
+function md=LaunchQueueJobcosmos(md,executionpath,options)
 %LAUNCHQUEUEJOBCOSMOS - ...
 %
Index: /issm/trunk/src/m/classes/public/LaunchQueueJobgemini.m
===================================================================
--- /issm/trunk/src/m/classes/public/LaunchQueueJobgemini.m	(revision 1267)
+++ /issm/trunk/src/m/classes/public/LaunchQueueJobgemini.m	(revision 1268)
@@ -1,3 +1,3 @@
-function LaunchQueueJobgemini(md,executionpath)
+function md=LaunchQueueJobgemini(md,executionpath,options)
 %LAUNCHQUEUEJOBGEMINI - ...
 %
@@ -15,18 +15,16 @@
 
 %jpload both files to cluster
-disp('uploading input file,  queueing script and variables script');
-if md.qmu_analysis, 
-	eval(['!scp ' md.name '.bin' ' ' md.name '.queue '  md.name '.qmu.in ' md.cluster ':' executionpath]);
+if ~strcmpi(options.batch,'yes'),
+	disp('uploading input file,  queueing script and variables script');
+	if md.qmu_analysis, 
+		eval(['!scp ' md.name '.bin' ' ' md.name '.queue '  md.name '.qmu.in ' md.cluster ':' executionpath]);
+	else
+		eval(['!scp ' md.name '.bin' ' ' md.name '.queue '  md.cluster ':' executionpath]);
+	end
 else
-	eval(['!scp ' md.name '.bin' ' ' md.name '.queue '  md.cluster ':' executionpath]);
+	disp('batch mode requested: not launching job interactively');
 end
 
 %new gemini cannot launch across cluster using ssh
 disp(['launch solution sequence on remote cluster by logging into it and typing qsub < ' md.name '.queue']);
-return;
-
-disp('launching solution sequence on remote cluster');
-
-%now call the queuing script to launch the job.
-system(['ssh  ' md.cluster ' ''cd ' executionpath ' && qsub <  ' md.name '.queue ''']);
-
+md.waitonlock=0;
Index: /issm/trunk/src/m/classes/public/process_solve_options.m
===================================================================
--- /issm/trunk/src/m/classes/public/process_solve_options.m	(revision 1267)
+++ /issm/trunk/src/m/classes/public/process_solve_options.m	(revision 1268)
@@ -53,4 +53,17 @@
 	end
 end
+
+%batch mode for launching jobs.
+found=0;
+for i=1:size(options,1),
+	if strcmpi(options{i,1},'batch'),
+		batch=options{i,2};
+		found=1;
+	end
+end
+if ~found
+	batch='no';
+end
+
 
 %check solution type is supported
@@ -131,2 +144,3 @@
 outoptions.iparams=iparams;
 outoptions.runmpi=runmpi;
+outoptions.batch=batch;
Index: /issm/trunk/src/m/classes/public/solveparallel.m
===================================================================
--- /issm/trunk/src/m/classes/public/solveparallel.m	(revision 1267)
+++ /issm/trunk/src/m/classes/public/solveparallel.m	(revision 1268)
@@ -23,5 +23,5 @@
 
 %Now, launch the queueing script
-LaunchQueueJob(md,executionpath);
+md=LaunchQueueJob(md,executionpath,options);
 
 %Do we return, or just wait for results?
