Index: /issm/trunk-jpl/src/c/classes/Elements/Element.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 27259)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 27260)
@@ -61,5 +61,115 @@
 	return false;
 }/*}}}*/
-void       Element::ArmaProcess(bool isstepforarma,int arorder,IssmDouble telapsed_arma,IssmDouble tstep_arma,IssmDouble* termconstant,IssmDouble* trend,IssmDouble* arlagcoefs,bool isfieldstochastic,int enum_type){/*{{{*/
+void       Element::ArmaProcess(bool isstepforarma,int arorder,int maorder,IssmDouble telapsed_arma,IssmDouble tstep_arma,IssmDouble* termconstant,IssmDouble* trend,IssmDouble* arlagcoefs,IssmDouble* malagcoefs,bool isfieldstochastic,int enum_type){/*{{{*/
+   const int numvertices = this->GetNumberOfVertices();
+   int         basinid,M,N,arenum_type,maenum_type,basinenum_type,noiseenum_type,outenum_type;
+   IssmDouble  time,dt,starttime,termconstant_basin,trend_basin,noiseterm;
+   IssmDouble* arlagcoefs_basin     = xNew<IssmDouble>(arorder);
+   IssmDouble* malagcoefs_basin     = xNew<IssmDouble>(maorder);
+   IssmDouble* varlist              = xNew<IssmDouble>(numvertices);
+   IssmDouble* valuesautoregression = NULL;
+   IssmDouble* valuesmovingaverage  = NULL;
+   Input*      noiseterm_input      = NULL;
+
+   /*Get field-specific enums*/
+   switch(enum_type){
+      case(SMBarmaEnum):
+         arenum_type    = SmbValuesAutoregressionEnum;
+         maenum_type    = SmbValuesMovingaverageEnum;
+         basinenum_type = SmbBasinsIdEnum;
+         noiseenum_type = SmbARMANoiseEnum;
+         outenum_type   = SmbMassBalanceEnum;
+         break;
+      case(FrontalForcingsRignotarmaEnum):
+         arenum_type    = ThermalforcingValuesAutoregressionEnum;
+         maenum_type    = ThermalforcingValuesMovingaverageEnum;
+         basinenum_type = FrontalForcingsBasinIdEnum;
+         noiseenum_type = ThermalforcingARMANoiseEnum;
+         outenum_type   = FrontalForcingsThermalForcingEnum;
+         break;
+		case(BasalforcingsDeepwaterMeltingRatearmaEnum):
+         arenum_type    = BasalforcingsDeepwaterMeltingRateValuesAutoregressionEnum;
+         maenum_type    = BasalforcingsDeepwaterMeltingRateValuesMovingaverageEnum;
+         basinenum_type = BasalforcingsLinearBasinIdEnum;
+         noiseenum_type = BasalforcingsDeepwaterMeltingRateNoiseEnum;
+         outenum_type   = BasalforcingsSpatialDeepwaterMeltingRateEnum;
+         break;
+   }
+
+	/*Get time parameters*/
+   this->parameters->FindParam(&time,TimeEnum);
+   this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
+   this->parameters->FindParam(&starttime,TimesteppingStartTimeEnum);
+
+   /*Get basin coefficients*/
+   this->GetInputValue(&basinid,basinenum_type);
+	for(int ii=0;ii<arorder;ii++) arlagcoefs_basin[ii] = arlagcoefs[basinid*arorder+ii];
+	for(int ii=0;ii<maorder;ii++) malagcoefs_basin[ii] = malagcoefs[basinid*maorder+ii];
+   termconstant_basin   = termconstant[basinid];
+   trend_basin          = trend[basinid];
+
+	/*Initialze autoregressive and moving-average values at first time step*/
+	if(time<=starttime+dt){
+		IssmDouble* initvaluesautoregression = xNewZeroInit<IssmDouble>(numvertices*arorder);
+		IssmDouble* initvaluesmovingaverage  = xNewZeroInit<IssmDouble>(numvertices*maorder);
+		for(int i=0;i<numvertices*arorder;i++) initvaluesautoregression[i]=termconstant_basin;
+      this->inputs->SetArrayInput(arenum_type,this->lid,initvaluesautoregression,numvertices*arorder);
+      this->inputs->SetArrayInput(maenum_type,this->lid,initvaluesmovingaverage,numvertices*maorder);
+      xDelete<IssmDouble>(initvaluesautoregression);
+      xDelete<IssmDouble>(initvaluesmovingaverage);
+	}
+
+   /*Get noise, autoregressive terms, moving-average terms*/
+	if(isfieldstochastic){
+      noiseterm_input = this->GetInput(noiseenum_type);
+      Gauss* gauss = this->NewGauss();
+      noiseterm_input->GetInputValue(&noiseterm,gauss);
+      delete gauss;
+   }
+   else noiseterm = 0.0;
+   this->inputs->GetArray(arenum_type,this->lid,&valuesautoregression,&M);
+   this->inputs->GetArray(maenum_type,this->lid,&valuesmovingaverage,&M);
+	
+	/*If not ARMA model timestep: take the old values of variable*/
+   if(isstepforarma==false){
+      for(int i=0;i<numvertices;i++) varlist[i]=valuesautoregression[i];
+   }
+   /*If ARMA model timestep: compute variable values on vertices from ARMA*/
+   else{
+      for(int v=0;v<numvertices;v++){
+
+         /*Compute autoregressive term*/
+         IssmDouble autoregressionterm=0.;
+         for(int ii=0;ii<arorder;ii++) autoregressionterm += arlagcoefs_basin[ii]*(valuesautoregression[v+ii*numvertices]-(termconstant_basin+trend_basin*(telapsed_arma-(ii+1)*tstep_arma)));
+         /*Compute moving-average term*/
+         IssmDouble movingaverageterm=0.;
+         for(int ii=0;ii<maorder;ii++) movingaverageterm  += malagcoefs_basin[ii]*valuesmovingaverage[v+ii*numvertices];
+
+			/*Stochastic variable value*/
+         varlist[v] = termconstant_basin+trend_basin*telapsed_arma+autoregressionterm+movingaverageterm+noiseterm;
+      }
+      /*Update autoregression and moving-average values*/
+      IssmDouble* temparrayar = xNew<IssmDouble>(numvertices*arorder);
+      IssmDouble* temparrayma = xNew<IssmDouble>(numvertices*maorder);
+      /*Assign newest values and shift older values*/
+      for(int i=0;i<numvertices;i++) temparrayar[i] = varlist[i];
+      for(int i=0;i<numvertices;i++) temparrayma[i] = noiseterm;
+      for(int i=0;i<(arorder-1)*numvertices;i++) temparrayar[i+numvertices] = valuesautoregression[i];
+      for(int i=0;i<(maorder-1)*numvertices;i++) temparrayma[i+numvertices] = valuesmovingaverage[i];
+		this->inputs->SetArrayInput(arenum_type,this->lid,temparrayar,numvertices*arorder);
+      this->inputs->SetArrayInput(maenum_type,this->lid,temparrayma,numvertices*maorder);
+      xDelete<IssmDouble>(temparrayar);
+      xDelete<IssmDouble>(temparrayma);
+   }
+
+   /*Add input to element*/
+   this->AddInput(outenum_type,varlist,P1Enum);
+
+   /*Cleanup*/
+   xDelete<IssmDouble>(arlagcoefs_basin);
+   xDelete<IssmDouble>(malagcoefs_basin);
+   xDelete<IssmDouble>(varlist);
+   xDelete<IssmDouble>(valuesautoregression);
+   xDelete<IssmDouble>(valuesmovingaverage);
 }/*}}}*/
 void       Element::Autoregression(bool isstepforar,int arorder,IssmDouble telapsed_ar,IssmDouble tstep_ar,IssmDouble* termconstant,IssmDouble* trend,IssmDouble* lagcoefs,bool isfieldstochastic,int enum_type){/*{{{*/
Index: /issm/trunk-jpl/src/c/classes/Elements/Element.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 27259)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 27260)
@@ -68,5 +68,5 @@
 		/*bool               AnyActive(void);*/
 		bool               AnyFSet(void);
-      void               ArmaProcess(bool isstepforarma,int arorder,IssmDouble telapsed_arma,IssmDouble tstep_arma,IssmDouble* termconstant,IssmDouble* trend,IssmDouble* arlagcoefs,bool isfieldstochastic,int enum_type);
+      void               ArmaProcess(bool isstepforarma,int arorder,int maorder,IssmDouble telapsed_arma,IssmDouble tstep_arma,IssmDouble* termconstant,IssmDouble* trend,IssmDouble* arlagcoefs,IssmDouble* malagcoefs,bool isfieldstochastic,int enum_type);
       void               Autoregression(bool isstepforar,int arorder,IssmDouble telapsed_ar,IssmDouble tstep_ar,IssmDouble* termconstant,IssmDouble* trend,IssmDouble* lagcoefs,bool isfieldstochastic,int enum_type);
 		void               BasinLinearFloatingiceMeltingRate(IssmDouble* deepwaterel,IssmDouble* upperwatermelt,IssmDouble* upperwaterel,IssmDouble* perturbation);
Index: /issm/trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp	(revision 27259)
+++ /issm/trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp	(revision 27260)
@@ -231,11 +231,13 @@
    bool isstochastic;
    bool isdeepmeltingstochastic = false;
-   int M,N,Narlags,arorder,numbasins,my_rank;
+   int M,N,Narlagcoefs,Nmalagcoefs,arorder,maorder,numbasins,my_rank;
    femmodel->parameters->FindParam(&numbasins,BasalforcingsLinearNumBasinsEnum);
 	femmodel->parameters->FindParam(&arorder,BasalforcingsARMAarOrderEnum);
+	femmodel->parameters->FindParam(&maorder,BasalforcingsARMAmaOrderEnum);
    IssmDouble tinit_arma;
    IssmDouble* termconstant   = NULL;
    IssmDouble* trend          = NULL;
    IssmDouble* arlagcoefs     = NULL;
+   IssmDouble* malagcoefs     = NULL;
    IssmDouble* deepwaterel    = NULL;
    IssmDouble* upperwaterel   = NULL;
@@ -247,5 +249,6 @@
    femmodel->parameters->FindParam(&termconstant,&M,BasalforcingsARMAconstEnum);              _assert_(M==numbasins);
    femmodel->parameters->FindParam(&trend,&M,BasalforcingsARMAtrendEnum);                     _assert_(M==numbasins);
-   femmodel->parameters->FindParam(&arlagcoefs,&M,&Narlags,BasalforcingsARMAarlagcoefsEnum);  _assert_(M==numbasins); _assert_(Narlags==arorder);
+   femmodel->parameters->FindParam(&arlagcoefs,&M,&Narlagcoefs,BasalforcingsARMAarlagcoefsEnum);  _assert_(M==numbasins); _assert_(Narlagcoefs==arorder);
+   femmodel->parameters->FindParam(&malagcoefs,&M,&Nmalagcoefs,BasalforcingsARMAmalagcoefsEnum);  _assert_(M==numbasins); _assert_(Nmalagcoefs==maorder);
 
 	/*Get basin-specific parameters*/
@@ -272,6 +275,6 @@
    for(Object* &object:femmodel->elements->objects){
       Element* element = xDynamicCast<Element*>(object);
-      /*Compute autoregression*/
-      element->Autoregression(isstepforarma,arorder,telapsed_arma,tstep_arma,termconstant,trend,arlagcoefs,isdeepmeltingstochastic,BasalforcingsDeepwaterMeltingRatearmaEnum);
+      /*Compute ARMA*/
+      element->ArmaProcess(isstepforarma,arorder,maorder,telapsed_arma,tstep_arma,termconstant,trend,arlagcoefs,malagcoefs,isdeepmeltingstochastic,BasalforcingsDeepwaterMeltingRatearmaEnum);
 		element->BasinLinearFloatingiceMeltingRate(deepwaterel,upperwatermelt,upperwaterel,perturbation);
 	}
@@ -281,4 +284,5 @@
 	xDelete<IssmDouble>(trend);
 	xDelete<IssmDouble>(arlagcoefs);
+	xDelete<IssmDouble>(malagcoefs);
 	xDelete<IssmDouble>(deepwaterel);
 	xDelete<IssmDouble>(upperwaterel);
Index: /issm/trunk-jpl/src/c/modules/FrontalForcingsx/FrontalForcingsx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/FrontalForcingsx/FrontalForcingsx.cpp	(revision 27259)
+++ /issm/trunk-jpl/src/c/modules/FrontalForcingsx/FrontalForcingsx.cpp	(revision 27260)
@@ -50,11 +50,13 @@
 	bool isstochastic;
    bool istfstochastic = false;
-	int M,N,Narlagcoefs,arorder,numbasins,my_rank;
+	int M,N,Narlagcoefs,Nmalagcoefs,arorder,maorder,numbasins,my_rank;
    femmodel->parameters->FindParam(&numbasins,FrontalForcingsNumberofBasinsEnum);
    femmodel->parameters->FindParam(&arorder,FrontalForcingsARMAarOrderEnum);
+   femmodel->parameters->FindParam(&maorder,FrontalForcingsARMAarOrderEnum);
    IssmDouble tinit_arma;
    IssmDouble* termconstant  = NULL;
    IssmDouble* trend         = NULL;
    IssmDouble* arlagcoefs    = NULL;
+   IssmDouble* malagcoefs    = NULL;
 
 	femmodel->parameters->FindParam(&tinit_arma,FrontalForcingsARMAInitialTimeEnum);
@@ -62,4 +64,5 @@
    femmodel->parameters->FindParam(&trend,&M,FrontalForcingsARMAtrendEnum);                         _assert_(M==numbasins);
    femmodel->parameters->FindParam(&arlagcoefs,&M,&Narlagcoefs,FrontalForcingsARMAarlagcoefsEnum);  _assert_(M==numbasins); _assert_(Narlagcoefs==arorder);
+   femmodel->parameters->FindParam(&malagcoefs,&M,&Nmalagcoefs,FrontalForcingsARMAmalagcoefsEnum);  _assert_(M==numbasins); _assert_(Nmalagcoefs==maorder);
 
 	femmodel->parameters->FindParam(&isstochastic,StochasticForcingIsStochasticForcingEnum);
@@ -80,5 +83,5 @@
    for(Object* &object:femmodel->elements->objects){
       Element* element = xDynamicCast<Element*>(object);
-      element->Autoregression(isstepforarma,arorder,telapsed_arma,tstep_arma,termconstant,trend,arlagcoefs,istfstochastic,FrontalForcingsRignotarmaEnum);
+      element->ArmaProcess(isstepforarma,arorder,maorder,telapsed_arma,tstep_arma,termconstant,trend,arlagcoefs,malagcoefs,istfstochastic,FrontalForcingsRignotarmaEnum);
    }
 
@@ -87,3 +90,4 @@
    xDelete<IssmDouble>(trend);
    xDelete<IssmDouble>(arlagcoefs);
+   xDelete<IssmDouble>(malagcoefs);
 }/*}}}*/
Index: /issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp	(revision 27259)
+++ /issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp	(revision 27260)
@@ -168,7 +168,8 @@
    bool isstochastic;
    bool issmbstochastic = false;
-   int M,N,Narlagcoefs,arorder,numbasins,numelevbins,my_rank;
+   int M,N,Narlagcoefs,Nmalagcoefs,arorder,maorder,numbasins,numelevbins,my_rank;
    femmodel->parameters->FindParam(&numbasins,SmbNumBasinsEnum);
    femmodel->parameters->FindParam(&arorder,SmbARMAarOrderEnum);
+   femmodel->parameters->FindParam(&maorder,SmbARMAmaOrderEnum);
    femmodel->parameters->FindParam(&numelevbins,SmbNumElevationBinsEnum);
    IssmDouble tinit_arma;
@@ -176,4 +177,5 @@
    IssmDouble* trend         = NULL;
    IssmDouble* arlagcoefs    = NULL;
+   IssmDouble* malagcoefs    = NULL;
    IssmDouble* lapserates    = NULL;
    IssmDouble* elevbins      = NULL;
@@ -184,4 +186,5 @@
    femmodel->parameters->FindParam(&trend,&M,SmbARMAtrendEnum);                          _assert_(M==numbasins);
    femmodel->parameters->FindParam(&arlagcoefs,&M,&Narlagcoefs,SmbARMAarlagcoefsEnum);   _assert_(M==numbasins); _assert_(Narlagcoefs==arorder);
+   femmodel->parameters->FindParam(&malagcoefs,&M,&Nmalagcoefs,SmbARMAmalagcoefsEnum);   _assert_(M==numbasins); _assert_(Nmalagcoefs==maorder);
    femmodel->parameters->FindParam(&lapserates,&M,&N,SmbLapseRatesEnum);                 _assert_(M==numbasins); _assert_(N==numelevbins);
    femmodel->parameters->FindParam(&elevbins,&M,&N,SmbElevationBinsEnum);                _assert_(M==numbasins); _assert_(N==numelevbins-1);
@@ -206,5 +209,5 @@
       Element* element = xDynamicCast<Element*>(object);
       /*Compute ARMA*/
-		element->Autoregression(isstepforarma,arorder,telapsed_arma,tstep_arma,termconstant,trend,arlagcoefs,issmbstochastic,SMBarmaEnum);
+		element->ArmaProcess(isstepforarma,arorder,maorder,telapsed_arma,tstep_arma,termconstant,trend,arlagcoefs,malagcoefs,issmbstochastic,SMBarmaEnum);
 		/*Compute lapse rate adjustment*/
 		element->LapseRateBasinSMB(numelevbins,lapserates,elevbins,refelevation);
@@ -215,4 +218,5 @@
    xDelete<IssmDouble>(trend);
    xDelete<IssmDouble>(arlagcoefs);
+   xDelete<IssmDouble>(malagcoefs);
    xDelete<IssmDouble>(lapserates);
    xDelete<IssmDouble>(elevbins);
Index: /issm/trunk-jpl/src/c/shared/Enum/Enum.vim
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/Enum.vim	(revision 27259)
+++ /issm/trunk-jpl/src/c/shared/Enum/Enum.vim	(revision 27260)
@@ -125,4 +125,6 @@
 syn keyword cConstant CalvingYoffsetEnum
 syn keyword cConstant CalvingVelLowerboundEnum
+syn keyword cConstant CalvingVelMaxEnum
+syn keyword cConstant CalvingVelThresholdEnum
 syn keyword cConstant CalvingVelUpperboundEnum
 syn keyword cConstant ConfigurationTypeEnum
@@ -640,4 +642,5 @@
 syn keyword cConstant BasalforcingsDeepwaterMeltingRateNoiseEnum
 syn keyword cConstant BasalforcingsDeepwaterMeltingRateValuesAutoregressionEnum
+syn keyword cConstant BasalforcingsDeepwaterMeltingRateValuesMovingaverageEnum
 syn keyword cConstant BasalforcingsFloatingiceMeltingRateEnum
 syn keyword cConstant BasalforcingsGeothermalfluxEnum
@@ -1102,4 +1105,5 @@
 syn keyword cConstant ThermalforcingARMANoiseEnum
 syn keyword cConstant ThermalforcingValuesAutoregressionEnum
+syn keyword cConstant ThermalforcingValuesMovingaverageEnum
 syn keyword cConstant ThermalSpctemperatureEnum
 syn keyword cConstant ThicknessAbsGradientEnum
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 27259)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 27260)
@@ -638,4 +638,5 @@
 	BasalforcingsDeepwaterMeltingRateNoiseEnum,
 	BasalforcingsDeepwaterMeltingRateValuesAutoregressionEnum,
+	BasalforcingsDeepwaterMeltingRateValuesMovingaverageEnum,
 	BasalforcingsFloatingiceMeltingRateEnum,
 	BasalforcingsGeothermalfluxEnum,
@@ -1101,4 +1102,5 @@
    ThermalforcingARMANoiseEnum,
 	ThermalforcingValuesAutoregressionEnum,
+	ThermalforcingValuesMovingaverageEnum,
 	ThermalSpctemperatureEnum,
 	ThicknessAbsGradientEnum,
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 27259)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 27260)
@@ -127,4 +127,6 @@
 		case CalvingYoffsetEnum : return "CalvingYoffset";
 		case CalvingVelLowerboundEnum : return "CalvingVelLowerbound";
+		case CalvingVelMaxEnum : return "CalvingVelMax";
+		case CalvingVelThresholdEnum : return "CalvingVelThreshold";
 		case CalvingVelUpperboundEnum : return "CalvingVelUpperbound";
 		case ConfigurationTypeEnum : return "ConfigurationType";
@@ -642,4 +644,5 @@
 		case BasalforcingsDeepwaterMeltingRateNoiseEnum : return "BasalforcingsDeepwaterMeltingRateNoise";
 		case BasalforcingsDeepwaterMeltingRateValuesAutoregressionEnum : return "BasalforcingsDeepwaterMeltingRateValuesAutoregression";
+		case BasalforcingsDeepwaterMeltingRateValuesMovingaverageEnum : return "BasalforcingsDeepwaterMeltingRateValuesMovingaverage";
 		case BasalforcingsFloatingiceMeltingRateEnum : return "BasalforcingsFloatingiceMeltingRate";
 		case BasalforcingsGeothermalfluxEnum : return "BasalforcingsGeothermalflux";
@@ -1104,4 +1107,5 @@
 		case ThermalforcingARMANoiseEnum : return "ThermalforcingARMANoise";
 		case ThermalforcingValuesAutoregressionEnum : return "ThermalforcingValuesAutoregression";
+		case ThermalforcingValuesMovingaverageEnum : return "ThermalforcingValuesMovingaverage";
 		case ThermalSpctemperatureEnum : return "ThermalSpctemperature";
 		case ThicknessAbsGradientEnum : return "ThicknessAbsGradient";
Index: /issm/trunk-jpl/src/c/shared/Enum/Enumjl.vim
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/Enumjl.vim	(revision 27259)
+++ /issm/trunk-jpl/src/c/shared/Enum/Enumjl.vim	(revision 27260)
@@ -118,4 +118,6 @@
 syn keyword juliaConstC CalvingYoffsetEnum
 syn keyword juliaConstC CalvingVelLowerboundEnum
+syn keyword juliaConstC CalvingVelMaxEnum
+syn keyword juliaConstC CalvingVelThresholdEnum
 syn keyword juliaConstC CalvingVelUpperboundEnum
 syn keyword juliaConstC ConfigurationTypeEnum
@@ -633,4 +635,5 @@
 syn keyword juliaConstC BasalforcingsDeepwaterMeltingRateNoiseEnum
 syn keyword juliaConstC BasalforcingsDeepwaterMeltingRateValuesAutoregressionEnum
+syn keyword juliaConstC BasalforcingsDeepwaterMeltingRateValuesMovingaverageEnum
 syn keyword juliaConstC BasalforcingsFloatingiceMeltingRateEnum
 syn keyword juliaConstC BasalforcingsGeothermalfluxEnum
@@ -1095,4 +1098,5 @@
 syn keyword juliaConstC ThermalforcingARMANoiseEnum
 syn keyword juliaConstC ThermalforcingValuesAutoregressionEnum
+syn keyword juliaConstC ThermalforcingValuesMovingaverageEnum
 syn keyword juliaConstC ThermalSpctemperatureEnum
 syn keyword juliaConstC ThicknessAbsGradientEnum
Index: /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 27259)
+++ /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 27260)
@@ -127,4 +127,6 @@
 	      else if (strcmp(name,"CalvingYoffset")==0) return CalvingYoffsetEnum;
 	      else if (strcmp(name,"CalvingVelLowerbound")==0) return CalvingVelLowerboundEnum;
+	      else if (strcmp(name,"CalvingVelMax")==0) return CalvingVelMaxEnum;
+	      else if (strcmp(name,"CalvingVelThreshold")==0) return CalvingVelThresholdEnum;
 	      else if (strcmp(name,"CalvingVelUpperbound")==0) return CalvingVelUpperboundEnum;
 	      else if (strcmp(name,"ConfigurationType")==0) return ConfigurationTypeEnum;
@@ -135,10 +137,10 @@
 	      else if (strcmp(name,"ControlInputSizeM")==0) return ControlInputSizeMEnum;
 	      else if (strcmp(name,"ControlInputSizeN")==0) return ControlInputSizeNEnum;
-	      else if (strcmp(name,"ControlInputInterpolation")==0) return ControlInputInterpolationEnum;
-	      else if (strcmp(name,"CumBslc")==0) return CumBslcEnum;
          else stage=2;
    }
    if(stage==2){
-	      if (strcmp(name,"CumBslcIce")==0) return CumBslcIceEnum;
+	      if (strcmp(name,"ControlInputInterpolation")==0) return ControlInputInterpolationEnum;
+	      else if (strcmp(name,"CumBslc")==0) return CumBslcEnum;
+	      else if (strcmp(name,"CumBslcIce")==0) return CumBslcIceEnum;
 	      else if (strcmp(name,"CumBslcHydro")==0) return CumBslcHydroEnum;
 	      else if (strcmp(name,"CumBslcOcean")==0) return CumBslcOceanEnum;
@@ -258,10 +260,10 @@
 	      else if (strcmp(name,"HydrologydcUnconfinedFlag")==0) return HydrologydcUnconfinedFlagEnum;
 	      else if (strcmp(name,"HydrologyshreveStabilization")==0) return HydrologyshreveStabilizationEnum;
-	      else if (strcmp(name,"IcecapToEarthComm")==0) return IcecapToEarthCommEnum;
-	      else if (strcmp(name,"Index")==0) return IndexEnum;
          else stage=3;
    }
    if(stage==3){
-	      if (strcmp(name,"InputFileName")==0) return InputFileNameEnum;
+	      if (strcmp(name,"IcecapToEarthComm")==0) return IcecapToEarthCommEnum;
+	      else if (strcmp(name,"Index")==0) return IndexEnum;
+	      else if (strcmp(name,"InputFileName")==0) return InputFileNameEnum;
 	      else if (strcmp(name,"DirectoryName")==0) return DirectoryNameEnum;
 	      else if (strcmp(name,"Indices")==0) return IndicesEnum;
@@ -381,10 +383,10 @@
 	      else if (strcmp(name,"QmuVariablePartitionsNpart")==0) return QmuVariablePartitionsNpartEnum;
 	      else if (strcmp(name,"QmuVariablePartitionsNt")==0) return QmuVariablePartitionsNtEnum;
-	      else if (strcmp(name,"QmuResponsePartitions")==0) return QmuResponsePartitionsEnum;
-	      else if (strcmp(name,"QmuResponsePartitionsNpart")==0) return QmuResponsePartitionsNpartEnum;
          else stage=4;
    }
    if(stage==4){
-	      if (strcmp(name,"QmuStatistics")==0) return QmuStatisticsEnum;
+	      if (strcmp(name,"QmuResponsePartitions")==0) return QmuResponsePartitionsEnum;
+	      else if (strcmp(name,"QmuResponsePartitionsNpart")==0) return QmuResponsePartitionsNpartEnum;
+	      else if (strcmp(name,"QmuStatistics")==0) return QmuStatisticsEnum;
 	      else if (strcmp(name,"QmuNumstatistics")==0) return QmuNumstatisticsEnum;
 	      else if (strcmp(name,"QmuNdirectories")==0) return QmuNdirectoriesEnum;
@@ -504,10 +506,10 @@
 	      else if (strcmp(name,"SmbDelta18oSurface")==0) return SmbDelta18oSurfaceEnum;
 	      else if (strcmp(name,"SmbDenIdx")==0) return SmbDenIdxEnum;
-	      else if (strcmp(name,"SmbDt")==0) return SmbDtEnum;
-	      else if (strcmp(name,"Smb")==0) return SmbEnum;
          else stage=5;
    }
    if(stage==5){
-	      if (strcmp(name,"SmbEIdx")==0) return SmbEIdxEnum;
+	      if (strcmp(name,"SmbDt")==0) return SmbDtEnum;
+	      else if (strcmp(name,"Smb")==0) return SmbEnum;
+	      else if (strcmp(name,"SmbEIdx")==0) return SmbEIdxEnum;
 	      else if (strcmp(name,"SmbF")==0) return SmbFEnum;
 	      else if (strcmp(name,"SmbInitDensityScaling")==0) return SmbInitDensityScalingEnum;
@@ -627,10 +629,10 @@
 	      else if (strcmp(name,"Zze")==0) return ZzeEnum;
 	      else if (strcmp(name,"Areae")==0) return AreaeEnum;
-	      else if (strcmp(name,"WorldComm")==0) return WorldCommEnum;
-	      else if (strcmp(name,"ParametersEND")==0) return ParametersENDEnum;
          else stage=6;
    }
    if(stage==6){
-	      if (strcmp(name,"InputsSTART")==0) return InputsSTARTEnum;
+	      if (strcmp(name,"WorldComm")==0) return WorldCommEnum;
+	      else if (strcmp(name,"ParametersEND")==0) return ParametersENDEnum;
+	      else if (strcmp(name,"InputsSTART")==0) return InputsSTARTEnum;
 	      else if (strcmp(name,"AccumulatedDeltaBottomPressure")==0) return AccumulatedDeltaBottomPressureEnum;
 	      else if (strcmp(name,"AccumulatedDeltaIceThickness")==0) return AccumulatedDeltaIceThicknessEnum;
@@ -657,4 +659,5 @@
 	      else if (strcmp(name,"BasalforcingsDeepwaterMeltingRateNoise")==0) return BasalforcingsDeepwaterMeltingRateNoiseEnum;
 	      else if (strcmp(name,"BasalforcingsDeepwaterMeltingRateValuesAutoregression")==0) return BasalforcingsDeepwaterMeltingRateValuesAutoregressionEnum;
+	      else if (strcmp(name,"BasalforcingsDeepwaterMeltingRateValuesMovingaverage")==0) return BasalforcingsDeepwaterMeltingRateValuesMovingaverageEnum;
 	      else if (strcmp(name,"BasalforcingsFloatingiceMeltingRate")==0) return BasalforcingsFloatingiceMeltingRateEnum;
 	      else if (strcmp(name,"BasalforcingsGeothermalflux")==0) return BasalforcingsGeothermalfluxEnum;
@@ -749,11 +752,11 @@
 	      else if (strcmp(name,"Dummy")==0) return DummyEnum;
 	      else if (strcmp(name,"EffectivePressure")==0) return EffectivePressureEnum;
-	      else if (strcmp(name,"EffectivePressureSubstep")==0) return EffectivePressureSubstepEnum;
-	      else if (strcmp(name,"EffectivePressureTransient")==0) return EffectivePressureTransientEnum;
-	      else if (strcmp(name,"Enthalpy")==0) return EnthalpyEnum;
          else stage=7;
    }
    if(stage==7){
-	      if (strcmp(name,"EnthalpyPicard")==0) return EnthalpyPicardEnum;
+	      if (strcmp(name,"EffectivePressureSubstep")==0) return EffectivePressureSubstepEnum;
+	      else if (strcmp(name,"EffectivePressureTransient")==0) return EffectivePressureTransientEnum;
+	      else if (strcmp(name,"Enthalpy")==0) return EnthalpyEnum;
+	      else if (strcmp(name,"EnthalpyPicard")==0) return EnthalpyPicardEnum;
 	      else if (strcmp(name,"EplHead")==0) return EplHeadEnum;
 	      else if (strcmp(name,"EplHeadOld")==0) return EplHeadOldEnum;
@@ -872,11 +875,11 @@
 	      else if (strcmp(name,"MovingFrontalVy")==0) return MovingFrontalVyEnum;
 	      else if (strcmp(name,"Neumannflux")==0) return NeumannfluxEnum;
-	      else if (strcmp(name,"NewDamage")==0) return NewDamageEnum;
-	      else if (strcmp(name,"Node")==0) return NodeEnum;
-	      else if (strcmp(name,"OmegaAbsGradient")==0) return OmegaAbsGradientEnum;
          else stage=8;
    }
    if(stage==8){
-	      if (strcmp(name,"OceantransportSpcbottompressure")==0) return OceantransportSpcbottompressureEnum;
+	      if (strcmp(name,"NewDamage")==0) return NewDamageEnum;
+	      else if (strcmp(name,"Node")==0) return NodeEnum;
+	      else if (strcmp(name,"OmegaAbsGradient")==0) return OmegaAbsGradientEnum;
+	      else if (strcmp(name,"OceantransportSpcbottompressure")==0) return OceantransportSpcbottompressureEnum;
 	      else if (strcmp(name,"OceantransportSpcstr")==0) return OceantransportSpcstrEnum;
 	      else if (strcmp(name,"OceantransportSpcdsl")==0) return OceantransportSpcdslEnum;
@@ -995,11 +998,11 @@
 	      else if (strcmp(name,"SmbD")==0) return SmbDEnum;
 	      else if (strcmp(name,"SmbDailyairdensity")==0) return SmbDailyairdensityEnum;
-	      else if (strcmp(name,"SmbDailyairhumidity")==0) return SmbDailyairhumidityEnum;
-	      else if (strcmp(name,"SmbDailydlradiation")==0) return SmbDailydlradiationEnum;
-	      else if (strcmp(name,"SmbDailydsradiation")==0) return SmbDailydsradiationEnum;
          else stage=9;
    }
    if(stage==9){
-	      if (strcmp(name,"SmbDailypressure")==0) return SmbDailypressureEnum;
+	      if (strcmp(name,"SmbDailyairhumidity")==0) return SmbDailyairhumidityEnum;
+	      else if (strcmp(name,"SmbDailydlradiation")==0) return SmbDailydlradiationEnum;
+	      else if (strcmp(name,"SmbDailydsradiation")==0) return SmbDailydsradiationEnum;
+	      else if (strcmp(name,"SmbDailypressure")==0) return SmbDailypressureEnum;
 	      else if (strcmp(name,"SmbDailyrainfall")==0) return SmbDailyrainfallEnum;
 	      else if (strcmp(name,"SmbDailysnowfall")==0) return SmbDailysnowfallEnum;
@@ -1118,11 +1121,11 @@
 	      else if (strcmp(name,"SurfaceLogVelMisfit")==0) return SurfaceLogVelMisfitEnum;
 	      else if (strcmp(name,"SurfaceLogVxVyMisfit")==0) return SurfaceLogVxVyMisfitEnum;
-	      else if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum;
-	      else if (strcmp(name,"SurfaceRelVelMisfit")==0) return SurfaceRelVelMisfitEnum;
-	      else if (strcmp(name,"SurfaceSlopeX")==0) return SurfaceSlopeXEnum;
          else stage=10;
    }
    if(stage==10){
-	      if (strcmp(name,"SurfaceSlopeY")==0) return SurfaceSlopeYEnum;
+	      if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum;
+	      else if (strcmp(name,"SurfaceRelVelMisfit")==0) return SurfaceRelVelMisfitEnum;
+	      else if (strcmp(name,"SurfaceSlopeX")==0) return SurfaceSlopeXEnum;
+	      else if (strcmp(name,"SurfaceSlopeY")==0) return SurfaceSlopeYEnum;
 	      else if (strcmp(name,"Temperature")==0) return TemperatureEnum;
 	      else if (strcmp(name,"TemperaturePDD")==0) return TemperaturePDDEnum;
@@ -1131,4 +1134,5 @@
 	      else if (strcmp(name,"ThermalforcingARMANoise")==0) return ThermalforcingARMANoiseEnum;
 	      else if (strcmp(name,"ThermalforcingValuesAutoregression")==0) return ThermalforcingValuesAutoregressionEnum;
+	      else if (strcmp(name,"ThermalforcingValuesMovingaverage")==0) return ThermalforcingValuesMovingaverageEnum;
 	      else if (strcmp(name,"ThermalSpctemperature")==0) return ThermalSpctemperatureEnum;
 	      else if (strcmp(name,"ThicknessAbsGradient")==0) return ThicknessAbsGradientEnum;
@@ -1240,12 +1244,12 @@
 	      else if (strcmp(name,"Outputdefinition70")==0) return Outputdefinition70Enum;
 	      else if (strcmp(name,"Outputdefinition71")==0) return Outputdefinition71Enum;
-	      else if (strcmp(name,"Outputdefinition72")==0) return Outputdefinition72Enum;
+         else stage=11;
+   }
+   if(stage==11){
+	      if (strcmp(name,"Outputdefinition72")==0) return Outputdefinition72Enum;
 	      else if (strcmp(name,"Outputdefinition73")==0) return Outputdefinition73Enum;
 	      else if (strcmp(name,"Outputdefinition74")==0) return Outputdefinition74Enum;
 	      else if (strcmp(name,"Outputdefinition75")==0) return Outputdefinition75Enum;
-         else stage=11;
-   }
-   if(stage==11){
-	      if (strcmp(name,"Outputdefinition76")==0) return Outputdefinition76Enum;
+	      else if (strcmp(name,"Outputdefinition76")==0) return Outputdefinition76Enum;
 	      else if (strcmp(name,"Outputdefinition77")==0) return Outputdefinition77Enum;
 	      else if (strcmp(name,"Outputdefinition78")==0) return Outputdefinition78Enum;
@@ -1363,12 +1367,12 @@
 	      else if (strcmp(name,"EnthalpyAnalysis")==0) return EnthalpyAnalysisEnum;
 	      else if (strcmp(name,"EsaAnalysis")==0) return EsaAnalysisEnum;
-	      else if (strcmp(name,"EsaSolution")==0) return EsaSolutionEnum;
+         else stage=12;
+   }
+   if(stage==12){
+	      if (strcmp(name,"EsaSolution")==0) return EsaSolutionEnum;
 	      else if (strcmp(name,"EsaTransitions")==0) return EsaTransitionsEnum;
 	      else if (strcmp(name,"ExternalResult")==0) return ExternalResultEnum;
 	      else if (strcmp(name,"ExtrapolationAnalysis")==0) return ExtrapolationAnalysisEnum;
-         else stage=12;
-   }
-   if(stage==12){
-	      if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum;
+	      else if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum;
 	      else if (strcmp(name,"ExtrudeFromTopAnalysis")==0) return ExtrudeFromTopAnalysisEnum;
 	      else if (strcmp(name,"FSApproximation")==0) return FSApproximationEnum;
@@ -1486,12 +1490,12 @@
 	      else if (strcmp(name,"MasstransportSolution")==0) return MasstransportSolutionEnum;
 	      else if (strcmp(name,"Matdamageice")==0) return MatdamageiceEnum;
-	      else if (strcmp(name,"Matenhancedice")==0) return MatenhancediceEnum;
+         else stage=13;
+   }
+   if(stage==13){
+	      if (strcmp(name,"Matenhancedice")==0) return MatenhancediceEnum;
 	      else if (strcmp(name,"Materials")==0) return MaterialsEnum;
 	      else if (strcmp(name,"Matestar")==0) return MatestarEnum;
 	      else if (strcmp(name,"Matice")==0) return MaticeEnum;
-         else stage=13;
-   }
-   if(stage==13){
-	      if (strcmp(name,"Matlitho")==0) return MatlithoEnum;
+	      else if (strcmp(name,"Matlitho")==0) return MatlithoEnum;
 	      else if (strcmp(name,"Mathydro")==0) return MathydroEnum;
 	      else if (strcmp(name,"MatrixParam")==0) return MatrixParamEnum;
@@ -1609,12 +1613,12 @@
 	      else if (strcmp(name,"SpcDynamic")==0) return SpcDynamicEnum;
 	      else if (strcmp(name,"SpcStatic")==0) return SpcStaticEnum;
-	      else if (strcmp(name,"SpcTransient")==0) return SpcTransientEnum;
+         else stage=14;
+   }
+   if(stage==14){
+	      if (strcmp(name,"SpcTransient")==0) return SpcTransientEnum;
 	      else if (strcmp(name,"Sset")==0) return SsetEnum;
 	      else if (strcmp(name,"StatisticsSolution")==0) return StatisticsSolutionEnum;
 	      else if (strcmp(name,"SteadystateSolution")==0) return SteadystateSolutionEnum;
-         else stage=14;
-   }
-   if(stage==14){
-	      if (strcmp(name,"StressIntensityFactor")==0) return StressIntensityFactorEnum;
+	      else if (strcmp(name,"StressIntensityFactor")==0) return StressIntensityFactorEnum;
 	      else if (strcmp(name,"StressbalanceAnalysis")==0) return StressbalanceAnalysisEnum;
 	      else if (strcmp(name,"StressbalanceConvergenceNumSteps")==0) return StressbalanceConvergenceNumStepsEnum;
Index: /issm/trunk-jpl/src/m/classes/SMBarma.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/SMBarma.m	(revision 27259)
+++ /issm/trunk-jpl/src/m/classes/SMBarma.m	(revision 27260)
@@ -135,5 +135,4 @@
 		function marshall(self,prefix,md,fid) % {{{
 
-			disp('ARMA is still under development');
 			yts=md.constants.yts;
 
Index: /issm/trunk-jpl/src/m/classes/SMBarma.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/SMBarma.py	(revision 27259)
+++ /issm/trunk-jpl/src/m/classes/SMBarma.py	(revision 27260)
@@ -148,5 +148,4 @@
 
     def marshall(self, prefix, md, fid):  # {{{
-        print('ARMA is still under development')
         yts = md.constants.yts
 
Index: /issm/trunk-jpl/src/m/classes/frontalforcingsrignotarma.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/frontalforcingsrignotarma.m	(revision 27259)
+++ /issm/trunk-jpl/src/m/classes/frontalforcingsrignotarma.m	(revision 27260)
@@ -81,5 +81,4 @@
 		end % }}}
 		function marshall(self,prefix,md,fid) % {{{
-			disp('ARMA is still under development');
 			yts=md.constants.yts;
 			WriteData(fid,prefix,'name','md.frontalforcings.parameterization','data',3,'format','Integer');
Index: /issm/trunk-jpl/src/m/classes/frontalforcingsrignotarma.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/frontalforcingsrignotarma.py	(revision 27259)
+++ /issm/trunk-jpl/src/m/classes/frontalforcingsrignotarma.py	(revision 27260)
@@ -83,5 +83,4 @@
 
     def marshall(self, prefix, md, fid):  # {{{
-        print('ARMA is still under development')
         yts = md.constants.yts
         WriteData(fid, prefix, 'name', 'md.frontalforcings.parameterization', 'data', 3, 'format', 'Integer')
Index: /issm/trunk-jpl/src/m/classes/linearbasalforcingsarma.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/linearbasalforcingsarma.m	(revision 27259)
+++ /issm/trunk-jpl/src/m/classes/linearbasalforcingsarma.m	(revision 27260)
@@ -128,5 +128,4 @@
 		function marshall(self,prefix,md,fid) % {{{
 
-			disp('ARMA is still under development');
 			yts=md.constants.yts;
 
Index: /issm/trunk-jpl/test/NightlyRun/test257.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test257.m	(revision 27259)
+++ /issm/trunk-jpl/test/NightlyRun/test257.m	(revision 27260)
@@ -46,5 +46,5 @@
 md.smb.arma_timestep       = 2.0; %timestep of the ARMA model [yr]
 md.smb.arlag_coefs         = [[0.2,0.1,0.05,0.01];[0.4,0.2,-0.2,0.1];[0.4,-0.4,0.1,-0.1]];
-md.smb.malag_coefs         = [0;0;0];
+md.smb.malag_coefs         = [1.0;0;0.2];
 md.smb.lapserates          = [0.01,0.0;0.01,-0.01;0.0,-0.01];
 md.smb.elevationbins       = [100;150;100];
Index: /issm/trunk-jpl/test/NightlyRun/test257.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test257.py	(revision 27259)
+++ /issm/trunk-jpl/test/NightlyRun/test257.py	(revision 27260)
@@ -51,5 +51,5 @@
 md.smb.arma_timestep = 2.0  #timestep of the ARMA model [yr]
 md.smb.arlag_coefs = np.array([[0.2, 0.1, 0.05, 0.01], [0.4, 0.2, -0.2, 0.1], [0.4, -0.4, 0.1, -0.1]])
-md.smb.malag_coefs = np.array([[0],[0],[0]])
+md.smb.malag_coefs = np.array([[1.0],[0],[0.2]])
 md.smb.lapserates        = np.array([[0.01,0.0],[0.01,-0.01],[0.0,-0.01]])
 md.smb.elevationbins  = np.array([100,150,100]).reshape(md.smb.num_basins,1)
Index: /issm/trunk-jpl/test/NightlyRun/test543.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test543.m	(revision 27259)
+++ /issm/trunk-jpl/test/NightlyRun/test543.m	(revision 27260)
@@ -48,7 +48,7 @@
 md.frontalforcings.num_basins           = nb_tf;
 md.frontalforcings.basin_id             = idb_tf;
-md.frontalforcings.subglacial_discharge = 0.1*ones(md.mesh.numberofvertices,1);
-md.frontalforcings.const                = [0.05,0.01]; %intercept values of TF in basins [C]
-md.frontalforcings.trend                = [0.001,0.0001]; %trend values of TF in basins [C/yr]
+md.frontalforcings.subglacial_discharge = 0.01*ones(md.mesh.numberofvertices,1);
+md.frontalforcings.const                = [0.005,0.001]; %intercept values of TF in basins [C]
+md.frontalforcings.trend                = [0.0001,0.00001]; %trend values of TF in basins [C/yr]
 md.frontalforcings.arma_initialtime     = md.timestepping.start_time; %initial time in the AR model parameterization [yr]
 md.frontalforcings.ar_order             = 4;
@@ -56,5 +56,5 @@
 md.frontalforcings.arma_timestep        = 2; %timestep of the ARMA model [yr]
 md.frontalforcings.arlag_coefs          = [[0.1,-0.1,0.01,-0.01];[0.2,-0.2,0.1,0.0]]; %autoregressive parameters
-md.frontalforcings.malag_coefs          = [[0.0,0.0];[0.0,0.0]]; %moving-average parameters
+md.frontalforcings.malag_coefs          = [[0.1,0.0];[0.0,0.1]]; %moving-average parameters
 
 % Floating Ice Melt parameters
@@ -62,5 +62,5 @@
 
 % Covariance matrix
-covtf       = 1e-4*eye(nb_tf);
+covtf       = 1e-5*eye(nb_tf);
 covclv      = 1e-1*eye(nb_clv);
 covclv(1,1) = 1/10*covclv(1,1);
@@ -86,5 +86,5 @@
 field_names ={...
    'Vx1' ,'Vy1' ,'Vel1' ,'Thickness1' ,'MaskIceLevelset1' ,'CalvingCalvingrate1' ,'CalvingMeltingrate1' ,'BasalforcingsFloatingiceMeltingRate1',...
-   'Vx2' ,'Vy2' ,'Vel2' ,'Thickness2' ,'MaskIceLevelset2' ,'CalvingCalvingrate1' ,'CalvingMeltingrate2' ,'BasalforcingsFloatingiceMeltingRate2',...
+   'Vx2' ,'Vy2' ,'Vel2' ,'Thickness2' ,'MaskIceLevelset2' ,'CalvingCalvingrate2' ,'CalvingMeltingrate2' ,'BasalforcingsFloatingiceMeltingRate2',...
    'Vx10','Vy10','Vel10','Thickness10','MaskIceLevelset10','CalvingCalvingrate10','CalvingMeltingrate10','BasalforcingsFloatingiceMeltingRate10',...
    };
Index: /issm/trunk-jpl/test/NightlyRun/test543.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test543.py	(revision 27259)
+++ /issm/trunk-jpl/test/NightlyRun/test543.py	(revision 27260)
@@ -53,7 +53,7 @@
 md.frontalforcings.num_basins = nb_tf
 md.frontalforcings.basin_id = idb_tf
-md.frontalforcings.subglacial_discharge = 0.1 * np.ones((md.mesh.numberofvertices,))
-md.frontalforcings.const = np.array([[0.05, 0.01]])  # intercept values of TF in basins [C]
-md.frontalforcings.trend = np.array([[0.001, 0.0001]])  # trend values of TF in basins [C/yr]
+md.frontalforcings.subglacial_discharge = 0.01 * np.ones((md.mesh.numberofvertices,))
+md.frontalforcings.const = np.array([[0.005, 0.001]])  # intercept values of TF in basins [C]
+md.frontalforcings.trend = np.array([[0.0001, 0.00001]])  # trend values of TF in basins [C/yr]
 md.frontalforcings.arma_initialtime = md.timestepping.start_time  # initial time in the AR model parameterization [yr]
 md.frontalforcings.ar_order = 4
@@ -61,5 +61,5 @@
 md.frontalforcings.arma_timestep = 2  # timestep of the ARMA model [yr]
 md.frontalforcings.arlag_coefs = np.array([[0.1, -0.1, 0.01, -0.01], [0.2, -0.2, 0.1, 0.0]])  # autoregressive parameters
-md.frontalforcings.malag_coefs = np.array([[0.0, 0.0], [0.0, 0.0]])  # moving-average parameters
+md.frontalforcings.malag_coefs = np.array([[0.1, 0.0], [0.0, 0.1]])  # moving-average parameters
 #Floating Ice Melt parameters
 md.basalforcings.floatingice_melting_rate = 0.1 * np.ones((md.mesh.numberofvertices,))
@@ -76,6 +76,6 @@
 
 #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.],
+covglob = np.array([[1e-5, 0., 0., 0., 0., 0.],
+                    [0., 1e-5, 0., 0., 0., 0.],
                     [0., 0., 1e-2, 0., 0., 0.],
                     [0., 0., 0., 1e-1, 0., 0.],
@@ -103,5 +103,5 @@
 field_names = [
     'Vx1', 'Vy1', 'Vel1', 'Thickness1', 'MaskIceLevelset1', 'CalvingCalvingrate1', 'CalvingMeltingrate1', 'BasalforcingsFloatingiceMeltingRate1',
-    'Vx2', 'Vy2', 'Vel2', 'Thickness2', 'MaskIceLevelset2', 'CalvingCalvingrate1', 'CalvingMeltingrate2', 'BasalforcingsFloatingiceMeltingRate2',
+    'Vx2', 'Vy2', 'Vel2', 'Thickness2', 'MaskIceLevelset2', 'CalvingCalvingrate2', 'CalvingMeltingrate2', 'BasalforcingsFloatingiceMeltingRate2',
     'Vx10', 'Vy10', 'Vel10', 'Thickness10', 'MaskIceLevelset10', 'CalvingCalvingrate10', 'CalvingMeltingrate10', 'BasalforcingsFloatingiceMeltingRate10']
 
Index: /issm/trunk-jpl/test/NightlyRun/test544.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test544.m	(revision 27259)
+++ /issm/trunk-jpl/test/NightlyRun/test544.m	(revision 27260)
@@ -34,5 +34,5 @@
 md.smb.arma_timestep    = 2.0; %timestep of the ARMA model [yr]
 md.smb.arlag_coefs      = [[0.2,0.1,0.05,0.01];[0.4,0.2,-0.2,0.1]];
-md.smb.malag_coefs      = [[0.0,0.0,0.0,0.0];[0.0,0.0,0.0,0.0]];
+md.smb.malag_coefs      = [[0.1,0.1,0.2,0.3];[0.5,0.8,1.3,2.4]];
 
 %Calving
@@ -54,5 +54,5 @@
 md.basalforcings.arma_timestep    = 1.0; %timestep of the ARMA model [yr]
 md.basalforcings.arlag_coefs      = [0.0;0.1];
-md.basalforcings.malag_coefs      = [0.0;0.0];
+md.basalforcings.malag_coefs      = [0.55;0.34];
 md.basalforcings.deepwater_elevation       = [-1000,-1520];
 md.basalforcings.upperwater_elevation      = [0,-50];
Index: /issm/trunk-jpl/test/NightlyRun/test544.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test544.py	(revision 27259)
+++ /issm/trunk-jpl/test/NightlyRun/test544.py	(revision 27260)
@@ -44,5 +44,5 @@
 md.smb.arma_timestep = 2.0  #timestep of the ARMA model [yr]
 md.smb.arlag_coefs = np.array([[0.2,0.1,0.05,0.01],[0.4,0.2,-0.2,0.1]])
-md.smb.malag_coefs = np.array([[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0]])
+md.smb.malag_coefs = np.array([[0.1,0.1,0.2,0.3],[0.5,0.8,1.3,2.4]])
 
 #Calving
