Index: /issm/trunk-jpl/src/m/classes/clusters/stallo.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/stallo.m	(revision 23421)
+++ /issm/trunk-jpl/src/m/classes/clusters/stallo.m	(revision 23422)
@@ -115,6 +115,6 @@
 			 end
 			 fprintf(fid,'#SBATCH --account=%s\n',cluster.accountname);
- 			 fprintf(fid,'#SBATCH --output %s/%s/%s.outlog \n',cluster.executionpath,dirname,modelname);
- 			 fprintf(fid,'#SBATCH --error %s/%s/%s.errlog \n\n',cluster.executionpath,dirname,modelname);
+ 			 fprintf(fid,'#SBATCH -output %s.outlog \n',[cluster.executionpath '/' dirname '/' modelname]);
+ 			 fprintf(fid,'#SBATCH -error %s.errlog \n\n',[cluster.executionpath '/' dirname '/' modelname]);
 
  			 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath);%FIXME
@@ -187,8 +187,8 @@
 			 if ~cluster.interactive,
 				 if ~isempty(restart)
-					 launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && qsub ' modelname '.queue '];
+					 launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && sbatch ' modelname '.queue '];
 				 else
 					 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
-						 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
+						 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && sbatch ' modelname '.queue '];
 				 end
 			 else
Index: /issm/trunk-jpl/src/m/classes/frictionhydro.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/frictionhydro.py	(revision 23421)
+++ /issm/trunk-jpl/src/m/classes/frictionhydro.py	(revision 23422)
@@ -8,5 +8,5 @@
 class frictionhydro(object):
 	"""
-	FRICTIONWEERTMAN class definition
+	friction hydro is the friction law from Schoof 2005 or Gagliardini2007
 
 	Usage:
@@ -15,38 +15,22 @@
 	def __init__(self): # {{{
 		self.coupling  		  		= 0
-		self.q    				= float('NaN')
-		self.C    				= float('NaN')
-		self.As    				= float('NaN')
-		self.effective_pressure			= float('NaN')
+		self.q									= np.nan
+		self.C									= np.nan
+		self.As									= np.nan
+		self.effective_pressure	= np.nan
 		#set defaults
+
 		self.setdefaultparameters()
-	#}}}
+	# }}}
 
-		#what is this:
-		#function self = frictionhydro(varargin) % {{{
-		#	switch nargin
-		#		case 0
-		#			self=setdefaultparameters(self);
-		#		otherwise
-		#			error('constructor not supported');
-		#	end
-		#end % }}}
-		
-	def checkconsistency(self,md,solution,analyses): #{{{ 
+	def __repr__(self): # {{{
+		string='Effective Pressure based friction law described in Gagliardini 2007'
+		string="%s\n%s"%(string,fielddisplay(self,'coupling','Coupling flag: 0 for default, 1 for forcing(provide md.friction.effective_pressure)  and 2 for coupled(not implemented yet)'))
+		string="%s\n%s"%(string,fielddisplay(self,'q','friction law exponent q>=1'))
+		string="%s\n%s"%(string,fielddisplay(self,'C','friction law max value (Iken bound)'))
+		string="%s\n%s"%(string,fielddisplay(self,'As','Sliding Parameter without cavitation [m Pa^-n s^-1]'))
+		string="%s\n%s"%(string,fielddisplay(self,'effective_pressure','Effective Pressure for the forcing if not coupled [Pa]'))
 
-		#Early return
-		if 'StressbalanceAnalysis' in analyses and 'ThermalAnalysis' in analyses:
-			return md
-		
-		md = checkfield(md,'fieldname','friction.coupling','numel',[1],'values',[0,1,2])
-		md = checkfield(md,'fieldname','friction.q','NaN',1,'Inf',1,'size',[md.mesh.numberofelements,1])
-		md = checkfield(md,'fieldname','friction.C','NaN',1,'Inf',1,'size',[md.mesh.numberofelements,1])
-		md = checkfield(md,'fieldname','friction.As','NaN',1,'Inf',1,'size',[md.mesh.numberofelements,1])
-		if self.coupling==1:
-			md = checkfield(md,'fieldname','friction.effective_pressure','NaN',1,'Inf',1,'timeseries',1)
-		elif self.coupling==2:
-			raise ValueError('coupling not supported yet')
-		elif self.coupling > 2:
-			raise ValueError('md.friction.coupling larger than 2, not supported yet')
+		return string
 	# }}}
 
@@ -60,20 +44,33 @@
 			raise ValueError('coupling not supported yet')
 		elif self.coupling > 2:
-			raise ValueError('md.friction.coupling larger than 2, not supported yet')		
-		return self	
-	 # }}} 
+			raise ValueError('md.friction.coupling larger than 2, not supported yet')
+		return self
+	# }}}
 
+	def setdefaultparameters(self): # {{{
 
-	def __repr__(self): # {{{
-		string='Effective Pressure based friction law described in Gagliardini 2007'
-		string="%s\n%s"%(string,fielddisplay(self,'coupling','Coupling flag: 0 for default, 1 for forcing(provide md.friction.effective_pressure)  and 2 for coupled(not implemented yet)'))
-		string="%s\n%s"%(string,fielddisplay(self,'q','friction law exponent q>=1'))
-		string="%s\n%s"%(string,fielddisplay(self,'C','friction law max value [SI]'))
-		string="%s\n%s"%(string,fielddisplay(self,'As','Sliding Parameter without cavitation [m Pa^-n s^-1]'))
-		string="%s\n%s"%(string,fielddisplay(self,'effective_pressure','Effective Pressure for the forcing if not coupled [Pa]'))
+		self.coupling  		  		= 0
+		self.effective_pressure	= np.nan
 
-		return string
-	#}}}
+		return self
+	# }}}
 
+	def checkconsistency(self,md,solution,analyses): #{{{
+
+		#Early return
+		if 'StressbalanceAnalysis' in analyses and 'ThermalAnalysis' in analyses:
+			return md
+
+		md = checkfield(md,'fieldname','friction.coupling','numel',[1],'values',[0,1,2])
+		md = checkfield(md,'fieldname','friction.q','NaN',1,'Inf',1,'size',[md.mesh.numberofelements])
+		md = checkfield(md,'fieldname','friction.C','NaN',1,'Inf',1,'size',[md.mesh.numberofelements])
+		md = checkfield(md,'fieldname','friction.As','NaN',1,'Inf',1,'size',[md.mesh.numberofelements])
+		if self.coupling==1:
+			md = checkfield(md,'fieldname','friction.effective_pressure','NaN',1,'Inf',1,'timeseries',1)
+		elif self.coupling==2:
+			raise ValueError('coupling not supported yet')
+		elif self.coupling > 2:
+			raise ValueError('md.friction.coupling larger than 2, not supported yet')
+	# }}}
 
 	def marshall(self,prefix,md,fid): #{{{
@@ -90,4 +87,2 @@
 			raise ValueError('md.friction.coupling larger than 2, not supported yet')
 	#}}}
-
-
