Index: sm/trunk/src/m/classes/public/queue/BuildMultipleQueueingScript.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/BuildMultipleQueueingScript.m	(revision 3148)
+++ 	(revision )
@@ -1,23 +1,0 @@
-function BuildMultipleQueueingScript(cluster,name,executionpath,codepath)
-%BUILDMULTIPLEQUEUEINGSCRIPT - 
-%
-%   Usage:
-%      BuildMultipleQueueingScript(executionpath,codepath)
-
-disp('building queueing script');
-
-%First try and figure out if there is a special script for this particular cluster
-function_name=['BuildMultipleQueueingScript' cluster];
-
-%some specific treatment of identical cluster, gemini, castor and pollux
-if strcmpi(cluster,'castor') || strcmpi(cluster,'pollux'),
-	function_name='BuildMultipleQueueingScriptgemini';
-end
-
-if exist(function_name,'file'),
-	%Call this function:
-	eval([function_name '(name,executionpath,codepath);']);
-else
-	%Call the generic BuildQueueingScript:
-	BuildMultipleQueueingScriptGeneric(name,executionpath,codepath);
-end
Index: sm/trunk/src/m/classes/public/queue/BuildMultipleQueueingScriptGeneric.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/BuildMultipleQueueingScriptGeneric.m	(revision 3148)
+++ 	(revision )
@@ -1,12 +1,0 @@
-function BuildMultipleQueueingScriptGeneric(name,executionpath,codepath)
-%BUILDMULTIPLEQUEUEINGSCRIPTGENERIC - ...
-%
-%   Usage:
-%      BuildMultipleQueueingScriptGeneric(executionpath,codepath)
-
-global ISSM_DIR
-
-
-%not done yet
-error('BuildMultipleQueueingScriptGenericerror message: not supported yet!');
-
Index: sm/trunk/src/m/classes/public/queue/BuildMultipleQueueingScriptgemini.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/BuildMultipleQueueingScriptgemini.m	(revision 3148)
+++ 	(revision )
@@ -1,23 +1,0 @@
-function BuildQueueingScriptgemini(name,executionpath,codepath)
-%BUILDQUEUEINGSCRIPTGEMINI - ...
-%
-%   Usage:
-%      BuildQueueingScriptgemini(md,executionpath,codepath)
-
-scriptname=[name '.queue'];
-
-fid=fopen(scriptname,'w');
-if fid==-1,
-	error(['BuildQueueingScriptgeminierror message: could not open ' scriptname ' file for ascii writing']);
-end
-
-fprintf(fid,'#!/bin/sh\n');
-fprintf(fid,'cd %s\n',executionpath);
-fprintf(fid,'mkdir %s\n',name);
-fprintf(fid,'cd %s\n',name);
-fprintf(fid,'mv ../ModelList.tar.gz ./\n');
-fprintf(fid,'tar -zxvf ModelList.tar.gz\n');
-fprintf(fid,'foreach i (%s-*vs*.queue)\n',name);
-fprintf(fid,'qsub $i\n');
-fprintf(fid,'end\n');
-fclose(fid);
Index: /issm/trunk/src/m/classes/public/queue/BuildQueueingScript.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/BuildQueueingScript.m	(revision 3148)
+++ /issm/trunk/src/m/classes/public/queue/BuildQueueingScript.m	(revision 3149)
@@ -5,19 +5,19 @@
 %      BuildQueueingScript(md,executionpath,codepath)
 
-disp('building queueing script');
+disp('check queue requirements');
+QueueRequirements(md.cluster,md.queue,md.np,md.time);
 
-%First try and figure out if there is a special script for thie particular cluster
-function_name=['BuildQueueingScript' md.cluster];
+disp('write queueing script');
 
-%some specific treatment of identical cluster, gemini, castor and pollux
-if strcmpi(md.cluster,'castor') || strcmpi(md.cluster,'pollux'),
-	function_name='BuildQueueingScriptgemini';
+%open file 
+fid=fopen([md.name '.queue'],'w');
+if fid==-1,
+	error(['BuildQueueingScripterror message: could not open ' [md.name '.queue'] ' file for ascii writing']);
 end
 
-if exist(function_name,'file'),
-	%Call this function:
-	eval([function_name '(md,executionpath,codepath);']);
-else
-	%Call the generic BuildQueueingScript:
-	BuildQueueingScriptGeneric(md,executionpath,codepath);
-end
+%hand down to cluster specific script
+ClusterScript(fid,md.cluster,md.name,md.queue,executionpath,codepath,md.analysis_type,md.np,md.time,md.mem_debug);
+
+%close file
+fclose(fid);
+
Index: sm/trunk/src/m/classes/public/queue/BuildQueueingScriptGeneric.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/BuildQueueingScriptGeneric.m	(revision 3148)
+++ 	(revision )
@@ -1,27 +1,0 @@
-function BuildQueueingScriptGeneric(md,executionpath,codepath)
-%BUILDQUEUEINGSCRIPTGENERIC - ...
-%
-%   Usage:
-%      BuildQueueingScriptGeneric(md,executionpath,codepath)
-
-global ISSM_DIR
-
-%Open queuing script file 
-scriptname=[md.name '.queue'];
-
-fid=fopen(scriptname,'w');
-if fid==-1,
-	error(['BuildQueueingScriptGenericerror message: could not open ' scriptname ' file for ascii writing']);
-end
-
-fprintf(fid,'#!/bin/sh\n');
-fprintf(fid,'rm -rf %s/%s.lock\n',executionpath,md.name);
-
-if md.mem_debug==0,
-fprintf(fid,'mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock  2> %s.errlog >%s.outlog & ',md.np,codepath,AnalysisTypeFromEnum(md.analysis_type),executionpath,md.name,md.name,md.name,md.name,md.name);
-else
-fprintf(fid,'LD_PRELOAD=%s mpirun -np %i %s --leak-check=full %s/%s.exe %s %s.bin %s.outbin %s.lock  2> %s.errlog >%s.outlog & ',[ISSM_DIR '/externalpackages/valgrind/install/lib/libmpidebug.so'],md.np,[ISSM_DIR '/externalpackages/valgrind/install/bin/valgrind'],codepath,AnalysisTypeFromEnum(md.analysis_type),executionpath,md.name,md.name,md.name,md.name,md.name);
-end
-
-
-fclose(fid);
Index: sm/trunk/src/m/classes/public/queue/BuildQueueingScriptcosmos.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/BuildQueueingScriptcosmos.m	(revision 3148)
+++ 	(revision )
@@ -1,65 +1,0 @@
-function BuildQueueingScriptcosmos(md,executionpath,codepath)
-%BUILDQUEUEINGSCRIPTGEMINI - ...
-%
-%   Usage:
-%      BuildQueueingScriptcosmos(md,executionpath,codepath)
-
-scriptname=[md.name '.queue'];
-
-fid=fopen(scriptname,'w');
-if fid==-1,
-	error(['BuildQueueingScriptcosmos error message: could not open ' scriptname ' file for ascii writing']);
-end
-
-%check queue names: 
-available_queues={'debug','shortq','longq','specialq'};
-if  ~ismemberi(md.queue,available_queues),
-	error('BuildQueueingScriptcosmos error message: availables queues are debug, shortq, longq and specialq');
-end
-
-%test parameters for each queue: 
-if strcmpi(md.queue,'debug'),
-	if md.np>32,
-		error('BuildQueueingScriptcosmos error message: debug queue only allows 32 cpus');
-	end
-	if md.time>60,
-		error('BuildQueueingScriptcosmos error message: debug queue only allows 60 minutes');
-	end
-end
-
-if strcmpi(md.queue,'shortq'),
-	if md.np>128,
-		error('BuildQueueingScriptcosmos error message: shortq queue only allows 128 cpus');
-	end
-	if md.time>180,
-		error('BuildQueueingScriptcosmos error message: shortq queue only allows 180 minutes');
-	end
-end
-
-if strcmpi(md.queue,'longq'),
-	if md.np>128,
-		error('BuildQueueingScriptcosmos error message: longq queue only allows 128 cpus');
-	end
-	if md.time>720,
-		error('BuildQueueingScriptcosmos error message: longq queue only allows 720 minutes');
-	end
-end
-
-
-
-fprintf(fid,'#!/bin/bash\n');
-fprintf(fid,'#PBS -l select=%i:ncpus=1\n',md.np);
-fprintf(fid,'#PBS -l walltime=%i\n',md.time*60); %walltime is in seconds.
-if ~isempty(md.queue),
-	fprintf(fid,'#PBS -q %s\n',md.queue);
-end
-fprintf(fid,'#PBS -o %s.outlog \n',md.name);
-fprintf(fid,'#PBS -e %s.errlog \n',md.name);
-
-fprintf(fid,'export PBS_O_WORKDIR=%s\n',executionpath);
-fprintf(fid,'cd $PBS_O_WORKDIR\n');
-fprintf(fid,'export OMP_NUM_THREADS=1\n');
-fprintf(fid,'ulimit -s unlimited\n');
-fprintf(fid,'ulimit -c 0\n');
-fprintf(fid,'/opt/mpich/gm/intel10.1/bin/mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock',md.np,codepath,AnalysisTypeFromEnum(md.analysis_type),executionpath,md.name,md.name,md.name);
-fclose(fid);
Index: sm/trunk/src/m/classes/public/queue/BuildQueueingScriptgemini.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/BuildQueueingScriptgemini.m	(revision 3148)
+++ 	(revision )
@@ -1,81 +1,0 @@
-function BuildQueueingScriptgemini(md,executionpath,codepath)
-%BUILDQUEUEINGSCRIPTGEMINI - ...
-%
-%   Usage:
-%      BuildQueueingScriptgemini(md,executionpath,codepath)
-
-scriptname=[md.name '.queue'];
-
-
-
-%check queue names: 
-if strcmpi(md.cluster,'gemini'),
-	available_queues={'debug','shortg','longg'};
-	if  ~ismemberi(md.queue,available_queues),
-		error('BuildQueueingScriptcosmos error message: availables queues are debug, shortg and longg');
-	end 
-
-	if strcmpi(md.queue,'debug'),
-		if md.np>50,
-			error('BuildQueueingScriptgeminierror error message: debug queue only allows for 50 cpus max');
-		end
-		
-		if md.time>60,
-			error('BuildQueueingScriptgeminierror error message: debug queue only allows for 60 minute runs');
-		end
-	end
-end
-
-if strcmpi(md.cluster,'castor'),
-	available_queues={'shortc','longc'};
-	if  ~ismemberi(md.queue,available_queues),
-		error('BuildQueueingScriptcosmos error message: availables queues are shortc and longc');
-	end 
-end
-
-if strcmpi(md.cluster,'pollux'),
-	available_queues={'shortp','longp'};
-	if  ~ismemberi(md.queue,available_queues),
-		error('BuildQueueingScriptcosmos error message: availables queues are shortp and longp');
-	end 
-end
-
-%test parameters valid for all queues
-if strcmpi(md.queue(1:5),'short'),
-	if md.np>128,
-		error('BuildQueueingScriptcosmos error message: short queue only allows 128 cpus');
-	end
-	if md.time>180,
-		error('BuildQueueingScriptcosmos error message: short queue only allows 180 minutes');
-	end
-end
-
-if strcmpi(md.queue(1:4),'long'),
-	if md.np>128,
-		error('BuildQueueingScriptcosmos error message: long queue only allows 128 cpus');
-	end
-	if md.time>720,
-		error('BuildQueueingScriptcosmos error message: long queue only allows 720 minutes');
-	end
-end
-
-fid=fopen(scriptname,'w');
-if fid==-1,
-	error(['BuildQueueingScriptgeminierror message: could not open ' scriptname ' file for ascii writing']);
-end
-
-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),
-	fprintf(fid,'#PBS -q %s\n',md.queue);
-end
-fprintf(fid,'#PBS -o %s.outlog \n',md.name);
-fprintf(fid,'#PBS -e %s.errlog \n',md.name);
-
-fprintf(fid,'export PBS_O_WORKDIR=%s\n',executionpath);
-fprintf(fid,'cd $PBS_O_WORKDIR\n');
-fprintf(fid,'export OMP_NUM_THREADS=1\n');
-fprintf(fid,'dplace -s1 -c0-%i mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock',md.np-1,md.np,codepath,AnalysisTypeFromEnum(md.analysis_type),executionpath,md.name,md.name,md.name);
-
-fclose(fid);
Index: sm/trunk/src/m/classes/public/queue/BuildQueueingScriptgreenplanet.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/BuildQueueingScriptgreenplanet.m	(revision 3148)
+++ 	(revision )
@@ -1,43 +1,0 @@
-function BuildQueueingScriptgreenplanet(md,executionpath,codepath)
-%BUILDQUEUEINGSCRIPTGEMINI - ...
-%
-%   Usage:
-%      BuildQueueingScriptgreenplanet(md,executionpath,codepath)
-
-scriptname=[md.name '.queue'];
-
-%check queue names: 
-if strcmpi(md.cluster,'greenplanet'),
-	available_queues={'rignot','default'};
-	if  ~ismemberi(md.queue,available_queues),
-		error('BuildQueueingScriptgreenplanet error message: availables queues are rignot and default');
-	end 
-
-	if strcmpi(md.queue,'rignot'),
-		if md.np>80,
-			error('BuildQueueingScriptgreenplaneterror error message: debug queue only allows for 80 cpus max');
-		end
-		
-		if md.time>60,
-			error('BuildQueueingScriptgreenplaneterror error message: debug queue only allows for 60 minute runs');
-		end
-	end
-end
-
-fid=fopen(scriptname,'w');
-if fid==-1,
-	error(['BuildQueueingScriptgreenplaneterror message: could not open ' scriptname ' file for ascii writing']);
-end
-
-fprintf(fid,'#!/bin/csh\n');
-fprintf(fid,'#PBS -N %s\n',md.name);
-fprintf(fid,'#PBS -l nodes=%i:ppn=%i\n',md.np/8,8);
-fprintf(fid,'#PBS -q %s\n',md.queue);
-fprintf(fid,'#PBS -m bea\n');
-fprintf(fid,'#PBS -M eric.larour@jpl.nasa.gov\n');
-fprintf(fid,'#PBS -l walltime=%i\n',md.time*60); %walltime is in seconds.
-
-fprintf(fid,'cd $PBS_O_WORKDIR\n');
-fprintf(fid,'mpirun -machinefile $PBS_NODEFILE -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock > %s.outlog',md.np,codepath,AnalysisTypeFromEnum(md.analysis_type),executionpath,md.name,md.name,md.name,md.name);
-
-fclose(fid);
Index: sm/trunk/src/m/classes/public/queue/BuildQueueingScriptpfe.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/BuildQueueingScriptpfe.m	(revision 3148)
+++ 	(revision )
@@ -1,59 +1,0 @@
-function BuildQueueingScriptpfe(md,executionpath,codepath)
-%BUILDQUEUEINGSCRIPTPFE - ...
-%
-%   Usage:
-%      BuildQueueingScriptpfe(md,executionpath,codepath)
-
-scriptname=[md.name '.queue'];
-
-
-%check queue names: 
-if strcmpi(md.cluster,'pfe'),
-	available_queues={'long'};
-	if  ~ismemberi(md.queue,available_queues),
-		error('BuildQueueingScriptcosmos error message: availables queues are long');
-	end 
-end
-
-%test parameters valid for all queues
-if strcmpi(md.queue(1:4),'long'),
-	if md.np>2024,
-		error('BuildQueueingScriptcosmos error message: long queue only allows 2024 cpus');
-	end
-	if md.time>720,
-		error('BuildQueueingScriptcosmos error message: long queue only allows 720 minutes');
-	end
-	if mod(md.np,8),
-		error('BuildQueueingScriptcosmos error message: np should be a multiple of 8');
-	end
-
-end
-
-fid=fopen(scriptname,'w');
-if fid==-1,
-	error(['BuildQueueingScriptpfeerror message: could not open ' scriptname ' file for ascii writing']);
-end
-
-
-fprintf(fid,'#PBS -S /bin/bash\n');
-fprintf(fid,'#PBS -N %s\n',md.name);
-fprintf(fid,'#PBS -l select=%i:ncpus=8:mpiprocs=8\n',md.np/8);
-fprintf(fid,'#PBS -l walltime=%i\n',md.time*60); %walltime is in seconds.
-fprintf(fid,'#PBS -W group_list=s1010\n');
-fprintf(fid,'#PBS -m e\n');
-fprintf(fid,'#PBS -o %s.outlog \n',md.name);
-fprintf(fid,'#PBS -e %s.errlog \n\n',md.name);
-
-fprintf(fid,'. /usr/share/modules/init/bash\n\n');
-
-fprintf(fid,'module load comp-intel/11.1.046\n');
-fprintf(fid,'module load mpi/mpt.1.23.nas\n');
-fprintf(fid,'module load math/intel_mkl_64_10.0.011\n\n');
-
-fprintf(fid,'export PATH="$PATH:."\n\n');
-
-fprintf(fid,'cd $PBS_O_WORKDIR\n\n');
-
-fprintf(fid,'mpiexec -verbose -np %i %s/%s.exe $PBS_O_WORKDIR %s.bin %s.outbin %s.lock',md.np,codepath,AnalysisTypeFromEnum(md.analysis_type),md.name,md.name,md.name);
-
-fclose(fid);
Index: /issm/trunk/src/m/classes/public/queue/ClusterScript.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/ClusterScript.m	(revision 3149)
+++ /issm/trunk/src/m/classes/public/queue/ClusterScript.m	(revision 3149)
@@ -0,0 +1,99 @@
+function ClusterScript(fid,cluster,name,queue,executionpath,codepath,analysis_type,np,time,mem_debug);
+%CLUSTERSCRIPT cluster specific queuing script
+%
+% Usage: ClusterScript(fid,name,queue,executionpath,codepath,analysis_type,np,time);
+%
+%
+
+
+if strcmpi(cluster,'cosmos'),
+
+
+
+	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%cosmos%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+	fprintf(fid,'#!/bin/bash\n');
+	fprintf(fid,'#PBS -l select=%i:ncpus=1\n',np);
+	fprintf(fid,'#PBS -l walltime=%i\n',time*60); %walltime is in seconds.
+	fprintf(fid,'#PBS -q %s\n',queue);
+	fprintf(fid,'#PBS -o %s.outlog \n',name);
+	fprintf(fid,'#PBS -e %s.errlog \n',name);
+	fprintf(fid,'export PBS_O_WORKDIR=%s\n',executionpath);
+	fprintf(fid,'cd $PBS_O_WORKDIR\n');
+	fprintf(fid,'export OMP_NUM_THREADS=1\n');
+	fprintf(fid,'ulimit -s unlimited\n');
+	fprintf(fid,'ulimit -c 0\n');
+	fprintf(fid,'/opt/mpich/gm/intel10.1/bin/mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock',np,codepath,AnalysisTypeFromEnum(analysis_type),executionpath,name,name,name);
+	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+
+elseif (strcmpi(cluster,'astrid') | strcmpi(cluster,'larsen') | strcmpi(cluster,'wilkes')),
+
+
+
+
+	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%astrid%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+	fprintf(fid,'#!/bin/sh\n');
+	fprintf(fid,'rm -rf %s/%s.lock\n',executionpath,name);
+	if mem_debug==0,
+		fprintf(fid,'mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock  2> %s.errlog >%s.outlog & ',np,codepath,AnalysisTypeFromEnum(analysis_type),executionpath,name,name,name,name,name);
+	else
+		fprintf(fid,'LD_PRELOAD=%s mpirun -np %i %s --leak-check=full %s/%s.exe %s %s.bin %s.outbin %s.lock  2> %s.errlog >%s.outlog & ',[ISSM_DIR '/externalpackages/valgrind/install/lib/libmpidebug.so'],np,[ISSM_DIR '/externalpackages/valgrind/install/bin/valgrind'],codepath,AnalysisTypeFromEnum(analysis_type),executionpath,name,name,name,name,name);
+	end
+	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+
+
+elseif (strcmpi(cluster,'gemini') | strcmpi(cluster,'pollux') | strcmpi(cluster,'castor')),
+
+	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%gemini%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+fprintf(fid,'#!/bin/sh\n');
+	fprintf(fid,'#PBS -l walltime=%i\n',time*60); %walltime is in seconds.
+	fprintf(fid,'#PBS -l ncpus=%i\n',np);
+	if ~isempty(queue),
+		fprintf(fid,'#PBS -q %s\n',queue);
+	end
+	fprintf(fid,'#PBS -o %s.outlog \n',name);
+	fprintf(fid,'#PBS -e %s.errlog \n',name);
+
+	fprintf(fid,'export PBS_O_WORKDIR=%s\n',executionpath);
+	fprintf(fid,'cd $PBS_O_WORKDIR\n');
+	fprintf(fid,'export OMP_NUM_THREADS=1\n');
+	fprintf(fid,'dplace -s1 -c0-%i mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock',np-1,np,codepath,AnalysisTypeFromEnum(analysis_type),executionpath,name,name,name);
+	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+elseif strcmpi(cluster,'pfe'),
+
+
+	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%pfe%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+	fprintf(fid,'#PBS -S /bin/bash\n');
+	fprintf(fid,'#PBS -N %s\n',name);
+	fprintf(fid,'#PBS -l select=%i:ncpus=8:mpiprocs=8\n',np/8);
+	fprintf(fid,'#PBS -l walltime=%i\n',time*60); %walltime is in seconds.
+	fprintf(fid,'#PBS -W group_list=s1010\n');
+	fprintf(fid,'#PBS -m e\n');
+	fprintf(fid,'#PBS -o %s.outlog \n',name);
+	fprintf(fid,'#PBS -e %s.errlog \n\n',name);
+
+	fprintf(fid,'. /usr/share/modules/init/bash\n\n');
+
+	fprintf(fid,'module load comp-intel/11.1.046\n');
+	fprintf(fid,'module load mpi/mpt.1.23.nas\n');
+	fprintf(fid,'module load math/intel_mkl_64_10.0.011\n\n');
+
+	fprintf(fid,'export PATH="$PATH:."\n\n');
+
+	fprintf(fid,'cd $PBS_O_WORKDIR\n\n');
+
+	fprintf(fid,'mpiexec -verbose -np %i %s/%s.exe $PBS_O_WORKDIR %s.bin %s.outbin %s.lock',np,codepath,AnalysisTypeFromEnum(analysis_type),name,name,name);
+	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+else
+	error(['ClusterScript error message: could not find settings for cluster ' cluster]);
+end
Index: sm/trunk/src/m/classes/public/queue/LaunchMultipleQueueJob.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/LaunchMultipleQueueJob.m	(revision 3148)
+++ 	(revision )
@@ -1,21 +1,0 @@
-function LaunchMultipleQueueJob(cluster,name,executionpath)
-%LAUNCHMULTIPLEQUEUEJOB - ...
-%
-%   Usage:
-%      LaunchMultipleQueueJob(executionpath)
-
-%First try and figure out if there is a special script for thie particular cluster
-function_name=['LaunchMultipleQueueJob' cluster];
-
-%some specific treatment of identical cluster, gemini, castor and pollux
-if strcmpi(cluster,'castor') || strcmpi(cluster,'pollux'),
-	function_name='LaunchMultipleQueueJobgemini';
-end
-
-if exist(function_name,'file'),
-	%Call this function:
-	eval([function_name '(cluster,name,executionpath);']);
-else
-	%Call the generic LaunchMultipleQueueJob:
-	LaunchMultipleQueueJobGeneric(cluster,name,executionpath);
-end
Index: sm/trunk/src/m/classes/public/queue/LaunchMultipleQueueJobGeneric.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/LaunchMultipleQueueJobGeneric.m	(revision 3148)
+++ 	(revision )
@@ -1,7 +1,0 @@
-function LaunchMultipleQueueJobGeneric(cluster,name,executionpath)
-%LAUNCHMULTIPLEQUEUEJOBGENERIC - Generic routine to launch multiple queueing job
-%
-%   Usage:
-%      LaunchMultipleQueueJobGeneric(cluster,name,executionpath)
-
-error('LaunchMultipleQueueJobGeneric error message: not supported yet!');
Index: sm/trunk/src/m/classes/public/queue/LaunchMultipleQueueJobgemini.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/LaunchMultipleQueueJobgemini.m	(revision 3148)
+++ 	(revision )
@@ -1,22 +1,0 @@
-function md=LaunchMultipleQueueJobgemini(cluster,name,executionpath)
-%LAUNCHMULTIPLEQUEUEJOBGEMINI - Launch multiple queueing script on Gemini cluster
-%
-%   Usage:
-%      LaunchMultipleQueueJobgemini(cluster,name,executionpath)
-
-
-%first, check we have the binary file and the queueing script
-if ~exist([ name '.queue'],'file'),
-	error('LaunchMultipleQueueJobgemini error message: queueing script issing, cannot go forward');
-end
-
-if ~exist('ModelList.tar.gz','file'),
-	error('LaunchMultipleQueueJobgemini error message: inputs models file missing, cannot go forward');
-end
-
-%upload both files to cluster
-disp('uploading input file,  queueing script and variables script');
-eval(['!scp ModelList.tar.gz ' name '.queue '  cluster ':' executionpath]);
-
-disp('launching solution sequence on remote cluster');
-issmssh(cluster,login,['"cd ' executionpath ' && source ' name '.queue "']);
Index: /issm/trunk/src/m/classes/public/queue/QueueRequirements.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/QueueRequirements.m	(revision 3149)
+++ /issm/trunk/src/m/classes/public/queue/QueueRequirements.m	(revision 3149)
@@ -0,0 +1,119 @@
+function QueueRequirements(cluster,queue,np,time)
+%QUEUEREQUIREMENTS queue requirements in time, number of cpus, by name of queue.
+%
+%
+% Usage: QueueRequirements(cluster,queue,np,time)
+%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%cluster settings%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+if strcmpi(cluster,'cosmos'),
+
+	available_queues={'debug','shortq','longq','specialq'};
+	queue_requirements_time=[60 180 720 1440];
+	queue_requirements_np=[32 128 256 256];
+	queue_requirements_modulo=[1 1 1 1];
+
+elseif strcmpi(cluster,'gemini'),
+
+	available_queues={'debug','shortg','longg'};
+	queue_requirements_time=[60 180 720];
+	queue_requirements_np=[50 50 50];
+	queue_requirements_modulo=[1 1 1 ];
+
+elseif strcmpi(cluster,'castor'),
+
+	available_queues={'shortc','longc'};
+	queue_requirements_time=[180 720];
+	queue_requirements_np=[128 128];
+	queue_requirements_modulo=[1 1 ];
+
+elseif strcmpi(cluster,'pollux'),
+
+	available_queues={'shortp','longp'};
+	queue_requirements_time=[180 720];
+	queue_requirements_np=[128 128];
+	queue_requirements_modulo=[1 1 ];
+
+elseif strcmpi(cluster,'astrid'),
+
+	available_queues={'none'};
+	queue_requirements_time=[Inf];
+	queue_requirements_np=[16];
+	queue_requirements_modulo=[1 ];
+
+elseif strcmpi(cluster,'larsen'),
+
+	available_queues={'none'};
+	queue_requirements_time=[Inf];
+	queue_requirements_np=[8];
+	queue_requirements_modulo=[1 ];
+
+elseif strcmpi(cluster,'wilkes'),
+
+	available_queues={'none'};
+	queue_requirements_time=[Inf];
+	queue_requirements_np=[8];
+	queue_requirements_modulo=[1 ];
+
+elseif strcmpi(cluster,'pfe'),
+
+	available_queues={'long'};
+	queue_requirements_time=[7200];
+	queue_requirements_np=[2048];
+	queue_requirements_modulo=[8 ];
+
+else
+	error(['BuildQueueingScript error message: cannot find requirements for ' cluster ]);
+end
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%end settings%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%Ok, go through requirements for current queue:
+index=ismemberi(queue,available_queues);
+if  ~index,
+	%ok, either we a generic cluster, with 'none' queue, or we could not find the queue reqruirements
+	if strcmpi(available_queues{1},'none'),
+		%reset index to 1, so we can fish the requirements
+		index=1;
+	else
+		string=available_queues{1};
+		for i=2:length(available_queues),
+			string=[string ' ' available_queues{i}];
+		end
+		error(['QueueRequirements error message: availables queues are ' string]);
+	end
+end
+
+%check on time requirements
+rtime=queue_requirements_time(index);
+
+if time<=0,
+	error('QueueRequirements: time should be a positive number');
+end
+
+if time>rtime,
+	error(['QueueRequirements: time should be < ' num2str(rtime) ' for queue: ' queue]);
+end
+
+%check on np requirements
+rnp=queue_requirements_np(index);
+rmod=queue_requirements_modulo(index);
+
+if np<=0,
+	error('QueueRequirements: np should be a positive number');
+end
+
+if np>rnp,
+	error(['QueueRequirements: np should be < ' num2str(rnp) ' for queue: ' queue]);
+end
+
+%check np is a multiple of the queue multiple 
+if mod(np,rmod),
+	error(['QueueRequirements: np should be a multiple of ' num2str(rmod) ' for queue: ' queue]);
+end
Index: /issm/trunk/src/m/classes/public/queue/multiple/BuildMultipleQueueingScript.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/multiple/BuildMultipleQueueingScript.m	(revision 3149)
+++ /issm/trunk/src/m/classes/public/queue/multiple/BuildMultipleQueueingScript.m	(revision 3149)
@@ -0,0 +1,23 @@
+function BuildMultipleQueueingScript(cluster,name,executionpath,codepath)
+%BUILDMULTIPLEQUEUEINGSCRIPT - 
+%
+%   Usage:
+%      BuildMultipleQueueingScript(executionpath,codepath)
+
+disp('building queueing script');
+
+%First try and figure out if there is a special script for this particular cluster
+function_name=['BuildMultipleQueueingScript' cluster];
+
+%some specific treatment of identical cluster, gemini, castor and pollux
+if strcmpi(cluster,'castor') || strcmpi(cluster,'pollux'),
+	function_name='BuildMultipleQueueingScriptgemini';
+end
+
+if exist(function_name,'file'),
+	%Call this function:
+	eval([function_name '(name,executionpath,codepath);']);
+else
+	%Call the generic BuildQueueingScript:
+	BuildMultipleQueueingScriptGeneric(name,executionpath,codepath);
+end
Index: /issm/trunk/src/m/classes/public/queue/multiple/BuildMultipleQueueingScriptGeneric.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/multiple/BuildMultipleQueueingScriptGeneric.m	(revision 3149)
+++ /issm/trunk/src/m/classes/public/queue/multiple/BuildMultipleQueueingScriptGeneric.m	(revision 3149)
@@ -0,0 +1,12 @@
+function BuildMultipleQueueingScriptGeneric(name,executionpath,codepath)
+%BUILDMULTIPLEQUEUEINGSCRIPTGENERIC - ...
+%
+%   Usage:
+%      BuildMultipleQueueingScriptGeneric(executionpath,codepath)
+
+global ISSM_DIR
+
+
+%not done yet
+error('BuildMultipleQueueingScriptGenericerror message: not supported yet!');
+
Index: /issm/trunk/src/m/classes/public/queue/multiple/BuildMultipleQueueingScriptgemini.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/multiple/BuildMultipleQueueingScriptgemini.m	(revision 3149)
+++ /issm/trunk/src/m/classes/public/queue/multiple/BuildMultipleQueueingScriptgemini.m	(revision 3149)
@@ -0,0 +1,23 @@
+function BuildQueueingScriptgemini(name,executionpath,codepath)
+%BUILDQUEUEINGSCRIPTGEMINI - ...
+%
+%   Usage:
+%      BuildQueueingScriptgemini(md,executionpath,codepath)
+
+scriptname=[name '.queue'];
+
+fid=fopen(scriptname,'w');
+if fid==-1,
+	error(['BuildQueueingScriptgeminierror message: could not open ' scriptname ' file for ascii writing']);
+end
+
+fprintf(fid,'#!/bin/sh\n');
+fprintf(fid,'cd %s\n',executionpath);
+fprintf(fid,'mkdir %s\n',name);
+fprintf(fid,'cd %s\n',name);
+fprintf(fid,'mv ../ModelList.tar.gz ./\n');
+fprintf(fid,'tar -zxvf ModelList.tar.gz\n');
+fprintf(fid,'foreach i (%s-*vs*.queue)\n',name);
+fprintf(fid,'qsub $i\n');
+fprintf(fid,'end\n');
+fclose(fid);
Index: /issm/trunk/src/m/classes/public/queue/multiple/LaunchMultipleQueueJob.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/multiple/LaunchMultipleQueueJob.m	(revision 3149)
+++ /issm/trunk/src/m/classes/public/queue/multiple/LaunchMultipleQueueJob.m	(revision 3149)
@@ -0,0 +1,21 @@
+function LaunchMultipleQueueJob(cluster,name,executionpath)
+%LAUNCHMULTIPLEQUEUEJOB - ...
+%
+%   Usage:
+%      LaunchMultipleQueueJob(executionpath)
+
+%First try and figure out if there is a special script for thie particular cluster
+function_name=['LaunchMultipleQueueJob' cluster];
+
+%some specific treatment of identical cluster, gemini, castor and pollux
+if strcmpi(cluster,'castor') || strcmpi(cluster,'pollux'),
+	function_name='LaunchMultipleQueueJobgemini';
+end
+
+if exist(function_name,'file'),
+	%Call this function:
+	eval([function_name '(cluster,name,executionpath);']);
+else
+	%Call the generic LaunchMultipleQueueJob:
+	LaunchMultipleQueueJobGeneric(cluster,name,executionpath);
+end
Index: /issm/trunk/src/m/classes/public/queue/multiple/LaunchMultipleQueueJobGeneric.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/multiple/LaunchMultipleQueueJobGeneric.m	(revision 3149)
+++ /issm/trunk/src/m/classes/public/queue/multiple/LaunchMultipleQueueJobGeneric.m	(revision 3149)
@@ -0,0 +1,7 @@
+function LaunchMultipleQueueJobGeneric(cluster,name,executionpath)
+%LAUNCHMULTIPLEQUEUEJOBGENERIC - Generic routine to launch multiple queueing job
+%
+%   Usage:
+%      LaunchMultipleQueueJobGeneric(cluster,name,executionpath)
+
+error('LaunchMultipleQueueJobGeneric error message: not supported yet!');
Index: /issm/trunk/src/m/classes/public/queue/multiple/LaunchMultipleQueueJobgemini.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/multiple/LaunchMultipleQueueJobgemini.m	(revision 3149)
+++ /issm/trunk/src/m/classes/public/queue/multiple/LaunchMultipleQueueJobgemini.m	(revision 3149)
@@ -0,0 +1,22 @@
+function md=LaunchMultipleQueueJobgemini(cluster,name,executionpath)
+%LAUNCHMULTIPLEQUEUEJOBGEMINI - Launch multiple queueing script on Gemini cluster
+%
+%   Usage:
+%      LaunchMultipleQueueJobgemini(cluster,name,executionpath)
+
+
+%first, check we have the binary file and the queueing script
+if ~exist([ name '.queue'],'file'),
+	error('LaunchMultipleQueueJobgemini error message: queueing script issing, cannot go forward');
+end
+
+if ~exist('ModelList.tar.gz','file'),
+	error('LaunchMultipleQueueJobgemini error message: inputs models file missing, cannot go forward');
+end
+
+%upload both files to cluster
+disp('uploading input file,  queueing script and variables script');
+eval(['!scp ModelList.tar.gz ' name '.queue '  cluster ':' executionpath]);
+
+disp('launching solution sequence on remote cluster');
+issmssh(cluster,login,['"cd ' executionpath ' && source ' name '.queue "']);
Index: /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptGeneric.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptGeneric.m	(revision 3149)
+++ /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptGeneric.m	(revision 3149)
@@ -0,0 +1,26 @@
+function BuildQueueingScriptGeneric(md,executionpath,codepath)
+%BUILDQUEUEINGSCRIPTGENERIC - ...
+%
+%   Usage:
+%      BuildQueueingScriptGeneric(md,executionpath,codepath)
+
+global ISSM_DIR
+
+%Open queuing script file 
+scriptname=[md.name '.queue'];
+
+fid=fopen(scriptname,'w');
+if fid==-1,
+	error(['BuildQueueingScriptGenericerror message: could not open ' scriptname ' file for ascii writing']);
+end
+
+fprintf(fid,'#!/bin/sh\n');
+fprintf(fid,'rm -rf %s/%s.lock\n',executionpath,md.name);
+
+if md.mem_debug==0,
+fprintf(fid,'mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock  2> %s.errlog >%s.outlog & ',md.np,codepath,AnalysisTypeFromEnum(md.analysis_type),executionpath,md.name,md.name,md.name,md.name,md.name);
+else
+fprintf(fid,'LD_PRELOAD=%s mpirun -np %i %s --leak-check=full %s/%s.exe %s %s.bin %s.outbin %s.lock  2> %s.errlog >%s.outlog & ',[ISSM_DIR '/externalpackages/valgrind/install/lib/libmpidebug.so'],md.np,[ISSM_DIR '/externalpackages/valgrind/install/bin/valgrind'],codepath,AnalysisTypeFromEnum(md.analysis_type),executionpath,md.name,md.name,md.name,md.name,md.name);
+end
+
+fclose(fid);
Index: /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptcosmos.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptcosmos.m	(revision 3149)
+++ /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptcosmos.m	(revision 3149)
@@ -0,0 +1,22 @@
+function BuildQueueingScriptcosmos(md,executionpath,codepath)
+%BUILDQUEUEINGSCRIPTGEMINI - ...
+%
+%   Usage:
+%      BuildQueueingScriptcosmos(md,executionpath,codepath)
+
+
+fprintf(fid,'#!/bin/bash\n');
+fprintf(fid,'#PBS -l select=%i:ncpus=1\n',md.np);
+fprintf(fid,'#PBS -l walltime=%i\n',md.time*60); %walltime is in seconds.
+fprintf(fid,'#PBS -q %s\n',md.queue);
+fprintf(fid,'#PBS -o %s.outlog \n',md.name);
+fprintf(fid,'#PBS -e %s.errlog \n',md.name);
+fprintf(fid,'export PBS_O_WORKDIR=%s\n',executionpath);
+fprintf(fid,'cd $PBS_O_WORKDIR\n');
+fprintf(fid,'export OMP_NUM_THREADS=1\n');
+fprintf(fid,'ulimit -s unlimited\n');
+fprintf(fid,'ulimit -c 0\n');
+fprintf(fid,'/opt/mpich/gm/intel10.1/bin/mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock',md.np,codepath,AnalysisTypeFromEnum(md.analysis_type),executionpath,md.name,md.name,md.name);
+
+
+fclose(fid);
Index: /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptgemini.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptgemini.m	(revision 3149)
+++ /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptgemini.m	(revision 3149)
@@ -0,0 +1,22 @@
+function BuildQueueingScriptgemini(md,executionpath,codepath)
+%BUILDQUEUEINGSCRIPTGEMINI - ...
+%
+%   Usage:
+%      BuildQueueingScriptgemini(md,executionpath,codepath)
+
+scriptname=[md.name '.queue'];
+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),
+	fprintf(fid,'#PBS -q %s\n',md.queue);
+end
+fprintf(fid,'#PBS -o %s.outlog \n',md.name);
+fprintf(fid,'#PBS -e %s.errlog \n',md.name);
+
+fprintf(fid,'export PBS_O_WORKDIR=%s\n',executionpath);
+fprintf(fid,'cd $PBS_O_WORKDIR\n');
+fprintf(fid,'export OMP_NUM_THREADS=1\n');
+fprintf(fid,'dplace -s1 -c0-%i mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock',md.np-1,md.np,codepath,AnalysisTypeFromEnum(md.analysis_type),executionpath,md.name,md.name,md.name);
+
+fclose(fid);
Index: /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptgreenplanet.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptgreenplanet.m	(revision 3149)
+++ /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptgreenplanet.m	(revision 3149)
@@ -0,0 +1,21 @@
+function BuildQueueingScriptgreenplanet(md,executionpath,codepath)
+%BUILDQUEUEINGSCRIPTGEMINI - ...
+%
+%   Usage:
+%      BuildQueueingScriptgreenplanet(md,executionpath,codepath)
+
+scriptname=[md.name '.queue'];
+
+
+fprintf(fid,'#!/bin/csh\n');
+fprintf(fid,'#PBS -N %s\n',md.name);
+fprintf(fid,'#PBS -l nodes=%i:ppn=%i\n',md.np/8,8);
+fprintf(fid,'#PBS -q %s\n',md.queue);
+fprintf(fid,'#PBS -m bea\n');
+fprintf(fid,'#PBS -M eric.larour@jpl.nasa.gov\n');
+fprintf(fid,'#PBS -l walltime=%i\n',md.time*60); %walltime is in seconds.
+
+fprintf(fid,'cd $PBS_O_WORKDIR\n');
+fprintf(fid,'mpirun -machinefile $PBS_NODEFILE -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock > %s.outlog',md.np,codepath,AnalysisTypeFromEnum(md.analysis_type),executionpath,md.name,md.name,md.name,md.name);
+
+fclose(fid);
Index: /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptpfe.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptpfe.m	(revision 3149)
+++ /issm/trunk/src/m/classes/public/queue/old/BuildQueueingScriptpfe.m	(revision 3149)
@@ -0,0 +1,49 @@
+function BuildQueueingScriptpfe(md,executionpath,codepath)
+%BUILDQUEUEINGSCRIPTPFE - ...
+%
+%   Usage:
+%      BuildQueueingScriptpfe(md,executionpath,codepath)
+
+scriptname=[md.name '.queue'];
+
+
+	available_queues={'long'};
+	if  ~ismemberi(md.queue,available_queues),
+	end
+	if md.time>720,
+		error('BuildQueueingScriptcosmos error message: long queue only allows 720 minutes');
+	end
+	if mod(md.np,8),
+		error('BuildQueueingScriptcosmos error message: np should be a multiple of 8');
+	end
+
+end
+
+fid=fopen(scriptname,'w');
+if fid==-1,
+	error(['BuildQueueingScriptpfeerror message: could not open ' scriptname ' file for ascii writing']);
+end
+
+
+fprintf(fid,'#PBS -S /bin/bash\n');
+fprintf(fid,'#PBS -N %s\n',md.name);
+fprintf(fid,'#PBS -l select=%i:ncpus=8:mpiprocs=8\n',md.np/8);
+fprintf(fid,'#PBS -l walltime=%i\n',md.time*60); %walltime is in seconds.
+fprintf(fid,'#PBS -W group_list=s1010\n');
+fprintf(fid,'#PBS -m e\n');
+fprintf(fid,'#PBS -o %s.outlog \n',md.name);
+fprintf(fid,'#PBS -e %s.errlog \n\n',md.name);
+
+fprintf(fid,'. /usr/share/modules/init/bash\n\n');
+
+fprintf(fid,'module load comp-intel/11.1.046\n');
+fprintf(fid,'module load mpi/mpt.1.23.nas\n');
+fprintf(fid,'module load math/intel_mkl_64_10.0.011\n\n');
+
+fprintf(fid,'export PATH="$PATH:."\n\n');
+
+fprintf(fid,'cd $PBS_O_WORKDIR\n\n');
+
+fprintf(fid,'mpiexec -verbose -np %i %s/%s.exe $PBS_O_WORKDIR %s.bin %s.outbin %s.lock',md.np,codepath,AnalysisTypeFromEnum(md.analysis_type),md.name,md.name,md.name);
+
+fclose(fid);
