Index: /issm/trunk-jpl/test/NightlyRun/test543.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test543.m	(revision 27410)
+++ /issm/trunk-jpl/test/NightlyRun/test543.m	(revision 27411)
@@ -1,3 +1,3 @@
-%Test Name: PigTranStochasticforcing
+%Test Name: PigTranRignotarma
 md=triangle(model(),'../Exp/Pig.exp',10000.);
 md=setmask(md,'../Exp/PigShelves.exp','../Exp/PigIslands.exp');
@@ -21,25 +21,10 @@
     end
 end
-% Basin separation default
-idb_df = zeros(md.mesh.numberofelements,1);
-iid1   = find(md.mesh.x<=-1.62e6);
-for ii=1:md.mesh.numberofelements
-    for vertex=1:3
-        if any(iid1==md.mesh.elements(ii,vertex)) %one vertex in basin 1
-            idb_df(ii) = 1;
-        end
-    end
-    if idb_df(ii)==0 %no vertex was found in basin 1
-        idb_df(ii) = 2;
-    end
-end
 % Dimensionalities
 nb_tf    = 2;
-nb_clv   = 2;
-nb_flmlt = 2;
 
 %Calving parameters
 md.mask.ice_levelset = 1e4*(md.mask.ice_levelset + 0.5);
-md.calving.calvingrate = 0.3*ones(md.mesh.numberofvertices,1);
+md.calving.calvingrate = 0*ones(md.mesh.numberofvertices,1);
 md.levelset.spclevelset = NaN(md.mesh.numberofvertices,1);
 md.levelset.migration_max = 10.0; %avoid fast advance/retreat of the front
@@ -115,20 +100,17 @@
 end
 % Floating Ice Melt parameters
-md.basalforcings.floatingice_melting_rate = 0.1*ones(md.mesh.numberofvertices,1);
+md.basalforcings.floatingice_melting_rate = 0*ones(md.mesh.numberofvertices,1);
 
 
 % Covariance matrix
 covtf       = 1e-4*eye(nb_tf);
-covclv      = 1e-1*eye(nb_clv);
-covclv(1,1) = 1/10*covclv(1,1);
-covflmlt    = 0.05*eye(nb_flmlt);
 covsd       = 1e3*eye(nb_tf);
-covglob     = blkdiag(covtf,covclv,covflmlt,covsd);
+covglob     = blkdiag(covtf,covsd);
 
 %Stochastic forcing
 md.stochasticforcing.isstochasticforcing = 1;
-md.stochasticforcing.fields              = [{'FrontalForcingsRignotarma'},{'DefaultCalving'},{'FloatingMeltRate'},{'FrontalForcingsSubglacialDischargearma'}];
+md.stochasticforcing.fields              = [{'FrontalForcingsRignotarma'},{'FrontalForcingsSubglacialDischargearma'}];
 md.stochasticforcing.defaultdimension    = 2;
-md.stochasticforcing.default_id          = idb_df;
+md.stochasticforcing.default_id          = idb_tf;
 md.stochasticforcing.covariance          = covglob; %global covariance among- and between-fields
 md.stochasticforcing.randomflag          = 0; %determines true/false randomness
@@ -137,5 +119,5 @@
 md.transient.isgroundingline = 1;
 
-md.transient.requested_outputs = {'default','CalvingCalvingrate','CalvingMeltingrate','BasalforcingsFloatingiceMeltingRate'};
+md.transient.requested_outputs = {'default','CalvingMeltingrate'};
 md.cluster=generic('name',oshostname(),'np',2);
 md=solve(md,'Transient');
@@ -143,12 +125,12 @@
 %Fields and tolerances to track changes
 field_names ={...
-   'Vx1' ,'Vy1' ,'Vel1' ,'Thickness1' ,'MaskIceLevelset1' ,'CalvingCalvingrate1' ,'CalvingMeltingrate1' ,'BasalforcingsFloatingiceMeltingRate1',...
-   'Vx2' ,'Vy2' ,'Vel2' ,'Thickness2' ,'MaskIceLevelset2' ,'CalvingCalvingrate2' ,'CalvingMeltingrate2' ,'BasalforcingsFloatingiceMeltingRate2',...
-   'Vx10','Vy10','Vel10','Thickness10','MaskIceLevelset10','CalvingCalvingrate10','CalvingMeltingrate10','BasalforcingsFloatingiceMeltingRate10',...
+   'Vx1' ,'Vy1' ,'Vel1' ,'Thickness1' ,'MaskIceLevelset1' ,'CalvingMeltingrate1' ,...
+   'Vx2' ,'Vy2' ,'Vel2' ,'Thickness2' ,'MaskIceLevelset2' ,'CalvingMeltingrate2' ,...
+   'Vx10','Vy10','Vel10','Thickness10','MaskIceLevelset10','CalvingMeltingrate10',...
    };
 field_tolerances={...
-   1e-11,2e-11,2e-11,1e-11,1e-9,1e-10,1e-10,1e-10,...
-   2e-11,1e-11,1e-11,9e-11,2e-9,1e-10,1e-10,1e-10,...
-   2e-6,1e-6,1e-6,1e-6,5e-6,1e-6,1e-6,1e-6,...
+   1e-11,2e-11,2e-11,1e-11,1e-9,1e-10,...
+   2e-11,1e-11,1e-11,9e-11,2e-9,1e-10,...
+   2e-6,1e-6,1e-6,1e-6,5e-6,1e-6,...
    };
 field_values={...
@@ -158,7 +140,5 @@
    (md.results.TransientSolution(1).Thickness),...
    (md.results.TransientSolution(1).MaskIceLevelset),...
-   (md.results.TransientSolution(1).CalvingCalvingrate),...
    (md.results.TransientSolution(1).CalvingMeltingrate),...
-   (md.results.TransientSolution(1).BasalforcingsFloatingiceMeltingRate),...
    (md.results.TransientSolution(20).Vx),...
    (md.results.TransientSolution(20).Vy),...
@@ -166,7 +146,5 @@
    (md.results.TransientSolution(20).Thickness),...
    (md.results.TransientSolution(20).MaskIceLevelset),...
-   (md.results.TransientSolution(20).CalvingCalvingrate),...
    (md.results.TransientSolution(20).CalvingMeltingrate),...
-   (md.results.TransientSolution(20).BasalforcingsFloatingiceMeltingRate),...
 	(md.results.TransientSolution(40).Vx),...
 	(md.results.TransientSolution(40).Vy),...
@@ -174,6 +152,4 @@
 	(md.results.TransientSolution(40).Thickness),...
 	(md.results.TransientSolution(40).MaskIceLevelset),...
-	(md.results.TransientSolution(40).CalvingCalvingrate),...
 	(md.results.TransientSolution(40).CalvingMeltingrate),...
-	(md.results.TransientSolution(40).BasalforcingsFloatingiceMeltingRate),...
 	};
Index: /issm/trunk-jpl/test/NightlyRun/test543.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test543.py	(revision 27410)
+++ /issm/trunk-jpl/test/NightlyRun/test543.py	(revision 27411)
@@ -1,3 +1,3 @@
-#Test Name: PigTranStochasticforcing
+#Test Name: PigTranRignotarma 
 import numpy as np
 from frontalforcingsrignotarma import frontalforcingsrignotarma
@@ -29,22 +29,10 @@
         for vertex in range(3):
             idb_tf[ii] = 2
-# Basin separation default
-idb_df = np.zeros((md.mesh.numberofelements,))
-iid1 = np.where(md.mesh.x <= -1.62e6)[0]
-for ii in range(md.mesh.numberofelements):
-    for vertex in range(3):
-        if md.mesh.elements[ii][vertex] - 1 in iid1:  # one vertex in basin 1; NOTE: offset because of 1-based vertex indexing
-            idb_df[ii] = 1
-    if idb_df[ii] == 0:  # no vertex was found in basin 1
-        for vertex in range(3):
-            idb_df[ii] = 2
 #Dimensionalities
 nb_tf = 2
-nb_clv  = 2
-nb_flmlt = 2
 
 # Calving parameters
 md.mask.ice_levelset = 1e4 * (md.mask.ice_levelset + 0.5)
-md.calving.calvingrate = 0.3 * np.ones((md.mesh.numberofvertices,))
+md.calving.calvingrate = 0 * np.ones((md.mesh.numberofvertices,))
 md.levelset.spclevelset = np.full((md.mesh.numberofvertices,), np.nan)
 md.levelset.migration_max = 10.0
@@ -119,11 +107,9 @@
     md.frontalforcings.sd_polynomialparams   = sd_polyparam
 #Floating Ice Melt parameters
-md.basalforcings.floatingice_melting_rate = 0.1 * np.ones((md.mesh.numberofvertices,))
+md.basalforcings.floatingice_melting_rate = 0.0 * np.ones((md.mesh.numberofvertices,))
 
 #Covariance matrix
 covtf = 1e-4 * np.identity(nb_tf)
-covclv = 1e-1 * np.identity(nb_clv)
-covclv[0, 0] = 1 / 10 * covclv[0, 0]
-covflmlt = 0.05 * np.identity(nb_flmlt)
+covsd = 1e3 * np.identity(nb_tf)
 #covglob          = np.zeros([6,6])
 #covglob[0:2,0:2] = covtf
@@ -132,12 +118,8 @@
 
 #Hard-coding covariance matrix because python is complaining
-covglob = np.array([[1e-4, 0., 0., 0., 0., 0.,0.,0.],
-                    [0., 1e-4, 0., 0., 0., 0.,0.,0.],
-                    [0., 0., 1e-2, 0., 0., 0.,0.,0.],
-                    [0., 0., 0., 1e-1, 0., 0.,0.,0.],
-                    [0., 0., 0., 0., 0.05, 0.,0.,0.],
-                    [0., 0., 0., 0., 0., 0.05,0.,0.],
-                    [0., 0., 0., 0., 0., 0., 1e3,0.],
-                    [0., 0., 0., 0., 0., 0.,0., 1e3]])
+covglob = np.array([[1e-4, 0., 0., 0.],
+                    [0., 1e-4, 0., 0.],
+                    [0., 0., 1e3, 0.],
+                    [0., 0., 0., 1e3]])
 #testchol = np.linalg.cholesky(covglob)
 #print(testchol)
@@ -145,7 +127,7 @@
 # Stochastic forcing
 md.stochasticforcing.isstochasticforcing = 1
-md.stochasticforcing.fields = ['FrontalForcingsRignotarma', 'DefaultCalving', 'FloatingMeltRate','FrontalForcingsSubglacialDischargearma']
+md.stochasticforcing.fields = ['FrontalForcingsRignotarma','FrontalForcingsSubglacialDischargearma']
 md.stochasticforcing.defaultdimension = 2
-md.stochasticforcing.default_id = idb_df
+md.stochasticforcing.default_id = idb_tf
 md.stochasticforcing.covariance = covglob  # global covariance among- and between-fields
 md.stochasticforcing.randomflag = 0  # determines true/false randomness
@@ -160,12 +142,12 @@
 # Fields and tolerances to track changes
 field_names = [
-    'Vx1', 'Vy1', 'Vel1', 'Thickness1', 'MaskIceLevelset1', 'CalvingCalvingrate1', 'CalvingMeltingrate1', 'BasalforcingsFloatingiceMeltingRate1',
-    'Vx2', 'Vy2', 'Vel2', 'Thickness2', 'MaskIceLevelset2', 'CalvingCalvingrate2', 'CalvingMeltingrate2', 'BasalforcingsFloatingiceMeltingRate2',
-    'Vx10', 'Vy10', 'Vel10', 'Thickness10', 'MaskIceLevelset10', 'CalvingCalvingrate10', 'CalvingMeltingrate10', 'BasalforcingsFloatingiceMeltingRate10']
+    'Vx1', 'Vy1', 'Vel1', 'Thickness1', 'MaskIceLevelset1', 'CalvingMeltingrate1',
+    'Vx2', 'Vy2', 'Vel2', 'Thickness2', 'MaskIceLevelset2', 'CalvingMeltingrate2',
+    'Vx10', 'Vy10', 'Vel10', 'Thickness10', 'MaskIceLevelset10', 'CalvingMeltingrate10']
 
 field_tolerances = [
-    1e-11, 2e-11, 2e-11, 1e-11, 1e-9, 1e-10, 1e-10, 1e-10,
-    2e-11, 1e-11, 1e-11, 9e-11, 2e-9, 1e-10, 1e-10, 1e-10,
-    2e-6, 1e-6, 1e-6, 1e-6, 5e-6, 1e-6, 1e-6, 1e-6]
+        1e-11,2e-11,2e-11,1e-11,1e-9,1e-10,
+        2e-11,1e-11,1e-11,9e-11,2e-9,1e-10,
+        2e-6,1e-6,1e-6,1e-6,5e-6,1e-6]
 field_values = [
     md.results.TransientSolution[0].Vx,
@@ -174,7 +156,5 @@
     md.results.TransientSolution[0].Thickness,
     md.results.TransientSolution[0].MaskIceLevelset,
-    md.results.TransientSolution[0].CalvingCalvingrate,
     md.results.TransientSolution[0].CalvingMeltingrate,
-    md.results.TransientSolution[0].BasalforcingsFloatingiceMeltingRate,
     md.results.TransientSolution[19].Vx,
     md.results.TransientSolution[19].Vy,
@@ -182,7 +162,5 @@
     md.results.TransientSolution[19].Thickness,
     md.results.TransientSolution[19].MaskIceLevelset,
-    md.results.TransientSolution[19].CalvingCalvingrate,
     md.results.TransientSolution[19].CalvingMeltingrate,
-    md.results.TransientSolution[19].BasalforcingsFloatingiceMeltingRate,
     md.results.TransientSolution[39].Vx,
     md.results.TransientSolution[39].Vy,
@@ -190,5 +168,3 @@
     md.results.TransientSolution[39].Thickness,
     md.results.TransientSolution[39].MaskIceLevelset,
-    md.results.TransientSolution[39].CalvingCalvingrate,
-    md.results.TransientSolution[39].CalvingMeltingrate,
-    md.results.TransientSolution[39].BasalforcingsFloatingiceMeltingRate]
+    md.results.TransientSolution[39].CalvingMeltingrate]
Index: /issm/trunk-jpl/test/NightlyRun/test545.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test545.m	(revision 27411)
+++ /issm/trunk-jpl/test/NightlyRun/test545.m	(revision 27411)
@@ -0,0 +1,127 @@
+%Test Name: PigTranStochasticforcingCovariance
+md=triangle(model(),'../Exp/Pig.exp',10000.);
+md=setmask(md,'../Exp/PigShelves.exp','../Exp/PigIslands.exp');
+md=parameterize(md,'../Par/Pig.par');
+md=setflowequation(md,'SSA','all');
+md.timestepping.start_time = 0;
+md.timestepping.time_step  = 1;
+md.timestepping.final_time = 10;
+
+%Basin separation TF
+idb_tf  = zeros(md.mesh.numberofelements,1);
+iid1    = find(md.mesh.x<=-1.6e6);
+for ii=1:md.mesh.numberofelements
+    for vertex=1:3
+        if any(iid1==md.mesh.elements(ii,vertex)) %one vertex in basin 1
+            idb_tf(ii) = 1;
+        end
+    end
+    if idb_tf(ii)==0 %no vertex was found in basin 1
+        idb_tf(ii) = 2;
+    end
+end
+% Basin separation default
+idb_df = zeros(md.mesh.numberofelements,1);
+iid1   = find(md.mesh.x<=-1.62e6);
+for ii=1:md.mesh.numberofelements
+    for vertex=1:3
+        if any(iid1==md.mesh.elements(ii,vertex)) %one vertex in basin 1
+            idb_df(ii) = 1;
+        end
+    end
+    if idb_df(ii)==0 %no vertex was found in basin 1
+        idb_df(ii) = 2;
+    end
+end
+% Dimensionalities
+nb_tf    = 2;
+nb_clv   = 2;
+nb_flmlt = 2;
+
+%Calving parameters
+md.mask.ice_levelset = 1e4*(md.mask.ice_levelset + 0.5);
+md.calving.calvingrate = 0.3*ones(md.mesh.numberofvertices,1);
+md.levelset.spclevelset = NaN(md.mesh.numberofvertices,1);
+md.levelset.migration_max = 10.0; %avoid fast advance/retreat of the front
+%%% Frontal forcing parameters %%%
+md.frontalforcings=frontalforcingsrignotarma();
+md.frontalforcings.num_basins              = nb_tf;
+md.frontalforcings.basin_id                = idb_tf;
+% Polynomial params %
+md.frontalforcings.num_params        = 1; %only a constant term
+md.frontalforcings.num_breaks        = 0; %no breakpoint
+constval                             = [2.5;0.5];
+md.frontalforcings.polynomialparams  = constval;
+% No monthly effects: do nothing %
+% ARMA model parameters %
+md.frontalforcings.ar_order        = 3;
+md.frontalforcings.ma_order        = 2;
+md.frontalforcings.arma_timestep   = 2; %timestep of the ARMA model [yr]
+md.frontalforcings.arlag_coefs     = [[0.1,-0.1,0.01];[0.2,-0.2,0.1]]; %autoregressive parameters
+md.frontalforcings.malag_coefs     = [[0.1,0.0];[0.0,0.1]]; %moving-average parameters
+% No ARMA model of subglacial discharge: simply specify values at vertices %
+md.frontalforcings.subglacial_discharge = 10*ones(md.mesh.numberofvertices,1);
+
+% Floating Ice Melt parameters
+md.basalforcings.floatingice_melting_rate = 0.1*ones(md.mesh.numberofvertices,1);
+
+
+% Covariance matrix
+covtf       = 1e-4*eye(nb_tf);
+covclv      = 1e-1*eye(nb_clv);
+covclv(1,1) = 1/10*covclv(1,1);
+covflmlt    = 0.05*eye(nb_flmlt);
+covglob     = blkdiag(covtf,covclv,covflmlt);
+
+%Stochastic forcing
+md.stochasticforcing.isstochasticforcing = 1;
+md.stochasticforcing.fields              = [{'FrontalForcingsRignotarma'},{'DefaultCalving'},{'FloatingMeltRate'}];
+md.stochasticforcing.defaultdimension    = 2;
+md.stochasticforcing.default_id          = idb_df;
+md.stochasticforcing.covariance          = covglob; %global covariance among- and between-fields
+md.stochasticforcing.randomflag          = 0; %determines true/false randomness
+
+md.transient.ismovingfront   = 1;
+md.transient.isgroundingline = 1;
+
+md.transient.requested_outputs = {'default','CalvingCalvingrate','CalvingMeltingrate','BasalforcingsFloatingiceMeltingRate'};
+md.cluster=generic('name',oshostname(),'np',2);
+md=solve(md,'Transient');
+
+%Fields and tolerances to track changes
+field_names ={...
+   'Vx1' ,'Vy1' ,'Vel1' ,'Thickness1' , 'MaskIceLevelset1', 'CalvingCalvingrate1', 'CalvingMeltingrate1', 'BasalforcingsFloatingiceMeltingRate1',...
+   'Vx5' ,'Vy5' ,'Vel5' ,'Thickness5' , 'MaskIceLevelset5', 'CalvingCalvingrate5', 'CalvingMeltingrate5', 'BasalforcingsFloatingiceMeltingRate5',...
+   'Vx10' ,'Vy10' ,'Vel10' ,'Thickness10' , 'MaskIceLevelset10', 'CalvingCalvingrate10', 'CalvingMeltingrate10', 'BasalforcingsFloatingiceMeltingRate10',...
+   };
+field_tolerances={...
+   1e-11,2e-11,2e-11,1e-11,1e-9,1e-10,1e-10,1e-10,...
+   2e-11,1e-11,1e-11,9e-11,2e-9,1e-10,1e-10,1e-10,...
+   2e-6,1e-6,1e-6,1e-6,5e-6,1e-6,1e-6,1e-6,...
+   };
+field_values={...
+   (md.results.TransientSolution(1).Vx),...
+   (md.results.TransientSolution(1).Vy),...
+   (md.results.TransientSolution(1).Vel),...
+   (md.results.TransientSolution(1).Thickness),...
+   (md.results.TransientSolution(1).MaskIceLevelset),...
+   (md.results.TransientSolution(1).CalvingCalvingrate),...
+   (md.results.TransientSolution(1).CalvingMeltingrate),...
+   (md.results.TransientSolution(1).BasalforcingsFloatingiceMeltingRate),...
+   (md.results.TransientSolution(5).Vx),...
+   (md.results.TransientSolution(5).Vy),...
+   (md.results.TransientSolution(5).Vel),...
+   (md.results.TransientSolution(5).Thickness),...
+   (md.results.TransientSolution(5).MaskIceLevelset),...
+   (md.results.TransientSolution(5).CalvingCalvingrate),...
+   (md.results.TransientSolution(5).CalvingMeltingrate),...
+   (md.results.TransientSolution(5).BasalforcingsFloatingiceMeltingRate),...
+	(md.results.TransientSolution(10).Vx),...
+	(md.results.TransientSolution(10).Vy),...
+	(md.results.TransientSolution(10).Vel),...
+	(md.results.TransientSolution(10).Thickness),...
+	(md.results.TransientSolution(10).MaskIceLevelset),...
+	(md.results.TransientSolution(10).CalvingCalvingrate),...
+	(md.results.TransientSolution(10).CalvingMeltingrate),...
+	(md.results.TransientSolution(10).BasalforcingsFloatingiceMeltingRate),...
+	};
Index: /issm/trunk-jpl/test/NightlyRun/test545.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test545.py	(revision 27411)
+++ /issm/trunk-jpl/test/NightlyRun/test545.py	(revision 27411)
@@ -0,0 +1,142 @@
+#Test Name: PigTranStochasticforcingCovariance
+import numpy as np
+from frontalforcingsrignotarma import frontalforcingsrignotarma
+from socket import gethostname
+from model import *
+from parameterize import parameterize
+from setflowequation import setflowequation
+from setmask import setmask
+from solve import solve
+from triangle import triangle
+
+
+md = triangle(model(), '../Exp/Pig.exp', 10000)
+md = setmask(md, '../Exp/PigShelves.exp', '../Exp/PigIslands.exp')
+md = parameterize(md, '../Par/Pig.py')
+md = setflowequation(md, 'SSA', 'all')
+md.timestepping.start_time = 0
+md.timestepping.time_step = 1
+md.timestepping.final_time = 10
+
+# Basin separation TF
+idb_tf = np.zeros((md.mesh.numberofelements,))
+iid1 = np.where(md.mesh.x <= -1.6e6)[0]
+for ii in range(md.mesh.numberofelements):
+    for vertex in range(3):
+        if md.mesh.elements[ii][vertex] - 1 in iid1:  # one vertex in basin 1; NOTE: offset because of 1-based vertex indexing
+            idb_tf[ii] = 1
+    if idb_tf[ii] == 0:  # no vertex was found in basin 1
+        for vertex in range(3):
+            idb_tf[ii] = 2
+# Basin separation default
+idb_df = np.zeros((md.mesh.numberofelements,))
+iid1 = np.where(md.mesh.x <= -1.62e6)[0]
+for ii in range(md.mesh.numberofelements):
+    for vertex in range(3):
+        if md.mesh.elements[ii][vertex] - 1 in iid1:  # one vertex in basin 1; NOTE: offset because of 1-based vertex indexing
+            idb_df[ii] = 1
+    if idb_df[ii] == 0:  # no vertex was found in basin 1
+        for vertex in range(3):
+            idb_df[ii] = 2
+#Dimensionalities
+nb_tf = 2
+nb_clv  = 2
+nb_flmlt = 2
+
+# Calving parameters
+md.mask.ice_levelset = 1e4 * (md.mask.ice_levelset + 0.5)
+md.calving.calvingrate = 0.3 * np.ones((md.mesh.numberofvertices,))
+md.levelset.spclevelset = np.full((md.mesh.numberofvertices,), np.nan)
+md.levelset.migration_max = 10.0
+### Frontal forcing parameters ###
+md.frontalforcings = frontalforcingsrignotarma()
+md.frontalforcings.num_basins = nb_tf
+md.frontalforcings.basin_id = idb_tf
+# Polynomial params #
+md.frontalforcings.num_params       = 1 #only a constant term
+md.frontalforcings.num_breaks       = 0 #no breakpoint
+constval                            = np.array([[2.5],[0.5]])
+md.frontalforcings.polynomialparams = np.copy(constval)
+# No monthly effects: do nothing #
+# ARMA model parameters #
+md.frontalforcings.ar_order = 3
+md.frontalforcings.ma_order = 2
+md.frontalforcings.arma_timestep = 2  # timestep of the ARMA model [yr]
+md.frontalforcings.arlag_coefs = np.array([[0.1, -0.1, 0.01], [0.2, -0.2, 0.1]])  # autoregressive parameters
+md.frontalforcings.malag_coefs = np.array([[0.1, 0.0], [0.0, 0.1]])  # moving-average parameters
+# No ARMA model of subglacial discharge: simply specify values at vertices #
+md.frontalforcings.subglacial_discharge = 10 * np.ones((md.mesh.numberofvertices,))
+
+#Floating Ice Melt parameters
+md.basalforcings.floatingice_melting_rate = 0.1 * np.ones((md.mesh.numberofvertices,))
+
+#Covariance matrix
+covtf = 1e-4 * np.identity(nb_tf)
+covclv = 1e-1 * np.identity(nb_clv)
+covclv[0, 0] = 1 / 10 * covclv[0, 0]
+covflmlt = 0.05 * np.identity(nb_flmlt)
+#covglob          = np.zeros([6,6])
+#covglob[0:2,0:2] = covtf
+#covglob[2:4,2:4] = covclv
+#covglob[4:6,4:6] = covflmlt
+
+#Hard-coding covariance matrix because python is complaining
+covglob = np.array([[1e-4, 0., 0., 0., 0., 0.],
+                    [0., 1e-4, 0., 0., 0., 0.],
+                    [0., 0., 1e-2, 0., 0., 0.],
+                    [0., 0., 0., 1e-1, 0., 0.],
+                    [0., 0., 0., 0., 0.05, 0.],
+                    [0., 0., 0., 0., 0., 0.05]])
+#testchol = np.linalg.cholesky(covglob)
+#print(testchol)
+
+# Stochastic forcing
+md.stochasticforcing.isstochasticforcing = 1
+md.stochasticforcing.fields = ['FrontalForcingsRignotarma', 'DefaultCalving', 'FloatingMeltRate']
+md.stochasticforcing.defaultdimension = 2
+md.stochasticforcing.default_id = idb_df
+md.stochasticforcing.covariance = covglob  # global covariance among- and between-fields
+md.stochasticforcing.randomflag = 0  # determines true/false randomness
+
+md.transient.ismovingfront = 1
+md.transient.isgroundingline = 1
+
+md.transient.requested_outputs = ['default', 'CalvingCalvingrate', 'CalvingMeltingrate', 'BasalforcingsFloatingiceMeltingRate']
+md.cluster = generic('name', gethostname(), 'np', 2)
+md = solve(md, 'Transient')
+
+# Fields and tolerances to track changes
+field_names = [
+    'Vx1', 'Vy1', 'Vel1', 'Thickness1', 'MaskIceLevelset1', 'CalvingCalvingrate1', 'CalvingMeltingrate1', 'BasalforcingsFloatingiceMeltingRate1',
+    'Vx5', 'Vy5', 'Vel5', 'Thickness5', 'MaskIceLevelset5', 'CalvingCalvingrate5', 'CalvingMeltingrate5', 'BasalforcingsFloatingiceMeltingRate5',
+    'Vx10', 'Vy10', 'Vel10', 'Thickness10', 'MaskIceLevelset10', 'CalvingCalvingrate10', 'CalvingMeltingrate10', 'BasalforcingsFloatingiceMeltingRate10']
+
+field_tolerances = [
+    1e-11, 2e-11, 2e-11, 1e-11, 1e-9, 1e-10, 1e-10, 1e-10,
+    2e-11, 1e-11, 1e-11, 9e-11, 2e-9, 1e-10, 1e-10, 1e-10,
+    2e-6, 1e-6, 1e-6, 1e-6, 5e-6, 1e-6, 1e-6, 1e-6]
+field_values = [
+    md.results.TransientSolution[0].Vx,
+    md.results.TransientSolution[0].Vy,
+    md.results.TransientSolution[0].Vel,
+    md.results.TransientSolution[0].Thickness,
+    md.results.TransientSolution[0].MaskIceLevelset,
+    md.results.TransientSolution[0].CalvingCalvingrate,
+    md.results.TransientSolution[0].CalvingMeltingrate,
+    md.results.TransientSolution[0].BasalforcingsFloatingiceMeltingRate,
+    md.results.TransientSolution[4].Vx,
+    md.results.TransientSolution[4].Vy,
+    md.results.TransientSolution[4].Vel,
+    md.results.TransientSolution[4].Thickness,
+    md.results.TransientSolution[4].MaskIceLevelset,
+    md.results.TransientSolution[4].CalvingCalvingrate,
+    md.results.TransientSolution[4].CalvingMeltingrate,
+    md.results.TransientSolution[4].BasalforcingsFloatingiceMeltingRate,
+    md.results.TransientSolution[9].Vx,
+    md.results.TransientSolution[9].Vy,
+    md.results.TransientSolution[9].Vel,
+    md.results.TransientSolution[9].Thickness,
+    md.results.TransientSolution[9].MaskIceLevelset,
+    md.results.TransientSolution[9].CalvingCalvingrate,
+    md.results.TransientSolution[9].CalvingMeltingrate,
+    md.results.TransientSolution[9].BasalforcingsFloatingiceMeltingRate]
