Changeset 27260


Ignore:
Timestamp:
09/02/22 04:49:02 (3 years ago)
Author:
vverjans
Message:

NEW arma process fully implemented

Location:
issm/trunk-jpl
Files:
24 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/Elements/Element.cpp

    r27250 r27260  
    6161        return false;
    6262}/*}}}*/
    63 void       Element::ArmaProcess(bool isstepforarma,int arorder,IssmDouble telapsed_arma,IssmDouble tstep_arma,IssmDouble* termconstant,IssmDouble* trend,IssmDouble* arlagcoefs,bool isfieldstochastic,int enum_type){/*{{{*/
     63void       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){/*{{{*/
     64   const int numvertices = this->GetNumberOfVertices();
     65   int         basinid,M,N,arenum_type,maenum_type,basinenum_type,noiseenum_type,outenum_type;
     66   IssmDouble  time,dt,starttime,termconstant_basin,trend_basin,noiseterm;
     67   IssmDouble* arlagcoefs_basin     = xNew<IssmDouble>(arorder);
     68   IssmDouble* malagcoefs_basin     = xNew<IssmDouble>(maorder);
     69   IssmDouble* varlist              = xNew<IssmDouble>(numvertices);
     70   IssmDouble* valuesautoregression = NULL;
     71   IssmDouble* valuesmovingaverage  = NULL;
     72   Input*      noiseterm_input      = NULL;
     73
     74   /*Get field-specific enums*/
     75   switch(enum_type){
     76      case(SMBarmaEnum):
     77         arenum_type    = SmbValuesAutoregressionEnum;
     78         maenum_type    = SmbValuesMovingaverageEnum;
     79         basinenum_type = SmbBasinsIdEnum;
     80         noiseenum_type = SmbARMANoiseEnum;
     81         outenum_type   = SmbMassBalanceEnum;
     82         break;
     83      case(FrontalForcingsRignotarmaEnum):
     84         arenum_type    = ThermalforcingValuesAutoregressionEnum;
     85         maenum_type    = ThermalforcingValuesMovingaverageEnum;
     86         basinenum_type = FrontalForcingsBasinIdEnum;
     87         noiseenum_type = ThermalforcingARMANoiseEnum;
     88         outenum_type   = FrontalForcingsThermalForcingEnum;
     89         break;
     90                case(BasalforcingsDeepwaterMeltingRatearmaEnum):
     91         arenum_type    = BasalforcingsDeepwaterMeltingRateValuesAutoregressionEnum;
     92         maenum_type    = BasalforcingsDeepwaterMeltingRateValuesMovingaverageEnum;
     93         basinenum_type = BasalforcingsLinearBasinIdEnum;
     94         noiseenum_type = BasalforcingsDeepwaterMeltingRateNoiseEnum;
     95         outenum_type   = BasalforcingsSpatialDeepwaterMeltingRateEnum;
     96         break;
     97   }
     98
     99        /*Get time parameters*/
     100   this->parameters->FindParam(&time,TimeEnum);
     101   this->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
     102   this->parameters->FindParam(&starttime,TimesteppingStartTimeEnum);
     103
     104   /*Get basin coefficients*/
     105   this->GetInputValue(&basinid,basinenum_type);
     106        for(int ii=0;ii<arorder;ii++) arlagcoefs_basin[ii] = arlagcoefs[basinid*arorder+ii];
     107        for(int ii=0;ii<maorder;ii++) malagcoefs_basin[ii] = malagcoefs[basinid*maorder+ii];
     108   termconstant_basin   = termconstant[basinid];
     109   trend_basin          = trend[basinid];
     110
     111        /*Initialze autoregressive and moving-average values at first time step*/
     112        if(time<=starttime+dt){
     113                IssmDouble* initvaluesautoregression = xNewZeroInit<IssmDouble>(numvertices*arorder);
     114                IssmDouble* initvaluesmovingaverage  = xNewZeroInit<IssmDouble>(numvertices*maorder);
     115                for(int i=0;i<numvertices*arorder;i++) initvaluesautoregression[i]=termconstant_basin;
     116      this->inputs->SetArrayInput(arenum_type,this->lid,initvaluesautoregression,numvertices*arorder);
     117      this->inputs->SetArrayInput(maenum_type,this->lid,initvaluesmovingaverage,numvertices*maorder);
     118      xDelete<IssmDouble>(initvaluesautoregression);
     119      xDelete<IssmDouble>(initvaluesmovingaverage);
     120        }
     121
     122   /*Get noise, autoregressive terms, moving-average terms*/
     123        if(isfieldstochastic){
     124      noiseterm_input = this->GetInput(noiseenum_type);
     125      Gauss* gauss = this->NewGauss();
     126      noiseterm_input->GetInputValue(&noiseterm,gauss);
     127      delete gauss;
     128   }
     129   else noiseterm = 0.0;
     130   this->inputs->GetArray(arenum_type,this->lid,&valuesautoregression,&M);
     131   this->inputs->GetArray(maenum_type,this->lid,&valuesmovingaverage,&M);
     132       
     133        /*If not ARMA model timestep: take the old values of variable*/
     134   if(isstepforarma==false){
     135      for(int i=0;i<numvertices;i++) varlist[i]=valuesautoregression[i];
     136   }
     137   /*If ARMA model timestep: compute variable values on vertices from ARMA*/
     138   else{
     139      for(int v=0;v<numvertices;v++){
     140
     141         /*Compute autoregressive term*/
     142         IssmDouble autoregressionterm=0.;
     143         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)));
     144         /*Compute moving-average term*/
     145         IssmDouble movingaverageterm=0.;
     146         for(int ii=0;ii<maorder;ii++) movingaverageterm  += malagcoefs_basin[ii]*valuesmovingaverage[v+ii*numvertices];
     147
     148                        /*Stochastic variable value*/
     149         varlist[v] = termconstant_basin+trend_basin*telapsed_arma+autoregressionterm+movingaverageterm+noiseterm;
     150      }
     151      /*Update autoregression and moving-average values*/
     152      IssmDouble* temparrayar = xNew<IssmDouble>(numvertices*arorder);
     153      IssmDouble* temparrayma = xNew<IssmDouble>(numvertices*maorder);
     154      /*Assign newest values and shift older values*/
     155      for(int i=0;i<numvertices;i++) temparrayar[i] = varlist[i];
     156      for(int i=0;i<numvertices;i++) temparrayma[i] = noiseterm;
     157      for(int i=0;i<(arorder-1)*numvertices;i++) temparrayar[i+numvertices] = valuesautoregression[i];
     158      for(int i=0;i<(maorder-1)*numvertices;i++) temparrayma[i+numvertices] = valuesmovingaverage[i];
     159                this->inputs->SetArrayInput(arenum_type,this->lid,temparrayar,numvertices*arorder);
     160      this->inputs->SetArrayInput(maenum_type,this->lid,temparrayma,numvertices*maorder);
     161      xDelete<IssmDouble>(temparrayar);
     162      xDelete<IssmDouble>(temparrayma);
     163   }
     164
     165   /*Add input to element*/
     166   this->AddInput(outenum_type,varlist,P1Enum);
     167
     168   /*Cleanup*/
     169   xDelete<IssmDouble>(arlagcoefs_basin);
     170   xDelete<IssmDouble>(malagcoefs_basin);
     171   xDelete<IssmDouble>(varlist);
     172   xDelete<IssmDouble>(valuesautoregression);
     173   xDelete<IssmDouble>(valuesmovingaverage);
    64174}/*}}}*/
    65175void       Element::Autoregression(bool isstepforar,int arorder,IssmDouble telapsed_ar,IssmDouble tstep_ar,IssmDouble* termconstant,IssmDouble* trend,IssmDouble* lagcoefs,bool isfieldstochastic,int enum_type){/*{{{*/
  • issm/trunk-jpl/src/c/classes/Elements/Element.h

    r27250 r27260  
    6868                /*bool               AnyActive(void);*/
    6969                bool               AnyFSet(void);
    70       void               ArmaProcess(bool isstepforarma,int arorder,IssmDouble telapsed_arma,IssmDouble tstep_arma,IssmDouble* termconstant,IssmDouble* trend,IssmDouble* arlagcoefs,bool isfieldstochastic,int enum_type);
     70      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);
    7171      void               Autoregression(bool isstepforar,int arorder,IssmDouble telapsed_ar,IssmDouble tstep_ar,IssmDouble* termconstant,IssmDouble* trend,IssmDouble* lagcoefs,bool isfieldstochastic,int enum_type);
    7272                void               BasinLinearFloatingiceMeltingRate(IssmDouble* deepwaterel,IssmDouble* upperwatermelt,IssmDouble* upperwaterel,IssmDouble* perturbation);
  • issm/trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp

    r27250 r27260  
    231231   bool isstochastic;
    232232   bool isdeepmeltingstochastic = false;
    233    int M,N,Narlags,arorder,numbasins,my_rank;
     233   int M,N,Narlagcoefs,Nmalagcoefs,arorder,maorder,numbasins,my_rank;
    234234   femmodel->parameters->FindParam(&numbasins,BasalforcingsLinearNumBasinsEnum);
    235235        femmodel->parameters->FindParam(&arorder,BasalforcingsARMAarOrderEnum);
     236        femmodel->parameters->FindParam(&maorder,BasalforcingsARMAmaOrderEnum);
    236237   IssmDouble tinit_arma;
    237238   IssmDouble* termconstant   = NULL;
    238239   IssmDouble* trend          = NULL;
    239240   IssmDouble* arlagcoefs     = NULL;
     241   IssmDouble* malagcoefs     = NULL;
    240242   IssmDouble* deepwaterel    = NULL;
    241243   IssmDouble* upperwaterel   = NULL;
     
    247249   femmodel->parameters->FindParam(&termconstant,&M,BasalforcingsARMAconstEnum);              _assert_(M==numbasins);
    248250   femmodel->parameters->FindParam(&trend,&M,BasalforcingsARMAtrendEnum);                     _assert_(M==numbasins);
    249    femmodel->parameters->FindParam(&arlagcoefs,&M,&Narlags,BasalforcingsARMAarlagcoefsEnum);  _assert_(M==numbasins); _assert_(Narlags==arorder);
     251   femmodel->parameters->FindParam(&arlagcoefs,&M,&Narlagcoefs,BasalforcingsARMAarlagcoefsEnum);  _assert_(M==numbasins); _assert_(Narlagcoefs==arorder);
     252   femmodel->parameters->FindParam(&malagcoefs,&M,&Nmalagcoefs,BasalforcingsARMAmalagcoefsEnum);  _assert_(M==numbasins); _assert_(Nmalagcoefs==maorder);
    250253
    251254        /*Get basin-specific parameters*/
     
    272275   for(Object* &object:femmodel->elements->objects){
    273276      Element* element = xDynamicCast<Element*>(object);
    274       /*Compute autoregression*/
    275       element->Autoregression(isstepforarma,arorder,telapsed_arma,tstep_arma,termconstant,trend,arlagcoefs,isdeepmeltingstochastic,BasalforcingsDeepwaterMeltingRatearmaEnum);
     277      /*Compute ARMA*/
     278      element->ArmaProcess(isstepforarma,arorder,maorder,telapsed_arma,tstep_arma,termconstant,trend,arlagcoefs,malagcoefs,isdeepmeltingstochastic,BasalforcingsDeepwaterMeltingRatearmaEnum);
    276279                element->BasinLinearFloatingiceMeltingRate(deepwaterel,upperwatermelt,upperwaterel,perturbation);
    277280        }
     
    281284        xDelete<IssmDouble>(trend);
    282285        xDelete<IssmDouble>(arlagcoefs);
     286        xDelete<IssmDouble>(malagcoefs);
    283287        xDelete<IssmDouble>(deepwaterel);
    284288        xDelete<IssmDouble>(upperwaterel);
  • issm/trunk-jpl/src/c/modules/FrontalForcingsx/FrontalForcingsx.cpp

    r27250 r27260  
    5050        bool isstochastic;
    5151   bool istfstochastic = false;
    52         int M,N,Narlagcoefs,arorder,numbasins,my_rank;
     52        int M,N,Narlagcoefs,Nmalagcoefs,arorder,maorder,numbasins,my_rank;
    5353   femmodel->parameters->FindParam(&numbasins,FrontalForcingsNumberofBasinsEnum);
    5454   femmodel->parameters->FindParam(&arorder,FrontalForcingsARMAarOrderEnum);
     55   femmodel->parameters->FindParam(&maorder,FrontalForcingsARMAarOrderEnum);
    5556   IssmDouble tinit_arma;
    5657   IssmDouble* termconstant  = NULL;
    5758   IssmDouble* trend         = NULL;
    5859   IssmDouble* arlagcoefs    = NULL;
     60   IssmDouble* malagcoefs    = NULL;
    5961
    6062        femmodel->parameters->FindParam(&tinit_arma,FrontalForcingsARMAInitialTimeEnum);
     
    6264   femmodel->parameters->FindParam(&trend,&M,FrontalForcingsARMAtrendEnum);                         _assert_(M==numbasins);
    6365   femmodel->parameters->FindParam(&arlagcoefs,&M,&Narlagcoefs,FrontalForcingsARMAarlagcoefsEnum);  _assert_(M==numbasins); _assert_(Narlagcoefs==arorder);
     66   femmodel->parameters->FindParam(&malagcoefs,&M,&Nmalagcoefs,FrontalForcingsARMAmalagcoefsEnum);  _assert_(M==numbasins); _assert_(Nmalagcoefs==maorder);
    6467
    6568        femmodel->parameters->FindParam(&isstochastic,StochasticForcingIsStochasticForcingEnum);
     
    8083   for(Object* &object:femmodel->elements->objects){
    8184      Element* element = xDynamicCast<Element*>(object);
    82       element->Autoregression(isstepforarma,arorder,telapsed_arma,tstep_arma,termconstant,trend,arlagcoefs,istfstochastic,FrontalForcingsRignotarmaEnum);
     85      element->ArmaProcess(isstepforarma,arorder,maorder,telapsed_arma,tstep_arma,termconstant,trend,arlagcoefs,malagcoefs,istfstochastic,FrontalForcingsRignotarmaEnum);
    8386   }
    8487
     
    8790   xDelete<IssmDouble>(trend);
    8891   xDelete<IssmDouble>(arlagcoefs);
     92   xDelete<IssmDouble>(malagcoefs);
    8993}/*}}}*/
  • issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp

    r27250 r27260  
    168168   bool isstochastic;
    169169   bool issmbstochastic = false;
    170    int M,N,Narlagcoefs,arorder,numbasins,numelevbins,my_rank;
     170   int M,N,Narlagcoefs,Nmalagcoefs,arorder,maorder,numbasins,numelevbins,my_rank;
    171171   femmodel->parameters->FindParam(&numbasins,SmbNumBasinsEnum);
    172172   femmodel->parameters->FindParam(&arorder,SmbARMAarOrderEnum);
     173   femmodel->parameters->FindParam(&maorder,SmbARMAmaOrderEnum);
    173174   femmodel->parameters->FindParam(&numelevbins,SmbNumElevationBinsEnum);
    174175   IssmDouble tinit_arma;
     
    176177   IssmDouble* trend         = NULL;
    177178   IssmDouble* arlagcoefs    = NULL;
     179   IssmDouble* malagcoefs    = NULL;
    178180   IssmDouble* lapserates    = NULL;
    179181   IssmDouble* elevbins      = NULL;
     
    184186   femmodel->parameters->FindParam(&trend,&M,SmbARMAtrendEnum);                          _assert_(M==numbasins);
    185187   femmodel->parameters->FindParam(&arlagcoefs,&M,&Narlagcoefs,SmbARMAarlagcoefsEnum);   _assert_(M==numbasins); _assert_(Narlagcoefs==arorder);
     188   femmodel->parameters->FindParam(&malagcoefs,&M,&Nmalagcoefs,SmbARMAmalagcoefsEnum);   _assert_(M==numbasins); _assert_(Nmalagcoefs==maorder);
    186189   femmodel->parameters->FindParam(&lapserates,&M,&N,SmbLapseRatesEnum);                 _assert_(M==numbasins); _assert_(N==numelevbins);
    187190   femmodel->parameters->FindParam(&elevbins,&M,&N,SmbElevationBinsEnum);                _assert_(M==numbasins); _assert_(N==numelevbins-1);
     
    206209      Element* element = xDynamicCast<Element*>(object);
    207210      /*Compute ARMA*/
    208                 element->Autoregression(isstepforarma,arorder,telapsed_arma,tstep_arma,termconstant,trend,arlagcoefs,issmbstochastic,SMBarmaEnum);
     211                element->ArmaProcess(isstepforarma,arorder,maorder,telapsed_arma,tstep_arma,termconstant,trend,arlagcoefs,malagcoefs,issmbstochastic,SMBarmaEnum);
    209212                /*Compute lapse rate adjustment*/
    210213                element->LapseRateBasinSMB(numelevbins,lapserates,elevbins,refelevation);
     
    215218   xDelete<IssmDouble>(trend);
    216219   xDelete<IssmDouble>(arlagcoefs);
     220   xDelete<IssmDouble>(malagcoefs);
    217221   xDelete<IssmDouble>(lapserates);
    218222   xDelete<IssmDouble>(elevbins);
  • issm/trunk-jpl/src/c/shared/Enum/Enum.vim

    r27250 r27260  
    125125syn keyword cConstant CalvingYoffsetEnum
    126126syn keyword cConstant CalvingVelLowerboundEnum
     127syn keyword cConstant CalvingVelMaxEnum
     128syn keyword cConstant CalvingVelThresholdEnum
    127129syn keyword cConstant CalvingVelUpperboundEnum
    128130syn keyword cConstant ConfigurationTypeEnum
     
    640642syn keyword cConstant BasalforcingsDeepwaterMeltingRateNoiseEnum
    641643syn keyword cConstant BasalforcingsDeepwaterMeltingRateValuesAutoregressionEnum
     644syn keyword cConstant BasalforcingsDeepwaterMeltingRateValuesMovingaverageEnum
    642645syn keyword cConstant BasalforcingsFloatingiceMeltingRateEnum
    643646syn keyword cConstant BasalforcingsGeothermalfluxEnum
     
    11021105syn keyword cConstant ThermalforcingARMANoiseEnum
    11031106syn keyword cConstant ThermalforcingValuesAutoregressionEnum
     1107syn keyword cConstant ThermalforcingValuesMovingaverageEnum
    11041108syn keyword cConstant ThermalSpctemperatureEnum
    11051109syn keyword cConstant ThicknessAbsGradientEnum
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r27253 r27260  
    638638        BasalforcingsDeepwaterMeltingRateNoiseEnum,
    639639        BasalforcingsDeepwaterMeltingRateValuesAutoregressionEnum,
     640        BasalforcingsDeepwaterMeltingRateValuesMovingaverageEnum,
    640641        BasalforcingsFloatingiceMeltingRateEnum,
    641642        BasalforcingsGeothermalfluxEnum,
     
    11011102   ThermalforcingARMANoiseEnum,
    11021103        ThermalforcingValuesAutoregressionEnum,
     1104        ThermalforcingValuesMovingaverageEnum,
    11031105        ThermalSpctemperatureEnum,
    11041106        ThicknessAbsGradientEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r27250 r27260  
    127127                case CalvingYoffsetEnum : return "CalvingYoffset";
    128128                case CalvingVelLowerboundEnum : return "CalvingVelLowerbound";
     129                case CalvingVelMaxEnum : return "CalvingVelMax";
     130                case CalvingVelThresholdEnum : return "CalvingVelThreshold";
    129131                case CalvingVelUpperboundEnum : return "CalvingVelUpperbound";
    130132                case ConfigurationTypeEnum : return "ConfigurationType";
     
    642644                case BasalforcingsDeepwaterMeltingRateNoiseEnum : return "BasalforcingsDeepwaterMeltingRateNoise";
    643645                case BasalforcingsDeepwaterMeltingRateValuesAutoregressionEnum : return "BasalforcingsDeepwaterMeltingRateValuesAutoregression";
     646                case BasalforcingsDeepwaterMeltingRateValuesMovingaverageEnum : return "BasalforcingsDeepwaterMeltingRateValuesMovingaverage";
    644647                case BasalforcingsFloatingiceMeltingRateEnum : return "BasalforcingsFloatingiceMeltingRate";
    645648                case BasalforcingsGeothermalfluxEnum : return "BasalforcingsGeothermalflux";
     
    11041107                case ThermalforcingARMANoiseEnum : return "ThermalforcingARMANoise";
    11051108                case ThermalforcingValuesAutoregressionEnum : return "ThermalforcingValuesAutoregression";
     1109                case ThermalforcingValuesMovingaverageEnum : return "ThermalforcingValuesMovingaverage";
    11061110                case ThermalSpctemperatureEnum : return "ThermalSpctemperature";
    11071111                case ThicknessAbsGradientEnum : return "ThicknessAbsGradient";
  • issm/trunk-jpl/src/c/shared/Enum/Enumjl.vim

    r27250 r27260  
    118118syn keyword juliaConstC CalvingYoffsetEnum
    119119syn keyword juliaConstC CalvingVelLowerboundEnum
     120syn keyword juliaConstC CalvingVelMaxEnum
     121syn keyword juliaConstC CalvingVelThresholdEnum
    120122syn keyword juliaConstC CalvingVelUpperboundEnum
    121123syn keyword juliaConstC ConfigurationTypeEnum
     
    633635syn keyword juliaConstC BasalforcingsDeepwaterMeltingRateNoiseEnum
    634636syn keyword juliaConstC BasalforcingsDeepwaterMeltingRateValuesAutoregressionEnum
     637syn keyword juliaConstC BasalforcingsDeepwaterMeltingRateValuesMovingaverageEnum
    635638syn keyword juliaConstC BasalforcingsFloatingiceMeltingRateEnum
    636639syn keyword juliaConstC BasalforcingsGeothermalfluxEnum
     
    10951098syn keyword juliaConstC ThermalforcingARMANoiseEnum
    10961099syn keyword juliaConstC ThermalforcingValuesAutoregressionEnum
     1100syn keyword juliaConstC ThermalforcingValuesMovingaverageEnum
    10971101syn keyword juliaConstC ThermalSpctemperatureEnum
    10981102syn keyword juliaConstC ThicknessAbsGradientEnum
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r27250 r27260  
    127127              else if (strcmp(name,"CalvingYoffset")==0) return CalvingYoffsetEnum;
    128128              else if (strcmp(name,"CalvingVelLowerbound")==0) return CalvingVelLowerboundEnum;
     129              else if (strcmp(name,"CalvingVelMax")==0) return CalvingVelMaxEnum;
     130              else if (strcmp(name,"CalvingVelThreshold")==0) return CalvingVelThresholdEnum;
    129131              else if (strcmp(name,"CalvingVelUpperbound")==0) return CalvingVelUpperboundEnum;
    130132              else if (strcmp(name,"ConfigurationType")==0) return ConfigurationTypeEnum;
     
    135137              else if (strcmp(name,"ControlInputSizeM")==0) return ControlInputSizeMEnum;
    136138              else if (strcmp(name,"ControlInputSizeN")==0) return ControlInputSizeNEnum;
    137               else if (strcmp(name,"ControlInputInterpolation")==0) return ControlInputInterpolationEnum;
    138               else if (strcmp(name,"CumBslc")==0) return CumBslcEnum;
    139139         else stage=2;
    140140   }
    141141   if(stage==2){
    142               if (strcmp(name,"CumBslcIce")==0) return CumBslcIceEnum;
     142              if (strcmp(name,"ControlInputInterpolation")==0) return ControlInputInterpolationEnum;
     143              else if (strcmp(name,"CumBslc")==0) return CumBslcEnum;
     144              else if (strcmp(name,"CumBslcIce")==0) return CumBslcIceEnum;
    143145              else if (strcmp(name,"CumBslcHydro")==0) return CumBslcHydroEnum;
    144146              else if (strcmp(name,"CumBslcOcean")==0) return CumBslcOceanEnum;
     
    258260              else if (strcmp(name,"HydrologydcUnconfinedFlag")==0) return HydrologydcUnconfinedFlagEnum;
    259261              else if (strcmp(name,"HydrologyshreveStabilization")==0) return HydrologyshreveStabilizationEnum;
    260               else if (strcmp(name,"IcecapToEarthComm")==0) return IcecapToEarthCommEnum;
    261               else if (strcmp(name,"Index")==0) return IndexEnum;
    262262         else stage=3;
    263263   }
    264264   if(stage==3){
    265               if (strcmp(name,"InputFileName")==0) return InputFileNameEnum;
     265              if (strcmp(name,"IcecapToEarthComm")==0) return IcecapToEarthCommEnum;
     266              else if (strcmp(name,"Index")==0) return IndexEnum;
     267              else if (strcmp(name,"InputFileName")==0) return InputFileNameEnum;
    266268              else if (strcmp(name,"DirectoryName")==0) return DirectoryNameEnum;
    267269              else if (strcmp(name,"Indices")==0) return IndicesEnum;
     
    381383              else if (strcmp(name,"QmuVariablePartitionsNpart")==0) return QmuVariablePartitionsNpartEnum;
    382384              else if (strcmp(name,"QmuVariablePartitionsNt")==0) return QmuVariablePartitionsNtEnum;
    383               else if (strcmp(name,"QmuResponsePartitions")==0) return QmuResponsePartitionsEnum;
    384               else if (strcmp(name,"QmuResponsePartitionsNpart")==0) return QmuResponsePartitionsNpartEnum;
    385385         else stage=4;
    386386   }
    387387   if(stage==4){
    388               if (strcmp(name,"QmuStatistics")==0) return QmuStatisticsEnum;
     388              if (strcmp(name,"QmuResponsePartitions")==0) return QmuResponsePartitionsEnum;
     389              else if (strcmp(name,"QmuResponsePartitionsNpart")==0) return QmuResponsePartitionsNpartEnum;
     390              else if (strcmp(name,"QmuStatistics")==0) return QmuStatisticsEnum;
    389391              else if (strcmp(name,"QmuNumstatistics")==0) return QmuNumstatisticsEnum;
    390392              else if (strcmp(name,"QmuNdirectories")==0) return QmuNdirectoriesEnum;
     
    504506              else if (strcmp(name,"SmbDelta18oSurface")==0) return SmbDelta18oSurfaceEnum;
    505507              else if (strcmp(name,"SmbDenIdx")==0) return SmbDenIdxEnum;
    506               else if (strcmp(name,"SmbDt")==0) return SmbDtEnum;
    507               else if (strcmp(name,"Smb")==0) return SmbEnum;
    508508         else stage=5;
    509509   }
    510510   if(stage==5){
    511               if (strcmp(name,"SmbEIdx")==0) return SmbEIdxEnum;
     511              if (strcmp(name,"SmbDt")==0) return SmbDtEnum;
     512              else if (strcmp(name,"Smb")==0) return SmbEnum;
     513              else if (strcmp(name,"SmbEIdx")==0) return SmbEIdxEnum;
    512514              else if (strcmp(name,"SmbF")==0) return SmbFEnum;
    513515              else if (strcmp(name,"SmbInitDensityScaling")==0) return SmbInitDensityScalingEnum;
     
    627629              else if (strcmp(name,"Zze")==0) return ZzeEnum;
    628630              else if (strcmp(name,"Areae")==0) return AreaeEnum;
    629               else if (strcmp(name,"WorldComm")==0) return WorldCommEnum;
    630               else if (strcmp(name,"ParametersEND")==0) return ParametersENDEnum;
    631631         else stage=6;
    632632   }
    633633   if(stage==6){
    634               if (strcmp(name,"InputsSTART")==0) return InputsSTARTEnum;
     634              if (strcmp(name,"WorldComm")==0) return WorldCommEnum;
     635              else if (strcmp(name,"ParametersEND")==0) return ParametersENDEnum;
     636              else if (strcmp(name,"InputsSTART")==0) return InputsSTARTEnum;
    635637              else if (strcmp(name,"AccumulatedDeltaBottomPressure")==0) return AccumulatedDeltaBottomPressureEnum;
    636638              else if (strcmp(name,"AccumulatedDeltaIceThickness")==0) return AccumulatedDeltaIceThicknessEnum;
     
    657659              else if (strcmp(name,"BasalforcingsDeepwaterMeltingRateNoise")==0) return BasalforcingsDeepwaterMeltingRateNoiseEnum;
    658660              else if (strcmp(name,"BasalforcingsDeepwaterMeltingRateValuesAutoregression")==0) return BasalforcingsDeepwaterMeltingRateValuesAutoregressionEnum;
     661              else if (strcmp(name,"BasalforcingsDeepwaterMeltingRateValuesMovingaverage")==0) return BasalforcingsDeepwaterMeltingRateValuesMovingaverageEnum;
    659662              else if (strcmp(name,"BasalforcingsFloatingiceMeltingRate")==0) return BasalforcingsFloatingiceMeltingRateEnum;
    660663              else if (strcmp(name,"BasalforcingsGeothermalflux")==0) return BasalforcingsGeothermalfluxEnum;
     
    749752              else if (strcmp(name,"Dummy")==0) return DummyEnum;
    750753              else if (strcmp(name,"EffectivePressure")==0) return EffectivePressureEnum;
    751               else if (strcmp(name,"EffectivePressureSubstep")==0) return EffectivePressureSubstepEnum;
    752               else if (strcmp(name,"EffectivePressureTransient")==0) return EffectivePressureTransientEnum;
    753               else if (strcmp(name,"Enthalpy")==0) return EnthalpyEnum;
    754754         else stage=7;
    755755   }
    756756   if(stage==7){
    757               if (strcmp(name,"EnthalpyPicard")==0) return EnthalpyPicardEnum;
     757              if (strcmp(name,"EffectivePressureSubstep")==0) return EffectivePressureSubstepEnum;
     758              else if (strcmp(name,"EffectivePressureTransient")==0) return EffectivePressureTransientEnum;
     759              else if (strcmp(name,"Enthalpy")==0) return EnthalpyEnum;
     760              else if (strcmp(name,"EnthalpyPicard")==0) return EnthalpyPicardEnum;
    758761              else if (strcmp(name,"EplHead")==0) return EplHeadEnum;
    759762              else if (strcmp(name,"EplHeadOld")==0) return EplHeadOldEnum;
     
    872875              else if (strcmp(name,"MovingFrontalVy")==0) return MovingFrontalVyEnum;
    873876              else if (strcmp(name,"Neumannflux")==0) return NeumannfluxEnum;
    874               else if (strcmp(name,"NewDamage")==0) return NewDamageEnum;
    875               else if (strcmp(name,"Node")==0) return NodeEnum;
    876               else if (strcmp(name,"OmegaAbsGradient")==0) return OmegaAbsGradientEnum;
    877877         else stage=8;
    878878   }
    879879   if(stage==8){
    880               if (strcmp(name,"OceantransportSpcbottompressure")==0) return OceantransportSpcbottompressureEnum;
     880              if (strcmp(name,"NewDamage")==0) return NewDamageEnum;
     881              else if (strcmp(name,"Node")==0) return NodeEnum;
     882              else if (strcmp(name,"OmegaAbsGradient")==0) return OmegaAbsGradientEnum;
     883              else if (strcmp(name,"OceantransportSpcbottompressure")==0) return OceantransportSpcbottompressureEnum;
    881884              else if (strcmp(name,"OceantransportSpcstr")==0) return OceantransportSpcstrEnum;
    882885              else if (strcmp(name,"OceantransportSpcdsl")==0) return OceantransportSpcdslEnum;
     
    995998              else if (strcmp(name,"SmbD")==0) return SmbDEnum;
    996999              else if (strcmp(name,"SmbDailyairdensity")==0) return SmbDailyairdensityEnum;
    997               else if (strcmp(name,"SmbDailyairhumidity")==0) return SmbDailyairhumidityEnum;
    998               else if (strcmp(name,"SmbDailydlradiation")==0) return SmbDailydlradiationEnum;
    999               else if (strcmp(name,"SmbDailydsradiation")==0) return SmbDailydsradiationEnum;
    10001000         else stage=9;
    10011001   }
    10021002   if(stage==9){
    1003               if (strcmp(name,"SmbDailypressure")==0) return SmbDailypressureEnum;
     1003              if (strcmp(name,"SmbDailyairhumidity")==0) return SmbDailyairhumidityEnum;
     1004              else if (strcmp(name,"SmbDailydlradiation")==0) return SmbDailydlradiationEnum;
     1005              else if (strcmp(name,"SmbDailydsradiation")==0) return SmbDailydsradiationEnum;
     1006              else if (strcmp(name,"SmbDailypressure")==0) return SmbDailypressureEnum;
    10041007              else if (strcmp(name,"SmbDailyrainfall")==0) return SmbDailyrainfallEnum;
    10051008              else if (strcmp(name,"SmbDailysnowfall")==0) return SmbDailysnowfallEnum;
     
    11181121              else if (strcmp(name,"SurfaceLogVelMisfit")==0) return SurfaceLogVelMisfitEnum;
    11191122              else if (strcmp(name,"SurfaceLogVxVyMisfit")==0) return SurfaceLogVxVyMisfitEnum;
    1120               else if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum;
    1121               else if (strcmp(name,"SurfaceRelVelMisfit")==0) return SurfaceRelVelMisfitEnum;
    1122               else if (strcmp(name,"SurfaceSlopeX")==0) return SurfaceSlopeXEnum;
    11231123         else stage=10;
    11241124   }
    11251125   if(stage==10){
    1126               if (strcmp(name,"SurfaceSlopeY")==0) return SurfaceSlopeYEnum;
     1126              if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum;
     1127              else if (strcmp(name,"SurfaceRelVelMisfit")==0) return SurfaceRelVelMisfitEnum;
     1128              else if (strcmp(name,"SurfaceSlopeX")==0) return SurfaceSlopeXEnum;
     1129              else if (strcmp(name,"SurfaceSlopeY")==0) return SurfaceSlopeYEnum;
    11271130              else if (strcmp(name,"Temperature")==0) return TemperatureEnum;
    11281131              else if (strcmp(name,"TemperaturePDD")==0) return TemperaturePDDEnum;
     
    11311134              else if (strcmp(name,"ThermalforcingARMANoise")==0) return ThermalforcingARMANoiseEnum;
    11321135              else if (strcmp(name,"ThermalforcingValuesAutoregression")==0) return ThermalforcingValuesAutoregressionEnum;
     1136              else if (strcmp(name,"ThermalforcingValuesMovingaverage")==0) return ThermalforcingValuesMovingaverageEnum;
    11331137              else if (strcmp(name,"ThermalSpctemperature")==0) return ThermalSpctemperatureEnum;
    11341138              else if (strcmp(name,"ThicknessAbsGradient")==0) return ThicknessAbsGradientEnum;
     
    12401244              else if (strcmp(name,"Outputdefinition70")==0) return Outputdefinition70Enum;
    12411245              else if (strcmp(name,"Outputdefinition71")==0) return Outputdefinition71Enum;
    1242               else if (strcmp(name,"Outputdefinition72")==0) return Outputdefinition72Enum;
     1246         else stage=11;
     1247   }
     1248   if(stage==11){
     1249              if (strcmp(name,"Outputdefinition72")==0) return Outputdefinition72Enum;
    12431250              else if (strcmp(name,"Outputdefinition73")==0) return Outputdefinition73Enum;
    12441251              else if (strcmp(name,"Outputdefinition74")==0) return Outputdefinition74Enum;
    12451252              else if (strcmp(name,"Outputdefinition75")==0) return Outputdefinition75Enum;
    1246          else stage=11;
    1247    }
    1248    if(stage==11){
    1249               if (strcmp(name,"Outputdefinition76")==0) return Outputdefinition76Enum;
     1253              else if (strcmp(name,"Outputdefinition76")==0) return Outputdefinition76Enum;
    12501254              else if (strcmp(name,"Outputdefinition77")==0) return Outputdefinition77Enum;
    12511255              else if (strcmp(name,"Outputdefinition78")==0) return Outputdefinition78Enum;
     
    13631367              else if (strcmp(name,"EnthalpyAnalysis")==0) return EnthalpyAnalysisEnum;
    13641368              else if (strcmp(name,"EsaAnalysis")==0) return EsaAnalysisEnum;
    1365               else if (strcmp(name,"EsaSolution")==0) return EsaSolutionEnum;
     1369         else stage=12;
     1370   }
     1371   if(stage==12){
     1372              if (strcmp(name,"EsaSolution")==0) return EsaSolutionEnum;
    13661373              else if (strcmp(name,"EsaTransitions")==0) return EsaTransitionsEnum;
    13671374              else if (strcmp(name,"ExternalResult")==0) return ExternalResultEnum;
    13681375              else if (strcmp(name,"ExtrapolationAnalysis")==0) return ExtrapolationAnalysisEnum;
    1369          else stage=12;
    1370    }
    1371    if(stage==12){
    1372               if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum;
     1376              else if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum;
    13731377              else if (strcmp(name,"ExtrudeFromTopAnalysis")==0) return ExtrudeFromTopAnalysisEnum;
    13741378              else if (strcmp(name,"FSApproximation")==0) return FSApproximationEnum;
     
    14861490              else if (strcmp(name,"MasstransportSolution")==0) return MasstransportSolutionEnum;
    14871491              else if (strcmp(name,"Matdamageice")==0) return MatdamageiceEnum;
    1488               else if (strcmp(name,"Matenhancedice")==0) return MatenhancediceEnum;
     1492         else stage=13;
     1493   }
     1494   if(stage==13){
     1495              if (strcmp(name,"Matenhancedice")==0) return MatenhancediceEnum;
    14891496              else if (strcmp(name,"Materials")==0) return MaterialsEnum;
    14901497              else if (strcmp(name,"Matestar")==0) return MatestarEnum;
    14911498              else if (strcmp(name,"Matice")==0) return MaticeEnum;
    1492          else stage=13;
    1493    }
    1494    if(stage==13){
    1495               if (strcmp(name,"Matlitho")==0) return MatlithoEnum;
     1499              else if (strcmp(name,"Matlitho")==0) return MatlithoEnum;
    14961500              else if (strcmp(name,"Mathydro")==0) return MathydroEnum;
    14971501              else if (strcmp(name,"MatrixParam")==0) return MatrixParamEnum;
     
    16091613              else if (strcmp(name,"SpcDynamic")==0) return SpcDynamicEnum;
    16101614              else if (strcmp(name,"SpcStatic")==0) return SpcStaticEnum;
    1611               else if (strcmp(name,"SpcTransient")==0) return SpcTransientEnum;
     1615         else stage=14;
     1616   }
     1617   if(stage==14){
     1618              if (strcmp(name,"SpcTransient")==0) return SpcTransientEnum;
    16121619              else if (strcmp(name,"Sset")==0) return SsetEnum;
    16131620              else if (strcmp(name,"StatisticsSolution")==0) return StatisticsSolutionEnum;
    16141621              else if (strcmp(name,"SteadystateSolution")==0) return SteadystateSolutionEnum;
    1615          else stage=14;
    1616    }
    1617    if(stage==14){
    1618               if (strcmp(name,"StressIntensityFactor")==0) return StressIntensityFactorEnum;
     1622              else if (strcmp(name,"StressIntensityFactor")==0) return StressIntensityFactorEnum;
    16191623              else if (strcmp(name,"StressbalanceAnalysis")==0) return StressbalanceAnalysisEnum;
    16201624              else if (strcmp(name,"StressbalanceConvergenceNumSteps")==0) return StressbalanceConvergenceNumStepsEnum;
  • issm/trunk-jpl/src/m/classes/SMBarma.m

    r27250 r27260  
    135135                function marshall(self,prefix,md,fid) % {{{
    136136
    137                         disp('ARMA is still under development');
    138137                        yts=md.constants.yts;
    139138
  • issm/trunk-jpl/src/m/classes/SMBarma.py

    r27250 r27260  
    148148
    149149    def marshall(self, prefix, md, fid):  # {{{
    150         print('ARMA is still under development')
    151150        yts = md.constants.yts
    152151
  • issm/trunk-jpl/src/m/classes/frontalforcingsrignotarma.m

    r27250 r27260  
    8181                end % }}}
    8282                function marshall(self,prefix,md,fid) % {{{
    83                         disp('ARMA is still under development');
    8483                        yts=md.constants.yts;
    8584                        WriteData(fid,prefix,'name','md.frontalforcings.parameterization','data',3,'format','Integer');
  • issm/trunk-jpl/src/m/classes/frontalforcingsrignotarma.py

    r27250 r27260  
    8383
    8484    def marshall(self, prefix, md, fid):  # {{{
    85         print('ARMA is still under development')
    8685        yts = md.constants.yts
    8786        WriteData(fid, prefix, 'name', 'md.frontalforcings.parameterization', 'data', 3, 'format', 'Integer')
  • issm/trunk-jpl/src/m/classes/linearbasalforcingsarma.m

    r27250 r27260  
    128128                function marshall(self,prefix,md,fid) % {{{
    129129
    130                         disp('ARMA is still under development');
    131130                        yts=md.constants.yts;
    132131
  • issm/trunk-jpl/test/NightlyRun/test257.m

    r27250 r27260  
    4646md.smb.arma_timestep       = 2.0; %timestep of the ARMA model [yr]
    4747md.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]];
    48 md.smb.malag_coefs         = [0;0;0];
     48md.smb.malag_coefs         = [1.0;0;0.2];
    4949md.smb.lapserates          = [0.01,0.0;0.01,-0.01;0.0,-0.01];
    5050md.smb.elevationbins       = [100;150;100];
  • issm/trunk-jpl/test/NightlyRun/test257.py

    r27250 r27260  
    5151md.smb.arma_timestep = 2.0  #timestep of the ARMA model [yr]
    5252md.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]])
    53 md.smb.malag_coefs = np.array([[0],[0],[0]])
     53md.smb.malag_coefs = np.array([[1.0],[0],[0.2]])
    5454md.smb.lapserates        = np.array([[0.01,0.0],[0.01,-0.01],[0.0,-0.01]])
    5555md.smb.elevationbins  = np.array([100,150,100]).reshape(md.smb.num_basins,1)
  • issm/trunk-jpl/test/NightlyRun/test543.m

    r27250 r27260  
    4848md.frontalforcings.num_basins           = nb_tf;
    4949md.frontalforcings.basin_id             = idb_tf;
    50 md.frontalforcings.subglacial_discharge = 0.1*ones(md.mesh.numberofvertices,1);
    51 md.frontalforcings.const                = [0.05,0.01]; %intercept values of TF in basins [C]
    52 md.frontalforcings.trend                = [0.001,0.0001]; %trend values of TF in basins [C/yr]
     50md.frontalforcings.subglacial_discharge = 0.01*ones(md.mesh.numberofvertices,1);
     51md.frontalforcings.const                = [0.005,0.001]; %intercept values of TF in basins [C]
     52md.frontalforcings.trend                = [0.0001,0.00001]; %trend values of TF in basins [C/yr]
    5353md.frontalforcings.arma_initialtime     = md.timestepping.start_time; %initial time in the AR model parameterization [yr]
    5454md.frontalforcings.ar_order             = 4;
     
    5656md.frontalforcings.arma_timestep        = 2; %timestep of the ARMA model [yr]
    5757md.frontalforcings.arlag_coefs          = [[0.1,-0.1,0.01,-0.01];[0.2,-0.2,0.1,0.0]]; %autoregressive parameters
    58 md.frontalforcings.malag_coefs          = [[0.0,0.0];[0.0,0.0]]; %moving-average parameters
     58md.frontalforcings.malag_coefs          = [[0.1,0.0];[0.0,0.1]]; %moving-average parameters
    5959
    6060% Floating Ice Melt parameters
     
    6262
    6363% Covariance matrix
    64 covtf       = 1e-4*eye(nb_tf);
     64covtf       = 1e-5*eye(nb_tf);
    6565covclv      = 1e-1*eye(nb_clv);
    6666covclv(1,1) = 1/10*covclv(1,1);
     
    8686field_names ={...
    8787   'Vx1' ,'Vy1' ,'Vel1' ,'Thickness1' ,'MaskIceLevelset1' ,'CalvingCalvingrate1' ,'CalvingMeltingrate1' ,'BasalforcingsFloatingiceMeltingRate1',...
    88    'Vx2' ,'Vy2' ,'Vel2' ,'Thickness2' ,'MaskIceLevelset2' ,'CalvingCalvingrate1' ,'CalvingMeltingrate2' ,'BasalforcingsFloatingiceMeltingRate2',...
     88   'Vx2' ,'Vy2' ,'Vel2' ,'Thickness2' ,'MaskIceLevelset2' ,'CalvingCalvingrate2' ,'CalvingMeltingrate2' ,'BasalforcingsFloatingiceMeltingRate2',...
    8989   'Vx10','Vy10','Vel10','Thickness10','MaskIceLevelset10','CalvingCalvingrate10','CalvingMeltingrate10','BasalforcingsFloatingiceMeltingRate10',...
    9090   };
  • issm/trunk-jpl/test/NightlyRun/test543.py

    r27250 r27260  
    5353md.frontalforcings.num_basins = nb_tf
    5454md.frontalforcings.basin_id = idb_tf
    55 md.frontalforcings.subglacial_discharge = 0.1 * np.ones((md.mesh.numberofvertices,))
    56 md.frontalforcings.const = np.array([[0.05, 0.01]])  # intercept values of TF in basins [C]
    57 md.frontalforcings.trend = np.array([[0.001, 0.0001]])  # trend values of TF in basins [C/yr]
     55md.frontalforcings.subglacial_discharge = 0.01 * np.ones((md.mesh.numberofvertices,))
     56md.frontalforcings.const = np.array([[0.005, 0.001]])  # intercept values of TF in basins [C]
     57md.frontalforcings.trend = np.array([[0.0001, 0.00001]])  # trend values of TF in basins [C/yr]
    5858md.frontalforcings.arma_initialtime = md.timestepping.start_time  # initial time in the AR model parameterization [yr]
    5959md.frontalforcings.ar_order = 4
     
    6161md.frontalforcings.arma_timestep = 2  # timestep of the ARMA model [yr]
    6262md.frontalforcings.arlag_coefs = np.array([[0.1, -0.1, 0.01, -0.01], [0.2, -0.2, 0.1, 0.0]])  # autoregressive parameters
    63 md.frontalforcings.malag_coefs = np.array([[0.0, 0.0], [0.0, 0.0]])  # moving-average parameters
     63md.frontalforcings.malag_coefs = np.array([[0.1, 0.0], [0.0, 0.1]])  # moving-average parameters
    6464#Floating Ice Melt parameters
    6565md.basalforcings.floatingice_melting_rate = 0.1 * np.ones((md.mesh.numberofvertices,))
     
    7676
    7777#Hard-coding covariance matrix because python is complaining
    78 covglob = np.array([[1e-4, 0., 0., 0., 0., 0.],
    79                     [0., 1e-4, 0., 0., 0., 0.],
     78covglob = np.array([[1e-5, 0., 0., 0., 0., 0.],
     79                    [0., 1e-5, 0., 0., 0., 0.],
    8080                    [0., 0., 1e-2, 0., 0., 0.],
    8181                    [0., 0., 0., 1e-1, 0., 0.],
     
    103103field_names = [
    104104    'Vx1', 'Vy1', 'Vel1', 'Thickness1', 'MaskIceLevelset1', 'CalvingCalvingrate1', 'CalvingMeltingrate1', 'BasalforcingsFloatingiceMeltingRate1',
    105     'Vx2', 'Vy2', 'Vel2', 'Thickness2', 'MaskIceLevelset2', 'CalvingCalvingrate1', 'CalvingMeltingrate2', 'BasalforcingsFloatingiceMeltingRate2',
     105    'Vx2', 'Vy2', 'Vel2', 'Thickness2', 'MaskIceLevelset2', 'CalvingCalvingrate2', 'CalvingMeltingrate2', 'BasalforcingsFloatingiceMeltingRate2',
    106106    'Vx10', 'Vy10', 'Vel10', 'Thickness10', 'MaskIceLevelset10', 'CalvingCalvingrate10', 'CalvingMeltingrate10', 'BasalforcingsFloatingiceMeltingRate10']
    107107
  • issm/trunk-jpl/test/NightlyRun/test544.m

    r27250 r27260  
    3434md.smb.arma_timestep    = 2.0; %timestep of the ARMA model [yr]
    3535md.smb.arlag_coefs      = [[0.2,0.1,0.05,0.01];[0.4,0.2,-0.2,0.1]];
    36 md.smb.malag_coefs      = [[0.0,0.0,0.0,0.0];[0.0,0.0,0.0,0.0]];
     36md.smb.malag_coefs      = [[0.1,0.1,0.2,0.3];[0.5,0.8,1.3,2.4]];
    3737
    3838%Calving
     
    5454md.basalforcings.arma_timestep    = 1.0; %timestep of the ARMA model [yr]
    5555md.basalforcings.arlag_coefs      = [0.0;0.1];
    56 md.basalforcings.malag_coefs      = [0.0;0.0];
     56md.basalforcings.malag_coefs      = [0.55;0.34];
    5757md.basalforcings.deepwater_elevation       = [-1000,-1520];
    5858md.basalforcings.upperwater_elevation      = [0,-50];
  • issm/trunk-jpl/test/NightlyRun/test544.py

    r27250 r27260  
    4444md.smb.arma_timestep = 2.0  #timestep of the ARMA model [yr]
    4545md.smb.arlag_coefs = np.array([[0.2,0.1,0.05,0.01],[0.4,0.2,-0.2,0.1]])
    46 md.smb.malag_coefs = np.array([[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0]])
     46md.smb.malag_coefs = np.array([[0.1,0.1,0.2,0.3],[0.5,0.8,1.3,2.4]])
    4747
    4848#Calving
Note: See TracChangeset for help on using the changeset viewer.