Index: /issm/trunk-jpl/src/m/classes/clusters/acenet.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/acenet.m	(revision 21575)
+++ /issm/trunk-jpl/src/m/classes/clusters/acenet.m	(revision 21576)
@@ -56,5 +56,5 @@
 		 end
 		 %}}}
-		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling) % {{{
 
 			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
Index: /issm/trunk-jpl/src/m/classes/clusters/camhpc.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/camhpc.m	(revision 21575)
+++ /issm/trunk-jpl/src/m/classes/clusters/camhpc.m	(revision 21576)
@@ -71,5 +71,5 @@
 		 end
 		 %}}}
-		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling) % {{{
 
 			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
Index: /issm/trunk-jpl/src/m/classes/clusters/castor.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/castor.m	(revision 21575)
+++ /issm/trunk-jpl/src/m/classes/clusters/castor.m	(revision 21576)
@@ -46,5 +46,5 @@
 		 end
 		 %}}}
-		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling) % {{{
 
 			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
Index: /issm/trunk-jpl/src/m/classes/clusters/cloud.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/cloud.m	(revision 21575)
+++ /issm/trunk-jpl/src/m/classes/clusters/cloud.m	(revision 21576)
@@ -48,5 +48,5 @@
 		end
 		%}}}
-		function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+		function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling) % {{{
 
 			%write queuing script 
Index: /issm/trunk-jpl/src/m/classes/clusters/cosmos.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/cosmos.m	(revision 21575)
+++ /issm/trunk-jpl/src/m/classes/clusters/cosmos.m	(revision 21576)
@@ -46,5 +46,5 @@
 		 end
 		 %}}}
-		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling) % {{{
 
 			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
Index: /issm/trunk-jpl/src/m/classes/clusters/cyclone.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/cyclone.py	(revision 21575)
+++ /issm/trunk-jpl/src/m/classes/clusters/cyclone.py	(revision 21576)
@@ -72,5 +72,5 @@
 		return self
                 # }}}
-	def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota):
+	def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling):
 		# {{{
 
Index: /issm/trunk-jpl/src/m/classes/clusters/discover.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/discover.m	(revision 21575)
+++ /issm/trunk-jpl/src/m/classes/clusters/discover.m	(revision 21576)
@@ -90,5 +90,5 @@
 		 end
 		 %}}}
-		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,ioceancoupling) % {{{
 
 			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
@@ -100,4 +100,7 @@
 					 executable='issm_dakota.exe';
 				 end
+			 end
+			 if isoceancoupling,
+				 executable='issm_ocean.exe';
 			 end
 
Index: /issm/trunk-jpl/src/m/classes/clusters/gemini.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/gemini.m	(revision 21575)
+++ /issm/trunk-jpl/src/m/classes/clusters/gemini.m	(revision 21576)
@@ -46,5 +46,5 @@
 		 end
 		 %}}}
-		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling) % {{{
 
 			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
Index: /issm/trunk-jpl/src/m/classes/clusters/generic.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/generic.m	(revision 21575)
+++ /issm/trunk-jpl/src/m/classes/clusters/generic.m	(revision 21576)
@@ -72,5 +72,5 @@
 		end
 		%}}}
-		function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+		function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling) % {{{
 
 			%write queuing script 
@@ -82,4 +82,7 @@
 					executable='issm_dakota.exe';
 				end
+			end
+			if isoceancoupling,
+				executable='issm_ocean.exe';
 			end
 
Index: /issm/trunk-jpl/src/m/classes/clusters/generic.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/generic.py	(revision 21575)
+++ /issm/trunk-jpl/src/m/classes/clusters/generic.py	(revision 21576)
@@ -68,5 +68,5 @@
 		return md
 	# }}}
-	def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota):    # {{{
+	def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling):    # {{{
 
 		executable='issm.exe';
@@ -76,4 +76,6 @@
 			if version>=6:
 				executable='issm_dakota.exe'
+		if isoceancoupling:
+			executable='issm_ocean.exe'
 
 		#write queuing script 
Index: /issm/trunk-jpl/src/m/classes/clusters/generic_static.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/generic_static.m	(revision 21575)
+++ /issm/trunk-jpl/src/m/classes/clusters/generic_static.m	(revision 21576)
@@ -49,5 +49,5 @@
 		end
 		%}}}
-		function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+		function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling) % {{{
 
 			%Check that issm.exe exists in the right path
@@ -67,4 +67,7 @@
 					executable='issm_dakota.exe';
 				end
+			end
+			if isoceancoupling,
+				executable='issm_ocean.exe';
 			end
 
Index: /issm/trunk-jpl/src/m/classes/clusters/greenplanet.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/greenplanet.m	(revision 21575)
+++ /issm/trunk-jpl/src/m/classes/clusters/greenplanet.m	(revision 21576)
@@ -69,5 +69,5 @@
 		 end
 		 %}}}
-		 function BuildKrigingQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+		 function BuildKrigingQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling) % {{{
 
 			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
Index: /issm/trunk-jpl/src/m/classes/clusters/hexagon.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/hexagon.py	(revision 21575)
+++ /issm/trunk-jpl/src/m/classes/clusters/hexagon.py	(revision 21576)
@@ -81,5 +81,5 @@
 		return self
                 # }}}
-	def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota):
+	def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling):
 		# {{{
 
@@ -90,4 +90,6 @@
 			if version>=6:
 				executable='issm_dakota.exe'
+		if isoceancoupling:
+			executable='issm_ocean.exe'
 
 		#write queuing script 
Index: /issm/trunk-jpl/src/m/classes/clusters/hpc.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/hpc.m	(revision 21575)
+++ /issm/trunk-jpl/src/m/classes/clusters/hpc.m	(revision 21576)
@@ -90,5 +90,5 @@
 		 end
 		 %}}}
-		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling) % {{{
 
 			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
Index: /issm/trunk-jpl/src/m/classes/clusters/lonestar.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 21575)
+++ /issm/trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 21576)
@@ -96,5 +96,5 @@
 		 end
 		 %}}}
-		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling) % {{{
 
 			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
@@ -107,4 +107,7 @@
 					 executable='issm_dakota.exe';
 				 end
+			 end
+			 if isoceancoupling,
+				 executable='issm_ocean.exe';
 			 end
 
Index: /issm/trunk-jpl/src/m/classes/clusters/pfe.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/pfe.m	(revision 21575)
+++ /issm/trunk-jpl/src/m/classes/clusters/pfe.m	(revision 21576)
@@ -136,5 +136,5 @@
 		 end
 		 %}}}
-		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling) % {{{
 
 			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
@@ -146,4 +146,7 @@
 					 executable='issm_dakota.exe';
 				 end
+			 end
+			 if isoceancoupling,
+				 executable='issm_ocean.exe';
 			 end
 
Index: /issm/trunk-jpl/src/m/classes/clusters/pfe.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/pfe.py	(revision 21575)
+++ /issm/trunk-jpl/src/m/classes/clusters/pfe.py	(revision 21576)
@@ -133,5 +133,5 @@
 		return self
 	# }}}
-	def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota):
+	def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling):
 		# {{{
 
@@ -142,4 +142,6 @@
 			if version>=6:
 				executable='issm_dakota.exe'
+		if isoceancoupling:
+			executable='issm_ocean.exe'
 
 		#write queuing script 
Index: /issm/trunk-jpl/src/m/classes/clusters/pollux.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/pollux.m	(revision 21575)
+++ /issm/trunk-jpl/src/m/classes/clusters/pollux.m	(revision 21576)
@@ -46,5 +46,5 @@
 		 end
 		 %}}}
-		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling) % {{{
 
 			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
Index: /issm/trunk-jpl/src/m/classes/clusters/raijin.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/raijin.m	(revision 21575)
+++ /issm/trunk-jpl/src/m/classes/clusters/raijin.m	(revision 21576)
@@ -63,5 +63,5 @@
 		 end
 		 %}}}
-		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling) % {{{
                      
 			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
Index: /issm/trunk-jpl/src/m/classes/clusters/vilje.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/vilje.m	(revision 21575)
+++ /issm/trunk-jpl/src/m/classes/clusters/vilje.m	(revision 21576)
@@ -99,5 +99,5 @@
 		 end
 		 %}}}
-		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
+		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling) % {{{
 
 			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
@@ -110,4 +110,7 @@
 					 executable='issm_dakota.exe';
 				 end
+			 end
+			 if isoceancoupling,
+				 executable='issm_ocean.exe';
 			 end
 
Index: /issm/trunk-jpl/src/m/classes/clusters/vilje.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/vilje.py	(revision 21575)
+++ /issm/trunk-jpl/src/m/classes/clusters/vilje.py	(revision 21576)
@@ -81,5 +81,5 @@
 		return self
                 # }}}
-	def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota):
+	def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota,isoceancoupling):
 		# {{{
 
@@ -90,4 +90,6 @@
 			if version>=6:
 				executable='issm_dakota.exe'
+		if isoceancoupling:
+			executable='issm_ocean.exe'
 
 		#write queuing script 
Index: /issm/trunk-jpl/src/m/classes/transient.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/transient.m	(revision 21575)
+++ /issm/trunk-jpl/src/m/classes/transient.m	(revision 21576)
@@ -18,4 +18,5 @@
 		isslr             = 0;
 		iscoupler         = 0;
+		isoceancoupling   = 0;
 		requested_outputs = {};
 	end
@@ -43,4 +44,5 @@
 			self.ishydrology     = 0;
 			self.isslr           = 0;
+			self.isoceancoupling = 0;
 			self.iscoupler       = 0;
 
@@ -62,4 +64,5 @@
 			self.ishydrology     = 0;
 			self.isslr           = 0;
+			self.isoceancoupling = 0;
 			self.iscoupler       = 0;
 
@@ -91,6 +94,10 @@
 			md = checkfield(md,'fieldname','transient.requested_outputs','stringrow',1);
 			md = checkfield(md,'fieldname','transient.isslr','numel',[1],'values',[0 1]);
+			md = checkfield(md,'fieldname','transient.isoceancoupling','numel',[1],'values',[0 1]);
 			md = checkfield(md,'fieldname','transient.iscoupler','numel',[1],'values',[0 1]);
 
+			if (~strcmp(solution,'TransientSolution') & md.transient.iscoupling==1), 
+				md = checkmessage(md,['Coupling with ocean model can only be performed for transient simulations!']);
+			end
 		end % }}}
 		function disp(self) % {{{
@@ -108,4 +115,5 @@
 			fielddisplay(self,'ishydrology','indicates whether an hydrology model is used');
 			fielddisplay(self,'isslr','indicates whether a sea-level rise solution is used in the transient');
+			fielddisplay(self,'isoceancoupling','indicates whether a coupling with an ocean model is used in the transient');
 			fielddisplay(self,'iscoupler','indicates whether different models are being run with need for coupling');
 			fielddisplay(self,'requested_outputs','list of additional outputs requested');
@@ -124,4 +132,5 @@
 			WriteData(fid,prefix,'object',self,'fieldname','ismovingfront','format','Boolean');
 			WriteData(fid,prefix,'object',self,'fieldname','isslr','format','Boolean');
+			WriteData(fid,prefix,'object',self,'fieldname','isoceancoupling','format','Boolean');
 			WriteData(fid,prefix,'object',self,'fieldname','iscoupler','format','Boolean');
 
@@ -148,4 +157,5 @@
 			writejsdouble(fid,[modelname '.trans.ishydrology'],self.ishydrology);
 			writejsdouble(fid,[modelname '.trans.isslr'],self.isslr);
+			writejsdouble(fid,[modelname '.trans.isoceancoupling'],self.isoceancoupling);
 			writejsdouble(fid,[modelname '.trans.iscoupler'],self.iscoupler);
 			writejscellstring(fid,[modelname '.trans.requested_outputs'],self.requested_outputs);
Index: /issm/trunk-jpl/src/m/classes/transient.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/transient.py	(revision 21575)
+++ /issm/trunk-jpl/src/m/classes/transient.py	(revision 21576)
@@ -23,4 +23,5 @@
 		self.ishydrology       = False
 		self.isslr             = False
+		self.isoceancoupling   = False
 		self.iscoupler         = False
 		self.requested_outputs = []
@@ -43,4 +44,5 @@
 		string="%s\n%s"%(string,fielddisplay(self,'ishydrology','indicates whether an hydrology model is used'))
 		string="%s\n%s"%(string,fielddisplay(self,'isslr','indicates if a sea level rise solution is used in the transient'))
+		string="%s\n%s"%(string,fielddisplay(self,'isoceancoupling','indicates whether coupling with an ocean model is used in the transient'))
 		string="%s\n%s"%(string,fielddisplay(self,'iscoupler','indicates whether different models are being run with need for coupling'))
 		string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','list of additional outputs requested'))
@@ -68,4 +70,5 @@
 		self.ismovingfront     = False
 		self.ishydrology       = False
+		self.isoceancoupling   = False
 		self.isslr             = False
 		self.iscoupler         = False
@@ -89,4 +92,5 @@
 		self.ishydrology     = False
 		self.isslr           = False
+		self.isoceancoupling = False
 		self.iscoupler       = False
 
@@ -112,6 +116,10 @@
 		md = checkfield(md,'fieldname','transient.ismovingfront','numel',[1],'values',[0,1]);
 		md = checkfield(md,'fieldname','transient.isslr','numel',[1],'values',[0,1])
+		md = checkfield(md,'fieldname','transient.isoceancoupling','numel',[1],'values',[0,1])
 		md = checkfield(md,'fieldname','transient.iscoupler','numel',[1],'values',[0,1])
 		md = checkfield(md,'fieldname','transient.requested_outputs','stringrow',1)
+
+		if (solution!='TransientSolution') and (md.transient.iscoupling):
+				md.checkmessage("Coupling with ocean can only be done in transient simulations!")
 
 		return md
@@ -129,4 +137,5 @@
 		WriteData(fid,prefix,'object',self,'fieldname','ismovingfront','format','Boolean')
 		WriteData(fid,prefix,'object',self,'fieldname','isslr','format','Boolean')
+		WriteData(fid,prefix,'object',self,'fieldname','isoceancoupling','format','Boolean')
 		WriteData(fid,prefix,'object',self,'fieldname','iscoupler','format','Boolean')
 
Index: /issm/trunk-jpl/src/m/solve/solve.m
===================================================================
--- /issm/trunk-jpl/src/m/solve/solve.m	(revision 21575)
+++ /issm/trunk-jpl/src/m/solve/solve.m	(revision 21576)
@@ -117,5 +117,5 @@
 marshall(md);                                          % bin file
 ToolkitsFile(md.toolkits,[md.miscellaneous.name '.toolkits']); % toolkits file
-BuildQueueScript(cluster,md.private.runtimename,md.miscellaneous.name,md.private.solution,md.settings.io_gather,md.debug.valgrind,md.debug.gprof,md.qmu.isdakota); % queue file
+BuildQueueScript(cluster,md.private.runtimename,md.miscellaneous.name,md.private.solution,md.settings.io_gather,md.debug.valgrind,md.debug.gprof,md.qmu.isdakota,md.transient.isoceancoupling); % queue file
 
 %Upload all required files
Index: /issm/trunk-jpl/src/m/solve/solve.py
===================================================================
--- /issm/trunk-jpl/src/m/solve/solve.py	(revision 21575)
+++ /issm/trunk-jpl/src/m/solve/solve.py	(revision 21576)
@@ -113,5 +113,5 @@
 	marshall(md)                                           # bin file
 	md.toolkits.ToolkitsFile(md.miscellaneous.name+'.toolkits')    # toolkits file
-	cluster.BuildQueueScript(md.private.runtimename,md.miscellaneous.name,md.private.solution,md.settings.io_gather,md.debug.valgrind,md.debug.gprof,md.qmu.isdakota)    # queue file
+	cluster.BuildQueueScript(md.private.runtimename,md.miscellaneous.name,md.private.solution,md.settings.io_gather,md.debug.valgrind,md.debug.gprof,md.qmu.isdakotai,md.transient.isoceancoupling)    # queue file
 
 	#Stop here if batch mode
