Index: /issm/trunk-jpl/src/m/classes/stochasticforcing.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/stochasticforcing.py	(revision 26759)
+++ /issm/trunk-jpl/src/m/classes/stochasticforcing.py	(revision 26760)
@@ -43,7 +43,7 @@
     def setdefaultparameters(self):  # {{{
         # Type of stabilization used
-        self.isstochasticforcing = 0 # stochasticforcing is turned off by default
-        self.fields = [] # Need to initialize to list to avoid "RuntimeError: object of type 'float' has no len()" on import of class
-        self.randomflag = 1 # true randomness is implemented by default
+        self.isstochasticforcing = 0  # stochasticforcing is turned off by default
+        self.fields = []  # Need to initialize to list to avoid "RuntimeError: object of type 'float' has no len()" on import of class
+        self.randomflag = 1  # true randomness is implemented by default
         return self
     #}}}
@@ -63,5 +63,5 @@
 
         # Check that all fields agree with the corresponding md class and if any field needs the default params
-        checkdefaults = False # Need to check defaults only if one of the fields does not have its own dimensionality
+        checkdefaults = False  # Need to check defaults only if one of the fields does not have its own dimensionality
         structstoch = self.structstochforcing()
         for field in self.fields:
@@ -91,24 +91,24 @@
                 if (type(md.friction).__name__ != mdname):
                     raise TypeError('stochasticforcing field {} is only implemented for default friction'.format(field))
-                if (md.friction.coupling!=0 and md.friction.coupling!=1 and md.friction.coupling!=2):
+                if md.friction.coupling not in[0, 1, 2]:
                     raise TypeError('stochasticforcing field {} is only implemented for cases md.friction.coupling 0 or 1 or 2'.format(field))
-                if (np.any(md.friction.q==0)):
-                        raise TypeError('stochasticforcing field {} requires non-zero q exponent'.format(field))
+                if (np.any(md.friction.q == 0)):
+                    raise TypeError('stochasticforcing field {} requires non-zero q exponent'.format(field))
 
             # Checking for specific dimensions
-            if not (field == 'SMBautoregression' or field == 'FrontalForcingsRignotAutoregression'):
-                checkdefaults = True # field with non-specific dimensionality
+            if field not in['SMBautoregression', 'FrontalForcingsRignotAutoregression']:
+                checkdefaults = True  # field with non-specific dimensionality
 
         # Retrieve sum of all the field dimensionalities
         size_tot = self.defaultdimension * num_fields
-        indSMBar = -1 # About to check for index of SMBautoregression
-        indTFar = -1 # About to check for index of FrontalForcingsRignotAutoregression
+        indSMBar = -1  # About to check for index of SMBautoregression
+        indTFar = -1  # About to check for index of FrontalForcingsRignotAutoregression
         if ('SMBautoregression' in self.fields):
             size_tot = size_tot - self.defaultdimension + md.smb.num_basins
-            indSMBar = self.fields.index('SMBautoregression') # Index of SMBar, now check for consistency with TFar timestep (08Nov2021)
+            indSMBar = self.fields.index('SMBautoregression')  # Index of SMBar, now check for consistency with TFar timestep (08Nov2021)
         if ('FrontalForcingsRignotAutoregression' in self.fields):
             size_tot = size_tot - self.defaultdimension + md.frontalforcings.num_basins
-            indTFar = self.fields.index('FrontalForcingsRignotAutoregression') # Index of TFar, now check for consistency with SMBar timestep (08Nov2021)
-        if (indSMBar != -1 and indTFar != -1): # Both autoregressive models are used: check autoregressive time step consistency
+            indTFar = self.fields.index('FrontalForcingsRignotAutoregression')  # Index of TFar, now check for consistency with SMBar timestep (08Nov2021)
+        if (indSMBar != -1 and indTFar != -1):  # Both autoregressive models are used: check autoregressive time step consistency
             covsum = self.covariance[np.sum(self.defaultdimensions[0:indSMBar]).astype(int):np.sum(self.defaultdimensions[0:indSMBar + 1]).astype(int), np.sum(self.defaultdimensions[0:indTFar]).astype(int):np.sum(self.defaultdimensions[0:indTFar + 1]).astype(int)]
             if((md.smb.ar_timestep != md.frontalforcings.ar_timestep) and np.any(covsum != 0)):
@@ -121,5 +121,5 @@
         if (checkdefaults):
             md = checkfield(md, 'fieldname', 'stochasticforcing.defaultdimension', 'numel', 1, 'NaN', 1, 'Inf', 1, '>', 0)
-            md = checkfield(md, 'fieldname', 'stochasticforcing.default_id','Inf',1,'NaN',1,'>=',0,'<=',self.defaultdimension,'size', [md.mesh.numberofelements])
+            md = checkfield(md, 'fieldname', 'stochasticforcing.default_id', 'Inf', 1, 'NaN', 1, '>=', 0, '<=', self.defaultdimension, 'size', [md.mesh.numberofelements])
         return md
     # }}}
@@ -139,5 +139,5 @@
         else:
             # Retrieve dimensionality of each field
-            dimensions = self.defaultdimension * np.ones((num_fields,))
+            dimensions = self.defaultdimension * np.ones((num_fields))
             for ind, field in enumerate(self.fields):
                 # Checking for specific dimensions
@@ -148,5 +148,5 @@
 
             # Scaling covariance matrix (scale column-by-column and row-by-row)
-            scaledfields = ['DefaultCalving','FloatingMeltRate','SMBautoregression','SMBforcing'] # list of fields that need scaling * 1/yts
+            scaledfields = ['DefaultCalving', 'FloatingMeltRate', 'SMBautoregression', 'SMBforcing']  # list of fields that need scaling * 1/yts
             tempcovariance = np.copy(self.covariance)
             for i in range(num_fields):
@@ -161,9 +161,9 @@
                 self.default_id = np.zeros(md.mesh.numberofelements)
             # Reshape dimensions as column array for marshalling
-            dimensions = dimensions.reshape(1,len(dimensions))
+            dimensions = dimensions.reshape(1, len(dimensions))
 
             WriteData(fid, prefix, 'data', num_fields, 'name', 'md.stochasticforcing.num_fields', 'format', 'Integer')
             WriteData(fid, prefix, 'object', self, 'fieldname', 'fields', 'format', 'StringArray')
-            WriteData(fid, prefix, 'data', dimensions, 'name', 'md.stochasticforcing.dimensions', 'format', 'IntMat','mattype',2)
+            WriteData(fid, prefix, 'data', dimensions, 'name', 'md.stochasticforcing.dimensions', 'format', 'IntMat', 'mattype', 2)
             WriteData(fid, prefix, 'object', self, 'fieldname', 'default_id', 'format', 'IntMat', 'mattype', 2)  #12Nov2021 make sure this is zero-indexed!
             WriteData(fid, prefix, 'object', self, 'fieldname', 'defaultdimension', 'format', 'Integer')
