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

NEW arma process fully implemented

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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);
Note: See TracChangeset for help on using the changeset viewer.