Changeset 19527


Ignore:
Timestamp:
08/29/15 11:55:39 (10 years ago)
Author:
Eric.Larour
Message:

CHG: moved md.surfaceforcings to md.smb.
By doing so, had to rename the SMB class to SMBforcing class (it's just that, a mass_balance forcing inside
a SMB class, hence the name).
We also now have an smb_core solution, taken out of the mass transport core. Makes more sense long term.
Synced all enums according to the new changes, and operated the adjustments in all the test decks.

In addition, progressing in terms of GEMB integration into ISSM, specifically at the SMBgemb level (which
is spurring all the changes described above). Brought the class up to the level of the GEMB.m call in Alex's
code. Starting the C integration now.

Location:
issm/trunk-jpl
Files:
41 added
34 deleted
167 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/Makefile.am

    r19436 r19527  
    206206                                        ./cores/extrudefromtop_core.cpp\
    207207                                        ./cores/thermal_core.cpp\
     208                                        ./cores/smb_core.cpp\
    208209                                        ./solutionsequences/solutionsequence_thermal_nonlinear.cpp\
    209210                                        ./modules/ControlInputSetGradientx/ControlInputSetGradientx.cpp\
  • issm/trunk-jpl/src/c/analyses/Balancethickness2Analysis.cpp

    r18930 r19527  
    3535        iomodel->FetchDataToInput(elements,MaskIceLevelsetEnum);
    3636        iomodel->FetchDataToInput(elements,BasalforcingsGroundediceMeltingRateEnum);
    37         iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);
     37        iomodel->FetchDataToInput(elements,SmbMassBalanceEnum);
    3838        iomodel->FetchDataToInput(elements,BalancethicknessThickeningRateEnum);
    3939        iomodel->FetchDataToInput(elements,BalancethicknessOmegaEnum);
     
    188188        /*Retrieve all inputs and parameters*/
    189189        element->GetVerticesCoordinates(&xyz_list);
    190         Input* ms_input   = element->GetInput(SurfaceforcingsMassBalanceEnum);                _assert_(ms_input);
     190        Input* ms_input   = element->GetInput(SmbMassBalanceEnum);                _assert_(ms_input);
    191191        Input* mb_input   = element->GetInput(BasalforcingsGroundediceMeltingRateEnum);       _assert_(mb_input);
    192192        Input* dhdt_input = element->GetInput(BalancethicknessThickeningRateEnum);            _assert_(dhdt_input);
  • issm/trunk-jpl/src/c/analyses/BalancethicknessAnalysis.cpp

    r18930 r19527  
    102102        iomodel->FetchDataToInput(elements,VyEnum);
    103103        iomodel->FetchDataToInput(elements,BasalforcingsGroundediceMeltingRateEnum);
    104         iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);
     104        iomodel->FetchDataToInput(elements,SmbMassBalanceEnum);
    105105        iomodel->FetchDataToInput(elements,BalancethicknessThickeningRateEnum);
    106106
     
    355355        element->GetVerticesCoordinates(&xyz_list);
    356356        Input* mb_input   = element->GetInput(BasalforcingsGroundediceMeltingRateEnum);       _assert_(mb_input);
    357         Input* ms_input   = element->GetInput(SurfaceforcingsMassBalanceEnum);     _assert_(ms_input);
     357        Input* ms_input   = element->GetInput(SmbMassBalanceEnum);     _assert_(ms_input);
    358358        Input* dhdt_input = element->GetInput(BalancethicknessThickeningRateEnum); _assert_(dhdt_input);
    359359
     
    396396        element->GetVerticesCoordinates(&xyz_list);
    397397        Input* mb_input   = element->GetInput(BasalforcingsGroundediceMeltingRateEnum);       _assert_(mb_input);
    398         Input* ms_input   = element->GetInput(SurfaceforcingsMassBalanceEnum);     _assert_(ms_input);
     398        Input* ms_input   = element->GetInput(SmbMassBalanceEnum);     _assert_(ms_input);
    399399        Input* dhdt_input = element->GetInput(BalancethicknessThickeningRateEnum); _assert_(dhdt_input);
    400400
     
    517517        Input* vx_input                   = element->GetInput(VxEnum);                                  _assert_(vx_input);
    518518        Input* vy_input                   = element->GetInput(VyEnum);                                  _assert_(vy_input);
    519         Input* surface_mass_balance_input = element->GetInput(SurfaceforcingsMassBalanceEnum);          _assert_(surface_mass_balance_input);
     519        Input* surface_mass_balance_input = element->GetInput(SmbMassBalanceEnum);          _assert_(surface_mass_balance_input);
    520520        Input* basal_melting_input        = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(basal_melting_input);
    521521        Input* dhdt_input                 = element->GetInput(BalancethicknessThickeningRateEnum);      _assert_(dhdt_input);
  • issm/trunk-jpl/src/c/analyses/BalancevelocityAnalysis.cpp

    r18930 r19527  
    4545        iomodel->FetchDataToInput(elements,VyEnum);
    4646        iomodel->FetchDataToInput(elements,BasalforcingsGroundediceMeltingRateEnum);
    47         iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);
     47        iomodel->FetchDataToInput(elements,SmbMassBalanceEnum);
    4848        iomodel->FetchDataToInput(elements,BalancethicknessThickeningRateEnum);
    4949
     
    183183        /*Retrieve all inputs and parameters*/
    184184        basalelement->GetVerticesCoordinates(&xyz_list);
    185         Input* ms_input   = basalelement->GetInput(SurfaceforcingsMassBalanceEnum);          _assert_(ms_input);
     185        Input* ms_input   = basalelement->GetInput(SmbMassBalanceEnum);          _assert_(ms_input);
    186186        Input* mb_input   = basalelement->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(mb_input);
    187187        Input* dhdt_input = basalelement->GetInput(BalancethicknessThickeningRateEnum);      _assert_(dhdt_input);
  • issm/trunk-jpl/src/c/analyses/FreeSurfaceTopAnalysis.cpp

    r18929 r19527  
    6767
    6868        /*Fetch data needed: */
    69         iomodel->Constant(&smb_model,SurfaceforcingsEnum);
     69        iomodel->Constant(&smb_model,SmbEnum);
    7070
    7171        /*Update elements: */
     
    9090        }
    9191        switch(smb_model){
    92                 case SMBEnum:
    93                         iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum,0.);
     92                case SMBforcingEnum:
     93                        iomodel->FetchDataToInput(elements,SmbMassBalanceEnum,0.);
    9494                        break;
    9595                default:
     
    274274        topelement->GetVerticesCoordinates(&xyz_list);
    275275        topelement->FindParam(&dt,TimesteppingTimeStepEnum);
    276         Input* ms_input      = topelement->GetInput(SurfaceforcingsMassBalanceEnum);  _assert_(ms_input);
     276        Input* ms_input      = topelement->GetInput(SmbMassBalanceEnum);  _assert_(ms_input);
    277277        Input* surface_input = topelement->GetInput(SurfaceEnum);                     _assert_(surface_input);
    278278        Input* vz_input      = NULL;
  • issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp

    r19309 r19527  
    127127        iomodel->Constant(&stabilization,MasstransportStabilizationEnum);
    128128        iomodel->Constant(&dakota_analysis,QmuIsdakotaEnum);
    129         iomodel->Constant(&smb_model,SurfaceforcingsEnum);
     129        iomodel->Constant(&smb_model,SmbEnum);
    130130        iomodel->Constant(&isgroundingline,TransientIsgroundinglineEnum);
    131131        iomodel->Constant(&islevelset,TransientIslevelsetEnum);
     
    174174
    175175        switch(smb_model){
    176                 case SMBEnum:
    177                         iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum,0.);
     176                case SMBforcingEnum:
     177                        iomodel->FetchDataToInput(elements,SmbMassBalanceEnum,0.);
    178178                        break;
    179179                case SMBpddEnum:
    180                         iomodel->Constant(&isdelta18o,SurfaceforcingsIsdelta18oEnum);
    181                         iomodel->Constant(&ismungsm,SurfaceforcingsIsmungsmEnum);
     180                        iomodel->Constant(&isdelta18o,SmbIsdelta18oEnum);
     181                        iomodel->Constant(&ismungsm,SmbIsmungsmEnum);
    182182                        iomodel->FetchDataToInput(elements,ThermalSpctemperatureEnum);
    183                         iomodel->FetchDataToInput(elements,SurfaceforcingsS0pEnum);
    184                         iomodel->FetchDataToInput(elements,SurfaceforcingsS0tEnum);
     183                        iomodel->FetchDataToInput(elements,SmbS0pEnum);
     184                        iomodel->FetchDataToInput(elements,SmbS0tEnum);
    185185                        if(isdelta18o || ismungsm){
    186                                 iomodel->FetchDataToInput(elements,SurfaceforcingsTemperaturesLgmEnum);
    187                                 iomodel->FetchDataToInput(elements,SurfaceforcingsTemperaturesPresentdayEnum);
    188                                 iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationsPresentdayEnum);
    189                                 iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationsLgmEnum);
     186                                iomodel->FetchDataToInput(elements,SmbTemperaturesLgmEnum);
     187                                iomodel->FetchDataToInput(elements,SmbTemperaturesPresentdayEnum);
     188                                iomodel->FetchDataToInput(elements,SmbPrecipitationsPresentdayEnum);
     189                                iomodel->FetchDataToInput(elements,SmbPrecipitationsLgmEnum);
    190190                        }
    191191                        else{
    192                                 iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationEnum);
    193                                 iomodel->FetchDataToInput(elements,SurfaceforcingsMonthlytemperaturesEnum);
     192                                iomodel->FetchDataToInput(elements,SmbPrecipitationEnum);
     193                                iomodel->FetchDataToInput(elements,SmbMonthlytemperaturesEnum);
    194194                        }
    195195                        break;
    196196                case SMBd18opddEnum:
    197                         iomodel->Constant(&ismungsm,SurfaceforcingsIsmungsmEnum);
    198                         iomodel->Constant(&isd18opd,SurfaceforcingsIsd18opdEnum);
     197                        iomodel->Constant(&ismungsm,SmbIsmungsmEnum);
     198                        iomodel->Constant(&isd18opd,SmbIsd18opdEnum);
    199199                        iomodel->FetchDataToInput(elements,ThermalSpctemperatureEnum);
    200                         iomodel->FetchDataToInput(elements,SurfaceforcingsS0pEnum);
    201                         iomodel->FetchDataToInput(elements,SurfaceforcingsS0tEnum);
     200                        iomodel->FetchDataToInput(elements,SmbS0pEnum);
     201                        iomodel->FetchDataToInput(elements,SmbS0tEnum);
    202202                        if (isd18opd){
    203                                 iomodel->FetchDataToInput(elements,SurfaceforcingsTemperaturesPresentdayEnum);
    204                                 iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationsPresentdayEnum);
     203                                iomodel->FetchDataToInput(elements,SmbTemperaturesPresentdayEnum);
     204                                iomodel->FetchDataToInput(elements,SmbPrecipitationsPresentdayEnum);
    205205                        }
    206206
    207207                        break;
    208208                case SMBgradientsEnum:
    209                         iomodel->FetchDataToInput(elements,SurfaceforcingsHrefEnum);
    210                         iomodel->FetchDataToInput(elements,SurfaceforcingsSmbrefEnum);
    211                         iomodel->FetchDataToInput(elements,SurfaceforcingsBPosEnum);
    212                         iomodel->FetchDataToInput(elements,SurfaceforcingsBNegEnum);
     209                        iomodel->FetchDataToInput(elements,SmbHrefEnum);
     210                        iomodel->FetchDataToInput(elements,SmbSmbrefEnum);
     211                        iomodel->FetchDataToInput(elements,SmbBPosEnum);
     212                        iomodel->FetchDataToInput(elements,SmbBNegEnum);
    213213                        break;
    214214                case SMBhenningEnum:
    215                         iomodel->FetchDataToInput(elements,SurfaceforcingsSmbrefEnum,0.);
     215                        iomodel->FetchDataToInput(elements,SmbSmbrefEnum,0.);
    216216                        break;
    217217                case SMBcomponentsEnum:
    218                         iomodel->FetchDataToInput(elements,SurfaceforcingsAccumulationEnum,0.);
    219                         iomodel->FetchDataToInput(elements,SurfaceforcingsEvaporationEnum,0.);
    220                         iomodel->FetchDataToInput(elements,SurfaceforcingsRunoffEnum,0.);
     218                        iomodel->FetchDataToInput(elements,SmbAccumulationEnum,0.);
     219                        iomodel->FetchDataToInput(elements,SmbEvaporationEnum,0.);
     220                        iomodel->FetchDataToInput(elements,SmbRunoffEnum,0.);
    221221                        break;
    222222                case SMBmeltcomponentsEnum:
    223                         iomodel->FetchDataToInput(elements,SurfaceforcingsAccumulationEnum,0.);
    224                         iomodel->FetchDataToInput(elements,SurfaceforcingsEvaporationEnum,0.);
    225                         iomodel->FetchDataToInput(elements,SurfaceforcingsMeltEnum,0.);
    226                         iomodel->FetchDataToInput(elements,SurfaceforcingsRefreezeEnum,0.);
     223                        iomodel->FetchDataToInput(elements,SmbAccumulationEnum,0.);
     224                        iomodel->FetchDataToInput(elements,SmbEvaporationEnum,0.);
     225                        iomodel->FetchDataToInput(elements,SmbMeltEnum,0.);
     226                        iomodel->FetchDataToInput(elements,SmbRefreezeEnum,0.);
    227227                        break;
    228228                default:
     
    247247        if(numoutputs)parameters->AddObject(new StringArrayParam(MasstransportRequestedOutputsEnum,requestedoutputs,numoutputs));
    248248        iomodel->DeleteData(&requestedoutputs,numoutputs,MasstransportRequestedOutputsEnum);
     249       
     250        iomodel->FetchData(&requestedoutputs,&numoutputs,SmbRequestedOutputsEnum);
     251        parameters->AddObject(new IntParam(SmbNumRequestedOutputsEnum,numoutputs));
     252        if(numoutputs)parameters->AddObject(new StringArrayParam(SmbRequestedOutputsEnum,requestedoutputs,numoutputs));
     253        iomodel->DeleteData(&requestedoutputs,numoutputs,SmbRequestedOutputsEnum);
     254
    249255
    250256}/*}}}*/
     
    562568        Input* fmb_input           = element->GetInput(BasalforcingsFloatingiceMeltingRateEnum);  _assert_(fmb_input);
    563569        Input* groundedice_input   = element->GetInput(MaskGroundediceLevelsetEnum);              _assert_(groundedice_input);
    564         Input* ms_input            = element->GetInput(SurfaceforcingsMassBalanceEnum);           _assert_(ms_input);
     570        Input* ms_input            = element->GetInput(SmbMassBalanceEnum);           _assert_(ms_input);
    565571        Input* thickness_input     = element->GetInput(ThicknessEnum);                            _assert_(thickness_input);
    566572
     
    612618        Input* gmb_input           = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(gmb_input);
    613619        Input* fmb_input           = element->GetInput(BasalforcingsFloatingiceMeltingRateEnum); _assert_(fmb_input);
    614         Input* ms_input            = element->GetInput(SurfaceforcingsMassBalanceEnum);          _assert_(ms_input);
     620        Input* ms_input            = element->GetInput(SmbMassBalanceEnum);          _assert_(ms_input);
    615621        Input* groundedice_input   = element->GetInput(MaskGroundediceLevelsetEnum);             _assert_(groundedice_input);
    616622        Input* thickness_input     = element->GetInput(ThicknessEnum);                           _assert_(thickness_input);
  • issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp

    r19276 r19527  
    112112        iomodel->FetchDataToInput(elements,BasalforcingsGroundediceMeltingRateEnum);
    113113        iomodel->FetchDataToInput(elements,BasalforcingsFloatingiceMeltingRateEnum);
    114         //iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);
     114        //iomodel->FetchDataToInput(elements,SmbMassBalanceEnum);
    115115        iomodel->FetchDataToInput(elements,VxEnum,0.);
    116116        iomodel->FetchDataToInput(elements,VyEnum,0.);
     
    382382        element->GetInputValue(&approximation,ApproximationEnum);
    383383        Input* surface_input    =element->GetInput(SurfaceEnum);               _assert_(surface_input);
    384         Input* smb_input=element->GetInput(SurfaceforcingsMassBalanceEnum);    _assert_(smb_input);
     384        Input* smb_input=element->GetInput(SmbMassBalanceEnum);    _assert_(smb_input);
    385385        Input* vx_input=element->GetInput(VxEnum);                             _assert_(vx_input);
    386386        Input* vy_input=element->GetInput(VyEnum);                             _assert_(vy_input);
  • issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp

    r19200 r19527  
    2424        else if (iomodel->solution_enum==TransientSolutionEnum){
    2525                int smb_model;
    26                 iomodel->Constant(&smb_model,SurfaceforcingsEnum);
     26                iomodel->Constant(&smb_model,SmbEnum);
    2727                if(smb_model==SMBpddEnum) isdynamic=true;
    2828                if(smb_model==SMBd18opddEnum) isdynamic=true;
  • issm/trunk-jpl/src/c/classes/Elements/Element.cpp

    r19481 r19527  
    511511
    512512        /*Recover present day temperature and precipitation*/
    513         Input* input=this->inputs->GetInput(SurfaceforcingsTemperaturesPresentdayEnum);    _assert_(input);
    514         Input* input2=this->inputs->GetInput(SurfaceforcingsTemperaturesLgmEnum);          _assert_(input2);
    515         Input* input3=this->inputs->GetInput(SurfaceforcingsPrecipitationsPresentdayEnum); _assert_(input3);
     513        Input* input=this->inputs->GetInput(SmbTemperaturesPresentdayEnum);    _assert_(input);
     514        Input* input2=this->inputs->GetInput(SmbTemperaturesLgmEnum);          _assert_(input2);
     515        Input* input3=this->inputs->GetInput(SmbPrecipitationsPresentdayEnum); _assert_(input3);
    516516        /*loop over vertices: */
    517517        Gauss* gauss=this->NewGauss();
     
    528528
    529529        /*Recover delta18o and Delta18oSurface at present day, lgm and at time t*/
    530         this->parameters->FindParam(&Delta18oPresent,SurfaceforcingsDelta18oEnum,finaltime);
    531         this->parameters->FindParam(&Delta18oLgm,SurfaceforcingsDelta18oEnum,(finaltime-(21000*yts)));
    532         this->parameters->FindParam(&Delta18oTime,SurfaceforcingsDelta18oEnum,time);
    533         this->parameters->FindParam(&Delta18oSurfacePresent,SurfaceforcingsDelta18oSurfaceEnum,finaltime);
    534         this->parameters->FindParam(&Delta18oSurfaceLgm,SurfaceforcingsDelta18oSurfaceEnum,(finaltime-(21000*yts)));
    535         this->parameters->FindParam(&Delta18oSurfaceTime,SurfaceforcingsDelta18oSurfaceEnum,time);
     530        this->parameters->FindParam(&Delta18oPresent,SmbDelta18oEnum,finaltime);
     531        this->parameters->FindParam(&Delta18oLgm,SmbDelta18oEnum,(finaltime-(21000*yts)));
     532        this->parameters->FindParam(&Delta18oTime,SmbDelta18oEnum,time);
     533        this->parameters->FindParam(&Delta18oSurfacePresent,SmbDelta18oSurfaceEnum,finaltime);
     534        this->parameters->FindParam(&Delta18oSurfaceLgm,SmbDelta18oSurfaceEnum,(finaltime-(21000*yts)));
     535        this->parameters->FindParam(&Delta18oSurfaceTime,SmbDelta18oSurfaceEnum,time);
    536536
    537537        /*Compute the temperature and precipitation*/
     
    545545
    546546        /*Update inputs*/
    547         TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
    548         TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum);
     547        TransientInput* NewTemperatureInput = new TransientInput(SmbMonthlytemperaturesEnum);
     548        TransientInput* NewPrecipitationInput = new TransientInput(SmbPrecipitationEnum);
    549549        for (int imonth=0;imonth<12;imonth++) {
    550550                for(i=0;i<numvertices;i++) tmp[i]=monthlytemperatures[i*12+imonth];
    551551                switch(this->ObjectEnum()){
    552                         case TriaEnum:  NewTemperatureInput->AddTimeInput(new TriaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
    553                         case PentaEnum: NewTemperatureInput->AddTimeInput(new PentaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
    554                         case TetraEnum: NewTemperatureInput->AddTimeInput(new TetraInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
     552                        case TriaEnum:  NewTemperatureInput->AddTimeInput(new TriaInput(SmbMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
     553                        case PentaEnum: NewTemperatureInput->AddTimeInput(new PentaInput(SmbMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
     554                        case TetraEnum: NewTemperatureInput->AddTimeInput(new TetraInput(SmbMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
    555555                        default: _error_("Not implemented yet");
    556556                }
    557557                for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i*12+imonth]/yts;
    558558                switch(this->ObjectEnum()){
    559                         case TriaEnum:  NewPrecipitationInput->AddTimeInput(new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
    560                         case PentaEnum: NewPrecipitationInput->AddTimeInput(new PentaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
    561                         case TetraEnum: NewPrecipitationInput->AddTimeInput(new TetraInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
     559                        case TriaEnum:  NewPrecipitationInput->AddTimeInput(new TriaInput(SmbPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
     560                        case PentaEnum: NewPrecipitationInput->AddTimeInput(new PentaInput(SmbPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
     561                        case TetraEnum: NewPrecipitationInput->AddTimeInput(new TetraInput(SmbPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
    562562                        default: _error_("Not implemented yet");
    563563                }
     
    573573                case PentaEnum:
    574574                case TetraEnum:
    575                                                         this->InputExtrude(SurfaceforcingsMonthlytemperaturesEnum,-1);
    576                                                         this->InputExtrude(SurfaceforcingsPrecipitationEnum,-1);
     575                                                        this->InputExtrude(SmbMonthlytemperaturesEnum,-1);
     576                                                        this->InputExtrude(SmbPrecipitationEnum,-1);
    577577                                                        break;
    578578                default: _error_("Not implemented yet");
     
    611611
    612612        /*Recover present day temperature and precipitation*/
    613         Input*     input=this->inputs->GetInput(SurfaceforcingsTemperaturesPresentdayEnum);    _assert_(input);
    614         Input*     input2=this->inputs->GetInput(SurfaceforcingsTemperaturesLgmEnum);          _assert_(input2);
    615         Input*     input3=this->inputs->GetInput(SurfaceforcingsPrecipitationsPresentdayEnum); _assert_(input3);
    616         Input*     input4=this->inputs->GetInput(SurfaceforcingsPrecipitationsLgmEnum);        _assert_(input4);
     613        Input*     input=this->inputs->GetInput(SmbTemperaturesPresentdayEnum);    _assert_(input);
     614        Input*     input2=this->inputs->GetInput(SmbTemperaturesLgmEnum);          _assert_(input2);
     615        Input*     input3=this->inputs->GetInput(SmbPrecipitationsPresentdayEnum); _assert_(input3);
     616        Input*     input4=this->inputs->GetInput(SmbPrecipitationsLgmEnum);        _assert_(input4);
    617617        /*loop over vertices: */
    618618        Gauss* gauss=this->NewGauss();
     
    631631
    632632        /*Recover interpolation parameters at time t*/
    633         this->parameters->FindParam(&TdiffTime,SurfaceforcingsTdiffEnum,time);
    634         this->parameters->FindParam(&PfacTime,SurfaceforcingsPfacEnum,time);
     633        this->parameters->FindParam(&TdiffTime,SmbTdiffEnum,time);
     634        this->parameters->FindParam(&PfacTime,SmbPfacEnum,time);
    635635
    636636        /*Compute the temperature and precipitation*/
     
    643643
    644644        /*Update inputs*/
    645         TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
    646         TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum);
     645        TransientInput* NewTemperatureInput = new TransientInput(SmbMonthlytemperaturesEnum);
     646        TransientInput* NewPrecipitationInput = new TransientInput(SmbPrecipitationEnum);
    647647        for (int imonth=0;imonth<12;imonth++) {
    648648                for(i=0;i<numvertices;i++) tmp[i]=monthlytemperatures[i*12+imonth];
    649649                switch(this->ObjectEnum()){
    650                         case TriaEnum:  NewTemperatureInput->AddTimeInput(new TriaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
    651                         case PentaEnum: NewTemperatureInput->AddTimeInput(new PentaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
    652                         case TetraEnum: NewTemperatureInput->AddTimeInput(new TetraInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
     650                        case TriaEnum:  NewTemperatureInput->AddTimeInput(new TriaInput(SmbMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
     651                        case PentaEnum: NewTemperatureInput->AddTimeInput(new PentaInput(SmbMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
     652                        case TetraEnum: NewTemperatureInput->AddTimeInput(new TetraInput(SmbMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
    653653                        default: _error_("Not implemented yet");
    654654                }
    655655                for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i*12+imonth]/yts;
    656656                switch(this->ObjectEnum()){
    657                         case TriaEnum:  NewPrecipitationInput->AddTimeInput(new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
    658                         case PentaEnum: NewPrecipitationInput->AddTimeInput(new PentaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
    659                         case TetraEnum: NewPrecipitationInput->AddTimeInput(new TetraInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
     657                        case TriaEnum:  NewPrecipitationInput->AddTimeInput(new TriaInput(SmbPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
     658                        case PentaEnum: NewPrecipitationInput->AddTimeInput(new PentaInput(SmbPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
     659                        case TetraEnum: NewPrecipitationInput->AddTimeInput(new TetraInput(SmbPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
    660660                        default: _error_("Not implemented yet");
    661661                }
     
    671671                case PentaEnum:
    672672                case TetraEnum:
    673                                                         this->InputExtrude(SurfaceforcingsMonthlytemperaturesEnum,-1);
    674                                                         this->InputExtrude(SurfaceforcingsPrecipitationEnum,-1);
     673                                                        this->InputExtrude(SmbMonthlytemperaturesEnum,-1);
     674                                                        this->InputExtrude(SmbPrecipitationEnum,-1);
    675675                                                        break;
    676676                default: _error_("Not implemented yet");
     
    709709
    710710        /*Get some pdd parameters*/
    711         dpermil=this->matpar->GetMaterialParameter(SurfaceforcingsDpermilEnum);
     711        dpermil=this->matpar->GetMaterialParameter(SmbDpermilEnum);
    712712
    713713        /*Recover present day temperature and precipitation*/
    714         Input*     input=this->inputs->GetInput(SurfaceforcingsTemperaturesPresentdayEnum);    _assert_(input);
    715         Input*     input2=this->inputs->GetInput(SurfaceforcingsPrecipitationsPresentdayEnum); _assert_(input2);
     714        Input*     input=this->inputs->GetInput(SmbTemperaturesPresentdayEnum);    _assert_(input);
     715        Input*     input2=this->inputs->GetInput(SmbPrecipitationsPresentdayEnum); _assert_(input2);
    716716        /*loop over vertices: */
    717717        Gauss* gauss=this->NewGauss();
     
    727727
    728728        /*Recover interpolation parameters at time t*/
    729         this->parameters->FindParam(&Delta18oTime,SurfaceforcingsDelta18oEnum,time);
     729        this->parameters->FindParam(&Delta18oTime,SmbDelta18oEnum,time);
    730730
    731731        /*Compute the temperature and precipitation*/
     
    737737
    738738        /*Update inputs*/
    739         TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
    740         TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum);
     739        TransientInput* NewTemperatureInput = new TransientInput(SmbMonthlytemperaturesEnum);
     740        TransientInput* NewPrecipitationInput = new TransientInput(SmbPrecipitationEnum);
    741741        for (int imonth=0;imonth<12;imonth++) {
    742742                for(i=0;i<numvertices;i++) tmp[i]=monthlytemperatures[i*12+imonth];
    743743                switch(this->ObjectEnum()){
    744                         case TriaEnum:  NewTemperatureInput->AddTimeInput(new TriaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
    745                         case PentaEnum: NewTemperatureInput->AddTimeInput(new PentaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
    746                         case TetraEnum: NewTemperatureInput->AddTimeInput(new TetraInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
     744                        case TriaEnum:  NewTemperatureInput->AddTimeInput(new TriaInput(SmbMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
     745                        case PentaEnum: NewTemperatureInput->AddTimeInput(new PentaInput(SmbMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
     746                        case TetraEnum: NewTemperatureInput->AddTimeInput(new TetraInput(SmbMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
    747747                        default: _error_("Not implemented yet");
    748748                }
    749749                for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i*12+imonth]/yts;
    750750                switch(this->ObjectEnum()){
    751                         case TriaEnum:  NewPrecipitationInput->AddTimeInput(new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
    752                         case PentaEnum: NewPrecipitationInput->AddTimeInput(new PentaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
    753                         case TetraEnum: NewPrecipitationInput->AddTimeInput(new TetraInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
     751                        case TriaEnum:  NewPrecipitationInput->AddTimeInput(new TriaInput(SmbPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
     752                        case PentaEnum: NewPrecipitationInput->AddTimeInput(new PentaInput(SmbPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
     753                        case TetraEnum: NewPrecipitationInput->AddTimeInput(new TetraInput(SmbPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
    754754                        default: _error_("Not implemented yet");
    755755                }
     
    765765                case PentaEnum:
    766766                case TetraEnum:
    767                                                         this->InputExtrude(SurfaceforcingsMonthlytemperaturesEnum,-1);
    768                                                         this->InputExtrude(SurfaceforcingsPrecipitationEnum,-1);
     767                                                        this->InputExtrude(SmbMonthlytemperaturesEnum,-1);
     768                                                        this->InputExtrude(SmbPrecipitationEnum,-1);
    769769                                                        break;
    770770                default: _error_("Not implemented yet");
     
    14581458                                name==SurfaceSlopeXEnum ||
    14591459                                name==SurfaceSlopeYEnum ||
    1460                                 name==SurfaceforcingsMassBalanceEnum ||
     1460                                name==SmbMassBalanceEnum ||
    14611461                                name==BasalforcingsGroundediceMeltingRateEnum ||
    14621462                                name==BasalforcingsFloatingiceMeltingRateEnum ||
     
    17151715
    17161716        /*Get some pdd parameters*/
    1717         desfac=this->matpar->GetMaterialParameter(SurfaceforcingsDesfacEnum);
    1718         rlaps=this->matpar->GetMaterialParameter(SurfaceforcingsRlapsEnum);
    1719         rlapslgm=this->matpar->GetMaterialParameter(SurfaceforcingsRlapslgmEnum);
     1717        desfac=this->matpar->GetMaterialParameter(SmbDesfacEnum);
     1718        rlaps=this->matpar->GetMaterialParameter(SmbRlapsEnum);
     1719        rlapslgm=this->matpar->GetMaterialParameter(SmbRlapslgmEnum);
    17201720
    17211721        /*Recover monthly temperatures and precipitation and compute the yearly mean temperatures*/
    1722         Input*     input=this->inputs->GetInput(SurfaceforcingsMonthlytemperaturesEnum); _assert_(input);
    1723         Input*     input2=this->inputs->GetInput(SurfaceforcingsPrecipitationEnum); _assert_(input2);
     1722        Input*     input=this->inputs->GetInput(SmbMonthlytemperaturesEnum); _assert_(input);
     1723        Input*     input2=this->inputs->GetInput(SmbPrecipitationEnum); _assert_(input2);
    17241724        IssmDouble time,yts,time_yr;
    17251725        this->parameters->FindParam(&time,TimeEnum);
     
    17441744         *         and precipitaton between PD and LGM when ismungsm==1 */
    17451745        if (ismungsm==1){
    1746                 this->parameters->FindParam(&TdiffTime,SurfaceforcingsTdiffEnum,time);
    1747                 this->parameters->FindParam(&sealevTime,SurfaceforcingsSealevEnum,time);
     1746                this->parameters->FindParam(&TdiffTime,SmbTdiffEnum,time);
     1747                this->parameters->FindParam(&sealevTime,SmbSealevEnum,time);
    17481748        }
    17491749        else {
     
    17551755        GetInputListOnVertices(&h[0],ThicknessEnum);
    17561756        GetInputListOnVertices(&s[0],SurfaceEnum);
    1757         GetInputListOnVertices(&s0p[0],SurfaceforcingsS0pEnum);
    1758         GetInputListOnVertices(&s0t[0],SurfaceforcingsS0tEnum);
     1757        GetInputListOnVertices(&s0p[0],SmbS0pEnum);
     1758        GetInputListOnVertices(&s0t[0],SmbS0tEnum);
    17591759
    17601760        /*measure the surface mass balance*/
     
    17711771
    17721772        /*Update inputs*/
    1773         // TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
    1774         // TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum);
     1773        // TransientInput* NewTemperatureInput = new TransientInput(SmbMonthlytemperaturesEnum);
     1774        // TransientInput* NewPrecipitationInput = new TransientInput(SmbPrecipitationEnum);
    17751775        // for (int imonth=0;imonth<12;imonth++) {
    17761776        //   for(i=0;i<numvertices;i++) tmp[i]=monthlytemperatures[i*12+imonth];
    1777         //   TriaInput* newmonthinput1 = new TriaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum);
     1777        //   TriaInput* newmonthinput1 = new TriaInput(SmbMonthlytemperaturesEnum,&tmp[0],P1Enum);
    17781778        //   NewTemperatureInput->AddTimeInput(newmonthinput1,time+imonth/12.*yts);
    17791779        //
    17801780        //   for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i*12+imonth]/yts;
    1781         //   TriaInput* newmonthinput2 = new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum);
     1781        //   TriaInput* newmonthinput2 = new TriaInput(SmbPrecipitationEnum,&tmp[0],P1Enum);
    17821782        //   NewPrecipitationInput->AddTimeInput(newmonthinput2,time+imonth/12.*yts);
    17831783        // }
     
    17891789                        // this->inputs->AddInput(new TriaInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
    17901790                        this->inputs->AddInput(new TriaInput(TemperaturePDDEnum,&yearlytemperatures[0],P1Enum));
    1791                         this->inputs->AddInput(new TriaInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
    1792                         this->inputs->AddInput(new TriaInput(SurfaceforcingsAccumulationEnum,&accu[0],P1Enum));
    1793                         this->inputs->AddInput(new TriaInput(SurfaceforcingsMeltEnum,&melt[0],P1Enum));
     1791                        this->inputs->AddInput(new TriaInput(SmbMassBalanceEnum,&agd[0],P1Enum));
     1792                        this->inputs->AddInput(new TriaInput(SmbAccumulationEnum,&accu[0],P1Enum));
     1793                        this->inputs->AddInput(new TriaInput(SmbMeltEnum,&melt[0],P1Enum));
    17941794                        break;
    17951795                case PentaEnum:
     
    18011801                              this->inputs->AddInput(new PentaInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
    18021802                        }
    1803                         this->inputs->AddInput(new PentaInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
     1803                        this->inputs->AddInput(new PentaInput(SmbMassBalanceEnum,&agd[0],P1Enum));
    18041804                        this->inputs->AddInput(new PentaInput(TemperaturePDDEnum,&yearlytemperatures[0],P1Enum));
    18051805                        this->InputExtrude(TemperaturePDDEnum,-1);
    1806                         this->InputExtrude(SurfaceforcingsMassBalanceEnum,-1);
     1806                        this->InputExtrude(SmbMassBalanceEnum,-1);
    18071807                        break;
    18081808                case TetraEnum:
     
    18141814                              this->inputs->AddInput(new TetraInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
    18151815                        }
    1816                         this->inputs->AddInput(new TetraInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
     1816                        this->inputs->AddInput(new TetraInput(SmbMassBalanceEnum,&agd[0],P1Enum));
    18171817                        this->inputs->AddInput(new TetraInput(TemperaturePDDEnum,&yearlytemperatures[0],P1Enum));
    18181818                        this->InputExtrude(TemperaturePDDEnum,-1);
    1819                         this->InputExtrude(SurfaceforcingsMassBalanceEnum,-1);
     1819                        this->InputExtrude(SmbMassBalanceEnum,-1);
    18201820                        break;
    18211821                default: _error_("Not implemented yet");
     
    18251825        // this->inputs->AddInput(new TriaVertexInput(ThermalSpcTemperatureEnum,&Tsurf[0]));
    18261826
    1827         //this->InputExtrude(SurfaceforcingsMassBalanceEnum,-1);
    1828         // this->InputExtrude(SurfaceforcingsMonthlytemperaturesEnum,-1);
    1829         // this->InputExtrude(SurfaceforcingsPrecipitationEnum,-1);
     1827        //this->InputExtrude(SmbMassBalanceEnum,-1);
     1828        // this->InputExtrude(SmbMonthlytemperaturesEnum,-1);
     1829        // this->InputExtrude(SmbPrecipitationEnum,-1);
    18301830
    18311831        /*clean-up*/
  • issm/trunk-jpl/src/c/classes/Elements/Penta.cpp

    r19518 r19527  
    26352635
    26362636        /*Now get the average SMB over the element*/
    2637         Input* smb_input = inputs->GetInput(SurfaceforcingsMassBalanceEnum); _assert_(smb_input);
     2637        Input* smb_input = inputs->GetInput(SmbMassBalanceEnum); _assert_(smb_input);
    26382638
    26392639        smb_input->GetInputAverage(&smb);
  • issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r19518 r19527  
    30473047
    30483048        /*Now get the average SMB over the element*/
    3049         Input* smb_input = inputs->GetInput(SurfaceforcingsMassBalanceEnum); _assert_(smb_input);
     3049        Input* smb_input = inputs->GetInput(SmbMassBalanceEnum); _assert_(smb_input);
    30503050        smb_input->GetInputAverage(&smb);                                                                                                                                                                                               // average smb on element in m ice s-1
    30513051   Total_Smb=rho_ice*base*smb;                                                                                                                                                                                                                  // smb on element in kg s-1
  • issm/trunk-jpl/src/c/classes/FemModel.cpp

    r19518 r19527  
    777777        IssmDouble         *surface = NULL;
    778778        IssmDouble         *bed     = NULL;
     779                       
     780        if(VerboseSolution()) _printf0_("   updating vertices positions\n");
    779781
    780782        /*get vertex vectors for bed and thickness: */
     
    17401742                Input* vx_input                        = element->GetInput(VxEnum);                                  _assert_(vx_input);
    17411743                Input* vy_input                        = element->GetInput(VyEnum);                                  _assert_(vy_input);
    1742                 Input* surface_mass_balance_input      = element->GetInput(SurfaceforcingsMassBalanceEnum);          _assert_(surface_mass_balance_input);
     1744                Input* surface_mass_balance_input      = element->GetInput(SmbMassBalanceEnum);          _assert_(surface_mass_balance_input);
    17431745                Input* groundedice_melting_input       = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(groundedice_melting_input);
    17441746                Input* dhdt_input                      = element->GetInput(BalancethicknessThickeningRateEnum);      _assert_(dhdt_input);
  • issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp

    r19309 r19527  
    6969        int  hydrology_model,smb_model,materials_type;
    7070        iomodel->Constant(&hydrology_model,HydrologyModelEnum);
    71         iomodel->Constant(&smb_model,SurfaceforcingsEnum);
     71        iomodel->Constant(&smb_model,SmbEnum);
    7272        iomodel->Constant(&materials_type,MaterialsEnum);
    7373
     
    9393
    9494                        switch(smb_model){
    95                                 case SMBEnum:
     95                                case SMBforcingEnum:
    9696                                        /*Nothing to add*/
    9797                                        break;
    9898                                case SMBpddEnum:
    99                                         iomodel->Constant(&this->desfac,SurfaceforcingsDesfacEnum);
    100                                         iomodel->Constant(&this->rlaps,SurfaceforcingsRlapsEnum);
    101                                         iomodel->Constant(&this->rlapslgm,SurfaceforcingsRlapslgmEnum);
     99                                        iomodel->Constant(&this->desfac,SmbDesfacEnum);
     100                                        iomodel->Constant(&this->rlaps,SmbRlapsEnum);
     101                                        iomodel->Constant(&this->rlapslgm,SmbRlapslgmEnum);
    102102                                        break;
    103103                                case SMBd18opddEnum:
    104                                         iomodel->Constant(&this->desfac,SurfaceforcingsDesfacEnum);
    105                                         iomodel->Constant(&this->rlaps,SurfaceforcingsRlapsEnum);
    106                                         iomodel->Constant(&this->rlapslgm,SurfaceforcingsRlapslgmEnum);
    107                                         iomodel->Constant(&this->dpermil,SurfaceforcingsDpermilEnum);                                   
     104                                        iomodel->Constant(&this->desfac,SmbDesfacEnum);
     105                                        iomodel->Constant(&this->rlaps,SmbRlapsEnum);
     106                                        iomodel->Constant(&this->rlapslgm,SmbRlapslgmEnum);
     107                                        iomodel->Constant(&this->dpermil,SmbDpermilEnum);                                       
    108108                                case SMBgradientsEnum:
    109109                                        break;
     
    365365                        this->g=constant;
    366366                        break;
    367                 case  SurfaceforcingsDesfacEnum:
     367                case  SmbDesfacEnum:
    368368                        this->desfac=constant;
    369369                        break;
    370                 case SurfaceforcingsRlapsEnum:
     370                case SmbRlapsEnum:
    371371                        this->rlaps=constant;
    372372                        break;
    373                 case SurfaceforcingsRlapslgmEnum:
     373                case SmbRlapslgmEnum:
    374374                        this->rlapslgm=constant;
    375375                        break;
    376                 case  SurfaceforcingsDpermilEnum:
     376                case  SmbDpermilEnum:
    377377                        this->dpermil=constant;
    378378                        break;
     
    498498                case HydrologydcWaterCompressibilityEnum:    return this->water_compressibility;
    499499                case ConstantsGEnum:                         return this->g;
    500                 case SurfaceforcingsDesfacEnum:              return this->desfac;
    501                 case SurfaceforcingsRlapsEnum:               return this->rlaps;
    502                 case SurfaceforcingsRlapslgmEnum:            return this->rlapslgm;
    503                 case SurfaceforcingsDpermilEnum:             return this->dpermil;
     500                case SmbDesfacEnum:              return this->desfac;
     501                case SmbRlapsEnum:               return this->rlaps;
     502                case SmbRlapslgmEnum:            return this->rlapslgm;
     503                case SmbDpermilEnum:             return this->dpermil;
    504504                case MaterialsLithosphereShearModulusEnum:   return this->lithosphere_shear_modulus;
    505505                case MaterialsLithosphereDensityEnum:        return this->lithosphere_density;
  • issm/trunk-jpl/src/c/cores/cores.h

    r19191 r19527  
    4646void dummy_core(FemModel* femmodel);
    4747void gia_core(FemModel* femmodel);
     48void smb_core(FemModel* femmodel);
    4849void damage_core(FemModel* femmodel);
    4950IssmDouble objectivefunction(IssmDouble search_scalar,FemModel* femmodel);
  • issm/trunk-jpl/src/c/cores/damage_core.cpp

    r19388 r19527  
    1919        char   **requested_outputs = NULL;
    2020
    21        
     21                       
    2222        //first recover parameters common to all solutions
    2323        femmodel->parameters->FindParam(&save_results,SaveResultsEnum);
  • issm/trunk-jpl/src/c/cores/hydrology_core.cpp

    r17887 r19527  
    1717        bool       modify_loads=true;
    1818        bool       isefficientlayer;
     19       
    1920
    2021        /*first recover parameters common to all solutions*/
    2122        femmodel->parameters->FindParam(&save_results,SaveResultsEnum);
    2223        femmodel->parameters->FindParam(&hydrology_model,HydrologyModelEnum);
    23 
     24       
     25        if(VerboseSolution()) _printf0_("   computing water heads\n");
     26                       
    2427        /*first compute slopes: */
    2528        if (hydrology_model==HydrologyshreveEnum){
  • issm/trunk-jpl/src/c/cores/masstransport_core.cpp

    r18344 r19527  
    3131        femmodel->parameters->FindParam(&stabilization,MasstransportStabilizationEnum);
    3232        if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,MasstransportRequestedOutputsEnum);
    33 
    34         /*Calculate new Surface Mass Balance (SMB)*/
    35         SurfaceMassBalancex(femmodel);
     33                       
     34        if(VerboseSolution()) _printf0_("   computing mass transport\n");
    3635
    3736        /*Transport mass or free surface*/
  • issm/trunk-jpl/src/c/cores/stressbalance_core.cpp

    r18237 r19527  
    2222        char     **requested_outputs = NULL;
    2323        Analysis  *analysis          = NULL;
     24                       
    2425
    2526        /* recover parameters:*/
     
    3435        femmodel->parameters->FindParam(&numoutputs,StressbalanceNumRequestedOutputsEnum);
    3536        if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,StressbalanceRequestedOutputsEnum);
     37       
     38        if(VerboseSolution()) _printf0_("   computing new velocity\n");
    3639
    3740        /*Compute slopes if necessary */
  • issm/trunk-jpl/src/c/cores/transient_core.cpp

    r19334 r19527  
    2121        /*parameters: */
    2222        IssmDouble starttime,finaltime,dt,yts;
    23         bool       isstressbalance,ismasstransport,isFS,isthermal,isgroundingline,isgia,islevelset,isdamageevolution,ishydrology,iscalving;
     23        bool       isstressbalance,ismasstransport,issmb,isFS,isthermal,isgroundingline,isgia,islevelset,isdamageevolution,ishydrology,iscalving;
    2424        bool       save_results,dakota_analysis;
    2525        bool       time_adapt;
     
    4848        femmodel->parameters->FindParam(&isstressbalance,TransientIsstressbalanceEnum);
    4949        femmodel->parameters->FindParam(&ismasstransport,TransientIsmasstransportEnum);
     50        femmodel->parameters->FindParam(&issmb,TransientIssmbEnum);
    5051        femmodel->parameters->FindParam(&isthermal,TransientIsthermalEnum);
    5152        femmodel->parameters->FindParam(&isgia,TransientIsgiaEnum);
     
    5657        femmodel->parameters->FindParam(&isFS,FlowequationIsFSEnum);
    5758        femmodel->parameters->FindParam(&iscalving,TransientIscalvingEnum);
    58         femmodel->parameters->FindParam(&smb_model,SurfaceforcingsEnum);
     59        femmodel->parameters->FindParam(&smb_model,SmbEnum);
    5960        if(isgroundingline) femmodel->parameters->FindParam(&groundingline_migration,GroundinglineMigrationEnum);
    6061        femmodel->parameters->FindParam(&numoutputs,TransientNumRequestedOutputsEnum);
     
    8687                femmodel->parameters->SetParam(save_results,SaveResultsEnum);
    8788
    88                 if(isthermal && domaintype==Domain3DEnum){
     89                if(isthermal && domaintype==Domain3DEnum){ 
    8990                        if(VerboseSolution()) _printf0_("   computing thermal regime\n");
    9091                        if(smb_model==SMBpddEnum) ResetBoundaryConditions(femmodel,ThermalAnalysisEnum);
     
    9394                }
    9495
    95                 if(ishydrology){
    96                         if(VerboseSolution()) _printf0_("   computing water heads\n");
    97                         hydrology_core(femmodel);
    98                 }
     96                if(ishydrology) hydrology_core(femmodel);
    9997
    100                 if(isstressbalance){
    101                         if(VerboseSolution()) _printf0_("   computing new velocity\n");
    102                         stressbalance_core(femmodel);
    103                 }
     98                if(isstressbalance) stressbalance_core(femmodel);
    10499
    105                 if(isdamageevolution){
    106                         if(VerboseSolution()) _printf0_("   computing damage\n");
    107                         damage_core(femmodel);
    108                 }
     100                if(isdamageevolution) damage_core(femmodel);
    109101
    110102                if(islevelset){
     
    137129                }
    138130
     131                if(issmb)smb_core(femmodel);
     132
    139133                if(ismasstransport){
    140                         if(VerboseSolution()) _printf0_("   computing new thickness\n");
    141134                        masstransport_core(femmodel);
    142                         if(VerboseSolution()) _printf0_("   updating vertices positions\n");
    143135                        femmodel->UpdateVertexPositionsx();
    144136                }
  • issm/trunk-jpl/src/c/main/esmfbinders.cpp

    r19327 r19527  
    3232
    3333                /*Some specific code here for the binding: */
    34                 femmodel->parameters->SetParam(SMBgcmEnum,SurfaceforcingsEnum); //bypass SMB model, will be provided by GCM!
     34                femmodel->parameters->SetParam(SMBgcmEnum,SmbEnum); //bypass SMB model, will be provided by GCM!
    3535       
    3636                /*Restart file: */
     
    8282
    8383                                                /*Add into the element as new forcing :*/
    84                                                 element->inputs->AddInput(new DoubleInput(SurfaceforcingsMassBalanceEnum,smbforcing));
     84                                                element->inputs->AddInput(new DoubleInput(SmbMassBalanceEnum,smbforcing));
    8585
    8686                                                }
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r19479 r19527  
    7777                parameters->AddObject(iomodel->CopyConstantObject(TransientIsstressbalanceEnum));
    7878                parameters->AddObject(iomodel->CopyConstantObject(TransientIsmasstransportEnum));
     79                parameters->AddObject(iomodel->CopyConstantObject(TransientIssmbEnum));
    7980                parameters->AddObject(iomodel->CopyConstantObject(TransientIsthermalEnum));
    8081                parameters->AddObject(iomodel->CopyConstantObject(TransientIsgroundinglineEnum));
     
    99100
    100101        /*Surface mass balance parameters*/
    101         parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsEnum));
    102         iomodel->Constant(&smb_model,SurfaceforcingsEnum);
     102        parameters->AddObject(iomodel->CopyConstantObject(SmbEnum));
     103        iomodel->Constant(&smb_model,SmbEnum);
    103104        iomodel->Constant(&interp,TimesteppingInterpForcingsEnum);
    104105        switch(smb_model){
    105                 case SMBEnum:
     106                case SMBforcingEnum:
    106107                        /*Nothing to add to parameters*/
    107108                        break;
    108109                case SMBpddEnum:
    109                         parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsdelta18oEnum));
    110                         parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsmungsmEnum));
    111                         parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsDesfacEnum));
    112                         parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsRlapsEnum));
    113                         parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsRlapslgmEnum));
    114                         iomodel->Constant(&isdelta18o,SurfaceforcingsIsdelta18oEnum);
    115                         iomodel->Constant(&ismungsm,SurfaceforcingsIsmungsmEnum);
     110                        parameters->AddObject(iomodel->CopyConstantObject(SmbIsdelta18oEnum));
     111                        parameters->AddObject(iomodel->CopyConstantObject(SmbIsmungsmEnum));
     112                        parameters->AddObject(iomodel->CopyConstantObject(SmbDesfacEnum));
     113                        parameters->AddObject(iomodel->CopyConstantObject(SmbRlapsEnum));
     114                        parameters->AddObject(iomodel->CopyConstantObject(SmbRlapslgmEnum));
     115                        iomodel->Constant(&isdelta18o,SmbIsdelta18oEnum);
     116                        iomodel->Constant(&ismungsm,SmbIsmungsmEnum);
    116117
    117118                        if(ismungsm){
    118                           iomodel->FetchData(&temp,&N,&M,SurfaceforcingsPfacEnum); _assert_(N==2);
    119                           parameters->AddObject(new TransientParam(SurfaceforcingsPfacEnum,&temp[0],&temp[M],interp,M));
    120                           iomodel->DeleteData(temp,SurfaceforcingsPfacEnum);
     119                          iomodel->FetchData(&temp,&N,&M,SmbPfacEnum); _assert_(N==2);
     120                          parameters->AddObject(new TransientParam(SmbPfacEnum,&temp[0],&temp[M],interp,M));
     121                          iomodel->DeleteData(temp,SmbPfacEnum);
    121122                       
    122                           iomodel->FetchData(&temp,&N,&M,SurfaceforcingsTdiffEnum); _assert_(N==2);
    123                           parameters->AddObject(new TransientParam(SurfaceforcingsTdiffEnum,&temp[0],&temp[M],interp,M));
    124                           iomodel->DeleteData(temp,SurfaceforcingsTdiffEnum);
    125 
    126                           iomodel->FetchData(&temp,&N,&M,SurfaceforcingsSealevEnum); _assert_(N==2);
    127                           parameters->AddObject(new TransientParam(SurfaceforcingsSealevEnum,&temp[0],&temp[M],interp,M));
    128                           iomodel->DeleteData(temp,SurfaceforcingsSealevEnum);
     123                          iomodel->FetchData(&temp,&N,&M,SmbTdiffEnum); _assert_(N==2);
     124                          parameters->AddObject(new TransientParam(SmbTdiffEnum,&temp[0],&temp[M],interp,M));
     125                          iomodel->DeleteData(temp,SmbTdiffEnum);
     126
     127                          iomodel->FetchData(&temp,&N,&M,SmbSealevEnum); _assert_(N==2);
     128                          parameters->AddObject(new TransientParam(SmbSealevEnum,&temp[0],&temp[M],interp,M));
     129                          iomodel->DeleteData(temp,SmbSealevEnum);
    129130                        }
    130131                        if(isdelta18o){
    131                                 iomodel->FetchData(&temp,&N,&M,SurfaceforcingsDelta18oEnum); _assert_(N==2);
    132                                 parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oEnum,&temp[0],&temp[M],interp,M));
    133                                 iomodel->DeleteData(temp,SurfaceforcingsDelta18oEnum);
    134 
    135                                 iomodel->FetchData(&temp,&N,&M,SurfaceforcingsDelta18oSurfaceEnum); _assert_(N==2);
    136                                 parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oSurfaceEnum,&temp[0],&temp[M],interp,M));
    137                                 iomodel->DeleteData(temp,SurfaceforcingsDelta18oSurfaceEnum);
     132                                iomodel->FetchData(&temp,&N,&M,SmbDelta18oEnum); _assert_(N==2);
     133                                parameters->AddObject(new TransientParam(SmbDelta18oEnum,&temp[0],&temp[M],interp,M));
     134                                iomodel->DeleteData(temp,SmbDelta18oEnum);
     135
     136                                iomodel->FetchData(&temp,&N,&M,SmbDelta18oSurfaceEnum); _assert_(N==2);
     137                                parameters->AddObject(new TransientParam(SmbDelta18oSurfaceEnum,&temp[0],&temp[M],interp,M));
     138                                iomodel->DeleteData(temp,SmbDelta18oSurfaceEnum);
    138139                        }
    139140                        break;
    140141                case SMBd18opddEnum:
    141                         parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsmungsmEnum));
    142                         parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsd18opdEnum));
    143                         parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsDesfacEnum));
    144                         parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsRlapsEnum));
    145                         parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsRlapslgmEnum));
    146                         iomodel->Constant(&ismungsm,SurfaceforcingsIsmungsmEnum);
    147                         iomodel->Constant(&isd18opd,SurfaceforcingsIsd18opdEnum);
     142                        parameters->AddObject(iomodel->CopyConstantObject(SmbIsmungsmEnum));
     143                        parameters->AddObject(iomodel->CopyConstantObject(SmbIsd18opdEnum));
     144                        parameters->AddObject(iomodel->CopyConstantObject(SmbDesfacEnum));
     145                        parameters->AddObject(iomodel->CopyConstantObject(SmbRlapsEnum));
     146                        parameters->AddObject(iomodel->CopyConstantObject(SmbRlapslgmEnum));
     147                        iomodel->Constant(&ismungsm,SmbIsmungsmEnum);
     148                        iomodel->Constant(&isd18opd,SmbIsd18opdEnum);
    148149                        if(isd18opd){
    149                                 iomodel->FetchData(&temp,&N,&M,SurfaceforcingsDelta18oEnum); _assert_(N==2);
    150                                 parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oEnum,&temp[0],&temp[M],interp,M));
    151                                 iomodel->DeleteData(temp,SurfaceforcingsDelta18oEnum);
     150                                iomodel->FetchData(&temp,&N,&M,SmbDelta18oEnum); _assert_(N==2);
     151                                parameters->AddObject(new TransientParam(SmbDelta18oEnum,&temp[0],&temp[M],interp,M));
     152                                iomodel->DeleteData(temp,SmbDelta18oEnum);
    152153                               
    153                                 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsDpermilEnum));
     154                                parameters->AddObject(iomodel->CopyConstantObject(SmbDpermilEnum));
    154155                        }
    155156                        break;
  • issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp

    r19286 r19527  
    77#include "../../toolkits/toolkits.h"
    88
    9 void SurfaceMassBalancex(FemModel* femmodel){/*{{{*/
    10 
    11         /*Intermediaties*/
    12         int  smb_model;
    13         bool isdelta18o,ismungsm,isd18opd;
    14 
    15         /*First, get SMB model from parameters*/
    16         femmodel->parameters->FindParam(&smb_model,SurfaceforcingsEnum);
    17 
    18         /*branch to correct module*/
    19         switch(smb_model){
    20                 case SMBEnum:
    21                         /*Nothing to be done*/
    22                         break;
    23                 case SMBpddEnum:
    24                         femmodel->parameters->FindParam(&isdelta18o,SurfaceforcingsIsdelta18oEnum);
    25                         femmodel->parameters->FindParam(&ismungsm,SurfaceforcingsIsmungsmEnum);
    26                         if(isdelta18o){
    27                                 if(VerboseSolution()) _printf0_("   call Delta18oParameterization module\n");
    28                                 Delta18oParameterizationx(femmodel);
    29                         }
    30                         if(ismungsm){
    31                                 if(VerboseSolution()) _printf0_("   call MungsmtpParameterization module\n");
    32                                 MungsmtpParameterizationx(femmodel);
    33                         }
    34                         if(VerboseSolution()) _printf0_("   call positive degree day module\n");
    35                         PositiveDegreeDayx(femmodel);
    36                         break;
    37                 case SMBd18opddEnum:
    38                         femmodel->parameters->FindParam(&isd18opd,SurfaceforcingsIsd18opdEnum);
    39                         if(isd18opd){
    40                                 if(VerboseSolution()) _printf0_("   call Delta18opdParameterization module\n");
    41                                 Delta18opdParameterizationx(femmodel);
    42                                 if(VerboseSolution()) _printf0_("   call positive degree day module\n");
    43                                 PositiveDegreeDayx(femmodel);
    44                         }
    45                         break;
    46                 case SMBgradientsEnum:
    47                         if(VerboseSolution())_printf0_("        call smb gradients module\n");
    48                         SmbGradientsx(femmodel);
    49                         break;
    50                 case SMBhenningEnum:
    51                         if(VerboseSolution())_printf0_("  call smb Henning module\n");
    52                         SmbHenningx(femmodel);
    53                         break;
    54                 case SMBcomponentsEnum:
    55                         if(VerboseSolution())_printf0_("  call smb Components module\n");
    56                         SmbComponentsx(femmodel);
    57                         break;
    58                 case SMBmeltcomponentsEnum:
    59                         if(VerboseSolution())_printf0_("  call smb Melt Components module\n");
    60                         SmbMeltComponentsx(femmodel);
    61                         break;
    62                 case SMBgcmEnum:
    63                         /*Nothing to be done*/
    64                         break;
    65                 default:
    66                         _error_("Surface mass balance model "<<EnumToStringx(smb_model)<<" not supported yet");
    67         }
    68 
    69 }/*}}}*/
    709
    7110void SmbGradientsx(FemModel* femmodel){/*{{{*/
     
    9332
    9433                /*Recover SmbGradients*/
    95                 element->GetInputListOnVertices(Href,SurfaceforcingsHrefEnum);
    96                 element->GetInputListOnVertices(Smbref,SurfaceforcingsSmbrefEnum);
    97                 element->GetInputListOnVertices(b_pos,SurfaceforcingsBPosEnum);
    98                 element->GetInputListOnVertices(b_neg,SurfaceforcingsBNegEnum);
     34                element->GetInputListOnVertices(Href,SmbHrefEnum);
     35                element->GetInputListOnVertices(Smbref,SmbSmbrefEnum);
     36                element->GetInputListOnVertices(b_pos,SmbBPosEnum);
     37                element->GetInputListOnVertices(b_neg,SmbBNegEnum);
    9938
    10039                /*Recover surface elevation at vertices: */
     
    11756
    11857                /*Add input to element and Free memory*/
    119                 element->AddInput(SurfaceforcingsMassBalanceEnum,smb,P1Enum);
     58                element->AddInput(SmbMassBalanceEnum,smb,P1Enum);
    12059                xDelete<IssmDouble>(Href);
    12160                xDelete<IssmDouble>(Smbref);
     
    187126
    188127        // Get ismungsm parameter
    189         femmodel->parameters->FindParam(&ismungsm,SurfaceforcingsIsmungsmEnum);
     128        femmodel->parameters->FindParam(&ismungsm,SmbIsmungsmEnum);
    190129
    191130        /* initialize PDD (creation of a lookup table)*/
     
    279218                IssmDouble* smblist     = xNew<IssmDouble>(numvertices);
    280219                element->GetInputListOnVertices(surfacelist,SurfaceEnum);
    281                 element->GetInputListOnVertices(smblistref,SurfaceforcingsSmbrefEnum);
     220                element->GetInputListOnVertices(smblistref,SmbSmbrefEnum);
    282221
    283222                /*Loop over all vertices of element and correct SMB as a function of altitude z*/
     
    311250
    312251                /*Add input to element and Free memory*/
    313                 element->AddInput(SurfaceforcingsMassBalanceEnum,smblist,P1Enum);
     252                element->AddInput(SmbMassBalanceEnum,smblist,P1Enum);
    314253                xDelete<IssmDouble>(surfacelist);
    315254                xDelete<IssmDouble>(smblistref);
     
    340279
    341280                /*Recover Smb Components*/
    342                 element->GetInputListOnVertices(acc,SurfaceforcingsAccumulationEnum);
    343                 element->GetInputListOnVertices(evap,SurfaceforcingsEvaporationEnum);
    344                 element->GetInputListOnVertices(runoff,SurfaceforcingsRunoffEnum);
     281                element->GetInputListOnVertices(acc,SmbAccumulationEnum);
     282                element->GetInputListOnVertices(evap,SmbEvaporationEnum);
     283                element->GetInputListOnVertices(runoff,SmbRunoffEnum);
    345284
    346285                // loop over all vertices
     
    350289
    351290                /*Add input to element and Free memory*/
    352                 element->AddInput(SurfaceforcingsMassBalanceEnum,smb,P1Enum);
     291                element->AddInput(SmbMassBalanceEnum,smb,P1Enum);
    353292                xDelete<IssmDouble>(acc);
    354293                xDelete<IssmDouble>(evap);
     
    382321
    383322                /*Recover Smb Components*/
    384                 element->GetInputListOnVertices(acc,SurfaceforcingsAccumulationEnum);
    385                 element->GetInputListOnVertices(evap,SurfaceforcingsEvaporationEnum);
    386                 element->GetInputListOnVertices(melt,SurfaceforcingsMeltEnum);
    387                 element->GetInputListOnVertices(refreeze,SurfaceforcingsRefreezeEnum);
     323                element->GetInputListOnVertices(acc,SmbAccumulationEnum);
     324                element->GetInputListOnVertices(evap,SmbEvaporationEnum);
     325                element->GetInputListOnVertices(melt,SmbMeltEnum);
     326                element->GetInputListOnVertices(refreeze,SmbRefreezeEnum);
    388327
    389328                // loop over all vertices
     
    393332
    394333                /*Add input to element and Free memory*/
    395                 element->AddInput(SurfaceforcingsMassBalanceEnum,smb,P1Enum);
     334                element->AddInput(SmbMassBalanceEnum,smb,P1Enum);
    396335                xDelete<IssmDouble>(acc);
    397336                xDelete<IssmDouble>(evap);
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r19518 r19527  
    328328        TimesteppingTimeStepEnum,
    329329        TimesteppingInterpForcingsEnum,
     330        TransientIssmbEnum,
    330331        TransientIsstressbalanceEnum,
    331332        TransientIsgroundinglineEnum,
     
    347348        BalancethicknessD0Enum,
    348349        /*}}}*/
    349         /*Surfaceforcings{{{*/
    350         SurfaceforcingsEnum,
    351         SMBEnum,
    352         SurfaceforcingsMassBalanceEnum,
     350        /*Smb{{{*/
     351        SmbEnum,
     352        SmbSolutionEnum,
     353        SmbNumRequestedOutputsEnum,
     354        SmbRequestedOutputsEnum,
     355        SMBforcingEnum,
     356        SmbMassBalanceEnum,
    353357        SMBpddEnum,     
    354         SurfaceforcingsDelta18oEnum,
    355         SurfaceforcingsDelta18oSurfaceEnum,
    356         SurfaceforcingsIsdelta18oEnum,
    357         SurfaceforcingsIsmungsmEnum,
    358         SurfaceforcingsIsd18opdEnum,
    359         SurfaceforcingsPrecipitationsPresentdayEnum,
    360         SurfaceforcingsPrecipitationsLgmEnum,
    361         SurfaceforcingsTemperaturesPresentdayEnum,
    362         SurfaceforcingsTemperaturesLgmEnum,
    363         SurfaceforcingsPrecipitationEnum,
    364         SurfaceforcingsDesfacEnum,
    365         SurfaceforcingsS0pEnum,
    366         SurfaceforcingsS0tEnum,
    367         SurfaceforcingsRlapsEnum,
    368         SurfaceforcingsRlapslgmEnum,
    369         SurfaceforcingsPfacEnum,
    370         SurfaceforcingsTdiffEnum,
    371         SurfaceforcingsSealevEnum,
     358        SmbDelta18oEnum,
     359        SmbDelta18oSurfaceEnum,
     360        SmbIsdelta18oEnum,
     361        SmbIsmungsmEnum,
     362        SmbIsd18opdEnum,
     363        SmbPrecipitationsPresentdayEnum,
     364        SmbPrecipitationsLgmEnum,
     365        SmbTemperaturesPresentdayEnum,
     366        SmbTemperaturesLgmEnum,
     367        SmbPrecipitationEnum,
     368        SmbDesfacEnum,
     369        SmbS0pEnum,
     370        SmbS0tEnum,
     371        SmbRlapsEnum,
     372        SmbRlapslgmEnum,
     373        SmbPfacEnum,
     374        SmbTdiffEnum,
     375        SmbSealevEnum,
    372376        SMBd18opddEnum,
    373         SurfaceforcingsDpermilEnum,
     377        SmbDpermilEnum,
    374378        SMBgradientsEnum,
    375         SurfaceforcingsMonthlytemperaturesEnum,
    376         SurfaceforcingsHrefEnum,
    377         SurfaceforcingsSmbrefEnum,
    378         SurfaceforcingsBPosEnum,
    379         SurfaceforcingsBNegEnum,
     379        SmbMonthlytemperaturesEnum,
     380        SmbHrefEnum,
     381        SmbSmbrefEnum,
     382        SmbBPosEnum,
     383        SmbBNegEnum,
    380384        SMBhenningEnum,
    381385        SMBcomponentsEnum,
    382         SurfaceforcingsAccumulationEnum,
    383         SurfaceforcingsEvaporationEnum,
    384         SurfaceforcingsRunoffEnum,
     386        SmbAccumulationEnum,
     387        SmbEvaporationEnum,
     388        SmbRunoffEnum,
    385389        SMBmeltcomponentsEnum,
    386         SurfaceforcingsMeltEnum,
    387         SurfaceforcingsRefreezeEnum,
     390        SmbMeltEnum,
     391        SmbRefreezeEnum,
    388392        SMBgcmEnum,
    389393        /*TO BE REMOVED*/
    390         SurfaceforcingsIspddEnum,
    391         SurfaceforcingsIssmbgradientsEnum,
     394        SmbIspddEnum,
     395        SmbIssmbgradientsEnum,
    392396        /*}}}*/
    393397        /*Solutions and Analyses{{{ */
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r19518 r19527  
    334334                case TimesteppingTimeStepEnum : return "TimesteppingTimeStep";
    335335                case TimesteppingInterpForcingsEnum : return "TimesteppingInterpForcings";
     336                case TransientIssmbEnum : return "TransientIssmb";
    336337                case TransientIsstressbalanceEnum : return "TransientIsstressbalance";
    337338                case TransientIsgroundinglineEnum : return "TransientIsgroundingline";
     
    352353                case BalancethicknessOmegaEnum : return "BalancethicknessOmega";
    353354                case BalancethicknessD0Enum : return "BalancethicknessD0";
    354                 case SurfaceforcingsEnum : return "Surfaceforcings";
    355                 case SMBEnum : return "SMB";
    356                 case SurfaceforcingsMassBalanceEnum : return "SurfaceforcingsMassBalance";
     355                case SmbEnum : return "Smb";
     356                case SmbSolutionEnum : return "SmbSolution";
     357                case SmbNumRequestedOutputsEnum : return "SmbNumRequestedOutputs";
     358                case SmbRequestedOutputsEnum : return "SmbRequestedOutputs";
     359                case SMBforcingEnum : return "SMBforcing";
     360                case SmbMassBalanceEnum : return "SmbMassBalance";
    357361                case SMBpddEnum : return "SMBpdd";
    358                 case SurfaceforcingsDelta18oEnum : return "SurfaceforcingsDelta18o";
    359                 case SurfaceforcingsDelta18oSurfaceEnum : return "SurfaceforcingsDelta18oSurface";
    360                 case SurfaceforcingsIsdelta18oEnum : return "SurfaceforcingsIsdelta18o";
    361                 case SurfaceforcingsIsmungsmEnum : return "SurfaceforcingsIsmungsm";
    362                 case SurfaceforcingsIsd18opdEnum : return "SurfaceforcingsIsd18opd";
    363                 case SurfaceforcingsPrecipitationsPresentdayEnum : return "SurfaceforcingsPrecipitationsPresentday";
    364                 case SurfaceforcingsPrecipitationsLgmEnum : return "SurfaceforcingsPrecipitationsLgm";
    365                 case SurfaceforcingsTemperaturesPresentdayEnum : return "SurfaceforcingsTemperaturesPresentday";
    366                 case SurfaceforcingsTemperaturesLgmEnum : return "SurfaceforcingsTemperaturesLgm";
    367                 case SurfaceforcingsPrecipitationEnum : return "SurfaceforcingsPrecipitation";
    368                 case SurfaceforcingsDesfacEnum : return "SurfaceforcingsDesfac";
    369                 case SurfaceforcingsS0pEnum : return "SurfaceforcingsS0p";
    370                 case SurfaceforcingsS0tEnum : return "SurfaceforcingsS0t";
    371                 case SurfaceforcingsRlapsEnum : return "SurfaceforcingsRlaps";
    372                 case SurfaceforcingsRlapslgmEnum : return "SurfaceforcingsRlapslgm";
    373                 case SurfaceforcingsPfacEnum : return "SurfaceforcingsPfac";
    374                 case SurfaceforcingsTdiffEnum : return "SurfaceforcingsTdiff";
    375                 case SurfaceforcingsSealevEnum : return "SurfaceforcingsSealev";
     362                case SmbDelta18oEnum : return "SmbDelta18o";
     363                case SmbDelta18oSurfaceEnum : return "SmbDelta18oSurface";
     364                case SmbIsdelta18oEnum : return "SmbIsdelta18o";
     365                case SmbIsmungsmEnum : return "SmbIsmungsm";
     366                case SmbIsd18opdEnum : return "SmbIsd18opd";
     367                case SmbPrecipitationsPresentdayEnum : return "SmbPrecipitationsPresentday";
     368                case SmbPrecipitationsLgmEnum : return "SmbPrecipitationsLgm";
     369                case SmbTemperaturesPresentdayEnum : return "SmbTemperaturesPresentday";
     370                case SmbTemperaturesLgmEnum : return "SmbTemperaturesLgm";
     371                case SmbPrecipitationEnum : return "SmbPrecipitation";
     372                case SmbDesfacEnum : return "SmbDesfac";
     373                case SmbS0pEnum : return "SmbS0p";
     374                case SmbS0tEnum : return "SmbS0t";
     375                case SmbRlapsEnum : return "SmbRlaps";
     376                case SmbRlapslgmEnum : return "SmbRlapslgm";
     377                case SmbPfacEnum : return "SmbPfac";
     378                case SmbTdiffEnum : return "SmbTdiff";
     379                case SmbSealevEnum : return "SmbSealev";
    376380                case SMBd18opddEnum : return "SMBd18opdd";
    377                 case SurfaceforcingsDpermilEnum : return "SurfaceforcingsDpermil";
     381                case SmbDpermilEnum : return "SmbDpermil";
    378382                case SMBgradientsEnum : return "SMBgradients";
    379                 case SurfaceforcingsMonthlytemperaturesEnum : return "SurfaceforcingsMonthlytemperatures";
    380                 case SurfaceforcingsHrefEnum : return "SurfaceforcingsHref";
    381                 case SurfaceforcingsSmbrefEnum : return "SurfaceforcingsSmbref";
    382                 case SurfaceforcingsBPosEnum : return "SurfaceforcingsBPos";
    383                 case SurfaceforcingsBNegEnum : return "SurfaceforcingsBNeg";
     383                case SmbMonthlytemperaturesEnum : return "SmbMonthlytemperatures";
     384                case SmbHrefEnum : return "SmbHref";
     385                case SmbSmbrefEnum : return "SmbSmbref";
     386                case SmbBPosEnum : return "SmbBPos";
     387                case SmbBNegEnum : return "SmbBNeg";
    384388                case SMBhenningEnum : return "SMBhenning";
    385389                case SMBcomponentsEnum : return "SMBcomponents";
    386                 case SurfaceforcingsAccumulationEnum : return "SurfaceforcingsAccumulation";
    387                 case SurfaceforcingsEvaporationEnum : return "SurfaceforcingsEvaporation";
    388                 case SurfaceforcingsRunoffEnum : return "SurfaceforcingsRunoff";
     390                case SmbAccumulationEnum : return "SmbAccumulation";
     391                case SmbEvaporationEnum : return "SmbEvaporation";
     392                case SmbRunoffEnum : return "SmbRunoff";
    389393                case SMBmeltcomponentsEnum : return "SMBmeltcomponents";
    390                 case SurfaceforcingsMeltEnum : return "SurfaceforcingsMelt";
    391                 case SurfaceforcingsRefreezeEnum : return "SurfaceforcingsRefreeze";
     394                case SmbMeltEnum : return "SmbMelt";
     395                case SmbRefreezeEnum : return "SmbRefreeze";
    392396                case SMBgcmEnum : return "SMBgcm";
    393                 case SurfaceforcingsIspddEnum : return "SurfaceforcingsIspdd";
    394                 case SurfaceforcingsIssmbgradientsEnum : return "SurfaceforcingsIssmbgradients";
     397                case SmbIspddEnum : return "SmbIspdd";
     398                case SmbIssmbgradientsEnum : return "SmbIssmbgradients";
    395399                case SolutionTypeEnum : return "SolutionType";
    396400                case AnalysisTypeEnum : return "AnalysisType";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r19518 r19527  
    340340              else if (strcmp(name,"TimesteppingTimeStep")==0) return TimesteppingTimeStepEnum;
    341341              else if (strcmp(name,"TimesteppingInterpForcings")==0) return TimesteppingInterpForcingsEnum;
     342              else if (strcmp(name,"TransientIssmb")==0) return TransientIssmbEnum;
    342343              else if (strcmp(name,"TransientIsstressbalance")==0) return TransientIsstressbalanceEnum;
    343344              else if (strcmp(name,"TransientIsgroundingline")==0) return TransientIsgroundinglineEnum;
     
    358359              else if (strcmp(name,"BalancethicknessOmega")==0) return BalancethicknessOmegaEnum;
    359360              else if (strcmp(name,"BalancethicknessD0")==0) return BalancethicknessD0Enum;
    360               else if (strcmp(name,"Surfaceforcings")==0) return SurfaceforcingsEnum;
    361               else if (strcmp(name,"SMB")==0) return SMBEnum;
    362               else if (strcmp(name,"SurfaceforcingsMassBalance")==0) return SurfaceforcingsMassBalanceEnum;
     361              else if (strcmp(name,"Smb")==0) return SmbEnum;
     362              else if (strcmp(name,"SmbSolution")==0) return SmbSolutionEnum;
     363              else if (strcmp(name,"SmbNumRequestedOutputs")==0) return SmbNumRequestedOutputsEnum;
     364              else if (strcmp(name,"SmbRequestedOutputs")==0) return SmbRequestedOutputsEnum;
     365              else if (strcmp(name,"SMBforcing")==0) return SMBforcingEnum;
     366              else if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum;
    363367              else if (strcmp(name,"SMBpdd")==0) return SMBpddEnum;
    364               else if (strcmp(name,"SurfaceforcingsDelta18o")==0) return SurfaceforcingsDelta18oEnum;
    365               else if (strcmp(name,"SurfaceforcingsDelta18oSurface")==0) return SurfaceforcingsDelta18oSurfaceEnum;
    366               else if (strcmp(name,"SurfaceforcingsIsdelta18o")==0) return SurfaceforcingsIsdelta18oEnum;
    367               else if (strcmp(name,"SurfaceforcingsIsmungsm")==0) return SurfaceforcingsIsmungsmEnum;
    368               else if (strcmp(name,"SurfaceforcingsIsd18opd")==0) return SurfaceforcingsIsd18opdEnum;
    369               else if (strcmp(name,"SurfaceforcingsPrecipitationsPresentday")==0) return SurfaceforcingsPrecipitationsPresentdayEnum;
    370               else if (strcmp(name,"SurfaceforcingsPrecipitationsLgm")==0) return SurfaceforcingsPrecipitationsLgmEnum;
    371               else if (strcmp(name,"SurfaceforcingsTemperaturesPresentday")==0) return SurfaceforcingsTemperaturesPresentdayEnum;
    372               else if (strcmp(name,"SurfaceforcingsTemperaturesLgm")==0) return SurfaceforcingsTemperaturesLgmEnum;
    373               else if (strcmp(name,"SurfaceforcingsPrecipitation")==0) return SurfaceforcingsPrecipitationEnum;
    374               else if (strcmp(name,"SurfaceforcingsDesfac")==0) return SurfaceforcingsDesfacEnum;
    375               else if (strcmp(name,"SurfaceforcingsS0p")==0) return SurfaceforcingsS0pEnum;
    376               else if (strcmp(name,"SurfaceforcingsS0t")==0) return SurfaceforcingsS0tEnum;
    377               else if (strcmp(name,"SurfaceforcingsRlaps")==0) return SurfaceforcingsRlapsEnum;
    378               else if (strcmp(name,"SurfaceforcingsRlapslgm")==0) return SurfaceforcingsRlapslgmEnum;
    379               else if (strcmp(name,"SurfaceforcingsPfac")==0) return SurfaceforcingsPfacEnum;
    380               else if (strcmp(name,"SurfaceforcingsTdiff")==0) return SurfaceforcingsTdiffEnum;
    381               else if (strcmp(name,"SurfaceforcingsSealev")==0) return SurfaceforcingsSealevEnum;
    382               else if (strcmp(name,"SMBd18opdd")==0) return SMBd18opddEnum;
    383               else if (strcmp(name,"SurfaceforcingsDpermil")==0) return SurfaceforcingsDpermilEnum;
    384               else if (strcmp(name,"SMBgradients")==0) return SMBgradientsEnum;
     368              else if (strcmp(name,"SmbDelta18o")==0) return SmbDelta18oEnum;
     369              else if (strcmp(name,"SmbDelta18oSurface")==0) return SmbDelta18oSurfaceEnum;
     370              else if (strcmp(name,"SmbIsdelta18o")==0) return SmbIsdelta18oEnum;
     371              else if (strcmp(name,"SmbIsmungsm")==0) return SmbIsmungsmEnum;
     372              else if (strcmp(name,"SmbIsd18opd")==0) return SmbIsd18opdEnum;
     373              else if (strcmp(name,"SmbPrecipitationsPresentday")==0) return SmbPrecipitationsPresentdayEnum;
     374              else if (strcmp(name,"SmbPrecipitationsLgm")==0) return SmbPrecipitationsLgmEnum;
     375              else if (strcmp(name,"SmbTemperaturesPresentday")==0) return SmbTemperaturesPresentdayEnum;
     376              else if (strcmp(name,"SmbTemperaturesLgm")==0) return SmbTemperaturesLgmEnum;
     377              else if (strcmp(name,"SmbPrecipitation")==0) return SmbPrecipitationEnum;
     378              else if (strcmp(name,"SmbDesfac")==0) return SmbDesfacEnum;
     379              else if (strcmp(name,"SmbS0p")==0) return SmbS0pEnum;
     380              else if (strcmp(name,"SmbS0t")==0) return SmbS0tEnum;
     381              else if (strcmp(name,"SmbRlaps")==0) return SmbRlapsEnum;
     382              else if (strcmp(name,"SmbRlapslgm")==0) return SmbRlapslgmEnum;
     383              else if (strcmp(name,"SmbPfac")==0) return SmbPfacEnum;
     384              else if (strcmp(name,"SmbTdiff")==0) return SmbTdiffEnum;
    385385         else stage=4;
    386386   }
    387387   if(stage==4){
    388               if (strcmp(name,"SurfaceforcingsMonthlytemperatures")==0) return SurfaceforcingsMonthlytemperaturesEnum;
    389               else if (strcmp(name,"SurfaceforcingsHref")==0) return SurfaceforcingsHrefEnum;
    390               else if (strcmp(name,"SurfaceforcingsSmbref")==0) return SurfaceforcingsSmbrefEnum;
    391               else if (strcmp(name,"SurfaceforcingsBPos")==0) return SurfaceforcingsBPosEnum;
    392               else if (strcmp(name,"SurfaceforcingsBNeg")==0) return SurfaceforcingsBNegEnum;
     388              if (strcmp(name,"SmbSealev")==0) return SmbSealevEnum;
     389              else if (strcmp(name,"SMBd18opdd")==0) return SMBd18opddEnum;
     390              else if (strcmp(name,"SmbDpermil")==0) return SmbDpermilEnum;
     391              else if (strcmp(name,"SMBgradients")==0) return SMBgradientsEnum;
     392              else if (strcmp(name,"SmbMonthlytemperatures")==0) return SmbMonthlytemperaturesEnum;
     393              else if (strcmp(name,"SmbHref")==0) return SmbHrefEnum;
     394              else if (strcmp(name,"SmbSmbref")==0) return SmbSmbrefEnum;
     395              else if (strcmp(name,"SmbBPos")==0) return SmbBPosEnum;
     396              else if (strcmp(name,"SmbBNeg")==0) return SmbBNegEnum;
    393397              else if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum;
    394398              else if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum;
    395               else if (strcmp(name,"SurfaceforcingsAccumulation")==0) return SurfaceforcingsAccumulationEnum;
    396               else if (strcmp(name,"SurfaceforcingsEvaporation")==0) return SurfaceforcingsEvaporationEnum;
    397               else if (strcmp(name,"SurfaceforcingsRunoff")==0) return SurfaceforcingsRunoffEnum;
     399              else if (strcmp(name,"SmbAccumulation")==0) return SmbAccumulationEnum;
     400              else if (strcmp(name,"SmbEvaporation")==0) return SmbEvaporationEnum;
     401              else if (strcmp(name,"SmbRunoff")==0) return SmbRunoffEnum;
    398402              else if (strcmp(name,"SMBmeltcomponents")==0) return SMBmeltcomponentsEnum;
    399               else if (strcmp(name,"SurfaceforcingsMelt")==0) return SurfaceforcingsMeltEnum;
    400               else if (strcmp(name,"SurfaceforcingsRefreeze")==0) return SurfaceforcingsRefreezeEnum;
     403              else if (strcmp(name,"SmbMelt")==0) return SmbMeltEnum;
     404              else if (strcmp(name,"SmbRefreeze")==0) return SmbRefreezeEnum;
    401405              else if (strcmp(name,"SMBgcm")==0) return SMBgcmEnum;
    402               else if (strcmp(name,"SurfaceforcingsIspdd")==0) return SurfaceforcingsIspddEnum;
    403               else if (strcmp(name,"SurfaceforcingsIssmbgradients")==0) return SurfaceforcingsIssmbgradientsEnum;
     406              else if (strcmp(name,"SmbIspdd")==0) return SmbIspddEnum;
     407              else if (strcmp(name,"SmbIssmbgradients")==0) return SmbIssmbgradientsEnum;
    404408              else if (strcmp(name,"SolutionType")==0) return SolutionTypeEnum;
    405409              else if (strcmp(name,"AnalysisType")==0) return AnalysisTypeEnum;
     
    502506              else if (strcmp(name,"InputToL2Project")==0) return InputToL2ProjectEnum;
    503507              else if (strcmp(name,"InputToDepthaverage")==0) return InputToDepthaverageEnum;
    504               else if (strcmp(name,"InputToSmooth")==0) return InputToSmoothEnum;
     508         else stage=5;
     509   }
     510   if(stage==5){
     511              if (strcmp(name,"InputToSmooth")==0) return InputToSmoothEnum;
    505512              else if (strcmp(name,"SmoothThicknessMultiplier")==0) return SmoothThicknessMultiplierEnum;
    506513              else if (strcmp(name,"IntParam")==0) return IntParamEnum;
    507514              else if (strcmp(name,"IntVecParam")==0) return IntVecParamEnum;
    508          else stage=5;
    509    }
    510    if(stage==5){
    511               if (strcmp(name,"TransientParam")==0) return TransientParamEnum;
     515              else if (strcmp(name,"TransientParam")==0) return TransientParamEnum;
    512516              else if (strcmp(name,"Matice")==0) return MaticeEnum;
    513517              else if (strcmp(name,"Matdamageice")==0) return MatdamageiceEnum;
     
    625629              else if (strcmp(name,"BasalFriction")==0) return BasalFrictionEnum;
    626630              else if (strcmp(name,"ViscousHeating")==0) return ViscousHeatingEnum;
    627               else if (strcmp(name,"HydrologyWaterVx")==0) return HydrologyWaterVxEnum;
     631         else stage=6;
     632   }
     633   if(stage==6){
     634              if (strcmp(name,"HydrologyWaterVx")==0) return HydrologyWaterVxEnum;
    628635              else if (strcmp(name,"HydrologyWaterVy")==0) return HydrologyWaterVyEnum;
    629636              else if (strcmp(name,"DrivingStressX")==0) return DrivingStressXEnum;
    630637              else if (strcmp(name,"DrivingStressY")==0) return DrivingStressYEnum;
    631          else stage=6;
    632    }
    633    if(stage==6){
    634               if (strcmp(name,"SigmaNN")==0) return SigmaNNEnum;
     638              else if (strcmp(name,"SigmaNN")==0) return SigmaNNEnum;
    635639              else if (strcmp(name,"StressTensor")==0) return StressTensorEnum;
    636640              else if (strcmp(name,"StressTensorxx")==0) return StressTensorxxEnum;
     
    748752              else if (strcmp(name,"Outputdefinition54")==0) return Outputdefinition54Enum;
    749753              else if (strcmp(name,"Outputdefinition55")==0) return Outputdefinition55Enum;
    750               else if (strcmp(name,"Outputdefinition56")==0) return Outputdefinition56Enum;
     754         else stage=7;
     755   }
     756   if(stage==7){
     757              if (strcmp(name,"Outputdefinition56")==0) return Outputdefinition56Enum;
    751758              else if (strcmp(name,"Outputdefinition57")==0) return Outputdefinition57Enum;
    752759              else if (strcmp(name,"Outputdefinition58")==0) return Outputdefinition58Enum;
    753760              else if (strcmp(name,"Outputdefinition59")==0) return Outputdefinition59Enum;
    754          else stage=7;
    755    }
    756    if(stage==7){
    757               if (strcmp(name,"Outputdefinition60")==0) return Outputdefinition60Enum;
     761              else if (strcmp(name,"Outputdefinition60")==0) return Outputdefinition60Enum;
    758762              else if (strcmp(name,"Outputdefinition61")==0) return Outputdefinition61Enum;
    759763              else if (strcmp(name,"Outputdefinition62")==0) return Outputdefinition62Enum;
     
    871875              else if (strcmp(name,"RootPath")==0) return RootPathEnum;
    872876              else if (strcmp(name,"OutputFileName")==0) return OutputFileNameEnum;
    873               else if (strcmp(name,"InputFileName")==0) return InputFileNameEnum;
     877         else stage=8;
     878   }
     879   if(stage==8){
     880              if (strcmp(name,"InputFileName")==0) return InputFileNameEnum;
    874881              else if (strcmp(name,"LockFileName")==0) return LockFileNameEnum;
    875882              else if (strcmp(name,"RestartFileName")==0) return RestartFileNameEnum;
    876883              else if (strcmp(name,"ToolkitsOptionsAnalyses")==0) return ToolkitsOptionsAnalysesEnum;
    877          else stage=8;
    878    }
    879    if(stage==8){
    880               if (strcmp(name,"ToolkitsOptionsStrings")==0) return ToolkitsOptionsStringsEnum;
     884              else if (strcmp(name,"ToolkitsOptionsStrings")==0) return ToolkitsOptionsStringsEnum;
    881885              else if (strcmp(name,"QmuErrName")==0) return QmuErrNameEnum;
    882886              else if (strcmp(name,"QmuInName")==0) return QmuInNameEnum;
  • issm/trunk-jpl/src/c/shared/Enum/Synchronize.sh

    r19059 r19527  
    202202
    203203for NAMEENUM in $(cat temp); do
     204        echo $NAMEENUM
    204205
    205206        #Get name and enum of the line i
  • issm/trunk-jpl/src/m/boundaryconditions/SetIceSheetBC.m

    r17071 r19527  
    3030
    3131%Initialize surface and basal forcings
    32 md.surfaceforcings = initialize(md.surfaceforcings,md);
     32md.smb = initialize(md.smb,md);
    3333md.basalforcings   = initialize(md.basalforcings,md);
    3434
  • issm/trunk-jpl/src/m/boundaryconditions/SetIceSheetBC.py

    r17877 r19527  
    3434        #No ice front -> do nothing
    3535
    36         #Create zeros basalforcings and surfaceforcings
    37         md.surfaceforcings.initialize(md)
     36        #Create zeros basalforcings and smb
     37        md.smb.initialize(md)
    3838        md.basalforcings.initialize(md)
    3939
  • issm/trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.m

    r17686 r19527  
    6363
    6464%Initialize surface and basal forcings
    65 md.surfaceforcings = initialize(md.surfaceforcings,md);
     65md.smb = initialize(md.smb,md);
    6666md.basalforcings   = initialize(md.basalforcings,md);
    6767
  • issm/trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.py

    r17876 r19527  
    7676                print "      boundary conditions for stressbalance model: spc set as zero"
    7777
    78         #Create zeros basalforcings and surfaceforcings
    79         md.surfaceforcings.initialize(md)
     78        #Create zeros basalforcings and smb
     79        md.smb.initialize(md)
    8080        md.basalforcings.initialize(md)
    8181
  • issm/trunk-jpl/src/m/boundaryconditions/SetMarineIceSheetBC.m

    r18739 r19527  
    8181
    8282%Initialize surface and basal forcings
    83 md.surfaceforcings = initialize(md.surfaceforcings,md);
     83md.smb = initialize(md.smb,md);
    8484md.basalforcings   = initialize(md.basalforcings,md);
    8585
  • issm/trunk-jpl/src/m/boundaryconditions/SetMarineIceSheetBC.py

    r17876 r19527  
    8484        md.hydrology.spcwatercolumn[pos,0]=1
    8585
    86         #Create zeros basalforcings and surfaceforcings
    87         md.surfaceforcings.initialize(md)
     86        #Create zeros basalforcings and smb
     87        md.smb.initialize(md)
    8888        md.basalforcings.initialize(md)
    8989
  • issm/trunk-jpl/src/m/classes/SMBcomponents.m

    r19040 r19527  
    99                runoff = NaN;
    1010                evaporation = NaN;
     11                requested_outputs      = {};
    1112        end
    1213        methods
     
    2526
    2627                end % }}}
     28                function list = defaultoutputs(self,md) % {{{
     29
     30                        list = {''};
     31
     32                end % }}}
    2733                function self = initialize(self,md) % {{{
    2834
    2935                        if isnan(self.accumulation)
    3036                                self.accumulation=zeros(md.mesh.numberofvertices,1);
    31                                 disp('      no surfaceforcings.accumulation specified: values set as zero');
     37                                disp('      no smb.accumulation specified: values set as zero');
    3238                        end
    3339                        if isnan(self.evaporation)
    3440                                self.evaporation=zeros(md.mesh.numberofvertices,1);
    35                                 disp('      no surfaceforcings.evaporation specified: values set as zero');
     41                                disp('      no smb.evaporation specified: values set as zero');
    3642                        end
    3743                        if isnan(self.runoff)
    3844                                self.runoff=zeros(md.mesh.numberofvertices,1);
    39                                 disp('      no surfaceforcings.runoff specified: values set as zero');
     45                                disp('      no smb.runoff specified: values set as zero');
    4046                        end
    4147
     
    4450
    4551                        if ismember(MasstransportAnalysisEnum(),analyses),
    46                                 md = checkfield(md,'fieldname','surfaceforcings.accumulation','timeseries',1,'NaN',1);
     52                                md = checkfield(md,'fieldname','smb.accumulation','timeseries',1,'NaN',1);
    4753                        end
    4854                        if ismember(BalancethicknessAnalysisEnum(),analyses),
    49                                 md = checkfield(md,'fieldname','surfaceforcings.accumulation','size',[md.mesh.numberofvertices 1],'NaN',1);
     55                                md = checkfield(md,'fieldname','smb.accumulation','size',[md.mesh.numberofvertices 1],'NaN',1);
    5056                        end
    5157                        if ismember(MasstransportAnalysisEnum(),analyses),
    52                                 md = checkfield(md,'fieldname','surfaceforcings.runoff','timeseries',1,'NaN',1);
     58                                md = checkfield(md,'fieldname','smb.runoff','timeseries',1,'NaN',1);
    5359                        end
    5460                        if ismember(BalancethicknessAnalysisEnum(),analyses),
    55                                 md = checkfield(md,'fieldname','surfaceforcings.runoff','size',[md.mesh.numberofvertices 1],'NaN',1);
     61                                md = checkfield(md,'fieldname','smb.runoff','size',[md.mesh.numberofvertices 1],'NaN',1);
    5662                        end
    5763                        if ismember(MasstransportAnalysisEnum(),analyses),
    58                                 md = checkfield(md,'fieldname','surfaceforcings.evaporation','timeseries',1,'NaN',1);
     64                                md = checkfield(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1);
    5965                        end
    6066                        if ismember(BalancethicknessAnalysisEnum(),analyses),
    61                                 md = checkfield(md,'fieldname','surfaceforcings.evaporation','size',[md.mesh.numberofvertices 1],'NaN',1);
     67                                md = checkfield(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices 1],'NaN',1);
    6268                        end
     69                        md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
    6370                end % }}}
    6471                function disp(self) % {{{
     
    6774                        fielddisplay(self,'runoff','amount of ice melt lost from the ice column [m/yr ice eq]');
    6875                        fielddisplay(self,'evaporation','amount of ice lost to evaporative processes [m/yr ice eq]');
     76                        fielddisplay(self,'requested_outputs','additional outputs requested');
    6977                end % }}}
    7078                function marshall(self,md,fid) % {{{
     
    7280                        yts=365.0*24.0*3600.0;
    7381
    74                         WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBcomponentsEnum(),'format','Integer');
    75                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
    76                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','runoff','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
    77                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     82                        WriteData(fid,'enum',SmbEnum(),'data',SMBcomponentsEnum(),'format','Integer');
     83                        WriteData(fid,'object',self,'class','smb','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     84                        WriteData(fid,'object',self,'class','smb','fieldname','runoff','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     85                        WriteData(fid,'object',self,'class','smb','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     86                       
     87                        %process requested outputs
     88                        outputs = self.requested_outputs;
     89                        pos  = find(ismember(outputs,'default'));
     90                        if ~isempty(pos),
     91                                outputs(pos) = [];                         %remove 'default' from outputs
     92                                outputs      = [outputs defaultoutputs(self,md)]; %add defaults
     93                        end
     94                        WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum,'format','StringArray');
     95
    7896                end % }}}
    7997        end
  • issm/trunk-jpl/src/m/classes/SMBcomponents.py

    r19027 r19527  
    1717                self.runoff = float('NaN')
    1818                self.evaporation = float('NaN')
     19                self.requested_outputs      = []
    1920                #}}}
    2021        def __repr__(self): # {{{
     
    2324                string="%s\n%s"%(string,fielddisplay(self,'runoff','amount of ice melt lost from the ice column [m/yr ice eq]'))
    2425                string="%s\n%s"%(string,fielddisplay(self,'evaporation','mount of ice lost to evaporative processes [m/yr ice eq]'))
     26                string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
    2527                return string
    2628                #}}}
     
    3133                self.mass_balance=project3d(md,'vector',self.evaporation,'type','node');
    3234                return self
     35        #}}}
     36        def defaultoutputs(self,md): # {{{
     37                return []
    3338        #}}}
    3439        def initialize(self,md): # {{{
     
    5156
    5257                if MasstransportAnalysisEnum() in analyses:
    53                         md = checkfield(md,'fieldname','surfaceforcings.accumulation','timeseries',1,'NaN',1)
     58                        md = checkfield(md,'fieldname','smb.accumulation','timeseries',1,'NaN',1)
    5459
    5560                if BalancethicknessAnalysisEnum() in analyses:
    56                         md = checkfield(md,'fieldname','surfaceforcings.accumulation','size',[md.mesh.numberofvertices],'NaN',1)
     61                        md = checkfield(md,'fieldname','smb.accumulation','size',[md.mesh.numberofvertices],'NaN',1)
    5762
    5863                if MasstransportAnalysisEnum() in analyses:
    59                         md = checkfield(md,'fieldname','surfaceforcings.runoff','timeseries',1,'NaN',1)
     64                        md = checkfield(md,'fieldname','smb.runoff','timeseries',1,'NaN',1)
    6065
    6166                if BalancethicknessAnalysisEnum() in analyses:
    62                         md = checkfield(md,'fieldname','surfaceforcings.runoff','size',[md.mesh.numberofvertices],'NaN',1)
     67                        md = checkfield(md,'fieldname','smb.runoff','size',[md.mesh.numberofvertices],'NaN',1)
    6368
    6469                if MasstransportAnalysisEnum() in analyses:
    65                         md = checkfield(md,'fieldname','surfaceforcings.evaporation','timeseries',1,'NaN',1)
     70                        md = checkfield(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1)
    6671
    6772                if BalancethicknessAnalysisEnum() in analyses:
    68                         md = checkfield(md,'fieldname','surfaceforcings.evaporation','size',[md.mesh.numberofvertices],'NaN',1)
     73                        md = checkfield(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices],'NaN',1)
     74               
     75                md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
    6976
    7077                return md
     
    7481                yts=365.0*24.0*3600.0
    7582
    76                 WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBcomponentsEnum(),'format','Integer');
    77                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
    78                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','runoff','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
    79                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
     83                WriteData(fid,'enum',SmbEnum(),'data',SMBcomponentsEnum(),'format','Integer');
     84                WriteData(fid,'object',self,'class','smb','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
     85                WriteData(fid,'object',self,'class','smb','fieldname','runoff','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
     86                WriteData(fid,'object',self,'class','smb','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
     87               
     88                #process requested outputs
     89                outputs = self.requested_outputs
     90                indices = [i for i, x in enumerate(outputs) if x == 'default']
     91                if len(indices) > 0:
     92                        outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
     93                        outputs    =outputscopy
     94                WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum(),'format','StringArray')
     95
    8096        # }}}
  • issm/trunk-jpl/src/m/classes/SMBd18opdd.m

    r19309 r19527  
    2020                temperatures_presentday   = NaN;
    2121                precipitations_presentday = NaN;
     22                requested_outputs      = {};
    2223        end
    2324        methods
     
    3536                        self.s0p=project3d(md,'vector',self.s0p,'type','node');
    3637                        self.s0t=project3d(md,'vector',self.s0t,'type','node');
     38
     39                end % }}}
     40                        function list = defaultoutputs(self,md) % {{{
     41
     42                        list = {''};
    3743
    3844                end % }}}
     
    6268
    6369                        if ismember(MasstransportAnalysisEnum(),analyses),
    64                                 md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',1);
    65                                 md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]);
    66                                 md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]);
    67                                 md = checkfield(md,'fieldname','surfaceforcings.rlaps','>=',0,'numel',1);
    68                                 md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',1);
     70                                md = checkfield(md,'fieldname','smb.desfac','<=',1,'numel',1);
     71                                md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]);
     72                                md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]);
     73                                md = checkfield(md,'fieldname','smb.rlaps','>=',0,'numel',1);
     74                                md = checkfield(md,'fieldname','smb.rlapslgm','>=',0,'numel',1);
    6975                                if(self.isd18opd==1)
    70                                         md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
    71                                         md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
    72                                         md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,NaN],'singletimeseries',1);
    73                                         md = checkfield(md,'fieldname','surfaceforcings.dpermil','>=',0,'numel',1);
     76                                        md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
     77                                        md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
     78                                        md = checkfield(md,'fieldname','smb.delta18o','NaN',1,'size',[2,NaN],'singletimeseries',1);
     79                                        md = checkfield(md,'fieldname','smb.dpermil','>=',0,'numel',1);
    7480                                end
    7581                        end
     82                        md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
    7683                end % }}}
    7784                function disp(self) % {{{
     
    9097                                fielddisplay(self,'dpermil','degree per mil, required if d18opd is activated');                           
    9198                        end
     99                        fielddisplay(self,'requested_outputs','additional outputs requested');
    92100                        % No need to display rlapslgm, Tdiff, ismungsm
    93101                        % as they are not used in this case but are still needed as default values in
     
    98106                        yts=365.0*24.0*3600.0;
    99107
    100                         WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBd18opddEnum(),'format','Integer');
     108                        WriteData(fid,'enum',SmbEnum(),'data',SMBd18opddEnum(),'format','Integer');
    101109
    102                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','ismungsm','format','Boolean');
    103                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','isd18opd','format','Boolean');
    104                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','desfac','format','Double');
    105                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','DoubleMat','mattype',1);
    106                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','DoubleMat','mattype',1);
    107                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlaps','format','Double');
    108                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlapslgm','format','Double');
    109                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2);
    110                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2);
     110                        WriteData(fid,'object',self,'class','smb','fieldname','ismungsm','format','Boolean');
     111                        WriteData(fid,'object',self,'class','smb','fieldname','isd18opd','format','Boolean');
     112                        WriteData(fid,'object',self,'class','smb','fieldname','desfac','format','Double');
     113                        WriteData(fid,'object',self,'class','smb','fieldname','s0p','format','DoubleMat','mattype',1);
     114                        WriteData(fid,'object',self,'class','smb','fieldname','s0t','format','DoubleMat','mattype',1);
     115                        WriteData(fid,'object',self,'class','smb','fieldname','rlaps','format','Double');
     116                        WriteData(fid,'object',self,'class','smb','fieldname','rlapslgm','format','Double');
     117                        WriteData(fid,'object',self,'class','smb','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2);
     118                        WriteData(fid,'object',self,'class','smb','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2);
    111119
    112120                        if self.isd18opd
    113                                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
    114                                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
    115                                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2);
    116                                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','dpermil','format','Double');
     121                                WriteData(fid,'object',self,'class','smb','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
     122                                WriteData(fid,'object',self,'class','smb','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     123                                WriteData(fid,'object',self,'class','smb','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2);
     124                                WriteData(fid,'object',self,'class','smb','fieldname','dpermil','format','Double');
    117125                        end
     126                       
     127                        %process requested outputs
     128                        outputs = self.requested_outputs;
     129                        pos  = find(ismember(outputs,'default'));
     130                        if ~isempty(pos),
     131                                outputs(pos) = [];                         %remove 'default' from outputs
     132                                outputs      = [outputs defaultoutputs(self,md)]; %add defaults
     133                        end
     134                        WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum,'format','StringArray');
     135
    118136                end % }}}
    119137        end
  • issm/trunk-jpl/src/m/classes/SMBd18opdd.py

    r19309 r19527  
    3232                #set defaults
    3333                self.setdefaultparameters()
     34                self.requested_outputs      = []
    3435                #}}}
    3536        def __repr__(self): # {{{
     
    4647                        string="%s\n%s"%(string,fielddisplay(self,'delta18o','delta18o [per mil], required if pdd is activated and delta18o activated'))
    4748                        string="%s\n%s"%(string,fielddisplay(self,'dpermil','degree per mil, required if d18opd is activated'))
     49                string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
    4850
    4951                return string
     
    5759
    5860                return self
     61        #}}}
     62        def defaultoutputs(self,md): # {{{
     63                return []
    5964        #}}}
    6065        def initialize(self,md): # {{{
     
    8590
    8691                if MasstransportAnalysisEnum() in analyses:
    87                         md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',[1])
    88                         md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
    89                         md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
    90                         md = checkfield(md,'fieldname','surfaceforcings.rlaps','>=',0,'numel',[1])
    91                         md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',[1])
     92                        md = checkfield(md,'fieldname','smb.desfac','<=',1,'numel',[1])
     93                        md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
     94                        md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
     95                        md = checkfield(md,'fieldname','smb.rlaps','>=',0,'numel',[1])
     96                        md = checkfield(md,'fieldname','smb.rlapslgm','>=',0,'numel',[1])
    9297
    9398                        if self.isd18opd:
    94                                 md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
    95                                 md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
    96                                 md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
    97                                 md = checkfield(md,'fieldname','surfaceforcings.dpermil','>=',0,'numel',[1])
     99                                md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
     100                                md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
     101                                md = checkfield(md,'fieldname','smb.delta18o','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
     102                                md = checkfield(md,'fieldname','smb.dpermil','>=',0,'numel',[1])
     103               
     104                md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
    98105
    99106                return md
     
    103110                yts=365.0*24.0*3600.0
    104111
    105                 WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBd18opddEnum(),'format','Integer')
     112                WriteData(fid,'enum',SmbEnum(),'data',SMBd18opddEnum(),'format','Integer')
    106113
    107                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','ismungsm','format','Boolean')
    108                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','isd18opd','format','Boolean')
    109                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','desfac','format','Double')
    110                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','DoubleMat','mattype',1);
    111                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','DoubleMat','mattype',1);
    112                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlaps','format','Double')
    113                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlapslgm','format','Double')
    114                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2)
    115                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2)
     114                WriteData(fid,'object',self,'class','smb','fieldname','ismungsm','format','Boolean')
     115                WriteData(fid,'object',self,'class','smb','fieldname','isd18opd','format','Boolean')
     116                WriteData(fid,'object',self,'class','smb','fieldname','desfac','format','Double')
     117                WriteData(fid,'object',self,'class','smb','fieldname','s0p','format','DoubleMat','mattype',1);
     118                WriteData(fid,'object',self,'class','smb','fieldname','s0t','format','DoubleMat','mattype',1);
     119                WriteData(fid,'object',self,'class','smb','fieldname','rlaps','format','Double')
     120                WriteData(fid,'object',self,'class','smb','fieldname','rlapslgm','format','Double')
     121                WriteData(fid,'object',self,'class','smb','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2)
     122                WriteData(fid,'object',self,'class','smb','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2)
    116123
    117124                if self.isd18opd:
    118                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
    119                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
    120                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2)
    121                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','dpermil','format','Double')
     125                        WriteData(fid,'object',self,'class','smb','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
     126                        WriteData(fid,'object',self,'class','smb','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
     127                        WriteData(fid,'object',self,'class','smb','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2)
     128                        WriteData(fid,'object',self,'class','smb','fieldname','dpermil','format','Double')
     129                       
     130                #process requested outputs
     131                outputs = self.requested_outputs
     132                indices = [i for i, x in enumerate(outputs) if x == 'default']
     133                if len(indices) > 0:
     134                        outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
     135                        outputs    =outputscopy
     136                WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum(),'format','StringArray')
     137
    122138        # }}}
  • issm/trunk-jpl/src/m/classes/SMBgemb.m

    r19524 r19527  
    1414
    1515                %inputs:
    16                 Ta    = NaN; %2 m air temperature, in Celsius
     16                Ta    = NaN; %2 m air temperature, in Kelvin
    1717                V     = NaN; %wind speed (m/s-1)
    1818                dswrf = NaN; %downward shortwave radiation flux [W/m^2]
    1919                dlwrf = NaN; %downward longwave radiation flux [W/m^2]
    20                 RH    = NaN; %relative humidity [%]
    2120                P     = NaN; %precipitation [mm w.e. / m^2]
    2221                eAir  = NaN; %screen level vapor pressure [Pa]
     
    6261                t0dry = NaN; % warm snow timescale (30)
    6362                K     = NaN; % time scale temperature coef. (7)
     63               
     64                requested_outputs      = {};
    6465
    6566                %Several fields are missing from the standard GEMB model, which are capture intrinsically by ISSM.
     
    7778                                        self=setdefaultparameters(self,mesh,geometry);
    7879                                otherwise
    79                                         error('constructor not supported');
     80                                        error('constructor not supported: need geometry and mesh to set defaults');
    8081                        end
    8182                end % }}}
     
    8687                        self.dswrf=project3d(md,'vector',self.dswrf,'type','node');
    8788                        self.dswrf=project3d(md,'vector',self.dswrf,'type','node');
    88                         self.RH=project3d(md,'vector',self.RH,'type','node');
    8989                        self.P=project3d(md,'vector',self.P,'type','node');
    9090                        self.eAir=project3d(md,'vector',self.eAir,'type','node');
    9191                        self.pAir=project3d(md,'vector',self.pAir,'type','node');
    9292
     93                end % }}}
     94                function list = defaultoutputs(self,md) % {{{
     95                        list = {'SmbMassBalance'};
    9396                end % }}}
    9497                function self = setdefaultparameters(self,mesh,geometry) % {{{
     
    120123function md = checkconsistency(self,md,solution,analyses) % {{{
    121124
    122                         md = checkfield(md,'fieldname','surfaceforcings.Ta','timeseries',1,'NaN',1);
    123                         md = checkfield(md,'fieldname','surfaceforcings.V','timeseries',1,'NaN',1);
    124                         md = checkfield(md,'fieldname','surfaceforcings.dswrf','timeseries',1,'NaN',1);
    125                         md = checkfield(md,'fieldname','surfaceforcings.dlwrf','timeseries',1,'NaN',1);
    126                         md = checkfield(md,'fieldname','surfaceforcings.RH','timeseries',1,'NaN',1);
    127                         md = checkfield(md,'fieldname','surfaceforcings.P','timeseries',1,'NaN',1);
    128                         md = checkfield(md,'fieldname','surfaceforcings.eAir','timeseries',1,'NaN',1);
    129                        
    130                         %check zTop is < local thickness:
    131                         he=sum(md.geometry.thickness(md.mesh.elements),2)/size(md.mesh.elements,2);
    132                         if any(he<self.zTop),
    133                                 error('SMBgemb consistency check error: zTop should be smaller than local ice thickness');
    134                         end
     125                md = checkfield(md,'fieldname','smb.Ta','timeseries',1,'NaN',1,'>',0,'<',273+60); %60 celsius max value
     126                md = checkfield(md,'fieldname','smb.V','timeseries',1,'NaN',1);
     127                md = checkfield(md,'fieldname','smb.dswrf','timeseries',1,'NaN',1);
     128                md = checkfield(md,'fieldname','smb.dlwrf','timeseries',1,'NaN',1);
     129                md = checkfield(md,'fieldname','smb.P','timeseries',1,'NaN',1);
     130                md = checkfield(md,'fieldname','smb.eAir','timeseries',1,'NaN',1);
     131
     132                %check zTop is < local thickness:
     133                he=sum(md.geometry.thickness(md.mesh.elements),2)/size(md.mesh.elements,2);
     134                if any(he<self.zTop),
     135                        error('SMBgemb consistency check error: zTop should be smaller than local ice thickness');
     136                end
     137                md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
    135138
    136139                end % }}}
     
    139142                        disp(sprintf('   surface forcings for SMB GEMB model :'));
    140143                       
    141                         fielddisplay(self,'Ta','2 m air temperature, in Celsius');
     144                        fielddisplay(self,'Ta','2 m air temperature, in Kelvin');
    142145                        fielddisplay(self,'V','wind speed (m/s-1)');
    143146                        fielddisplay(self,'dlwrf','downward shortwave radiation flux [W/m^2]');
    144147                        fielddisplay(self,'dswrf','downward longwave radiation flux [W/m^2]');
    145                         fielddisplay(self,'RH','relative humidity [%]');
    146148                        fielddisplay(self,'P','precipitation [mm w.e. / m^2]');
    147149                        fielddisplay(self,'eAir','screen level vapor pressure [Pa]');
     
    184186                                                                        '4 = DO NOT USE: emperical model of Li and Zwally (2004)',...
    185187                                                                        '5 = DO NOT USE: modified emperical model (4) by Helsen et al. (2008)'});
     188                        fielddisplay(self,'requested_outputs','additional outputs requested');
    186189                                                                       
    187190                       
     
    191194                        yts=365.0*24.0*3600.0;
    192195
    193                         WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBgembEnum(),'format','Integer');
    194                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
    195                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','runoff','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
    196                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     196                        WriteData(fid,'enum',SmbEnum(),'data',SMBgembEnum(),'format','Integer');
     197                        WriteData(fid,'object',self,'class','smb','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     198                        WriteData(fid,'object',self,'class','smb','fieldname','runoff','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     199                        WriteData(fid,'object',self,'class','smb','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     200                       
     201                        %process requested outputs
     202                        outputs = self.requested_outputs;
     203                        pos  = find(ismember(outputs,'default'));
     204                        if ~isempty(pos),
     205                                outputs(pos) = [];                         %remove 'default' from outputs
     206                                outputs      = [outputs defaultoutputs(self,md)]; %add defaults
     207                        end
     208                        WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum,'format','StringArray');
     209
    197210                end % }}}
    198211        end
  • issm/trunk-jpl/src/m/classes/SMBgradients.m

    r19040 r19527  
    1010                b_pos  = NaN;
    1111                b_neg  = NaN;
     12                requested_outputs      = {};
    1213        end
    1314        methods
     
    2526
    2627                end % }}}
     28                function list = defaultoutputs(self,md) % {{{
     29                        list = {''};
     30                end % }}}
    2731                function self = initialize(self,md) % {{{
    2832
     
    3842
    3943                        if ismember(MasstransportAnalysisEnum(),analyses),
    40                                 md = checkfield(md,'fieldname','surfaceforcings.href','timeseries',1,'NaN',1);
    41                                 md = checkfield(md,'fieldname','surfaceforcings.smbref','timeseries',1,'NaN',1);
    42                                 md = checkfield(md,'fieldname','surfaceforcings.b_pos','timeseries',1,'NaN',1);
    43                                 md = checkfield(md,'fieldname','surfaceforcings.b_neg','timeseries',1,'NaN',1);
     44                                md = checkfield(md,'fieldname','smb.href','timeseries',1,'NaN',1);
     45                                md = checkfield(md,'fieldname','smb.smbref','timeseries',1,'NaN',1);
     46                                md = checkfield(md,'fieldname','smb.b_pos','timeseries',1,'NaN',1);
     47                                md = checkfield(md,'fieldname','smb.b_neg','timeseries',1,'NaN',1);
    4448                        end
     49                        md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
    4550                end % }}}
    4651                function disp(self) % {{{
     
    5257                        fielddisplay(self,'b_pos',' slope of hs - smb regression line for accumulation regime required if smb gradients is activated');
    5358                        fielddisplay(self,'b_neg',' slope of hs - smb regression line for ablation regime required if smb gradients is activated');
     59                        fielddisplay(self,'requested_outputs','additional outputs requested');
    5460
    5561                end % }}}
     
    5864                        yts=365.0*24.0*3600.0;
    5965
    60                         WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBgradientsEnum(),'format','Integer');
    61                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','href','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
    62                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','smbref','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
    63                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','b_pos','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
    64                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','b_neg','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     66                        WriteData(fid,'enum',SmbEnum(),'data',SMBgradientsEnum(),'format','Integer');
     67                        WriteData(fid,'object',self,'class','smb','fieldname','href','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
     68                        WriteData(fid,'object',self,'class','smb','fieldname','smbref','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     69                        WriteData(fid,'object',self,'class','smb','fieldname','b_pos','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     70                        WriteData(fid,'object',self,'class','smb','fieldname','b_neg','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     71                       
     72                        %process requested outputs
     73                        outputs = self.requested_outputs;
     74                        pos  = find(ismember(outputs,'default'));
     75                        if ~isempty(pos),
     76                                outputs(pos) = [];                         %remove 'default' from outputs
     77                                outputs      = [outputs defaultoutputs(self,md)]; %add defaults
     78                        end
     79                        WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum,'format','StringArray');
    6580
    6681                end % }}}
  • issm/trunk-jpl/src/m/classes/SMBgradients.py

    r19027 r19527  
    1818                self.b_pos   = float('NaN')
    1919                self.b_neg   = float('NaN')
     20                self.requested_outputs      = []
    2021                #}}}
    2122        def __repr__(self): # {{{
     
    2728                string="%s\n%s"%(string,fielddisplay(self,'b_pos',' slope of hs - smb regression line for accumulation regime required if smb gradients is activated'))
    2829                string="%s\n%s"%(string,fielddisplay(self,'b_neg',' slope of hs - smb regression line for ablation regime required if smb gradients is activated'))
     30                string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
    2931
    3032                return string
     
    3436                #Nothing for now
    3537                return self
     38        #}}}
     39        def defaultoutputs(self,md): # {{{
     40                return []
    3641        #}}}
    3742        def initialize(self,md): # {{{
     
    4449
    4550                if MasstransportAnalysisEnum() in analyses:
    46                         md = checkfield(md,'fieldname','surfaceforcings.href','timeseries',1,'NaN',1)
    47                         md = checkfield(md,'fieldname','surfaceforcings.smbref','timeseries',1,'NaN',1)
    48                         md = checkfield(md,'fieldname','surfaceforcings.b_pos','timeseries',1,'NaN',1)
    49                         md = checkfield(md,'fieldname','surfaceforcings.b_neg','timeseries',1,'NaN',1)
     51                        md = checkfield(md,'fieldname','smb.href','timeseries',1,'NaN',1)
     52                        md = checkfield(md,'fieldname','smb.smbref','timeseries',1,'NaN',1)
     53                        md = checkfield(md,'fieldname','smb.b_pos','timeseries',1,'NaN',1)
     54                        md = checkfield(md,'fieldname','smb.b_neg','timeseries',1,'NaN',1)
    5055
     56                md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
    5157                return md
    5258        # }}}
     
    5561                yts=365.0*24.0*3600.0
    5662
    57                 WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBgradientsEnum(),'format','Integer');
    58                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','href','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
    59                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','smbref','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
    60                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','b_pos','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
    61                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','b_neg','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
     63                WriteData(fid,'enum',SmbEnum(),'data',SMBgradientsEnum(),'format','Integer');
     64                WriteData(fid,'object',self,'class','smb','fieldname','href','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
     65                WriteData(fid,'object',self,'class','smb','fieldname','smbref','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
     66                WriteData(fid,'object',self,'class','smb','fieldname','b_pos','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
     67                WriteData(fid,'object',self,'class','smb','fieldname','b_neg','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
     68               
     69                #process requested outputs
     70                outputs = self.requested_outputs
     71                indices = [i for i, x in enumerate(outputs) if x == 'default']
     72                if len(indices) > 0:
     73                        outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
     74                        outputs    =outputscopy
     75                WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum(),'format','StringArray')
     76
    6277        # }}}
  • issm/trunk-jpl/src/m/classes/SMBhenning.m

    r19040 r19527  
    77        properties (SetAccess=public)
    88                smbref = NaN;
     9                requested_outputs      = {};
    910        end
    1011        methods
     
    2122
    2223                end % }}}
     24                function list = defaultoutputs(self,md) % {{{
     25                        list = {''};
     26                end % }}}
    2327                function self = initialize(self,md) % {{{
    2428
    2529                        if isnan(self.smbref)
    2630                                self.smbref=zeros(md.mesh.numberofvertices,1);
    27                                 disp('      no surfaceforcings.smbref specified: values set as zero');
     31                                disp('      no smb.smbref specified: values set as zero');
    2832                        end
    2933
     
    3236
    3337                        if ismember(MasstransportAnalysisEnum(),analyses),
    34                                 md = checkfield(md,'fieldname','surfaceforcings.smbref','timeseries',1,'NaN',1);
     38                                md = checkfield(md,'fieldname','smb.smbref','timeseries',1,'NaN',1);
    3539                        end
    3640                        if ismember(BalancethicknessAnalysisEnum(),analyses),
    37                                 md = checkfield(md,'fieldname','surfaceforcings.smbref','size',[md.mesh.numberofvertices 1],'NaN',1);
     41                                md = checkfield(md,'fieldname','smb.smbref','size',[md.mesh.numberofvertices 1],'NaN',1);
    3842                        end
     43                        md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
    3944                end % }}}
    4045                function disp(self) % {{{
    4146                        disp(sprintf('   surface forcings parameters:'));
    4247                        fielddisplay(self,'smbref','reference smb from which deviation is calculated [m/yr ice eq]');
     48                        fielddisplay(self,'requested_outputs','additional outputs requested');
    4349                end % }}}
    4450                function marshall(self,md,fid) % {{{
     
    4652                        yts=365.0*24.0*3600.0;
    4753
    48                         WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBhenningEnum(),'format','Integer');
    49                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','smbref','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     54                        WriteData(fid,'enum',SmbEnum(),'data',SMBhenningEnum(),'format','Integer');
     55                        WriteData(fid,'object',self,'class','smb','fieldname','smbref','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     56                       
     57                        %process requested outputs
     58                        outputs = self.requested_outputs;
     59                        pos  = find(ismember(outputs,'default'));
     60                        if ~isempty(pos),
     61                                outputs(pos) = [];                         %remove 'default' from outputs
     62                                outputs      = [outputs defaultoutputs(self,md)]; %add defaults
     63                        end
     64                        WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum,'format','StringArray');
     65
    5066                end % }}}
    5167        end
  • issm/trunk-jpl/src/m/classes/SMBmeltcomponents.m

    r19040 r19527  
    1010                melt = NaN;
    1111                refreeze = NaN;
     12                requested_outputs      = {};
    1213        end
    1314        methods
     
    2728
    2829                end % }}}
     30                function list = defaultoutputs(self,md) % {{{
     31                        list = {''};
     32                end % }}}
    2933                function self = initialize(self,md) % {{{
    3034
    3135                        if isnan(self.accumulation)
    3236                                self.accumulation=zeros(md.mesh.numberofvertices,1);
    33                                 disp('      no surfaceforcings.accumulation specified: values set as zero');
     37                                disp('      no smb.accumulation specified: values set as zero');
    3438                        end
    3539                        if isnan(self.evaporation)
    3640                                self.evaporation=zeros(md.mesh.numberofvertices,1);
    37                                 disp('      no surfaceforcings.evaporation specified: values set as zero');
     41                                disp('      no smb.evaporation specified: values set as zero');
    3842                        end
    3943                        if isnan(self.refreeze)
    4044                                self.refreeze=zeros(md.mesh.numberofvertices,1);
    41                                 disp('      no surfaceforcings.refreeze specified: values set as zero');
     45                                disp('      no smb.refreeze specified: values set as zero');
    4246                        end
    4347                        if isnan(self.melt)
    4448                                self.melt=zeros(md.mesh.numberofvertices,1);
    45                                 disp('      no surfaceforcings.melt specified: values set as zero');
     49                                disp('      no smb.melt specified: values set as zero');
    4650                        end
    4751
     
    5054
    5155                        if ismember(MasstransportAnalysisEnum(),analyses),
    52                                 md = checkfield(md,'fieldname','surfaceforcings.accumulation','timeseries',1,'NaN',1);
     56                                md = checkfield(md,'fieldname','smb.accumulation','timeseries',1,'NaN',1);
    5357                        end
    5458                        if ismember(BalancethicknessAnalysisEnum(),analyses),
    55                                 md = checkfield(md,'fieldname','surfaceforcings.accumulation','size',[md.mesh.numberofvertices 1],'NaN',1);
     59                                md = checkfield(md,'fieldname','smb.accumulation','size',[md.mesh.numberofvertices 1],'NaN',1);
    5660                        end
    5761                        if ismember(MasstransportAnalysisEnum(),analyses),
    58                                 md = checkfield(md,'fieldname','surfaceforcings.evaporation','timeseries',1,'NaN',1);
     62                                md = checkfield(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1);
    5963                        end
    6064                        if ismember(BalancethicknessAnalysisEnum(),analyses),
    61                                 md = checkfield(md,'fieldname','surfaceforcings.evaporation','size',[md.mesh.numberofvertices 1],'NaN',1);
     65                                md = checkfield(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices 1],'NaN',1);
    6266                        end
    6367                        if ismember(MasstransportAnalysisEnum(),analyses),
    64                                 md = checkfield(md,'fieldname','surfaceforcings.refreeze','timeseries',1,'NaN',1);
     68                                md = checkfield(md,'fieldname','smb.refreeze','timeseries',1,'NaN',1);
    6569                        end
    6670                        if ismember(BalancethicknessAnalysisEnum(),analyses),
    67                                 md = checkfield(md,'fieldname','surfaceforcings.refreeze','size',[md.mesh.numberofvertices 1],'NaN',1);
     71                                md = checkfield(md,'fieldname','smb.refreeze','size',[md.mesh.numberofvertices 1],'NaN',1);
    6872                        end
    6973                        if ismember(MasstransportAnalysisEnum(),analyses),
    70                                 md = checkfield(md,'fieldname','surfaceforcings.melt','timeseries',1,'NaN',1);
     74                                md = checkfield(md,'fieldname','smb.melt','timeseries',1,'NaN',1);
    7175                        end
    7276                        if ismember(BalancethicknessAnalysisEnum(),analyses),
    73                                 md = checkfield(md,'fieldname','surfaceforcings.melt','size',[md.mesh.numberofvertices 1],'NaN',1);
     77                                md = checkfield(md,'fieldname','smb.melt','size',[md.mesh.numberofvertices 1],'NaN',1);
    7478                        end
     79                        md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
    7580                end % }}}
    7681                function disp(self) % {{{
     
    8085                        fielddisplay(self,'melt','amount of ice melt in ice column [m/yr ice eq]');
    8186                        fielddisplay(self,'refreeze','amount of ice melt refrozen in ice column [m/yr ice eq]');
     87                        fielddisplay(self,'requested_outputs','additional outputs requested');
    8288                end % }}}
    8389                function marshall(self,md,fid) % {{{
     
    8591                        yts=365.0*24.0*3600.0;
    8692
    87                         WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBmeltcomponentsEnum(),'format','Integer');
    88                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
    89                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
    90                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','melt','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
    91                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','refreeze','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     93                        WriteData(fid,'enum',SmbEnum(),'data',SMBmeltcomponentsEnum(),'format','Integer');
     94                        WriteData(fid,'object',self,'class','smb','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     95                        WriteData(fid,'object',self,'class','smb','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     96                        WriteData(fid,'object',self,'class','smb','fieldname','melt','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     97                        WriteData(fid,'object',self,'class','smb','fieldname','refreeze','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     98                       
     99                        %process requested outputs
     100                        outputs = self.requested_outputs;
     101                        pos  = find(ismember(outputs,'default'));
     102                        if ~isempty(pos),
     103                                outputs(pos) = [];                         %remove 'default' from outputs
     104                                outputs      = [outputs defaultoutputs(self,md)]; %add defaults
     105                        end
     106                        WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum,'format','StringArray');
     107
    92108                end % }}}
    93109        end
  • issm/trunk-jpl/src/m/classes/SMBmeltcomponents.py

    r19027 r19527  
    1717                self.runoff = float('NaN')
    1818                self.evaporation = float('NaN')
     19                self.requested_outputs      = []
    1920                #}}}
    2021        def __repr__(self): # {{{
     
    2425                string="%s\n%s"%(string,fielddisplay(self,'melt','amount of ice melt in the ice column [m/yr ice eq]'))
    2526                string="%s\n%s"%(string,fielddisplay(self,'refreeze','amount of ice melt refrozen in the ice column [m/yr ice eq]'))
     27                string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
    2628                return string
    2729                #}}}
     
    3335                self.mass_balance=project3d(md,'vector',self.refreeze,'type','node');
    3436                return self
     37        #}}}
     38        def defaultoutputs(self,md): # {{{
     39                return []
    3540        #}}}
    3641        def initialize(self,md): # {{{
     
    5762
    5863                if MasstransportAnalysisEnum() in analyses:
    59                         md = checkfield(md,'fieldname','surfaceforcings.accumulation','timeseries',1,'NaN',1)
     64                        md = checkfield(md,'fieldname','smb.accumulation','timeseries',1,'NaN',1)
    6065
    6166                if BalancethicknessAnalysisEnum() in analyses:
    62                         md = checkfield(md,'fieldname','surfaceforcings.accumulation','size',[md.mesh.numberofvertices],'NaN',1)
     67                        md = checkfield(md,'fieldname','smb.accumulation','size',[md.mesh.numberofvertices],'NaN',1)
    6368
    6469                if MasstransportAnalysisEnum() in analyses:
    65                         md = checkfield(md,'fieldname','surfaceforcings.melt','timeseries',1,'NaN',1)
     70                        md = checkfield(md,'fieldname','smb.melt','timeseries',1,'NaN',1)
    6671
    6772                if BalancethicknessAnalysisEnum() in analyses:
    68                         md = checkfield(md,'fieldname','surfaceforcings.melt','size',[md.mesh.numberofvertices],'NaN',1)
     73                        md = checkfield(md,'fieldname','smb.melt','size',[md.mesh.numberofvertices],'NaN',1)
    6974
    7075                if MasstransportAnalysisEnum() in analyses:
    71                         md = checkfield(md,'fieldname','surfaceforcings.refreeze','timeseries',1,'NaN',1)
     76                        md = checkfield(md,'fieldname','smb.refreeze','timeseries',1,'NaN',1)
    7277
    7378                if BalancethicknessAnalysisEnum() in analyses:
    74                         md = checkfield(md,'fieldname','surfaceforcings.refreeze','size',[md.mesh.numberofvertices],'NaN',1)
     79                        md = checkfield(md,'fieldname','smb.refreeze','size',[md.mesh.numberofvertices],'NaN',1)
    7580
    7681                if MasstransportAnalysisEnum() in analyses:
    77                         md = checkfield(md,'fieldname','surfaceforcings.evaporation','timeseries',1,'NaN',1)
     82                        md = checkfield(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1)
    7883
    7984                if BalancethicknessAnalysisEnum() in analyses:
    80                         md = checkfield(md,'fieldname','surfaceforcings.evaporation','size',[md.mesh.numberofvertices],'NaN',1)
     85                        md = checkfield(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices],'NaN',1)
    8186
     87                md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
    8288                return md
    8389        # }}}
     
    8692                yts=365.0*24.0*3600.0
    8793
    88                 WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBmeltcomponentsEnum(),'format','Integer');
    89                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
    90                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
    91                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','melt','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
    92                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','refreeze','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
     94                WriteData(fid,'enum',SmbEnum(),'data',SMBmeltcomponentsEnum(),'format','Integer');
     95                WriteData(fid,'object',self,'class','smb','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
     96                WriteData(fid,'object',self,'class','smb','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
     97                WriteData(fid,'object',self,'class','smb','fieldname','melt','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
     98                WriteData(fid,'object',self,'class','smb','fieldname','refreeze','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
     99               
     100                #process requested outputs
     101                outputs = self.requested_outputs
     102                indices = [i for i, x in enumerate(outputs) if x == 'default']
     103                if len(indices) > 0:
     104                        outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
     105                        outputs    =outputscopy
     106                WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum(),'format','StringArray')
     107
    93108        # }}}
  • issm/trunk-jpl/src/m/classes/SMBpdd.m

    r19309 r19527  
    2424                precipitations_presentday = NaN;
    2525                precipitations_lgm        = NaN;
     26                requested_outputs      = {};
    2627        end
    2728        methods
     
    4950
    5051                end % }}}
     52                function list = defaultoutputs(self,md) % {{{
     53                        list = {''};
     54                end % }}}
    5155                function self = initialize(self,md) % {{{
    5256                   
     
    7377
    7478                        if ismember(MasstransportAnalysisEnum(),analyses),
    75                                 md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',1);
    76                                 md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]);
    77                                 md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]);
    78                                 md = checkfield(md,'fieldname','surfaceforcings.rlaps','>=',0,'numel',1);
    79                                 md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',1);
     79                                md = checkfield(md,'fieldname','smb.desfac','<=',1,'numel',1);
     80                                md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]);
     81                                md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]);
     82                                md = checkfield(md,'fieldname','smb.rlaps','>=',0,'numel',1);
     83                                md = checkfield(md,'fieldname','smb.rlapslgm','>=',0,'numel',1);
    8084                                if(self.isdelta18o==0 & self.ismungsm==0)
    81                                         md = checkfield(md,'fieldname','surfaceforcings.monthlytemperatures','timeseries',1,'NaN',1);
    82                                         md = checkfield(md,'fieldname','surfaceforcings.precipitation','timeseries',1,'NaN',1);
     85                                        md = checkfield(md,'fieldname','smb.monthlytemperatures','timeseries',1,'NaN',1);
     86                                        md = checkfield(md,'fieldname','smb.precipitation','timeseries',1,'NaN',1);
    8387                                elseif(self.isdelta18o==1)
    84                                         md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,NaN],'singletimeseries',1);
    85                                         md = checkfield(md,'fieldname','surfaceforcings.delta18o_surface','NaN',1,'size',[2,NaN],'singletimeseries',1);
    86                                         md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
    87                                         md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
    88                                         md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
    89                                         md = checkfield(md,'fieldname','surfaceforcings.precipitations_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);                                       
    90                                         md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,NaN],'singletimeseries',1);
    91                                         md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,NaN],'singletimeseries',1);
     88                                        md = checkfield(md,'fieldname','smb.delta18o','NaN',1,'size',[2,NaN],'singletimeseries',1);
     89                                        md = checkfield(md,'fieldname','smb.delta18o_surface','NaN',1,'size',[2,NaN],'singletimeseries',1);
     90                                        md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
     91                                        md = checkfield(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
     92                                        md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
     93                                        md = checkfield(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);                                       
     94                                        md = checkfield(md,'fieldname','smb.Tdiff','NaN',1,'size',[2,NaN],'singletimeseries',1);
     95                                        md = checkfield(md,'fieldname','smb.sealev','NaN',1,'size',[2,NaN],'singletimeseries',1);
    9296                                elseif(self.ismungsm==1)
    93                                         md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
    94                                         md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
    95                                         md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
    96                                         md = checkfield(md,'fieldname','surfaceforcings.precipitations_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);                                       
    97                                         md = checkfield(md,'fieldname','surfaceforcings.Pfac','NaN',1,'size',[2,NaN],'singletimeseries',1);
    98                                         md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,NaN],'singletimeseries',1);
    99                                         md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,NaN],'singletimeseries',1);
     97                                        md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
     98                                        md = checkfield(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
     99                                        md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
     100                                        md = checkfield(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);                                       
     101                                        md = checkfield(md,'fieldname','smb.Pfac','NaN',1,'size',[2,NaN],'singletimeseries',1);
     102                                        md = checkfield(md,'fieldname','smb.Tdiff','NaN',1,'size',[2,NaN],'singletimeseries',1);
     103                                        md = checkfield(md,'fieldname','smb.sealev','NaN',1,'size',[2,NaN],'singletimeseries',1);
    100104                                end
    101105                        end
     106                        md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
     107                       
    102108                end % }}}
    103109                function disp(self) % {{{
     
    133139                                fielddisplay(self,'sealev','sea level [m], 1D(year), required if mungsm is activated');
    134140                        end
     141                        fielddisplay(self,'requested_outputs','additional outputs requested');
    135142                end % }}}
    136143                function marshall(self,md,fid) % {{{
     
    138145                        yts=365.0*24.0*3600.0;
    139146
    140                         WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBpddEnum(),'format','Integer');
     147                        WriteData(fid,'enum',SmbEnum(),'data',SMBpddEnum(),'format','Integer');
    141148
    142                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','isdelta18o','format','Boolean');
    143                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','ismungsm','format','Boolean');
    144                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','desfac','format','Double');
    145                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','DoubleMat','mattype',1);
    146                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','DoubleMat','mattype',1);
    147                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlaps','format','Double');
    148                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlapslgm','format','Double');
     149                        WriteData(fid,'object',self,'class','smb','fieldname','isdelta18o','format','Boolean');
     150                        WriteData(fid,'object',self,'class','smb','fieldname','ismungsm','format','Boolean');
     151                        WriteData(fid,'object',self,'class','smb','fieldname','desfac','format','Double');
     152                        WriteData(fid,'object',self,'class','smb','fieldname','s0p','format','DoubleMat','mattype',1);
     153                        WriteData(fid,'object',self,'class','smb','fieldname','s0t','format','DoubleMat','mattype',1);
     154                        WriteData(fid,'object',self,'class','smb','fieldname','rlaps','format','Double');
     155                        WriteData(fid,'object',self,'class','smb','fieldname','rlapslgm','format','Double');
    149156
    150157                        if(self.isdelta18o==0 & self.ismungsm==0)
    151                                 %WriteData(fid,'object',self,'class','surfaceforcings','fieldname','monthlytemperatures','format','DoubleMat','mattype',1);
    152                                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','monthlytemperatures','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
    153                                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     158                                %WriteData(fid,'object',self,'class','smb','fieldname','monthlytemperatures','format','DoubleMat','mattype',1);
     159                                WriteData(fid,'object',self,'class','smb','fieldname','monthlytemperatures','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
     160                                WriteData(fid,'object',self,'class','smb','fieldname','precipitation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
    154161                        elseif self.isdelta18o
    155                                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
    156                                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_lgm','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
    157                                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
    158                                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_lgm','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
    159                                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o_surface','format','DoubleMat','mattype',1,'timeserieslength',2);
    160                                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2);
    161                                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2);
    162                                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2);
     162                                WriteData(fid,'object',self,'class','smb','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
     163                                WriteData(fid,'object',self,'class','smb','fieldname','temperatures_lgm','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
     164                                WriteData(fid,'object',self,'class','smb','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     165                                WriteData(fid,'object',self,'class','smb','fieldname','precipitations_lgm','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     166                                WriteData(fid,'object',self,'class','smb','fieldname','delta18o_surface','format','DoubleMat','mattype',1,'timeserieslength',2);
     167                                WriteData(fid,'object',self,'class','smb','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2);
     168                                WriteData(fid,'object',self,'class','smb','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2);
     169                                WriteData(fid,'object',self,'class','smb','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2);
    163170                        elseif self.ismungsm
    164                                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
    165                                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_lgm','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
    166                                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
    167                                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_lgm','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
    168                                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Pfac','format','DoubleMat','mattype',1,'timeserieslength',2);
    169                                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2);
    170                                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2);
     171                                WriteData(fid,'object',self,'class','smb','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
     172                                WriteData(fid,'object',self,'class','smb','fieldname','temperatures_lgm','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
     173                                WriteData(fid,'object',self,'class','smb','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     174                                WriteData(fid,'object',self,'class','smb','fieldname','precipitations_lgm','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
     175                                WriteData(fid,'object',self,'class','smb','fieldname','Pfac','format','DoubleMat','mattype',1,'timeserieslength',2);
     176                                WriteData(fid,'object',self,'class','smb','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2);
     177                                WriteData(fid,'object',self,'class','smb','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2);
    171178                        end
     179                       
     180                        %process requested outputs
     181                        outputs = self.requested_outputs;
     182                        pos  = find(ismember(outputs,'default'));
     183                        if ~isempty(pos),
     184                                outputs(pos) = [];                         %remove 'default' from outputs
     185                                outputs      = [outputs defaultoutputs(self,md)]; %add defaults
     186                        end
     187                        WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum,'format','StringArray');
     188
    172189                end % }}}
    173190        end
  • issm/trunk-jpl/src/m/classes/SMBpdd.py

    r19309 r19527  
    3636                #set defaults
    3737                self.setdefaultparameters()
     38                self.requested_outputs      = []
    3839                #}}}
    3940        def __repr__(self): # {{{
     
    6768                                string="%s\n%s"%(string,fielddisplay(self,'Tdiff','time interpolation parameter for temperature, 1D(year), required if mungsm is activated'))
    6869                                string="%s\n%s"%(string,fielddisplay(self,'sealev','sea level [m], 1D(year), required if mungsm is activated'))
     70                string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
    6971                               
    7072                return string
     
    8789
    8890                return self
     91        #}}}
     92        def defaultoutputs(self,md): # {{{
     93                return []
    8994        #}}}
    9095        def initialize(self,md): # {{{
     
    114119
    115120                if MasstransportAnalysisEnum() in analyses:
    116                         md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',[1])
    117                         md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
    118                         md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
    119                         md = checkfield(md,'fieldname','surfaceforcings.rlaps','>=',0,'numel',[1])
    120                         md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',[1])
     121                        md = checkfield(md,'fieldname','smb.desfac','<=',1,'numel',[1])
     122                        md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
     123                        md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
     124                        md = checkfield(md,'fieldname','smb.rlaps','>=',0,'numel',[1])
     125                        md = checkfield(md,'fieldname','smb.rlapslgm','>=',0,'numel',[1])
    121126
    122127                        if (self.isdelta18o==0 and self.ismungsm==0):
    123                                 md = checkfield(md,'fieldname','surfaceforcings.monthlytemperatures','NaN',1,'timeseries',1)
    124                                 md = checkfield(md,'fieldname','surfaceforcings.precipitation','NaN',1,'timeseries',1)
     128                                md = checkfield(md,'fieldname','smb.monthlytemperatures','NaN',1,'timeseries',1)
     129                                md = checkfield(md,'fieldname','smb.precipitation','NaN',1,'timeseries',1)
    125130                        elif self.isdelta18o:
    126                                 md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
    127                                 md = checkfield(md,'fieldname','surfaceforcings.delta18o_surface','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
    128                                 md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
    129                                 md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
    130                                 md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
    131                                 md = checkfield(md,'fieldname','surfaceforcings.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)                                       
    132                                 md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
    133                                 md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
     131                                md = checkfield(md,'fieldname','smb.delta18o','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
     132                                md = checkfield(md,'fieldname','smb.delta18o_surface','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
     133                                md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
     134                                md = checkfield(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
     135                                md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
     136                                md = checkfield(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)                                       
     137                                md = checkfield(md,'fieldname','smb.Tdiff','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
     138                                md = checkfield(md,'fieldname','smb.sealev','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
    134139                        elif self.ismungsm:
    135                                 md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
    136                                 md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
    137                                 md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
    138                                 md = checkfield(md,'fieldname','surfaceforcings.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)                                       
    139                                 md = checkfield(md,'fieldname','surfaceforcings.Pfac','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
    140                                 md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
    141                                 md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
     140                                md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
     141                                md = checkfield(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
     142                                md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
     143                                md = checkfield(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)                                       
     144                                md = checkfield(md,'fieldname','smb.Pfac','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
     145                                md = checkfield(md,'fieldname','smb.Tdiff','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
     146                                md = checkfield(md,'fieldname','smb.sealev','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
    142147
     148                md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
    143149                return md
    144150        #}}}
     
    147153                yts=365.0*24.0*3600.0
    148154
    149                 WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBpddEnum(),'format','Integer')
     155                WriteData(fid,'enum',SmbEnum(),'data',SMBpddEnum(),'format','Integer')
    150156
    151                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','isdelta18o','format','Boolean')
    152                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','ismungsm','format','Boolean')
    153                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','desfac','format','Double')
    154                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','DoubleMat','mattype',1);
    155                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','DoubleMat','mattype',1);
    156                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlaps','format','Double')
    157                 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlapslgm','format','Double')
     157                WriteData(fid,'object',self,'class','smb','fieldname','isdelta18o','format','Boolean')
     158                WriteData(fid,'object',self,'class','smb','fieldname','ismungsm','format','Boolean')
     159                WriteData(fid,'object',self,'class','smb','fieldname','desfac','format','Double')
     160                WriteData(fid,'object',self,'class','smb','fieldname','s0p','format','DoubleMat','mattype',1);
     161                WriteData(fid,'object',self,'class','smb','fieldname','s0t','format','DoubleMat','mattype',1);
     162                WriteData(fid,'object',self,'class','smb','fieldname','rlaps','format','Double')
     163                WriteData(fid,'object',self,'class','smb','fieldname','rlapslgm','format','Double')
    158164
    159165                if (self.isdelta18o==0 and self.ismungsm==0):
    160                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','monthlytemperatures','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
    161                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
     166                        WriteData(fid,'object',self,'class','smb','fieldname','monthlytemperatures','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
     167                        WriteData(fid,'object',self,'class','smb','fieldname','precipitation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
    162168                elif self.isdelta18o:
    163                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
    164                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_lgm','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
    165                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
    166                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_lgm','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
    167                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o_surface','format','DoubleMat','mattype',1,'timeserieslength',2)
    168                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2)
    169                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2)
    170                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2)                       
     169                        WriteData(fid,'object',self,'class','smb','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
     170                        WriteData(fid,'object',self,'class','smb','fieldname','temperatures_lgm','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
     171                        WriteData(fid,'object',self,'class','smb','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
     172                        WriteData(fid,'object',self,'class','smb','fieldname','precipitations_lgm','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
     173                        WriteData(fid,'object',self,'class','smb','fieldname','delta18o_surface','format','DoubleMat','mattype',1,'timeserieslength',2)
     174                        WriteData(fid,'object',self,'class','smb','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2)
     175                        WriteData(fid,'object',self,'class','smb','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2)
     176                        WriteData(fid,'object',self,'class','smb','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2)                   
    171177                elif self.ismungsm:
    172                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
    173                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_lgm','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
    174                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
    175                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_lgm','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
    176                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Pfac','format','DoubleMat','mattype',1,'timeserieslength',2)
    177                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2)
    178                         WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2)
     178                        WriteData(fid,'object',self,'class','smb','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
     179                        WriteData(fid,'object',self,'class','smb','fieldname','temperatures_lgm','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
     180                        WriteData(fid,'object',self,'class','smb','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
     181                        WriteData(fid,'object',self,'class','smb','fieldname','precipitations_lgm','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
     182                        WriteData(fid,'object',self,'class','smb','fieldname','Pfac','format','DoubleMat','mattype',1,'timeserieslength',2)
     183                        WriteData(fid,'object',self,'class','smb','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2)
     184                        WriteData(fid,'object',self,'class','smb','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2)
     185                       
     186                #process requested outputs
     187                outputs = self.requested_outputs
     188                indices = [i for i, x in enumerate(outputs) if x == 'default']
     189                if len(indices) > 0:
     190                        outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
     191                        outputs    =outputscopy
     192                WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum(),'format','StringArray')
     193
    179194        # }}}
  • issm/trunk-jpl/src/m/classes/model.m

    r19124 r19527  
    1313                geometry         = 0;
    1414                constants        = 0;
    15                 surfaceforcings  = 0;
     15                smb              = 0;
    1616                basalforcings    = 0;
    1717                materials        = 0;
     
    106106                        end
    107107                        %2014 January 9th
    108                         if isa(md.surfaceforcings,'surfaceforcings'),
    109                                 disp('Recovering old surfaceforcings class');
    110                                 mass_balance=md.surfaceforcings.mass_balance;
    111                                 md.surfaceforcings=SMB();
    112                                 md.surfaceforcings.mass_balance=mass_balance;
     108                        if isa(md.smb,'smb'),
     109                                disp('Recovering old smb class');
     110                                mass_balance=md.smb.mass_balance;
     111                                md.smb=SMBforcing();
     112                                md.smb.mass_balance=mass_balance;
    113113                        end
    114114                        %2014 March 26th
     
    198198                        if numel(md.inversion.min_parameters)>1, md.inversion.min_parameters=project2d(md,md.inversion.min_parameters,md.mesh.numberoflayers); end;
    199199                        if numel(md.inversion.max_parameters)>1, md.inversion.max_parameters=project2d(md,md.inversion.max_parameters,md.mesh.numberoflayers); end;
    200                         if isa(md.surfaceforcings,'SMB') & ~isnan(md.surfaceforcings.mass_balance),
    201                                 md.surfaceforcings.mass_balance=project2d(md,md.surfaceforcings.mass_balance,md.mesh.numberoflayers);
    202                         elseif isa(md.surfaceforcings,'SMBhenning') & ~isnan(md.surfaceforcings.smbref),
    203                                 md.surfaceforcings.smbref=project2d(md,md.surfaceforcings.smbref,md.mesh.numberoflayers);
     200                        if isa(md.smb,'SMBforcing') & ~isnan(md.smb.mass_balance),
     201                                md.smb.mass_balance=project2d(md,md.smb.mass_balance,md.mesh.numberoflayers);
     202                        elseif isa(md.smb,'SMBhenning') & ~isnan(md.smb.smbref),
     203                                md.smb.smbref=project2d(md,md.smb.smbref,md.mesh.numberoflayers);
    204204                        end;
    205205                        if ~isnan(md.balancethickness.thickening_rate), md.balancethickness.thickening_rate=project2d(md,md.balancethickness.thickening_rate,md.mesh.numberoflayers); end;
     
    742742                        md.friction  = extrude(md.friction,md);
    743743                        md.inversion = extrude(md.inversion,md);
    744                         md.surfaceforcings = extrude(md.surfaceforcings,md);
     744                        md.smb = extrude(md.smb,md);
    745745                        md.initialization = extrude(md.initialization,md);
    746746
     
    792792                        if isfield(structmd,'melting_rate'), md.basalforcings.floatingice_melting_rate=structmd.melting_rate; end
    793793                        if isfield(structmd,'melting_rate'), md.basalforcings.groundedice_melting_rate=structmd.melting_rate; end
    794                         if isfield(structmd,'accumulation'), md.surfaceforcings.mass_balance=structmd.accumulation; end
     794                        if isfield(structmd,'accumulation'), md.smb.mass_balance=structmd.accumulation; end
    795795                        if isfield(structmd,'numberofgrids'), md.mesh.numberofvertices=structmd.numberofgrids; end
    796796                        if isfield(structmd,'numberofgrids2d'), md.mesh.numberofvertices2d=structmd.numberofgrids2d; end
     
    804804                        if isfield(structmd,'g'), md.constants.g=structmd.g; end
    805805                        if isfield(structmd,'yts'), md.constants.yts=structmd.yts; end
    806                         if isfield(structmd,'surface_mass_balance'), md.surfaceforcings.mass_balance=structmd.surface_mass_balance; end
     806                        if isfield(structmd,'surface_mass_balance'), md.smb.mass_balance=structmd.surface_mass_balance; end
    807807                        if isfield(structmd,'basal_melting_rate'), md.basalforcings.floatingice_melting_rate=structmd.basal_melting_rate; end
    808808                        if isfield(structmd,'geothermalflux'), md.basalforcings.geothermalflux=structmd.geothermalflux; end
     
    10491049                        md.geometry         = geometry();
    10501050                        md.initialization   = initialization();
    1051                         md.surfaceforcings  = SMB();
     1051                        md.smb              = SMBforcing();
    10521052                        md.basalforcings    = basalforcings();
    10531053                        md.friction         = friction();
     
    12181218                        disp(sprintf('%19s: %-22s -- %s','geometry'        ,['[1x1 ' class(self.geometry) ']'],'surface elevation, bedrock topography, ice thickness,...'));
    12191219                        disp(sprintf('%19s: %-22s -- %s','constants'       ,['[1x1 ' class(self.constants) ']'],'physical constants'));
    1220                         disp(sprintf('%19s: %-22s -- %s','surfaceforcings' ,['[1x1 ' class(self.surfaceforcings) ']'],'surface forcings'));
     1220                        disp(sprintf('%19s: %-22s -- %s','smb'             ,['[1x1 ' class(self.smb) ']'],'surface mass balance'));
    12211221                        disp(sprintf('%19s: %-22s -- %s','basalforcings'   ,['[1x1 ' class(self.basalforcings) ']'],'bed forcings'));
    12221222                        disp(sprintf('%19s: %-22s -- %s','materials'       ,['[1x1 ' class(self.materials) ']'],'material properties'));
  • issm/trunk-jpl/src/m/classes/model.py

    r19392 r19527  
    88from geometry import geometry
    99from constants import constants
    10 from SMB import SMB
     10from SMBforcing import SMBforcing
    1111from SMBpdd import SMBpdd
    1212from SMBd18opdd import SMBd18opdd
     
    7676                self.geometry         = geometry()
    7777                self.constants        = constants()
    78                 self.surfaceforcings  = SMB()
     78                self.smb              = SMBforcing()
    7979                self.basalforcings    = basalforcings()
    8080                self.materials        = matice()
     
    120120                        'geometry',\
    121121                        'constants',\
    122                         'surfaceforcings',\
     122                        'smb',\
    123123                        'basalforcings',\
    124124                        'materials',\
     
    160160                string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("geometry","[%s,%s]" % ("1x1",obj.geometry.__class__.__name__),"surface elevation, bedrock topography, ice thickness,..."))
    161161                string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("constants","[%s,%s]" % ("1x1",obj.constants.__class__.__name__),"physical constants"))
    162                 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("surfaceforcings","[%s,%s]" % ("1x1",obj.surfaceforcings.__class__.__name__),"surface forcings"))
     162                string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("smb","[%s,%s]" % ("1x1",obj.smb.__class__.__name__),"surface mass balance"))
    163163                string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("basalforcings","[%s,%s]" % ("1x1",obj.basalforcings.__class__.__name__),"bed forcings"))
    164164                string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("materials","[%s,%s]" % ("1x1",obj.materials.__class__.__name__),"material properties"))
     
    609609                md.friction.extrude(md)
    610610                md.inversion.extrude(md)
    611                 md.surfaceforcings.extrude(md)
     611                md.smb.extrude(md)
    612612                md.initialization.extrude(md)
    613613                md.flowequation.extrude(md)
     
    674674                if isinstance(md.inversion.max_parameters,numpy.ndarray):
    675675                    if md.inversion.max_parameters.size>1: md.inversion.max_parameters=project2d(md,md.inversion.max_parameters,md.mesh.numberoflayers)
    676                 if not numpy.isnan(md.surfaceforcings.mass_balance).all():
    677                         md.surfaceforcings.mass_balance=project2d(md,md.surfaceforcings.mass_balance,md.mesh.numberoflayers)
     676                if not numpy.isnan(md.smb.mass_balance).all():
     677                        md.smb.mass_balance=project2d(md,md.smb.mass_balance,md.mesh.numberoflayers)
    678678               
    679679                if not numpy.isnan(md.balancethickness.thickening_rate).all(): md.balancethickness.thickening_rate=project2d(md,md.balancethickness.thickening_rate,md.mesh.numberoflayers)
  • issm/trunk-jpl/src/m/classes/oldclasses/surfaceforcings.m

    r17079 r19527  
    22%
    33%   Usage:
    4 %      surfaceforcings=surfaceforcings();
     4%      smb=smb();
    55
    6 classdef surfaceforcings
     6classdef smb
    77        properties (SetAccess=public)
    88                precipitation             = NaN;
  • issm/trunk-jpl/src/m/classes/transient.m

    r19040 r19527  
    66classdef transient
    77        properties (SetAccess=public)
     8                issmb             = 0;
    89                ismasstransport   = 0;
    910                isstressbalance   = 0;
     
    2324            % transient solution parameters
    2425            fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="transient solution parameters">','<section name="transient" />');                   
     26                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="issmb" type="',class(self.issmb),'" default="',convert2str(self.issmb),'">','     <section name="transient" />','     <help> indicates whether a masstransport solution is used in the transient </help>','  </parameter>');
    2527                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="ismasstransport" type="',class(self.ismasstransport),'" default="',convert2str(self.ismasstransport),'">','     <section name="transient" />','     <help> indicates whether a masstransport solution is used in the transient </help>','  </parameter>');
    2628                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="isstressbalance" type="',class(self.isstressbalance),'" default="',convert2str(self.isstressbalance),'">','     <section name="transient" />','     <help> indicates whether a stressbalance solution is used in the transient </help>','  </parameter>');
     
    4648
    4749                        %full analysis: Stressbalance, Masstransport and Thermal but no groundingline migration for now
     50                        self.issmb           = 0;
    4851                        self.ismasstransport = 0;
    4952                        self.isstressbalance = 0;
     
    6265
    6366                        %full analysis: Stressbalance, Masstransport and Thermal but no groundingline migration for now
     67                        self.issmb           = 1;
    6468                        self.ismasstransport = 1;
    6569                        self.isstressbalance = 1;
     
    7680                end % }}}
    7781                function list = defaultoutputs(self,md) % {{{
    78                         if(self.ismasstransport)
    79                                 list = {'SurfaceforcingsMassBalance'};
     82                        if(self.issmb)
     83                                list = {'SmbMassBalance'};
    8084                        else
    8185                                list = {};
     
    8791                        if solution~=TransientSolutionEnum(), return; end
    8892
     93                        md = checkfield(md,'fieldname','transient.issmb','numel',[1],'values',[0 1]);
    8994                        md = checkfield(md,'fieldname','transient.ismasstransport','numel',[1],'values',[0 1]);
    9095                        md = checkfield(md,'fieldname','transient.isstressbalance','numel',[1],'values',[0 1]);
     
    102107                        disp(sprintf('   transient solution parameters:'));
    103108
     109                        fielddisplay(self,'issmb','indicates whether a surface mass balance solution is used in the transient');
    104110                        fielddisplay(self,'ismasstransport','indicates whether a masstransport solution is used in the transient');
    105111                        fielddisplay(self,'isstressbalance','indicates whether a stressbalance solution is used in the transient');
     
    115121                end % }}}
    116122                function marshall(self,md,fid) % {{{
     123                        WriteData(fid,'object',self,'fieldname','issmb','format','Boolean');
    117124                        WriteData(fid,'object',self,'fieldname','ismasstransport','format','Boolean');
    118125                        WriteData(fid,'object',self,'fieldname','isstressbalance','format','Boolean');
  • issm/trunk-jpl/src/m/classes/transient.py

    r18763 r19527  
    1313
    1414        def __init__(self): # {{{
     15                self.issmb   = False
    1516                self.ismasstransport   = False
    1617                self.isstressbalance   = False
     
    3031        def __repr__(self): # {{{
    3132                string='   transient solution parameters:'
     33                string="%s\n%s"%(string,fielddisplay(self,'issmb','indicates if a surface mass balance solution is used in the transient'))
    3234                string="%s\n%s"%(string,fielddisplay(self,'ismasstransport','indicates if a masstransport solution is used in the transient'))
    3335                string="%s\n%s"%(string,fielddisplay(self,'isstressbalance','indicates if a stressbalance solution is used in the transient'))
     
    4446        def defaultoutputs(self,md): # {{{
    4547
    46                 if self.ismasstransport:
    47                         return ['SurfaceforcingsMassBalance']
     48                if self.issmb:
     49                        return ['SmbMassBalance']
    4850                else:
    4951                        return []
     
    5355               
    5456                #Nothing done
     57                self.issmb   = False
    5558                self.ismasstransport   = False
    5659                self.isstressbalance   = False
     
    7073               
    7174                #full analysis: Stressbalance, Masstransport and Thermal but no groundingline migration for now
     75                self.issmb = True
    7276                self.ismasstransport = True
    7377                self.isstressbalance = True
     
    9094                        return md
    9195
     96                md = checkfield(md,'fieldname','transient.issmb','numel',[1],'values',[0,1])
    9297                md = checkfield(md,'fieldname','transient.ismasstransport','numel',[1],'values',[0,1])
    9398                md = checkfield(md,'fieldname','transient.isstressbalance','numel',[1],'values',[0,1])
     
    104109        # }}}
    105110        def marshall(self,md,fid):    # {{{
     111                WriteData(fid,'object',self,'fieldname','issmb','format','Boolean')
    106112                WriteData(fid,'object',self,'fieldname','ismasstransport','format','Boolean')
    107113                WriteData(fid,'object',self,'fieldname','isstressbalance','format','Boolean')
  • issm/trunk-jpl/src/m/contrib/hack/tres.m

    r18068 r19527  
    107107                case InversionVyObsEnum(), string='vy_obs'; return
    108108                case BasalforcingsMeltingRateEnum(), string='basal_melting_rate'; return
    109                 case SurfaceforcingsAccumulationRateEnum(), string='surface_accumulation_rate'; return
    110                 case SurfaceforcingsAblationRateEnum(), string='surface_ablation_rate'; return
    111                 case SurfaceforcingsMassBalanceEnum(), string='surface_mass_balance'; return
     109                case SmbAccumulationRateEnum(), string='surface_accumulation_rate'; return
     110                case SmbAblationRateEnum(), string='surface_ablation_rate'; return
     111                case SmbMassBalanceEnum(), string='surface_mass_balance'; return
    112112                otherwise, error(['Enum ' num2str(enum)  ' not found associated to any model field']);
    113113
  • issm/trunk-jpl/src/m/contrib/netCDF/ClassTry.py

    r18927 r19527  
    4747                        'geometry':'geometry',\
    4848                        'constants':'constants',\
    49                         'surfaceforcings':'SMB',\
     49                        'smb':'SMB',\
    5050                        'basalforcings':'basalforcings',\
    5151                        'materials':'matice',\
     
    8888                string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("geometry","[%s,%s]" % ("1x1",obj.geometry.__class__.__name__),"surface elevation, bedrock topography, ice thickness,..."))
    8989                string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("constants","[%s,%s]" % ("1x1",obj.constants.__class__.__name__),"physical constants"))
    90                 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("surfaceforcings","[%s,%s]" % ("1x1",obj.surfaceforcings.__class__.__name__),"surface forcings"))
     90                string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("smb","[%s,%s]" % ("1x1",obj.smb.__class__.__name__),"surface forcings"))
    9191                string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("basalforcings","[%s,%s]" % ("1x1",obj.basalforcings.__class__.__name__),"bed forcings"))
    9292                string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("materials","[%s,%s]" % ("1x1",obj.materials.__class__.__name__),"material properties"))
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r19518 r19527  
    326326def TimesteppingTimeStepEnum(): return StringToEnum("TimesteppingTimeStep")[0]
    327327def TimesteppingInterpForcingsEnum(): return StringToEnum("TimesteppingInterpForcings")[0]
     328def TransientIssmbEnum(): return StringToEnum("TransientIssmb")[0]
    328329def TransientIsstressbalanceEnum(): return StringToEnum("TransientIsstressbalance")[0]
    329330def TransientIsgroundinglineEnum(): return StringToEnum("TransientIsgroundingline")[0]
     
    344345def BalancethicknessOmegaEnum(): return StringToEnum("BalancethicknessOmega")[0]
    345346def BalancethicknessD0Enum(): return StringToEnum("BalancethicknessD0")[0]
    346 def SurfaceforcingsEnum(): return StringToEnum("Surfaceforcings")[0]
    347 def SMBEnum(): return StringToEnum("SMB")[0]
    348 def SurfaceforcingsMassBalanceEnum(): return StringToEnum("SurfaceforcingsMassBalance")[0]
     347def SmbEnum(): return StringToEnum("Smb")[0]
     348def SmbSolutionEnum(): return StringToEnum("SmbSolution")[0]
     349def SmbNumRequestedOutputsEnum(): return StringToEnum("SmbNumRequestedOutputs")[0]
     350def SmbRequestedOutputsEnum(): return StringToEnum("SmbRequestedOutputs")[0]
     351def SMBforcingEnum(): return StringToEnum("SMBforcing")[0]
     352def SmbMassBalanceEnum(): return StringToEnum("SmbMassBalance")[0]
    349353def SMBpddEnum(): return StringToEnum("SMBpdd")[0]
    350 def SurfaceforcingsDelta18oEnum(): return StringToEnum("SurfaceforcingsDelta18o")[0]
    351 def SurfaceforcingsDelta18oSurfaceEnum(): return StringToEnum("SurfaceforcingsDelta18oSurface")[0]
    352 def SurfaceforcingsIsdelta18oEnum(): return StringToEnum("SurfaceforcingsIsdelta18o")[0]
    353 def SurfaceforcingsIsmungsmEnum(): return StringToEnum("SurfaceforcingsIsmungsm")[0]
    354 def SurfaceforcingsIsd18opdEnum(): return StringToEnum("SurfaceforcingsIsd18opd")[0]
    355 def SurfaceforcingsPrecipitationsPresentdayEnum(): return StringToEnum("SurfaceforcingsPrecipitationsPresentday")[0]
    356 def SurfaceforcingsPrecipitationsLgmEnum(): return StringToEnum("SurfaceforcingsPrecipitationsLgm")[0]
    357 def SurfaceforcingsTemperaturesPresentdayEnum(): return StringToEnum("SurfaceforcingsTemperaturesPresentday")[0]
    358 def SurfaceforcingsTemperaturesLgmEnum(): return StringToEnum("SurfaceforcingsTemperaturesLgm")[0]
    359 def SurfaceforcingsPrecipitationEnum(): return StringToEnum("SurfaceforcingsPrecipitation")[0]
    360 def SurfaceforcingsDesfacEnum(): return StringToEnum("SurfaceforcingsDesfac")[0]
    361 def SurfaceforcingsS0pEnum(): return StringToEnum("SurfaceforcingsS0p")[0]
    362 def SurfaceforcingsS0tEnum(): return StringToEnum("SurfaceforcingsS0t")[0]
    363 def SurfaceforcingsRlapsEnum(): return StringToEnum("SurfaceforcingsRlaps")[0]
    364 def SurfaceforcingsRlapslgmEnum(): return StringToEnum("SurfaceforcingsRlapslgm")[0]
    365 def SurfaceforcingsPfacEnum(): return StringToEnum("SurfaceforcingsPfac")[0]
    366 def SurfaceforcingsTdiffEnum(): return StringToEnum("SurfaceforcingsTdiff")[0]
    367 def SurfaceforcingsSealevEnum(): return StringToEnum("SurfaceforcingsSealev")[0]
     354def SmbDelta18oEnum(): return StringToEnum("SmbDelta18o")[0]
     355def SmbDelta18oSurfaceEnum(): return StringToEnum("SmbDelta18oSurface")[0]
     356def SmbIsdelta18oEnum(): return StringToEnum("SmbIsdelta18o")[0]
     357def SmbIsmungsmEnum(): return StringToEnum("SmbIsmungsm")[0]
     358def SmbIsd18opdEnum(): return StringToEnum("SmbIsd18opd")[0]
     359def SmbPrecipitationsPresentdayEnum(): return StringToEnum("SmbPrecipitationsPresentday")[0]
     360def SmbPrecipitationsLgmEnum(): return StringToEnum("SmbPrecipitationsLgm")[0]
     361def SmbTemperaturesPresentdayEnum(): return StringToEnum("SmbTemperaturesPresentday")[0]
     362def SmbTemperaturesLgmEnum(): return StringToEnum("SmbTemperaturesLgm")[0]
     363def SmbPrecipitationEnum(): return StringToEnum("SmbPrecipitation")[0]
     364def SmbDesfacEnum(): return StringToEnum("SmbDesfac")[0]
     365def SmbS0pEnum(): return StringToEnum("SmbS0p")[0]
     366def SmbS0tEnum(): return StringToEnum("SmbS0t")[0]
     367def SmbRlapsEnum(): return StringToEnum("SmbRlaps")[0]
     368def SmbRlapslgmEnum(): return StringToEnum("SmbRlapslgm")[0]
     369def SmbPfacEnum(): return StringToEnum("SmbPfac")[0]
     370def SmbTdiffEnum(): return StringToEnum("SmbTdiff")[0]
     371def SmbSealevEnum(): return StringToEnum("SmbSealev")[0]
    368372def SMBd18opddEnum(): return StringToEnum("SMBd18opdd")[0]
    369 def SurfaceforcingsDpermilEnum(): return StringToEnum("SurfaceforcingsDpermil")[0]
     373def SmbDpermilEnum(): return StringToEnum("SmbDpermil")[0]
    370374def SMBgradientsEnum(): return StringToEnum("SMBgradients")[0]
    371 def SurfaceforcingsMonthlytemperaturesEnum(): return StringToEnum("SurfaceforcingsMonthlytemperatures")[0]
    372 def SurfaceforcingsHrefEnum(): return StringToEnum("SurfaceforcingsHref")[0]
    373 def SurfaceforcingsSmbrefEnum(): return StringToEnum("SurfaceforcingsSmbref")[0]
    374 def SurfaceforcingsBPosEnum(): return StringToEnum("SurfaceforcingsBPos")[0]
    375 def SurfaceforcingsBNegEnum(): return StringToEnum("SurfaceforcingsBNeg")[0]
     375def SmbMonthlytemperaturesEnum(): return StringToEnum("SmbMonthlytemperatures")[0]
     376def SmbHrefEnum(): return StringToEnum("SmbHref")[0]
     377def SmbSmbrefEnum(): return StringToEnum("SmbSmbref")[0]
     378def SmbBPosEnum(): return StringToEnum("SmbBPos")[0]
     379def SmbBNegEnum(): return StringToEnum("SmbBNeg")[0]
    376380def SMBhenningEnum(): return StringToEnum("SMBhenning")[0]
    377381def SMBcomponentsEnum(): return StringToEnum("SMBcomponents")[0]
    378 def SurfaceforcingsAccumulationEnum(): return StringToEnum("SurfaceforcingsAccumulation")[0]
    379 def SurfaceforcingsEvaporationEnum(): return StringToEnum("SurfaceforcingsEvaporation")[0]
    380 def SurfaceforcingsRunoffEnum(): return StringToEnum("SurfaceforcingsRunoff")[0]
     382def SmbAccumulationEnum(): return StringToEnum("SmbAccumulation")[0]
     383def SmbEvaporationEnum(): return StringToEnum("SmbEvaporation")[0]
     384def SmbRunoffEnum(): return StringToEnum("SmbRunoff")[0]
    381385def SMBmeltcomponentsEnum(): return StringToEnum("SMBmeltcomponents")[0]
    382 def SurfaceforcingsMeltEnum(): return StringToEnum("SurfaceforcingsMelt")[0]
    383 def SurfaceforcingsRefreezeEnum(): return StringToEnum("SurfaceforcingsRefreeze")[0]
     386def SmbMeltEnum(): return StringToEnum("SmbMelt")[0]
     387def SmbRefreezeEnum(): return StringToEnum("SmbRefreeze")[0]
    384388def SMBgcmEnum(): return StringToEnum("SMBgcm")[0]
    385 def SurfaceforcingsIspddEnum(): return StringToEnum("SurfaceforcingsIspdd")[0]
    386 def SurfaceforcingsIssmbgradientsEnum(): return StringToEnum("SurfaceforcingsIssmbgradients")[0]
     389def SmbIspddEnum(): return StringToEnum("SmbIspdd")[0]
     390def SmbIssmbgradientsEnum(): return StringToEnum("SmbIssmbgradients")[0]
    387391def SolutionTypeEnum(): return StringToEnum("SolutionType")[0]
    388392def AnalysisTypeEnum(): return StringToEnum("AnalysisType")[0]
  • issm/trunk-jpl/src/m/solve/parseresultsfromdisk.m

    r19506 r19527  
    198198        elseif strcmp(fieldname,'TotalSmb'),
    199199                field = field/10.^12*yts; %(GigaTon/year)
    200         elseif strcmp(fieldname,'SurfaceforcingsMassBalance'),
    201                 field = field*yts;
    202         elseif strcmp(fieldname,'SurfaceforcingsAccumulation'),
    203                 field = field*yts;
    204         elseif strcmp(fieldname,'SurfaceforcingsMelt'),
     200        elseif strcmp(fieldname,'SmbMassBalance'),
     201                field = field*yts;
     202        elseif strcmp(fieldname,'SmbAccumulation'),
     203                field = field*yts;
     204        elseif strcmp(fieldname,'SmbMelt'),
    205205                field = field*yts;
    206206        elseif strcmp(fieldname,'CalvingCalvingrate'),
  • issm/trunk-jpl/src/m/solve/parseresultsfromdisk.py

    r19348 r19527  
    220220                elif m.strcmp(fieldname,'TotalSmb'):
    221221                        field = field/10.**12.*yts #(GigaTon/year)
    222                 elif m.strcmp(fieldname,'SurfaceforcingsMassBalance'):
     222                elif m.strcmp(fieldname,'SmbMassBalance'):
    223223                        field = field*yts
    224224                elif m.strcmp(fieldname,'CalvingCalvingrate'):
  • issm/trunk-jpl/src/wrappers/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.cpp

    r18453 r19527  
    2020        _printf0_("      data_interp       : vector of mesh interpolated data.\n");
    2121        _printf0_("      Available options :\n");
    22         _printf0_("         - 'default' : default value if point is outsite of triangulation (instead of linear interolation)\n");
     22        _printf0_("         - 'default' : default value if point is outsite of triangulation (instead of linear interpolation)\n");
    2323        _printf0_("\n");
    2424        _printf0_("   Example:\n");
  • issm/trunk-jpl/test/NightlyRun/gemb.m

    r19526 r19527  
    99
    1010% Use of Gemb method for SMB computation
    11 md.surfaceforcings = SMBgemb(md.mesh,md.geometry);
     11md.smb = SMBgemb(md.mesh,md.geometry);
    1212
    1313%load hourly surface forcing date from 1979 to 2009:
     
    1515
    1616dateN=inputs.dateN/365.25; %convert in years
    17 md.surfaceforcings.Ta=[repmat(inputs.Ta0',md.mesh.numberofelements,1);dateN'];
    18 md.surfaceforcings.V=[repmat(inputs.V0',md.mesh.numberofelements,1);dateN'];
    19 md.surfaceforcings.dswrf=[repmat(inputs.dsw0',md.mesh.numberofelements,1);dateN'];
    20 md.surfaceforcings.dlwrf=[repmat(inputs.dlw0',md.mesh.numberofelements,1);dateN'];
    21 md.surfaceforcings.P=[repmat(inputs.P0',md.mesh.numberofelements,1);dateN'];
    22 md.surfaceforcings.eAir=[repmat(inputs.eAir0',md.mesh.numberofelements,1);dateN'];
    23 md.surfaceforcings.pAir=[repmat(inputs.pAir0',md.mesh.numberofelements,1);dateN'];
     17md.smb.Ta=[repmat(inputs.Ta0',md.mesh.numberofelements,1);dateN'];
     18md.smb.V=[repmat(inputs.V0',md.mesh.numberofelements,1);dateN'];
     19md.smb.dswrf=[repmat(inputs.dsw0',md.mesh.numberofelements,1);dateN'];
     20md.smb.dlwrf=[repmat(inputs.dlw0',md.mesh.numberofelements,1);dateN'];
     21md.smb.P=[repmat(inputs.P0',md.mesh.numberofelements,1);dateN'];
     22md.smb.eAir=[repmat(inputs.eAir0',md.mesh.numberofelements,1);dateN'];
     23md.smb.pAir=[repmat(inputs.pAir0',md.mesh.numberofelements,1);dateN'];
    2424
    25 md.surfaceforcings.Vz=inputs.LP.Vz;
    26 md.surfaceforcings.Tz=inputs.LP.Tz;
    27 md.surfaceforcings.Tmean=inputs.LP.Tmean;
    28 md.surfaceforcings.C=inputs.LP.C;
     25md.smb.Vz=inputs.LP.Vz;
     26md.smb.Tz=inputs.LP.Tz;
     27md.smb.Tmean=inputs.LP.Tmean;
     28md.smb.C=inputs.LP.C;
    2929
    3030%settings
    31 md.surfaceforcings.spinUp=2
     31md.smb.spinUp=2;
    3232
    3333%Run transient
  • issm/trunk-jpl/test/NightlyRun/test105.m

    r19049 r19527  
    55md=setflowequation(md,'SSA','all');
    66md.cluster=generic('name',oshostname(),'np',3);
     7md.verbose=verbose('11111111');
    78md=solve(md,MasstransportSolutionEnum());
    89
  • issm/trunk-jpl/test/NightlyRun/test109.m

    r19049 r19527  
    88md.transient.isstressbalance=0;
    99md.transient.ismasstransport=0;
     10md.transient.issmb=0;
    1011md.transient.isthermal=1;
    1112md.transient.isgroundingline=0;
  • issm/trunk-jpl/test/NightlyRun/test109.py

    r19049 r19527  
    1717md.transient.isstressbalance=False
    1818md.transient.ismasstransport=False
     19md.transient.issmb=False
    1920md.transient.isthermal=True
    2021md.transient.isgroundingline=False
  • issm/trunk-jpl/test/NightlyRun/test1201.m

    r19049 r19527  
    1010        md=setmask(md,'all','');
    1111        md=parameterize(md,'../Par/SquareEISMINT.par');
    12         md.surfaceforcings.mass_balance(:)=0.;
     12        md.smb.mass_balance(:)=0.;
    1313        md=setflowequation(md,'SSA','all');
    1414        md.cluster=generic('name',oshostname(),'np',8);
  • issm/trunk-jpl/test/NightlyRun/test1201.py

    r19049 r19527  
    2323        md=setmask(md,'all','')
    2424        md=parameterize(md,'../Par/SquareEISMINT.py')
    25         md.surfaceforcings.mass_balance[:]=0.
     25        md.smb.mass_balance[:]=0.
    2626        md=setflowequation(md,'SSA','all')
    2727        md.cluster=generic('name',oshostname(),'np',8)
  • issm/trunk-jpl/test/NightlyRun/test121.m

    r19049 r19527  
    1010md.transient.isstressbalance=0;
    1111md.transient.ismasstransport=0;
     12md.transient.issmb=0;
    1213md.transient.isthermal=1;
    1314md.transient.isgroundingline=0;
  • issm/trunk-jpl/test/NightlyRun/test121.py

    r19049 r19527  
    1919md.transient.isstressbalance=False
    2020md.transient.ismasstransport=False
     21md.transient.issmb=False
    2122md.transient.isthermal=True
    2223md.transient.isgroundingline=False
  • issm/trunk-jpl/test/NightlyRun/test1501.m

    r19049 r19527  
    1515%Solve for thinning rate -> -1 * surface mass balance
    1616smb= 2.*ones(md.mesh.numberofvertices,1);
    17 md.surfaceforcings.mass_balance= smb;
     17md.smb.mass_balance= smb;
    1818md.basalforcings.groundedice_melting_rate= smb;
    1919
     
    2222for i=1:10
    2323         md=solve(md,MasstransportSolutionEnum());
    24          md.surfaceforcings.mass_balance= md.surfaceforcings.mass_balance - ((md.results.MasstransportSolution.Thickness)-md.geometry.thickness);
     24         md.smb.mass_balance= md.smb.mass_balance - ((md.results.MasstransportSolution.Thickness)-md.geometry.thickness);
    2525end
    2626
    2727%Set up transient
    28 smb = md.surfaceforcings.mass_balance;
     28smb = md.smb.mass_balance;
    2929
    3030tooth= [ [ones(400,1)*(smb') - 10.]' [ones(400,1)*(smb')]' ];
    3131smb=[ [ones(399,1)*(smb')]' smb  tooth tooth];
    3232
    33 md.surfaceforcings.mass_balance= smb;
    34 md.surfaceforcings.mass_balance(end+1,:)=[1.:2000.];
     33md.smb.mass_balance= smb;
     34md.smb.mass_balance(end+1,:)=[1.:2000.];
    3535
    3636md=solve(md,TransientSolutionEnum());
    3737
    3838%Fields and tolerances to track changes
    39 field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
    40         'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
    41         'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
    42         'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4', ...
    43         'Vx5','Vy5','Vel5','Pressure5','Bed5','Surface5','Thickness5','SurfaceforcingsMassBalance5'};
     39field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', ...
     40        'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', ...
     41        'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', ...
     42        'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4', ...
     43        'Vx5','Vy5','Vel5','Pressure5','Bed5','Surface5','Thickness5','SmbMassBalance5'};
    4444field_tolerances={1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,...
    4545        1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,...
     
    5555        (md.results.TransientSolution(400).Surface),...
    5656        (md.results.TransientSolution(400).Thickness),...
    57         (md.results.TransientSolution(400).SurfaceforcingsMassBalance),...
     57        (md.results.TransientSolution(400).SmbMassBalance),...
    5858        (md.results.TransientSolution(800).Vx),...
    5959        (md.results.TransientSolution(800).Vy),...
     
    6363        (md.results.TransientSolution(800).Surface),...
    6464        (md.results.TransientSolution(800).Thickness),...
    65         (md.results.TransientSolution(800).SurfaceforcingsMassBalance),...
     65        (md.results.TransientSolution(800).SmbMassBalance),...
    6666        (md.results.TransientSolution(1200).Vx),...
    6767        (md.results.TransientSolution(1200).Vy),...
     
    7171        (md.results.TransientSolution(1200).Surface),...
    7272        (md.results.TransientSolution(1200).Thickness),...
    73         (md.results.TransientSolution(1200).SurfaceforcingsMassBalance),...
     73        (md.results.TransientSolution(1200).SmbMassBalance),...
    7474        (md.results.TransientSolution(1600).Vx),...
    7575        (md.results.TransientSolution(1600).Vy),...
     
    7979        (md.results.TransientSolution(1600).Surface),...
    8080        (md.results.TransientSolution(1600).Thickness),...
    81         (md.results.TransientSolution(1600).SurfaceforcingsMassBalance),...
     81        (md.results.TransientSolution(1600).SmbMassBalance),...
    8282        (md.results.TransientSolution(2000).Vx),...
    8383        (md.results.TransientSolution(2000).Vy),...
     
    8787        (md.results.TransientSolution(2000).Surface),...
    8888        (md.results.TransientSolution(2000).Thickness),...
    89         (md.results.TransientSolution(2000).SurfaceforcingsMassBalance),...
     89        (md.results.TransientSolution(2000).SmbMassBalance),...
    9090        };
    9191
     
    109109                thickness = [thickness (md.results.TransientSolution(t).Thickness)];
    110110                volume = [volume mean(md.results.TransientSolution(t).Thickness.value,2).*areas];
    111                 massbal = [massbal (md.results.TransientSolution(t).SurfaceforcingsMassBalance)];
     111                massbal = [massbal (md.results.TransientSolution(t).SmbMassBalance)];
    112112                velocity = [velocity (md.results.TransientSolution(t).Vel)];
    113113        end
  • issm/trunk-jpl/test/NightlyRun/test1501.py

    r19049 r19527  
    2626#Solve for thinning rate -> -1 * surface mass balance
    2727smb= 2.*numpy.ones((md.mesh.numberofvertices,1))
    28 md.surfaceforcings.mass_balance= smb
     28md.smb.mass_balance= smb
    2929md.basalforcings.groundedice_melting_rate= smb
    3030
     
    3333for i in xrange(1,11):
    3434         md=solve(md,MasstransportSolutionEnum())
    35          md.surfaceforcings.mass_balance= md.surfaceforcings.mass_balance - ((md.results.MasstransportSolution.Thickness)-md.geometry.thickness)
     35         md.smb.mass_balance= md.smb.mass_balance - ((md.results.MasstransportSolution.Thickness)-md.geometry.thickness)
    3636
    3737#Set up transient
    38 smb = md.surfaceforcings.mass_balance
     38smb = md.smb.mass_balance
    3939
    4040#tooth= [ [ones(400,1)*(smb') - 10.]' [ones(400,1)*(smb')]' ];
     
    4343smb=numpy.hstack((numpy.tile(smb,(1,399)),smb,tooth,tooth))
    4444
    45 #md.surfaceforcings.mass_balance= smb;
    46 #md.surfaceforcings.mass_balance(end+1,:)=[1.:2000.];
    47 md.surfaceforcings.mass_balance=numpy.vstack((smb,numpy.arange(1,2001)))
     45#md.smb.mass_balance= smb;
     46#md.smb.mass_balance(end+1,:)=[1.:2000.];
     47md.smb.mass_balance=numpy.vstack((smb,numpy.arange(1,2001)))
    4848
    4949md=solve(md,TransientSolutionEnum())
    5050
    5151#Fields and tolerances to track changes
    52 field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
    53         'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
    54         'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
    55         'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4', \
    56         'Vx5','Vy5','Vel5','Pressure5','Bed5','Surface5','Thickness5','SurfaceforcingsMassBalance5']
     52field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', \
     53        'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', \
     54        'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', \
     55        'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4', \
     56        'Vx5','Vy5','Vel5','Pressure5','Bed5','Surface5','Thickness5','SmbMassBalance5']
    5757field_tolerances=[1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,\
    5858        1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,\
     
    6868        md.results.TransientSolution[400-1].Surface,\
    6969        md.results.TransientSolution[400-1].Thickness,\
    70         md.results.TransientSolution[400-1].SurfaceforcingsMassBalance,\
     70        md.results.TransientSolution[400-1].SmbMassBalance,\
    7171        md.results.TransientSolution[800-1].Vx,\
    7272        md.results.TransientSolution[800-1].Vy,\
     
    7676        md.results.TransientSolution[800-1].Surface,\
    7777        md.results.TransientSolution[800-1].Thickness,\
    78         md.results.TransientSolution[800-1].SurfaceforcingsMassBalance,\
     78        md.results.TransientSolution[800-1].SmbMassBalance,\
    7979        md.results.TransientSolution[1200-1].Vx,\
    8080        md.results.TransientSolution[1200-1].Vy,\
     
    8484        md.results.TransientSolution[1200-1].Surface,\
    8585        md.results.TransientSolution[1200-1].Thickness,\
    86         md.results.TransientSolution[1200-1].SurfaceforcingsMassBalance,\
     86        md.results.TransientSolution[1200-1].SmbMassBalance,\
    8787        md.results.TransientSolution[1600-1].Vx,\
    8888        md.results.TransientSolution[1600-1].Vy,\
     
    9292        md.results.TransientSolution[1600-1].Surface,\
    9393        md.results.TransientSolution[1600-1].Thickness,\
    94         md.results.TransientSolution[1600-1].SurfaceforcingsMassBalance,\
     94        md.results.TransientSolution[1600-1].SmbMassBalance,\
    9595        md.results.TransientSolution[2000-1].Vx,\
    9696        md.results.TransientSolution[2000-1].Vy,\
     
    100100        md.results.TransientSolution[2000-1].Surface,\
    101101        md.results.TransientSolution[2000-1].Thickness,\
    102         md.results.TransientSolution[2000-1].SurfaceforcingsMassBalance,\
     102        md.results.TransientSolution[2000-1].SmbMassBalance,\
    103103        ]
    104104
     
    124124                thickness = [thickness (md.results.TransientSolution(t).Thickness)];
    125125                volume = [volume mean(md.results.TransientSolution(t).Thickness.value,2).*areas];
    126                 massbal = [massbal (md.results.TransientSolution(t).SurfaceforcingsMassBalance)];
     126                massbal = [massbal (md.results.TransientSolution(t).SmbMassBalance)];
    127127                velocity = [velocity (md.results.TransientSolution(t).Vel)];
    128128        end
  • issm/trunk-jpl/test/NightlyRun/test1502.m

    r19049 r19527  
    1616%Solve for thinning rate -> -1 * surface mass balance
    1717smb= 2.*ones(md.mesh.numberofvertices,1);
    18 md.surfaceforcings.mass_balance= smb;
     18md.smb.mass_balance= smb;
    1919md.basalforcings.groundedice_melting_rate= smb;
    2020
     
    2323for i=1:10
    2424         md=solve(md,MasstransportSolutionEnum());
    25          md.surfaceforcings.mass_balance= md.surfaceforcings.mass_balance - ((md.results.MasstransportSolution.Thickness)-md.geometry.thickness);
     25         md.smb.mass_balance= md.smb.mass_balance - ((md.results.MasstransportSolution.Thickness)-md.geometry.thickness);
    2626end
    2727
    2828%Set up transient
    29 smb = md.surfaceforcings.mass_balance;
     29smb = md.smb.mass_balance;
    3030
    3131tooth= [ [ones(400,1)*(smb') - 10.]' [ones(400,1)*(smb')]' ];
    3232smb=[ [ones(399,1)*(smb')]' smb  tooth tooth];
    3333
    34 md.surfaceforcings.mass_balance= smb;
    35 md.surfaceforcings.mass_balance(end+1,:)=[1.:2000.];
     34md.smb.mass_balance= smb;
     35md.smb.mass_balance(end+1,:)=[1.:2000.];
    3636
    3737md=solve(md,TransientSolutionEnum());
    3838
    3939%Fields and tolerances to track changes
    40 field_names={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
    41         'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
    42         'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
    43         'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4', ...
    44         'Vx5','Vy5','Vz5','Vel5','Pressure5','Bed5','Surface5','Thickness5','SurfaceforcingsMassBalance5'};
     40field_names={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', ...
     41        'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', ...
     42        'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', ...
     43        'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4', ...
     44        'Vx5','Vy5','Vz5','Vel5','Pressure5','Bed5','Surface5','Thickness5','SmbMassBalance5'};
    4545field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
    4646        1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
     
    5757        (md.results.TransientSolution(400).Surface),...
    5858        (md.results.TransientSolution(400).Thickness),...
    59         (md.results.TransientSolution(400).SurfaceforcingsMassBalance),...
     59        (md.results.TransientSolution(400).SmbMassBalance),...
    6060        (md.results.TransientSolution(800).Vx),...
    6161        (md.results.TransientSolution(800).Vy),...
     
    6666        (md.results.TransientSolution(800).Surface),...
    6767        (md.results.TransientSolution(800).Thickness),...
    68         (md.results.TransientSolution(800).SurfaceforcingsMassBalance),...
     68        (md.results.TransientSolution(800).SmbMassBalance),...
    6969        (md.results.TransientSolution(1200).Vx),...
    7070        (md.results.TransientSolution(1200).Vy),...
     
    7575        (md.results.TransientSolution(1200).Surface),...
    7676        (md.results.TransientSolution(1200).Thickness),...
    77         (md.results.TransientSolution(1200).SurfaceforcingsMassBalance),...
     77        (md.results.TransientSolution(1200).SmbMassBalance),...
    7878        (md.results.TransientSolution(1600).Vx),...
    7979        (md.results.TransientSolution(1600).Vy),...
     
    8484        (md.results.TransientSolution(1600).Surface),...
    8585        (md.results.TransientSolution(1600).Thickness),...
    86         (md.results.TransientSolution(1600).SurfaceforcingsMassBalance),...
     86        (md.results.TransientSolution(1600).SmbMassBalance),...
    8787        (md.results.TransientSolution(2000).Vx),...
    8888        (md.results.TransientSolution(2000).Vy),...
     
    9393        (md.results.TransientSolution(2000).Surface),...
    9494        (md.results.TransientSolution(2000).Thickness),...
    95         (md.results.TransientSolution(2000).SurfaceforcingsMassBalance),...
     95        (md.results.TransientSolution(2000).SmbMassBalance),...
    9696        };
    9797
     
    115115                thickness = [thickness (md.results.TransientSolution(t).Thickness)];
    116116                volume = [volume mean(md.results.TransientSolution(t).Thickness.value,2).*areas];
    117                 massbal = [massbal (md.results.TransientSolution(t).SurfaceforcingsMassBalance)];
     117                massbal = [massbal (md.results.TransientSolution(t).SmbMassBalance)];
    118118                velocity = [velocity (md.results.TransientSolution(t).Vel)];
    119119        end
  • issm/trunk-jpl/test/NightlyRun/test1502.py

    r19049 r19527  
    2727#Solve for thinning rate -> -1 * surface mass balance
    2828smb= 2.*numpy.ones((md.mesh.numberofvertices,1))
    29 md.surfaceforcings.mass_balance= smb
     29md.smb.mass_balance= smb
    3030md.basalforcings.groundedice_melting_rate= smb
    3131
     
    3434for i in xrange(1,11):
    3535         md=solve(md,MasstransportSolutionEnum())
    36          md.surfaceforcings.mass_balance= md.surfaceforcings.mass_balance - ((md.results.MasstransportSolution.Thickness)-md.geometry.thickness)
     36         md.smb.mass_balance= md.smb.mass_balance - ((md.results.MasstransportSolution.Thickness)-md.geometry.thickness)
    3737
    3838#Set up transient
    39 smb = md.surfaceforcings.mass_balance
     39smb = md.smb.mass_balance
    4040
    4141#tooth= [ [ones(400,1)*(smb') - 10.]' [ones(400,1)*(smb')]' ];
     
    4444smb=numpy.hstack((numpy.tile(smb,(1,399)),smb,tooth,tooth))
    4545
    46 #md.surfaceforcings.mass_balance= smb;
    47 #md.surfaceforcings.mass_balance(end+1,:)=[1.:2000.];
    48 md.surfaceforcings.mass_balance=numpy.vstack((smb,numpy.arange(1,2001)))
     46#md.smb.mass_balance= smb;
     47#md.smb.mass_balance(end+1,:)=[1.:2000.];
     48md.smb.mass_balance=numpy.vstack((smb,numpy.arange(1,2001)))
    4949
    5050md=solve(md,TransientSolutionEnum())
    5151
    5252#Fields and tolerances to track changes
    53 field_names=['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
    54         'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
    55         'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
    56         'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4', \
    57         'Vx5','Vy5','Vz5','Vel5','Pressure5','Bed5','Surface5','Thickness5','SurfaceforcingsMassBalance5']
     53field_names=['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', \
     54        'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', \
     55        'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', \
     56        'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4', \
     57        'Vx5','Vy5','Vz5','Vel5','Pressure5','Bed5','Surface5','Thickness5','SmbMassBalance5']
    5858field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
    5959        1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
     
    7070        md.results.TransientSolution[400-1].Surface,\
    7171        md.results.TransientSolution[400-1].Thickness,\
    72         md.results.TransientSolution[400-1].SurfaceforcingsMassBalance,\
     72        md.results.TransientSolution[400-1].SmbMassBalance,\
    7373        md.results.TransientSolution[800-1].Vx,\
    7474        md.results.TransientSolution[800-1].Vy,\
     
    7979        md.results.TransientSolution[800-1].Surface,\
    8080        md.results.TransientSolution[800-1].Thickness,\
    81         md.results.TransientSolution[800-1].SurfaceforcingsMassBalance,\
     81        md.results.TransientSolution[800-1].SmbMassBalance,\
    8282        md.results.TransientSolution[1200-1].Vx,\
    8383        md.results.TransientSolution[1200-1].Vy,\
     
    8888        md.results.TransientSolution[1200-1].Surface,\
    8989        md.results.TransientSolution[1200-1].Thickness,\
    90         md.results.TransientSolution[1200-1].SurfaceforcingsMassBalance,\
     90        md.results.TransientSolution[1200-1].SmbMassBalance,\
    9191        md.results.TransientSolution[1600-1].Vx,\
    9292        md.results.TransientSolution[1600-1].Vy,\
     
    9797        md.results.TransientSolution[1600-1].Surface,\
    9898        md.results.TransientSolution[1600-1].Thickness,\
    99         md.results.TransientSolution[1600-1].SurfaceforcingsMassBalance,\
     99        md.results.TransientSolution[1600-1].SmbMassBalance,\
    100100        md.results.TransientSolution[2000-1].Vx,\
    101101        md.results.TransientSolution[2000-1].Vy,\
     
    106106        md.results.TransientSolution[2000-1].Surface,\
    107107        md.results.TransientSolution[2000-1].Thickness,\
    108         md.results.TransientSolution[2000-1].SurfaceforcingsMassBalance,\
     108        md.results.TransientSolution[2000-1].SmbMassBalance,\
    109109        ]
    110110
     
    130130                thickness = [thickness (md.results.TransientSolution(t).Thickness)];
    131131                volume = [volume mean(md.results.TransientSolution(t).Thickness.value,2).*areas];
    132                 massbal = [massbal (md.results.TransientSolution(t).SurfaceforcingsMassBalance)];
     132                massbal = [massbal (md.results.TransientSolution(t).SmbMassBalance)];
    133133                velocity = [velocity (md.results.TransientSolution(t).Vel)];
    134134        end
  • issm/trunk-jpl/test/NightlyRun/test207.m

    r19049 r19527  
    88md.transient.isstressbalance=0;
    99md.transient.ismasstransport=0;
     10md.transient.issmb=0;
    1011md.transient.isthermal=1;
    1112md.transient.isgroundingline=0;
  • issm/trunk-jpl/test/NightlyRun/test207.py

    r19049 r19527  
    1919md.transient.isstressbalance=False
    2020md.transient.ismasstransport=False
     21md.transient.issmb=False
    2122md.transient.isthermal=True
    2223md.transient.isgroundingline=False
  • issm/trunk-jpl/test/NightlyRun/test228.m

    r19049 r19527  
    1414smb=[ smb smb*-1. ];
    1515
    16 md.surfaceforcings.mass_balance=smb;
    17 md.surfaceforcings.mass_balance(end+1,:)=[1.5 3.];
     16md.smb.mass_balance=smb;
     17md.smb.mass_balance(end+1,:)=[1.5 3.];
    1818md.transient.isthermal=0;
    1919
     
    2121
    2222%Fields and tolerances to track changes
    23 field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
    24         'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
    25         'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
    26         'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4'};
     23field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', ...
     24        'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', ...
     25        'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', ...
     26        'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4'};
    2727field_tolerances={1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
    2828        1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
     
    3737        (md.results.TransientSolution(1).Surface),...
    3838        (md.results.TransientSolution(1).Thickness),...
    39         (md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
     39        (md.results.TransientSolution(1).SmbMassBalance),...
    4040        (md.results.TransientSolution(2).Vx),...
    4141        (md.results.TransientSolution(2).Vy),...
     
    4545        (md.results.TransientSolution(2).Surface),...
    4646        (md.results.TransientSolution(2).Thickness),...
    47         (md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
     47        (md.results.TransientSolution(2).SmbMassBalance),...
    4848        (md.results.TransientSolution(3).Vx),...
    4949        (md.results.TransientSolution(3).Vy),...
     
    5353        (md.results.TransientSolution(3).Surface),...
    5454        (md.results.TransientSolution(3).Thickness),...
    55         (md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
     55        (md.results.TransientSolution(3).SmbMassBalance),...
    5656        (md.results.TransientSolution(4).Vx),...
    5757        (md.results.TransientSolution(4).Vy),...
     
    6161        (md.results.TransientSolution(4).Surface),...
    6262        (md.results.TransientSolution(4).Thickness),...
    63         (md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
     63        (md.results.TransientSolution(4).SmbMassBalance),...
    6464        };
  • issm/trunk-jpl/test/NightlyRun/test228.py

    r19049 r19527  
    2424smb=numpy.hstack((smb,smb*-1.))
    2525
    26 md.surfaceforcings.mass_balance=numpy.vstack((smb,[1.5,3.]))
     26md.smb.mass_balance=numpy.vstack((smb,[1.5,3.]))
    2727md.transient.isthermal=False
    2828
     
    3030
    3131#Fields and tolerances to track changes
    32 field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
    33         'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
    34         'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
    35         'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4']
     32field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', \
     33        'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', \
     34        'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', \
     35        'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4']
    3636field_tolerances=[1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
    3737        1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
     
    4646        md.results.TransientSolution[0].Surface,\
    4747        md.results.TransientSolution[0].Thickness,\
    48         md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
     48        md.results.TransientSolution[0].SmbMassBalance,\
    4949        md.results.TransientSolution[1].Vx,\
    5050        md.results.TransientSolution[1].Vy,\
     
    5454        md.results.TransientSolution[1].Surface,\
    5555        md.results.TransientSolution[1].Thickness,\
    56         md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
     56        md.results.TransientSolution[1].SmbMassBalance,\
    5757        md.results.TransientSolution[2].Vx,\
    5858        md.results.TransientSolution[2].Vy,\
     
    6262        md.results.TransientSolution[2].Surface,\
    6363        md.results.TransientSolution[2].Thickness,\
    64         md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
     64        md.results.TransientSolution[2].SmbMassBalance,\
    6565        md.results.TransientSolution[3].Vx,\
    6666        md.results.TransientSolution[3].Vy,\
     
    7070        md.results.TransientSolution[3].Surface,\
    7171        md.results.TransientSolution[3].Thickness,\
    72         md.results.TransientSolution[3].SurfaceforcingsMassBalance,\
     72        md.results.TransientSolution[3].SmbMassBalance,\
    7373        ]
  • issm/trunk-jpl/test/NightlyRun/test229.m

    r19049 r19527  
    1414smb=[ smb smb*2. ];
    1515
    16 md.surfaceforcings.mass_balance=smb;
    17 md.surfaceforcings.mass_balance(end+1,:)=[1.5 3.];
     16md.smb.mass_balance=smb;
     17md.smb.mass_balance(end+1,:)=[1.5 3.];
    1818md.transient.isthermal=0;
    1919
     
    2121
    2222%Fields and tolerances to track changes
    23 field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
    24         'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
    25         'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
    26         'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4'};
     23field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', ...
     24        'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', ...
     25        'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', ...
     26        'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4'};
    2727field_tolerances={1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
    2828        1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
     
    3737        (md.results.TransientSolution(1).Surface),...
    3838        (md.results.TransientSolution(1).Thickness),...
    39         (md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
     39        (md.results.TransientSolution(1).SmbMassBalance),...
    4040        (md.results.TransientSolution(2).Vx),...
    4141        (md.results.TransientSolution(2).Vy),...
     
    4545        (md.results.TransientSolution(2).Surface),...
    4646        (md.results.TransientSolution(2).Thickness),...
    47         (md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
     47        (md.results.TransientSolution(2).SmbMassBalance),...
    4848        (md.results.TransientSolution(3).Vx),...
    4949        (md.results.TransientSolution(3).Vy),...
     
    5353        (md.results.TransientSolution(3).Surface),...
    5454        (md.results.TransientSolution(3).Thickness),...
    55         (md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
     55        (md.results.TransientSolution(3).SmbMassBalance),...
    5656        (md.results.TransientSolution(4).Vx),...
    5757        (md.results.TransientSolution(4).Vy),...
     
    6161        (md.results.TransientSolution(4).Surface),...
    6262        (md.results.TransientSolution(4).Thickness),...
    63         (md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
     63        (md.results.TransientSolution(4).SmbMassBalance),...
    6464        };
  • issm/trunk-jpl/test/NightlyRun/test229.py

    r19049 r19527  
    2424smb=numpy.hstack((smb,smb*2.))
    2525
    26 md.surfaceforcings.mass_balance=numpy.vstack((smb,[1.5,3.]))
     26md.smb.mass_balance=numpy.vstack((smb,[1.5,3.]))
    2727md.transient.isthermal=False
    2828
     
    3030
    3131#Fields and tolerances to track changes
    32 field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
    33         'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
    34         'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
    35         'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4']
     32field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', \
     33        'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', \
     34        'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', \
     35        'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4']
    3636field_tolerances=[1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
    3737        1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
     
    4646        md.results.TransientSolution[0].Surface,\
    4747        md.results.TransientSolution[0].Thickness,\
    48         md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
     48        md.results.TransientSolution[0].SmbMassBalance,\
    4949        md.results.TransientSolution[1].Vx,\
    5050        md.results.TransientSolution[1].Vy,\
     
    5454        md.results.TransientSolution[1].Surface,\
    5555        md.results.TransientSolution[1].Thickness,\
    56         md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
     56        md.results.TransientSolution[1].SmbMassBalance,\
    5757        md.results.TransientSolution[2].Vx,\
    5858        md.results.TransientSolution[2].Vy,\
     
    6262        md.results.TransientSolution[2].Surface,\
    6363        md.results.TransientSolution[2].Thickness,\
    64         md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
     64        md.results.TransientSolution[2].SmbMassBalance,\
    6565        md.results.TransientSolution[3].Vx,\
    6666        md.results.TransientSolution[3].Vy,\
     
    7070        md.results.TransientSolution[3].Surface,\
    7171        md.results.TransientSolution[3].Thickness,\
    72         md.results.TransientSolution[3].SurfaceforcingsMassBalance,\
     72        md.results.TransientSolution[3].SmbMassBalance,\
    7373        ]
  • issm/trunk-jpl/test/NightlyRun/test230.m

    r19049 r19527  
    1515smb=[ smb smb*-1. ];
    1616
    17 md.surfaceforcings.mass_balance=smb;
    18 md.surfaceforcings.mass_balance(end+1,:)=[1.5 3.];
     17md.smb.mass_balance=smb;
     18md.smb.mass_balance(end+1,:)=[1.5 3.];
    1919md.transient.isthermal=0;
    2020
     
    2222
    2323%Fields and tolerances to track changes
    24 field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
    25         'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
    26         'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
    27         'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassbalance4'};
     24field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', ...
     25        'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', ...
     26        'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', ...
     27        'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassbalance4'};
    2828field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
    2929        1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
     
    3939        (md.results.TransientSolution(1).Surface),...
    4040        (md.results.TransientSolution(1).Thickness),...
    41         (md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
     41        (md.results.TransientSolution(1).SmbMassBalance),...
    4242        (md.results.TransientSolution(2).Vx),...
    4343        (md.results.TransientSolution(2).Vy),...
     
    4848        (md.results.TransientSolution(2).Surface),...
    4949        (md.results.TransientSolution(2).Thickness),...
    50         (md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
     50        (md.results.TransientSolution(2).SmbMassBalance),...
    5151        (md.results.TransientSolution(3).Vx),...
    5252        (md.results.TransientSolution(3).Vy),...
     
    5757        (md.results.TransientSolution(3).Surface),...
    5858        (md.results.TransientSolution(3).Thickness),...
    59         (md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
     59        (md.results.TransientSolution(3).SmbMassBalance),...
    6060        (md.results.TransientSolution(4).Vx),...
    6161        (md.results.TransientSolution(4).Vy),...
     
    6666        (md.results.TransientSolution(4).Surface),...
    6767        (md.results.TransientSolution(4).Thickness),...
    68         (md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
     68        (md.results.TransientSolution(4).SmbMassBalance),...
    6969        };
  • issm/trunk-jpl/test/NightlyRun/test230.py

    r19049 r19527  
    2525smb=numpy.hstack((smb,smb*-1.))
    2626
    27 md.surfaceforcings.mass_balance=numpy.vstack((smb,[1.5,3.]))
     27md.smb.mass_balance=numpy.vstack((smb,[1.5,3.]))
    2828md.transient.isthermal=False
    2929
     
    3131
    3232#Fields and tolerances to track changes
    33 field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
    34         'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
    35         'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
    36         'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassbalance4']
     33field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', \
     34        'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', \
     35        'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', \
     36        'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassbalance4']
    3737field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
    3838        1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
     
    4848        md.results.TransientSolution[0].Surface,\
    4949        md.results.TransientSolution[0].Thickness,\
    50         md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
     50        md.results.TransientSolution[0].SmbMassBalance,\
    5151        md.results.TransientSolution[1].Vx,\
    5252        md.results.TransientSolution[1].Vy,\
     
    5757        md.results.TransientSolution[1].Surface,\
    5858        md.results.TransientSolution[1].Thickness,\
    59         md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
     59        md.results.TransientSolution[1].SmbMassBalance,\
    6060        md.results.TransientSolution[2].Vx,\
    6161        md.results.TransientSolution[2].Vy,\
     
    6666        md.results.TransientSolution[2].Surface,\
    6767        md.results.TransientSolution[2].Thickness,\
    68         md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
     68        md.results.TransientSolution[2].SmbMassBalance,\
    6969        md.results.TransientSolution[3].Vx,\
    7070        md.results.TransientSolution[3].Vy,\
     
    7575        md.results.TransientSolution[3].Surface,\
    7676        md.results.TransientSolution[3].Thickness,\
    77         md.results.TransientSolution[3].SurfaceforcingsMassBalance,\
     77        md.results.TransientSolution[3].SmbMassBalance,\
    7878        ]
  • issm/trunk-jpl/test/NightlyRun/test231.m

    r19049 r19527  
    1515smb=[ smb smb*2. ];
    1616
    17 md.surfaceforcings.mass_balance=smb;
    18 md.surfaceforcings.mass_balance(end+1,:)=[1.5 3.];
     17md.smb.mass_balance=smb;
     18md.smb.mass_balance(end+1,:)=[1.5 3.];
    1919md.transient.isthermal=0;
    2020
     
    2222
    2323%Fields and tolerances to track changes
    24 field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
    25         'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
    26         'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
    27         'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassbalance4'};
     24field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', ...
     25        'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', ...
     26        'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', ...
     27        'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassbalance4'};
    2828field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
    2929        1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
     
    3939        (md.results.TransientSolution(1).Surface),...
    4040        (md.results.TransientSolution(1).Thickness),...
    41         (md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
     41        (md.results.TransientSolution(1).SmbMassBalance),...
    4242        (md.results.TransientSolution(2).Vx),...
    4343        (md.results.TransientSolution(2).Vy),...
     
    4848        (md.results.TransientSolution(2).Surface),...
    4949        (md.results.TransientSolution(2).Thickness),...
    50         (md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
     50        (md.results.TransientSolution(2).SmbMassBalance),...
    5151        (md.results.TransientSolution(3).Vx),...
    5252        (md.results.TransientSolution(3).Vy),...
     
    5757        (md.results.TransientSolution(3).Surface),...
    5858        (md.results.TransientSolution(3).Thickness),...
    59         (md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
     59        (md.results.TransientSolution(3).SmbMassBalance),...
    6060        (md.results.TransientSolution(4).Vx),...
    6161        (md.results.TransientSolution(4).Vy),...
     
    6666        (md.results.TransientSolution(4).Surface),...
    6767        (md.results.TransientSolution(4).Thickness),...
    68         (md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
     68        (md.results.TransientSolution(4).SmbMassBalance),...
    6969        };
  • issm/trunk-jpl/test/NightlyRun/test231.py

    r19049 r19527  
    2525smb=numpy.hstack((smb,smb*2.))
    2626
    27 md.surfaceforcings.mass_balance=numpy.vstack((smb,[1.5,3.]))
     27md.smb.mass_balance=numpy.vstack((smb,[1.5,3.]))
    2828md.transient.isthermal=False
    2929
     
    3131
    3232#Fields and tolerances to track changes
    33 field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
    34         'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
    35         'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
    36         'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassbalance4']
     33field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', \
     34        'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', \
     35        'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', \
     36        'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassbalance4']
    3737field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
    3838        1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
     
    4848        md.results.TransientSolution[0].Surface,\
    4949        md.results.TransientSolution[0].Thickness,\
    50         md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
     50        md.results.TransientSolution[0].SmbMassBalance,\
    5151        md.results.TransientSolution[1].Vx,\
    5252        md.results.TransientSolution[1].Vy,\
     
    5757        md.results.TransientSolution[1].Surface,\
    5858        md.results.TransientSolution[1].Thickness,\
    59         md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
     59        md.results.TransientSolution[1].SmbMassBalance,\
    6060        md.results.TransientSolution[2].Vx,\
    6161        md.results.TransientSolution[2].Vy,\
     
    6666        md.results.TransientSolution[2].Surface,\
    6767        md.results.TransientSolution[2].Thickness,\
    68         md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
     68        md.results.TransientSolution[2].SmbMassBalance,\
    6969        md.results.TransientSolution[3].Vx,\
    7070        md.results.TransientSolution[3].Vy,\
     
    7575        md.results.TransientSolution[3].Surface,\
    7676        md.results.TransientSolution[3].Thickness,\
    77         md.results.TransientSolution[3].SurfaceforcingsMassBalance,\
     77        md.results.TransientSolution[3].SmbMassBalance,\
    7878        ]
  • issm/trunk-jpl/test/NightlyRun/test232.m

    r19049 r19527  
    1111md.transient.isstressbalance=0;
    1212md.transient.ismasstransport=0;
     13md.transient.issmb=0;
    1314md.transient.isthermal=1;
    1415md.transient.isgroundingline=0;
  • issm/trunk-jpl/test/NightlyRun/test232.py

    r19049 r19527  
    2121md.transient.isstressbalance=False
    2222md.transient.ismasstransport=False
     23md.transient.issmb=False
    2324md.transient.isthermal=True
    2425md.transient.isgroundingline=False
  • issm/trunk-jpl/test/NightlyRun/test234.m

    r19049 r19527  
    1313smb=[ smb smb*-1 ];
    1414
    15 md.surfaceforcings.mass_balance= smb;
    16 md.surfaceforcings.mass_balance(end+1,:)=[1.5 3];
     15md.smb.mass_balance= smb;
     16md.smb.mass_balance(end+1,:)=[1.5 3];
    1717md.transient.isthermal=0;
    1818%Dakota options
     
    2424
    2525%variables
    26 md.qmu.variables.surface_mass_balance=normal_uncertain('scaled_SurfaceforcingsMassBalance',1,0.1);
     26md.qmu.variables.surface_mass_balance=normal_uncertain('scaled_SmbMassBalance',1,0.1);
    2727
    2828%responses
  • issm/trunk-jpl/test/NightlyRun/test235.m

    r19049 r19527  
    1313smb=[ smb smb*-1 ];
    1414
    15 md.surfaceforcings.mass_balance= smb;
    16 md.surfaceforcings.mass_balance(end+1,:)=[1.5 3];
     15md.smb.mass_balance= smb;
     16md.smb.mass_balance(end+1,:)=[1.5 3];
    1717md.transient.isthermal=0;
    1818%Dakota options
     
    2424
    2525%variables
    26 md.qmu.variables.surface_mass_balance=normal_uncertain('scaled_SurfaceforcingsMassBalance',1,100);
     26md.qmu.variables.surface_mass_balance=normal_uncertain('scaled_SmbMassBalance',1,100);
    2727
    2828%responses
  • issm/trunk-jpl/test/NightlyRun/test236.m

    r19308 r19527  
    77
    88% Use of ispdd and isdelta18o methods
    9 md.surfaceforcings = SMBpdd();
    10 md.surfaceforcings.isdelta18o=1;
    11 md.surfaceforcings.ismungsm=0;
     9md.smb = SMBpdd();
     10md.smb.isdelta18o=1;
     11md.smb.ismungsm=0;
    1212
    13 %md.surfaceforcings.precipitation(1:md.mesh.numberofvertices,1:12)=0;
    14 %md.surfaceforcings.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
     13%md.smb.precipitation(1:md.mesh.numberofvertices,1:12)=0;
     14%md.smb.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
    1515
    1616% Add temperature, precipitation and delta18o needed to measure the surface mass balance
    1717%  creating delta18o
    1818load '../Data/delta18o.data'
    19 md.surfaceforcings.delta18o=delta18o;
     19md.smb.delta18o=delta18o;
    2020% creating delta18oSurface
    21 md.surfaceforcings.delta18o_surface(1,1:(length(delta18o))) = 0;
    22 md.surfaceforcings.delta18o_surface(2,:) = delta18o(2,:);
     21md.smb.delta18o_surface(1,1:(length(delta18o))) = 0;
     22md.smb.delta18o_surface(2,:) = delta18o(2,:);
    2323
    2424% creating Present day and lgm temperatures
     
    2626tmonth(1:12)=238.15+20.;
    2727for imonth=0:11
    28     md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
    29     md.surfaceforcings.temperatures_lgm(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1)-20.;
     28    md.smb.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
     29    md.smb.temperatures_lgm(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1)-20.;
    3030    % Time for the last line:
    31     md.surfaceforcings.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
    32     md.surfaceforcings.temperatures_lgm(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
     31    md.smb.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
     32    md.smb.temperatures_lgm(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
    3333end
    3434
    3535% creating initialization and spc temperatures initialization and
    3636% spc
    37 md.thermal.spctemperature=mean(md.surfaceforcings.temperatures_lgm(1:md.mesh.numberofvertices,1:12),2); %-10*ones(md.mesh.numberofvertices,1);
     37md.thermal.spctemperature=mean(md.smb.temperatures_lgm(1:md.mesh.numberofvertices,1:12),2); %-10*ones(md.mesh.numberofvertices,1);
    3838md.thermal.spctemperature=repmat(md.thermal.spctemperature,1,md.timestepping.final_time/md.timestepping.time_step);
    3939itemp=0:md.timestepping.time_step:md.timestepping.final_time-md.timestepping.time_step;
    4040md.thermal.spctemperature(md.mesh.numberofvertices+1,:)=itemp;
    4141
    42 md.initialization.temperature=md.surfaceforcings.temperatures_lgm(1:md.mesh.numberofvertices,1); %*ones(md.mesh.numberofvertices,1);
    43 md.surfaceforcings = initialize(md.surfaceforcings,md);
     42md.initialization.temperature=md.smb.temperatures_lgm(1:md.mesh.numberofvertices,1); %*ones(md.mesh.numberofvertices,1);
     43md.smb = initialize(md.smb,md);
    4444
    4545% creating precipitation
    4646for imonth=0:11
    47     md.surfaceforcings.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
    48     md.surfaceforcings.precipitations_lgm(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
     47    md.smb.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
     48    md.smb.precipitations_lgm(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
    4949    % Time for the last line:
    50     md.surfaceforcings.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
    51     md.surfaceforcings.precipitations_lgm(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
     50    md.smb.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
     51    md.smb.precipitations_lgm(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
    5252end
    5353
    5454% Interpolation factors
    55 md.surfaceforcings.Tdiff(1,1:md.timestepping.final_time)=0.5;
    56 md.surfaceforcings.sealev(1,1:md.timestepping.final_time)=0.5;
     55md.smb.Tdiff(1,1:md.timestepping.final_time)=0.5;
     56md.smb.sealev(1,1:md.timestepping.final_time)=0.5;
    5757% Year of each data point
    58 md.surfaceforcings.Tdiff(2,1:md.timestepping.final_time)=1:1:md.timestepping.final_time;
    59 md.surfaceforcings.sealev(2,1:md.timestepping.final_time)=1:1:md.timestepping.final_time;
     58md.smb.Tdiff(2,1:md.timestepping.final_time)=1:1:md.timestepping.final_time;
     59md.smb.sealev(2,1:md.timestepping.final_time)=1:1:md.timestepping.final_time;
    6060
    6161% time steps and resolution
     
    6565
    6666%
    67 md.transient.requested_outputs={'default','SurfaceforcingsMonthlytemperatures'};
     67md.transient.requested_outputs={'default','SmbMonthlytemperatures'};
    6868md=setflowequation(md,'SSA','all');
    6969md.cluster=generic('name',oshostname(),'np',1); % 3 for the cluster
     
    7171
    7272%Fields and tolerances to track changes
    73 field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',...
    74            'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',...
    75            'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'};
     73field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMonthlytemperatures1','SmbMassBalance1',...
     74           'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMonthlytemperatures2','SmbMassBalance2',...
     75           'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMonthlytemperatures3','SmbMassBalance3'};
    7676field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
    7777        1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
     
    8585        (md.results.TransientSolution(1).Surface),...
    8686        (md.results.TransientSolution(1).Thickness),...
    87         (md.results.TransientSolution(1).SurfaceforcingsMonthlytemperatures),...
    88         (md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
     87        (md.results.TransientSolution(1).SmbMonthlytemperatures),...
     88        (md.results.TransientSolution(1).SmbMassBalance),...
    8989        (md.results.TransientSolution(2).Vx),...
    9090        (md.results.TransientSolution(2).Vy),...
     
    9494        (md.results.TransientSolution(2).Surface),...
    9595        (md.results.TransientSolution(2).Thickness),...
    96         (md.results.TransientSolution(2).SurfaceforcingsMonthlytemperatures),...
    97         (md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
     96        (md.results.TransientSolution(2).SmbMonthlytemperatures),...
     97        (md.results.TransientSolution(2).SmbMassBalance),...
    9898        (md.results.TransientSolution(3).Vx),...
    9999        (md.results.TransientSolution(3).Vy),...
     
    103103        (md.results.TransientSolution(3).Surface),...
    104104        (md.results.TransientSolution(3).Thickness),...
    105         (md.results.TransientSolution(3).SurfaceforcingsMonthlytemperatures),...
    106         (md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
     105        (md.results.TransientSolution(3).SmbMonthlytemperatures),...
     106        (md.results.TransientSolution(3).SmbMassBalance),...
    107107        };
  • issm/trunk-jpl/test/NightlyRun/test236.py

    r19308 r19527  
    1515
    1616# Use of ispdd and isdelta18o methods
    17 md.surfaceforcings = SMBpdd();
    18 md.surfaceforcings.isdelta18o=1
    19 md.surfaceforcings.ismungsm=0
     17md.smb = SMBpdd();
     18md.smb.isdelta18o=1
     19md.smb.ismungsm=0
    2020
    2121# Add temperature, precipitation and delta18o needed to measure the surface mass balance
    2222# creating delta18o
    2323delta18o=numpy.loadtxt('../Data/delta18o.data')
    24 md.surfaceforcings.delta18o=delta18o
     24md.smb.delta18o=delta18o
    2525# creating delta18oSurface
    26 md.surfaceforcings.delta18o_surface = numpy.zeros((2,numpy.size(delta18o,axis=1)))
    27 md.surfaceforcings.delta18o_surface[1,:] = delta18o[1,:]
     26md.smb.delta18o_surface = numpy.zeros((2,numpy.size(delta18o,axis=1)))
     27md.smb.delta18o_surface[1,:] = delta18o[1,:]
    2828
    2929# creating Present day and lgm temperatures
    3030# Same temperature over the all region:
    3131tmonth=numpy.ones(12)*(238.15+20.)
    32 md.surfaceforcings.temperatures_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
    33 md.surfaceforcings.temperatures_lgm=numpy.zeros((md.mesh.numberofvertices+1,12))
     32md.smb.temperatures_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
     33md.smb.temperatures_lgm=numpy.zeros((md.mesh.numberofvertices+1,12))
    3434for imonth in xrange(0,12):
    35     md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
    36     md.surfaceforcings.temperatures_lgm[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]-20.
     35    md.smb.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
     36    md.smb.temperatures_lgm[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]-20.
    3737    # Time for the last line:
    38     md.surfaceforcings.temperatures_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
    39     md.surfaceforcings.temperatures_lgm[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
     38    md.smb.temperatures_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
     39    md.smb.temperatures_lgm[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
    4040
    4141# creating initialization and spc temperatures initialization and spc
    42 md.thermal.spctemperature=numpy.mean(md.surfaceforcings.temperatures_lgm[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)    #-10*ones(md.mesh.numberofvertices,1)
     42md.thermal.spctemperature=numpy.mean(md.smb.temperatures_lgm[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)    #-10*ones(md.mesh.numberofvertices,1)
    4343md.thermal.spctemperature=numpy.tile(md.thermal.spctemperature,(1,md.timestepping.final_time/md.timestepping.time_step))
    4444itemp=numpy.arange(0,md.timestepping.final_time,md.timestepping.time_step)
    4545md.thermal.spctemperature=numpy.vstack((md.thermal.spctemperature,itemp.reshape(1,-1)))
    4646
    47 md.initialization.temperature=md.surfaceforcings.temperatures_lgm[0:md.mesh.numberofvertices,0]    #*ones(md.mesh.numberofvertices,1)
    48 md.surfaceforcings.initialize(md)
     47md.initialization.temperature=md.smb.temperatures_lgm[0:md.mesh.numberofvertices,0]    #*ones(md.mesh.numberofvertices,1)
     48md.smb.initialize(md)
    4949
    5050# creating precipitation
    51 md.surfaceforcings.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
    52 md.surfaceforcings.precipitations_lgm=numpy.zeros((md.mesh.numberofvertices+1,12))
     51md.smb.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
     52md.smb.precipitations_lgm=numpy.zeros((md.mesh.numberofvertices+1,12))
    5353for imonth in xrange(0,12):
    54     md.surfaceforcings.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
    55     md.surfaceforcings.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
    56     md.surfaceforcings.precipitations_lgm[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
    57     md.surfaceforcings.precipitations_lgm[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
     54    md.smb.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
     55    md.smb.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
     56    md.smb.precipitations_lgm[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
     57    md.smb.precipitations_lgm[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
    5858
    5959# Interpolation factors
    60 md.surfaceforcings.Tdiff=0.5*numpy.ones((2,md.timestepping.final_time))
    61 md.surfaceforcings.sealev=0.5*numpy.ones((2,md.timestepping.final_time))
     60md.smb.Tdiff=0.5*numpy.ones((2,md.timestepping.final_time))
     61md.smb.sealev=0.5*numpy.ones((2,md.timestepping.final_time))
    6262# Year of each data point
    63 md.surfaceforcings.Tdiff[1,1:md.timestepping.final_time]=numpy.arange(1.,md.timestepping.final_time)
    64 md.surfaceforcings.sealev[1,1:md.timestepping.final_time]=numpy.arange(1.,md.timestepping.final_time)
     63md.smb.Tdiff[1,1:md.timestepping.final_time]=numpy.arange(1.,md.timestepping.final_time)
     64md.smb.sealev[1,1:md.timestepping.final_time]=numpy.arange(1.,md.timestepping.final_time)
    6565
    6666# time steps and resolution
     
    7070
    7171#
    72 md.transient.requested_outputs=['default','SurfaceforcingsMonthlytemperatures']
     72md.transient.requested_outputs=['default','SmbMonthlytemperatures']
    7373md=setflowequation(md,'SSA','all')
    7474md.cluster=generic('name',oshostname(),'np',3)
     
    7676
    7777#Fields and tolerances to track changes
    78 field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',\
    79                             'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',\
    80                                       'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'];
     78field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMonthlytemperatures1','SmbMassBalance1',\
     79                            'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMonthlytemperatures2','SmbMassBalance2',\
     80                                      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMonthlytemperatures3','SmbMassBalance3'];
    8181field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
    8282                            1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
     
    9090        md.results.TransientSolution[0].Surface,\
    9191        md.results.TransientSolution[0].Thickness,\
    92         md.results.TransientSolution[0].SurfaceforcingsMonthlytemperatures,\
    93         md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
     92        md.results.TransientSolution[0].SmbMonthlytemperatures,\
     93        md.results.TransientSolution[0].SmbMassBalance,\
    9494        md.results.TransientSolution[1].Vx,\
    9595        md.results.TransientSolution[1].Vy,\
     
    9999        md.results.TransientSolution[1].Surface,\
    100100        md.results.TransientSolution[1].Thickness,\
    101         md.results.TransientSolution[1].SurfaceforcingsMonthlytemperatures,\
    102         md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
     101        md.results.TransientSolution[1].SmbMonthlytemperatures,\
     102        md.results.TransientSolution[1].SmbMassBalance,\
    103103        md.results.TransientSolution[2].Vx,\
    104104        md.results.TransientSolution[2].Vy,\
     
    108108        md.results.TransientSolution[2].Surface,\
    109109        md.results.TransientSolution[2].Thickness,\
    110         md.results.TransientSolution[2].SurfaceforcingsMonthlytemperatures,\
    111         md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
     110        md.results.TransientSolution[2].SmbMonthlytemperatures,\
     111        md.results.TransientSolution[2].SmbMassBalance,\
    112112        ]
  • issm/trunk-jpl/test/NightlyRun/test237.m

    r19308 r19527  
    77
    88% Use of ispdd methods
    9 md.surfaceforcings = SMBpdd();
    10 md.surfaceforcings.isdelta18o=0;
    11 md.surfaceforcings.ismungsm=1;
     9md.smb = SMBpdd();
     10md.smb.isdelta18o=0;
     11md.smb.ismungsm=1;
    1212
    1313% time steps and resolution
     
    2020tmonth(1:12)=238.15+20.;
    2121for imonth=0:11
    22     md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
    23     md.surfaceforcings.temperatures_lgm(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1)-20.;
     22    md.smb.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
     23    md.smb.temperatures_lgm(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1)-20.;
    2424    % Time for the last line:
    25     md.surfaceforcings.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
    26     md.surfaceforcings.temperatures_lgm(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
     25    md.smb.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
     26    md.smb.temperatures_lgm(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
    2727end
    2828
    2929% creating initialization and spc temperatures initialization and spc
    30 md.thermal.spctemperature=mean(md.surfaceforcings.temperatures_lgm(1:md.mesh.numberofvertices,1:12),2); %-10*ones(md.mesh.numberofvertices,1);
     30md.thermal.spctemperature=mean(md.smb.temperatures_lgm(1:md.mesh.numberofvertices,1:12),2); %-10*ones(md.mesh.numberofvertices,1);
    3131md.thermal.spctemperature=repmat(md.thermal.spctemperature,1,md.timestepping.final_time/md.timestepping.time_step);
    3232itemp=0:md.timestepping.time_step:md.timestepping.final_time-md.timestepping.time_step;
    3333md.thermal.spctemperature(md.mesh.numberofvertices+1,:)=itemp;
    3434
    35 md.initialization.temperature=md.surfaceforcings.temperatures_lgm(1:md.mesh.numberofvertices,1); %*ones(md.mesh.numberofvertices,1);
    36 md.surfaceforcings = initialize(md.surfaceforcings,md);
     35md.initialization.temperature=md.smb.temperatures_lgm(1:md.mesh.numberofvertices,1); %*ones(md.mesh.numberofvertices,1);
     36md.smb = initialize(md.smb,md);
    3737
    3838% creating precipitation
    3939for imonth=0:11
    40     md.surfaceforcings.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
    41     md.surfaceforcings.precipitations_lgm(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
     40    md.smb.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
     41    md.smb.precipitations_lgm(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
    4242    % Time for the last line:
    43     md.surfaceforcings.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
    44     md.surfaceforcings.precipitations_lgm(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
     43    md.smb.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
     44    md.smb.precipitations_lgm(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
    4545end
    4646
    4747for iint=1:(md.timestepping.final_time/md.timestepping.time_step)+1
    48     md.surfaceforcings.Pfac(1,iint)=0.15*iint;
    49     md.surfaceforcings.Tdiff(1,iint)=0.15*iint;
    50     md.surfaceforcings.sealev(1,iint)=0.15*iint;
     48    md.smb.Pfac(1,iint)=0.15*iint;
     49    md.smb.Tdiff(1,iint)=0.15*iint;
     50    md.smb.sealev(1,iint)=0.15*iint;
    5151    % Year of each data point
    52     md.surfaceforcings.Pfac(2,iint)=(iint-1)*20;
    53     md.surfaceforcings.Tdiff(2,iint)=(iint-1)*20;
    54     md.surfaceforcings.sealev(2,iint)=(iint-1)*20;
     52    md.smb.Pfac(2,iint)=(iint-1)*20;
     53    md.smb.Tdiff(2,iint)=(iint-1)*20;
     54    md.smb.sealev(2,iint)=(iint-1)*20;
    5555end
    5656
    5757%
    58 md.transient.requested_outputs={'default','SurfaceforcingsMonthlytemperatures'};
     58md.transient.requested_outputs={'default','SmbMonthlytemperatures'};
    5959md=extrude(md,3,1);
    6060
     
    6464
    6565%Fields and tolerances to track changes
    66 field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',...
    67                                                 'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',...
    68                                                 'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'};
     66field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','SmbMonthlytemperatures1','SmbMassBalance1',...
     67                                                'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','SmbMonthlytemperatures2','SmbMassBalance2',...
     68                                                'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','SmbMonthlytemperatures3','SmbMassBalance3'};
    6969field_tolerances={...
    7070        1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,1e-13,1e-13,...
     
    8282        (md.results.TransientSolution(1).Temperature),...
    8383        (md.results.TransientSolution(1).BasalforcingsGroundediceMeltingRate),...
    84         (md.results.TransientSolution(1).SurfaceforcingsMonthlytemperatures),...
    85         (md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
     84        (md.results.TransientSolution(1).SmbMonthlytemperatures),...
     85        (md.results.TransientSolution(1).SmbMassBalance),...
    8686        (md.results.TransientSolution(2).Vx),...
    8787        (md.results.TransientSolution(2).Vy),...
     
    9494        (md.results.TransientSolution(2).Temperature),...
    9595        (md.results.TransientSolution(2).BasalforcingsGroundediceMeltingRate),...
    96         (md.results.TransientSolution(2).SurfaceforcingsMonthlytemperatures),...
    97         (md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
     96        (md.results.TransientSolution(2).SmbMonthlytemperatures),...
     97        (md.results.TransientSolution(2).SmbMassBalance),...
    9898        (md.results.TransientSolution(3).Vx),...
    9999        (md.results.TransientSolution(3).Vy),...
     
    106106        (md.results.TransientSolution(3).Temperature),...
    107107        (md.results.TransientSolution(3).BasalforcingsGroundediceMeltingRate),...
    108         (md.results.TransientSolution(3).SurfaceforcingsMonthlytemperatures),...
    109         (md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
     108        (md.results.TransientSolution(3).SmbMonthlytemperatures),...
     109        (md.results.TransientSolution(3).SmbMassBalance),...
    110110        };
  • issm/trunk-jpl/test/NightlyRun/test237.py

    r19308 r19527  
    1616
    1717# Use of ispdd and isdelta18o methods
    18 md.surfaceforcings = SMBpdd();
    19 md.surfaceforcings.isdelta18o=0
    20 md.surfaceforcings.ismungsm=1
     18md.smb = SMBpdd();
     19md.smb.isdelta18o=0
     20md.smb.ismungsm=1
    2121
    2222# time steps and resolution
     
    2828# Same temperature over the all region:
    2929tmonth=numpy.ones(12)*(238.15+20.)
    30 md.surfaceforcings.temperatures_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
    31 md.surfaceforcings.temperatures_lgm=numpy.zeros((md.mesh.numberofvertices+1,12))
     30md.smb.temperatures_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
     31md.smb.temperatures_lgm=numpy.zeros((md.mesh.numberofvertices+1,12))
    3232for imonth in xrange(0,12):
    33     md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
    34     md.surfaceforcings.temperatures_lgm[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]-20.
     33    md.smb.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
     34    md.smb.temperatures_lgm[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]-20.
    3535    # Time for the last line:
    36     md.surfaceforcings.temperatures_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
    37     md.surfaceforcings.temperatures_lgm[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
     36    md.smb.temperatures_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
     37    md.smb.temperatures_lgm[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
    3838
    3939# creating initialization and spc temperatures initialization and spc
    40 md.thermal.spctemperature=numpy.mean(md.surfaceforcings.temperatures_lgm[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)    #-10*ones(md.mesh.numberofvertices,1)
     40md.thermal.spctemperature=numpy.mean(md.smb.temperatures_lgm[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)    #-10*ones(md.mesh.numberofvertices,1)
    4141md.thermal.spctemperature=numpy.tile(md.thermal.spctemperature,(1,md.timestepping.final_time/md.timestepping.time_step))
    4242itemp=numpy.arange(0,md.timestepping.final_time,md.timestepping.time_step)
    4343md.thermal.spctemperature=numpy.vstack((md.thermal.spctemperature,itemp.reshape(1,-1)))
    4444
    45 md.initialization.temperature=md.surfaceforcings.temperatures_lgm[0:md.mesh.numberofvertices,0].reshape(-1,1)   #*ones(md.mesh.numberofvertices,1)
    46 md.surfaceforcings.initialize(md)
     45md.initialization.temperature=md.smb.temperatures_lgm[0:md.mesh.numberofvertices,0].reshape(-1,1)   #*ones(md.mesh.numberofvertices,1)
     46md.smb.initialize(md)
    4747
    4848# creating precipitation
    49 md.surfaceforcings.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
    50 md.surfaceforcings.precipitations_lgm=numpy.zeros((md.mesh.numberofvertices+1,12))
     49md.smb.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
     50md.smb.precipitations_lgm=numpy.zeros((md.mesh.numberofvertices+1,12))
    5151for imonth in xrange(0,12):
    52     md.surfaceforcings.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
    53     md.surfaceforcings.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
    54     md.surfaceforcings.precipitations_lgm[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
    55     md.surfaceforcings.precipitations_lgm[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
     52    md.smb.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
     53    md.smb.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
     54    md.smb.precipitations_lgm[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
     55    md.smb.precipitations_lgm[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
    5656
    5757fsize=int(md.timestepping.final_time/md.timestepping.time_step)+2
    58 md.surfaceforcings.Pfac=numpy.zeros((2,fsize))
    59 md.surfaceforcings.Tdiff=numpy.zeros((2,fsize))
    60 md.surfaceforcings.sealev=numpy.zeros((2,fsize))
     58md.smb.Pfac=numpy.zeros((2,fsize))
     59md.smb.Tdiff=numpy.zeros((2,fsize))
     60md.smb.sealev=numpy.zeros((2,fsize))
    6161for iint in xrange(0,fsize):
    6262    # Interpolation factors
    63          md.surfaceforcings.Pfac[0,iint]=0.15*(iint+1)
    64          md.surfaceforcings.Tdiff[0,iint]=0.15*(iint+1)
    65          md.surfaceforcings.sealev[0,iint]=0.15*(iint+1)
     63         md.smb.Pfac[0,iint]=0.15*(iint+1)
     64         md.smb.Tdiff[0,iint]=0.15*(iint+1)
     65         md.smb.sealev[0,iint]=0.15*(iint+1)
    6666         # Year of each data point
    67          md.surfaceforcings.Pfac[1,iint]=(float(iint))*20
    68          md.surfaceforcings.Tdiff[1,iint]=(float(iint))*20
    69          md.surfaceforcings.sealev[1,iint]=(float(iint))*20
     67         md.smb.Pfac[1,iint]=(float(iint))*20
     68         md.smb.Tdiff[1,iint]=(float(iint))*20
     69         md.smb.sealev[1,iint]=(float(iint))*20
    7070
    7171#
    72 md.transient.requested_outputs=['default','SurfaceforcingsMonthlytemperatures']
     72md.transient.requested_outputs=['default','SmbMonthlytemperatures']
    7373md.extrude(3,1.)
    7474md=setflowequation(md,'SSA','all')
     
    7777
    7878#Fields and tolerances to track changes
    79 field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',\
    80                 'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',\
    81                 'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'];
     79field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','SmbMonthlytemperatures1','SmbMassBalance1',\
     80                'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','SmbMonthlytemperatures2','SmbMassBalance2',\
     81                'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','SmbMonthlytemperatures3','SmbMassBalance3'];
    8282field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,1e-13,1e-13,\
    8383                1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,1e-13,1e-13,\
     
    9494        md.results.TransientSolution[0].Temperature,\
    9595        md.results.TransientSolution[0].BasalforcingsGroundediceMeltingRate,\
    96         md.results.TransientSolution[0].SurfaceforcingsMonthlytemperatures,\
    97         md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
     96        md.results.TransientSolution[0].SmbMonthlytemperatures,\
     97        md.results.TransientSolution[0].SmbMassBalance,\
    9898        md.results.TransientSolution[1].Vx,\
    9999        md.results.TransientSolution[1].Vy,\
     
    106106        md.results.TransientSolution[1].Temperature,\
    107107        md.results.TransientSolution[1].BasalforcingsGroundediceMeltingRate,\
    108         md.results.TransientSolution[1].SurfaceforcingsMonthlytemperatures,\
    109         md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
     108        md.results.TransientSolution[1].SmbMonthlytemperatures,\
     109        md.results.TransientSolution[1].SmbMassBalance,\
    110110        md.results.TransientSolution[2].Vx,\
    111111        md.results.TransientSolution[2].Vy,\
     
    118118        md.results.TransientSolution[2].Temperature,\
    119119        md.results.TransientSolution[2].BasalforcingsGroundediceMeltingRate,\
    120         md.results.TransientSolution[2].SurfaceforcingsMonthlytemperatures,\
    121         md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
     120        md.results.TransientSolution[2].SmbMonthlytemperatures,\
     121        md.results.TransientSolution[2].SmbMassBalance,\
    122122        ]
  • issm/trunk-jpl/test/NightlyRun/test238.m

    r19308 r19527  
    77
    88% Use of ispdd and isdelta18o methods
    9 md.surfaceforcings = SMBd18opdd();
    10 md.surfaceforcings.isd18opd=1;
    11 %md.surfaceforcings.precipitation(1:md.mesh.numberofvertices,1:12)=0;
    12 %md.surfaceforcings.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
     9md.smb = SMBd18opdd();
     10md.smb.isd18opd=1;
     11%md.smb.precipitation(1:md.mesh.numberofvertices,1:12)=0;
     12%md.smb.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
    1313
    1414% Add temperature, precipitation and delta18o needed to measure the surface mass balance
    1515%  creating delta18o
    1616load '../Data/delta18o.data'
    17 md.surfaceforcings.delta18o=delta18o;
     17md.smb.delta18o=delta18o;
    1818
    1919% creating Present day  temperatures
     
    2121tmonth(1:12)=238.15+20.;
    2222for imonth=0:11
    23     md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
     23    md.smb.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
    2424    % Time for the last line:
    25     md.surfaceforcings.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
     25    md.smb.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
    2626end
    2727
    2828% creating initialization and spc temperatures initialization and
    2929% spc
    30 md.thermal.spctemperature=mean(md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1:12),2)-10; %-10*ones(md.mesh.numberofvertices,1);
    31 md.initialization.temperature=md.thermal.spctemperature; %md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1);
     30md.thermal.spctemperature=mean(md.smb.temperatures_presentday(1:md.mesh.numberofvertices,1:12),2)-10; %-10*ones(md.mesh.numberofvertices,1);
     31md.initialization.temperature=md.thermal.spctemperature; %md.smb.temperatures_presentday(1:md.mesh.numberofvertices,1);
    3232
    3333% creating precipitation
    3434for imonth=0:11
    35     md.surfaceforcings.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
     35    md.smb.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
    3636    % Time for the last line:
    37     md.surfaceforcings.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
     37    md.smb.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
    3838end
    39 md.surfaceforcings = initialize(md.surfaceforcings,md);
     39md.smb = initialize(md.smb,md);
    4040
    4141% time steps and resolution
     
    4545
    4646%
    47 md.transient.requested_outputs={'default','SurfaceforcingsMonthlytemperatures'};
     47md.transient.requested_outputs={'default','SmbMonthlytemperatures'};
    4848md=setflowequation(md,'SSA','all');
    4949md.cluster=generic('name',oshostname(),'np',1); % 3 for the cluster
     
    5151
    5252%Fields and tolerances to track changes
    53 field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',...
    54               'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',...
    55               'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'};
     53field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMonthlytemperatures1','SmbMassBalance1',...
     54              'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMonthlytemperatures2','SmbMassBalance2',...
     55              'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMonthlytemperatures3','SmbMassBalance3'};
    5656field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
    5757           1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
     
    6565        (md.results.TransientSolution(1).Surface),...
    6666        (md.results.TransientSolution(1).Thickness),...
    67         (md.results.TransientSolution(1).SurfaceforcingsMonthlytemperatures),...
    68         (md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
     67        (md.results.TransientSolution(1).SmbMonthlytemperatures),...
     68        (md.results.TransientSolution(1).SmbMassBalance),...
    6969        (md.results.TransientSolution(2).Vx),...
    7070        (md.results.TransientSolution(2).Vy),...
     
    7474        (md.results.TransientSolution(2).Surface),...
    7575        (md.results.TransientSolution(2).Thickness),...
    76         (md.results.TransientSolution(2).SurfaceforcingsMonthlytemperatures),...
    77         (md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
     76        (md.results.TransientSolution(2).SmbMonthlytemperatures),...
     77        (md.results.TransientSolution(2).SmbMassBalance),...
    7878        (md.results.TransientSolution(3).Vx),...
    7979        (md.results.TransientSolution(3).Vy),...
     
    8383        (md.results.TransientSolution(3).Surface),...
    8484        (md.results.TransientSolution(3).Thickness),...
    85         (md.results.TransientSolution(3).SurfaceforcingsMonthlytemperatures),...
    86         (md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
     85        (md.results.TransientSolution(3).SmbMonthlytemperatures),...
     86        (md.results.TransientSolution(3).SmbMassBalance),...
    8787        };
  • issm/trunk-jpl/test/NightlyRun/test238.py

    r19308 r19527  
    1515
    1616# Use of ispdd and isdelta18o methods
    17 md.surfaceforcings = SMBd18opdd();
    18 md.surfaceforcings.isd18opd=1;
     17md.smb = SMBd18opdd();
     18md.smb.isd18opd=1;
    1919
    2020# Add temperature, precipitation and delta18o needed to measure the surface mass balance
    2121# creating delta18o
    2222delta18o=numpy.loadtxt('../Data/delta18o.data')
    23 md.surfaceforcings.delta18o=delta18o
     23md.smb.delta18o=delta18o
    2424
    2525# creating Present day temperatures
    2626# Same temperature over the all region:
    2727tmonth=numpy.ones(12)*(238.15+20.)
    28 md.surfaceforcings.temperatures_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
     28md.smb.temperatures_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
    2929for imonth in xrange(0,12):
    30     md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
     30    md.smb.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
    3131    # Time for the last line:
    32     md.surfaceforcings.temperatures_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
     32    md.smb.temperatures_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
    3333
    3434# creating initialization and spc temperatures initialization and spc
    35 md.thermal.spctemperature=numpy.mean(md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
     35md.thermal.spctemperature=numpy.mean(md.smb.temperatures_presentday[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
    3636md.thermal.spctemperature=md.thermal.spctemperature-10
    3737md.initialization.temperature=md.thermal.spctemperature
    38 md.surfaceforcings.initialize(md)
     38md.smb.initialize(md)
    3939
    4040# creating precipitation
    41 md.surfaceforcings.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
     41md.smb.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
    4242for imonth in xrange(0,12):
    43     md.surfaceforcings.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
    44     md.surfaceforcings.precipitations_presentday[md.mesh.numberofvertices,imonth]=(float(imonth)/12.)
     43    md.smb.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
     44    md.smb.precipitations_presentday[md.mesh.numberofvertices,imonth]=(float(imonth)/12.)
    4545
    4646# time steps and resolution
     
    5050
    5151#
    52 md.transient.requested_outputs=['default','SurfaceforcingsMonthlytemperatures']
     52md.transient.requested_outputs=['default','SmbMonthlytemperatures']
    5353md=setflowequation(md,'SSA','all')
    5454md.cluster=generic('name',oshostname(),'np',3)
     
    5656
    5757#Fields and tolerances to track changes
    58 field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',\
    59                             'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',\
    60                                       'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'];
     58field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMonthlytemperatures1','SmbMassBalance1',\
     59                            'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMonthlytemperatures2','SmbMassBalance2',\
     60                                      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMonthlytemperatures3','SmbMassBalance3'];
    6161field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
    6262                            1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
     
    7070        md.results.TransientSolution[0].Surface,\
    7171        md.results.TransientSolution[0].Thickness,\
    72         md.results.TransientSolution[0].SurfaceforcingsMonthlytemperatures,\
    73         md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
     72        md.results.TransientSolution[0].SmbMonthlytemperatures,\
     73        md.results.TransientSolution[0].SmbMassBalance,\
    7474        md.results.TransientSolution[1].Vx,\
    7575        md.results.TransientSolution[1].Vy,\
     
    7979        md.results.TransientSolution[1].Surface,\
    8080        md.results.TransientSolution[1].Thickness,\
    81         md.results.TransientSolution[1].SurfaceforcingsMonthlytemperatures,\
    82         md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
     81        md.results.TransientSolution[1].SmbMonthlytemperatures,\
     82        md.results.TransientSolution[1].SmbMassBalance,\
    8383        md.results.TransientSolution[2].Vx,\
    8484        md.results.TransientSolution[2].Vy,\
     
    8888        md.results.TransientSolution[2].Surface,\
    8989        md.results.TransientSolution[2].Thickness,\
    90         md.results.TransientSolution[2].SurfaceforcingsMonthlytemperatures,\
    91         md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
     90        md.results.TransientSolution[2].SmbMonthlytemperatures,\
     91        md.results.TransientSolution[2].SmbMassBalance,\
    9292        ]
  • issm/trunk-jpl/test/NightlyRun/test239.m

    r19308 r19527  
    77
    88% Use of ispdd and isdelta18o methods
    9 md.surfaceforcings = SMBd18opdd();
    10 md.surfaceforcings.isd18opd=1;
    11 %md.surfaceforcings.precipitation(1:md.mesh.numberofvertices,1:12)=0;
    12 %md.surfaceforcings.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
     9md.smb = SMBd18opdd();
     10md.smb.isd18opd=1;
     11%md.smb.precipitation(1:md.mesh.numberofvertices,1:12)=0;
     12%md.smb.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
    1313
    1414% Add temperature, precipitation and delta18o needed to measure the surface mass balance
    1515%  creating delta18o
    1616load '../Data/delta18o.data'
    17 md.surfaceforcings.delta18o=delta18o;
     17md.smb.delta18o=delta18o;
    1818
    1919% creating Present day  temperatures
     
    2121tmonth(1:12)=238.15+20.;
    2222for imonth=0:11
    23     md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
     23    md.smb.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
    2424    % Time for the last line:
    25     md.surfaceforcings.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
     25    md.smb.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
    2626end
    2727
    2828% creating initialization and spc temperatures initialization and
    2929% spc
    30 md.thermal.spctemperature=mean(md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1:12),2)-10; %-10*ones(md.mesh.numberofvertices,1);
     30md.thermal.spctemperature=mean(md.smb.temperatures_presentday(1:md.mesh.numberofvertices,1:12),2)-10; %-10*ones(md.mesh.numberofvertices,1);
    3131
    32 md.initialization.temperature=md.thermal.spctemperature; %md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1);
     32md.initialization.temperature=md.thermal.spctemperature; %md.smb.temperatures_presentday(1:md.mesh.numberofvertices,1);
    3333
    3434% creating precipitation
    3535for imonth=0:11
    36     md.surfaceforcings.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
     36    md.smb.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
    3737    % Time for the last line:
    38     md.surfaceforcings.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
     38    md.smb.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
    3939end
    40 md.surfaceforcings = initialize(md.surfaceforcings,md);
     40md.smb = initialize(md.smb,md);
    4141
    4242% time steps and resolution
     
    4646
    4747%
    48 md.transient.requested_outputs={'default','SurfaceforcingsMonthlytemperatures'};
     48md.transient.requested_outputs={'default','SmbMonthlytemperatures'};
    4949md=setflowequation(md,'SSA','all');
    5050md.cluster=generic('name',oshostname(),'np',1); % 3 for the cluster
     
    5252
    5353%Fields and tolerances to track changes
    54 field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',...
    55               'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',...
    56               'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'};
     54field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMonthlytemperatures1','SmbMassBalance1',...
     55              'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMonthlytemperatures2','SmbMassBalance2',...
     56              'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMonthlytemperatures3','SmbMassBalance3'};
    5757field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
    5858           1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
     
    6666        (md.results.TransientSolution(1).Surface),...
    6767        (md.results.TransientSolution(1).Thickness),...
    68         (md.results.TransientSolution(1).SurfaceforcingsMonthlytemperatures),...
    69         (md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
     68        (md.results.TransientSolution(1).SmbMonthlytemperatures),...
     69        (md.results.TransientSolution(1).SmbMassBalance),...
    7070        (md.results.TransientSolution(2).Vx),...
    7171        (md.results.TransientSolution(2).Vy),...
     
    7575        (md.results.TransientSolution(2).Surface),...
    7676        (md.results.TransientSolution(2).Thickness),...
    77         (md.results.TransientSolution(2).SurfaceforcingsMonthlytemperatures),...
    78         (md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
     77        (md.results.TransientSolution(2).SmbMonthlytemperatures),...
     78        (md.results.TransientSolution(2).SmbMassBalance),...
    7979        (md.results.TransientSolution(3).Vx),...
    8080        (md.results.TransientSolution(3).Vy),...
     
    8484        (md.results.TransientSolution(3).Surface),...
    8585        (md.results.TransientSolution(3).Thickness),...
    86         (md.results.TransientSolution(3).SurfaceforcingsMonthlytemperatures),...
    87         (md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
     86        (md.results.TransientSolution(3).SmbMonthlytemperatures),...
     87        (md.results.TransientSolution(3).SmbMassBalance),...
    8888        };
  • issm/trunk-jpl/test/NightlyRun/test239.py

    r19308 r19527  
    1515
    1616# Use of ispdd and isdelta18o methods
    17 md.surfaceforcings = SMBd18opdd();
    18 md.surfaceforcings.isd18opd=1;
     17md.smb = SMBd18opdd();
     18md.smb.isd18opd=1;
    1919
    2020# Add temperature, precipitation and delta18o needed to measure the surface mass balance
    2121# creating delta18o
    2222delta18o=numpy.loadtxt('../Data/delta18o.data')
    23 md.surfaceforcings.delta18o=delta18o
     23md.smb.delta18o=delta18o
    2424
    2525# creating Present day temperatures
    2626# Same temperature over the all region:
    2727tmonth=numpy.ones(12)*(238.15+20.)
    28 md.surfaceforcings.temperatures_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
     28md.smb.temperatures_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
    2929for imonth in xrange(0,12):
    30     md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
     30    md.smb.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
    3131    # Time for the last line:
    32     md.surfaceforcings.temperatures_presentday[md.mesh.numberofvertices,imonth]=(float(imonth)/12.)
     32    md.smb.temperatures_presentday[md.mesh.numberofvertices,imonth]=(float(imonth)/12.)
    3333
    3434# creating initialization and spc temperatures initialization and spc
    35 md.thermal.spctemperature=numpy.mean(md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
     35md.thermal.spctemperature=numpy.mean(md.smb.temperatures_presentday[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
    3636md.thermal.spctemperature=md.thermal.spctemperature-10
    3737md.initialization.temperature=md.thermal.spctemperature
    38 md.surfaceforcings.initialize(md)
     38md.smb.initialize(md)
    3939
    4040# creating precipitation
    41 md.surfaceforcings.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
     41md.smb.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
    4242for imonth in xrange(0,12):
    43     md.surfaceforcings.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
    44     md.surfaceforcings.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
     43    md.smb.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
     44    md.smb.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
    4545
    4646# time steps and resolution
     
    5050
    5151#
    52 md.transient.requested_outputs=['default','SurfaceforcingsMonthlytemperatures']
     52md.transient.requested_outputs=['default','SmbMonthlytemperatures']
    5353md=setflowequation(md,'SSA','all')
    5454md.cluster=generic('name',oshostname(),'np',3)
     
    5656
    5757#Fields and tolerances to track changes
    58 field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',\
    59                             'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',\
    60                                       'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'];
     58field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMonthlytemperatures1','SmbMassBalance1',\
     59                            'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMonthlytemperatures2','SmbMassBalance2',\
     60                                      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMonthlytemperatures3','SmbMassBalance3'];
    6161field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
    6262                            1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
     
    7070        md.results.TransientSolution[0].Surface,\
    7171        md.results.TransientSolution[0].Thickness,\
    72         md.results.TransientSolution[0].SurfaceforcingsMonthlytemperatures,\
    73         md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
     72        md.results.TransientSolution[0].SmbMonthlytemperatures,\
     73        md.results.TransientSolution[0].SmbMassBalance,\
    7474        md.results.TransientSolution[1].Vx,\
    7575        md.results.TransientSolution[1].Vy,\
     
    7979        md.results.TransientSolution[1].Surface,\
    8080        md.results.TransientSolution[1].Thickness,\
    81         md.results.TransientSolution[1].SurfaceforcingsMonthlytemperatures,\
    82         md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
     81        md.results.TransientSolution[1].SmbMonthlytemperatures,\
     82        md.results.TransientSolution[1].SmbMassBalance,\
    8383        md.results.TransientSolution[2].Vx,\
    8484        md.results.TransientSolution[2].Vy,\
     
    8888        md.results.TransientSolution[2].Surface,\
    8989        md.results.TransientSolution[2].Thickness,\
    90         md.results.TransientSolution[2].SurfaceforcingsMonthlytemperatures,\
    91         md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
     90        md.results.TransientSolution[2].SmbMonthlytemperatures,\
     91        md.results.TransientSolution[2].SmbMassBalance,\
    9292        ]
  • issm/trunk-jpl/test/NightlyRun/test240.m

    r19308 r19527  
    77
    88% Use of ispdd and isdelta18o methods
    9 md.surfaceforcings = SMBd18opdd();
    10 md.surfaceforcings.isd18opd=1;
    11 %md.surfaceforcings.precipitation(1:md.mesh.numberofvertices,1:12)=0;
    12 %md.surfaceforcings.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
     9md.smb = SMBd18opdd();
     10md.smb.isd18opd=1;
     11%md.smb.precipitation(1:md.mesh.numberofvertices,1:12)=0;
     12%md.smb.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
    1313
    1414% Add temperature, precipitation and delta18o needed to measure the surface mass balance
    1515%  creating delta18o
    1616load '../Data/delta18o.data'
    17 md.surfaceforcings.delta18o=delta18o;
     17md.smb.delta18o=delta18o;
    1818
    1919% creating Present day  temperatures
     
    2121tmonth(1:12)=238.15+20.;
    2222for imonth=0:11
    23     md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
     23    md.smb.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
    2424    % Time for the last line:
    25     md.surfaceforcings.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
     25    md.smb.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
    2626end
    27 md.surfaceforcings = initialize(md.surfaceforcings,md);
     27md.smb = initialize(md.smb,md);
    2828
    2929% creating initialization and spc temperatures initialization and
    3030% spc
    31 md.thermal.spctemperature=mean(md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1:12),2)-10; %-10*ones(md.mesh.numberofvertices,1);
    32 md.initialization.temperature=md.thermal.spctemperature; %md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1);
     31md.thermal.spctemperature=mean(md.smb.temperatures_presentday(1:md.mesh.numberofvertices,1:12),2)-10; %-10*ones(md.mesh.numberofvertices,1);
     32md.initialization.temperature=md.thermal.spctemperature; %md.smb.temperatures_presentday(1:md.mesh.numberofvertices,1);
    3333
    3434% creating precipitation
    3535for imonth=0:11
    36     md.surfaceforcings.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
     36    md.smb.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
    3737    % Time for the last line:
    38     md.surfaceforcings.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
     38    md.smb.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
    3939end
    4040
     
    4646
    4747%
    48 md.transient.requested_outputs={'default','SurfaceforcingsMonthlytemperatures'};
     48md.transient.requested_outputs={'default','SmbMonthlytemperatures'};
    4949md=setflowequation(md,'SSA','all');
    5050md.cluster=generic('name',oshostname(),'np',1); % 3 for the cluster
     
    5252
    5353%Fields and tolerances to track changes
    54 field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',...
    55               'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',...
    56               'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'};
     54field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMonthlytemperatures1','SmbMassBalance1',...
     55              'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMonthlytemperatures2','SmbMassBalance2',...
     56              'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMonthlytemperatures3','SmbMassBalance3'};
    5757field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
    5858           1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
     
    6666        (md.results.TransientSolution(1).Surface),...
    6767        (md.results.TransientSolution(1).Thickness),...
    68         (md.results.TransientSolution(1).SurfaceforcingsMonthlytemperatures),...
    69         (md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
     68        (md.results.TransientSolution(1).SmbMonthlytemperatures),...
     69        (md.results.TransientSolution(1).SmbMassBalance),...
    7070        (md.results.TransientSolution(2).Vx),...
    7171        (md.results.TransientSolution(2).Vy),...
     
    7575        (md.results.TransientSolution(2).Surface),...
    7676        (md.results.TransientSolution(2).Thickness),...
    77         (md.results.TransientSolution(2).SurfaceforcingsMonthlytemperatures),...
    78         (md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
     77        (md.results.TransientSolution(2).SmbMonthlytemperatures),...
     78        (md.results.TransientSolution(2).SmbMassBalance),...
    7979        (md.results.TransientSolution(3).Vx),...
    8080        (md.results.TransientSolution(3).Vy),...
     
    8484        (md.results.TransientSolution(3).Surface),...
    8585        (md.results.TransientSolution(3).Thickness),...
    86         (md.results.TransientSolution(3).SurfaceforcingsMonthlytemperatures),...
    87         (md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
     86        (md.results.TransientSolution(3).SmbMonthlytemperatures),...
     87        (md.results.TransientSolution(3).SmbMassBalance),...
    8888        };
  • issm/trunk-jpl/test/NightlyRun/test240.py

    r19308 r19527  
    1515
    1616# Use of ispdd and isdelta18o methods
    17 md.surfaceforcings = SMBd18opdd();
    18 md.surfaceforcings.isd18opd=1;
     17md.smb = SMBd18opdd();
     18md.smb.isd18opd=1;
    1919
    2020# Add temperature, precipitation and delta18o needed to measure the surface mass balance
    2121# creating delta18o
    2222delta18o=numpy.loadtxt('../Data/delta18o.data')
    23 md.surfaceforcings.delta18o=delta18o
     23md.smb.delta18o=delta18o
    2424
    2525# creating Present day temperatures
    2626# Same temperature over the all region:
    2727tmonth=numpy.ones(12)*(238.15+20.)
    28 md.surfaceforcings.temperatures_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
     28md.smb.temperatures_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
    2929for imonth in xrange(0,12):
    30     md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
     30    md.smb.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
    3131    # Time for the last line:
    32     md.surfaceforcings.temperatures_presentday[md.mesh.numberofvertices,imonth]=(float(imonth)/12.)
     32    md.smb.temperatures_presentday[md.mesh.numberofvertices,imonth]=(float(imonth)/12.)
    3333
    3434# creating initialization and spc temperatures initialization and spc
    35 md.thermal.spctemperature=numpy.mean(md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
     35md.thermal.spctemperature=numpy.mean(md.smb.temperatures_presentday[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
    3636md.thermal.spctemperature=md.thermal.spctemperature-10
    3737md.initialization.temperature=md.thermal.spctemperature
    38 md.surfaceforcings.initialize(md)
     38md.smb.initialize(md)
    3939
    4040# creating precipitation
    41 md.surfaceforcings.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
     41md.smb.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
    4242for imonth in xrange(0,12):
    43     md.surfaceforcings.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
    44     md.surfaceforcings.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
     43    md.smb.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
     44    md.smb.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
    4545
    4646# time steps and resolution
     
    5151
    5252#
    53 md.transient.requested_outputs=['default','SurfaceforcingsMonthlytemperatures']
     53md.transient.requested_outputs=['default','SmbMonthlytemperatures']
    5454md=setflowequation(md,'SSA','all')
    5555md.cluster=generic('name',oshostname(),'np',3)
     
    5757
    5858#Fields and tolerances to track changes
    59 field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',\
    60                             'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',\
    61                                       'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'];
     59field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMonthlytemperatures1','SmbMassBalance1',\
     60                            'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMonthlytemperatures2','SmbMassBalance2',\
     61                                      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMonthlytemperatures3','SmbMassBalance3'];
    6262field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
    6363                            1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
     
    7171        md.results.TransientSolution[0].Surface,\
    7272        md.results.TransientSolution[0].Thickness,\
    73         md.results.TransientSolution[0].SurfaceforcingsMonthlytemperatures,\
    74         md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
     73        md.results.TransientSolution[0].SmbMonthlytemperatures,\
     74        md.results.TransientSolution[0].SmbMassBalance,\
    7575        md.results.TransientSolution[1].Vx,\
    7676        md.results.TransientSolution[1].Vy,\
     
    8080        md.results.TransientSolution[1].Surface,\
    8181        md.results.TransientSolution[1].Thickness,\
    82         md.results.TransientSolution[1].SurfaceforcingsMonthlytemperatures,\
    83         md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
     82        md.results.TransientSolution[1].SmbMonthlytemperatures,\
     83        md.results.TransientSolution[1].SmbMassBalance,\
    8484        md.results.TransientSolution[2].Vx,\
    8585        md.results.TransientSolution[2].Vy,\
     
    8989        md.results.TransientSolution[2].Surface,\
    9090        md.results.TransientSolution[2].Thickness,\
    91         md.results.TransientSolution[2].SurfaceforcingsMonthlytemperatures,\
    92         md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
     91        md.results.TransientSolution[2].SmbMonthlytemperatures,\
     92        md.results.TransientSolution[2].SmbMassBalance,\
    9393        ]
  • issm/trunk-jpl/test/NightlyRun/test241.m

    r19243 r19527  
    1515smb=[ smb smb*-1. ];
    1616
    17 md.surfaceforcings.mass_balance=smb;
    18 md.surfaceforcings.mass_balance(end+1,:)=[1.5 3.];
     17md.smb.mass_balance=smb;
     18md.smb.mass_balance(end+1,:)=[1.5 3.];
    1919md.transient.isthermal=0;
    2020
     
    2222
    2323%Fields and tolerances to track changes
    24 field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
    25         'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
    26         'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
    27         'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4'};
     24field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', ...
     25        'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', ...
     26        'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', ...
     27        'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4'};
    2828field_tolerances={1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
    2929        1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
     
    3838        (md.results.TransientSolution(1).Surface),...
    3939        (md.results.TransientSolution(1).Thickness),...
    40         (md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
     40        (md.results.TransientSolution(1).SmbMassBalance),...
    4141        (md.results.TransientSolution(2).Vx),...
    4242        (md.results.TransientSolution(2).Vy),...
     
    4646        (md.results.TransientSolution(2).Surface),...
    4747        (md.results.TransientSolution(2).Thickness),...
    48         (md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
     48        (md.results.TransientSolution(2).SmbMassBalance),...
    4949        (md.results.TransientSolution(3).Vx),...
    5050        (md.results.TransientSolution(3).Vy),...
     
    5454        (md.results.TransientSolution(3).Surface),...
    5555        (md.results.TransientSolution(3).Thickness),...
    56         (md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
     56        (md.results.TransientSolution(3).SmbMassBalance),...
    5757        (md.results.TransientSolution(4).Vx),...
    5858        (md.results.TransientSolution(4).Vy),...
     
    6262        (md.results.TransientSolution(4).Surface),...
    6363        (md.results.TransientSolution(4).Thickness),...
    64         (md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
     64        (md.results.TransientSolution(4).SmbMassBalance),...
    6565        };
  • issm/trunk-jpl/test/NightlyRun/test241.py

    r19246 r19527  
    2525smb=numpy.hstack((smb,smb*-1.))
    2626
    27 md.surfaceforcings.mass_balance=numpy.vstack((smb,[1.5,3.]))
     27md.smb.mass_balance=numpy.vstack((smb,[1.5,3.]))
    2828md.transient.isthermal=False
    2929
     
    3131
    3232#Fields and tolerances to track changes
    33 field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
    34         'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
    35         'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
    36         'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4']
     33field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', \
     34        'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', \
     35        'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', \
     36        'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4']
    3737field_tolerances=[1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
    3838        1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
     
    4747        md.results.TransientSolution[0].Surface,\
    4848        md.results.TransientSolution[0].Thickness,\
    49         md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
     49        md.results.TransientSolution[0].SmbMassBalance,\
    5050        md.results.TransientSolution[1].Vx,\
    5151        md.results.TransientSolution[1].Vy,\
     
    5555        md.results.TransientSolution[1].Surface,\
    5656        md.results.TransientSolution[1].Thickness,\
    57         md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
     57        md.results.TransientSolution[1].SmbMassBalance,\
    5858        md.results.TransientSolution[2].Vx,\
    5959        md.results.TransientSolution[2].Vy,\
     
    6363        md.results.TransientSolution[2].Surface,\
    6464        md.results.TransientSolution[2].Thickness,\
    65         md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
     65        md.results.TransientSolution[2].SmbMassBalance,\
    6666        md.results.TransientSolution[3].Vx,\
    6767        md.results.TransientSolution[3].Vy,\
     
    7171        md.results.TransientSolution[3].Surface,\
    7272        md.results.TransientSolution[3].Thickness,\
    73         md.results.TransientSolution[3].SurfaceforcingsMassBalance,\
     73        md.results.TransientSolution[3].SmbMassBalance,\
    7474        ]
  • issm/trunk-jpl/test/NightlyRun/test242.m

    r19243 r19527  
    1616smb=[ smb smb*-1. ];
    1717
    18 md.surfaceforcings.mass_balance=smb;
    19 md.surfaceforcings.mass_balance(end+1,:)=[1.5 3.];
     18md.smb.mass_balance=smb;
     19md.smb.mass_balance(end+1,:)=[1.5 3.];
    2020md.transient.isthermal=0;
    2121
     
    2323
    2424%Fields and tolerances to track changes
    25 field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
    26         'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
    27         'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
    28         'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassbalance4'};
     25field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', ...
     26        'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', ...
     27        'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', ...
     28        'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassbalance4'};
    2929field_tolerances={...
    3030        1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-13,...
     
    4141        (md.results.TransientSolution(1).Surface),...
    4242        (md.results.TransientSolution(1).Thickness),...
    43         (md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
     43        (md.results.TransientSolution(1).SmbMassBalance),...
    4444        (md.results.TransientSolution(2).Vx),...
    4545        (md.results.TransientSolution(2).Vy),...
     
    5050        (md.results.TransientSolution(2).Surface),...
    5151        (md.results.TransientSolution(2).Thickness),...
    52         (md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
     52        (md.results.TransientSolution(2).SmbMassBalance),...
    5353        (md.results.TransientSolution(3).Vx),...
    5454        (md.results.TransientSolution(3).Vy),...
     
    5959        (md.results.TransientSolution(3).Surface),...
    6060        (md.results.TransientSolution(3).Thickness),...
    61         (md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
     61        (md.results.TransientSolution(3).SmbMassBalance),...
    6262        (md.results.TransientSolution(4).Vx),...
    6363        (md.results.TransientSolution(4).Vy),...
     
    6868        (md.results.TransientSolution(4).Surface),...
    6969        (md.results.TransientSolution(4).Thickness),...
    70         (md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
     70        (md.results.TransientSolution(4).SmbMassBalance),...
    7171        };
  • issm/trunk-jpl/test/NightlyRun/test242.py

    r19246 r19527  
    2626smb=numpy.hstack((smb,smb*-1.))
    2727
    28 md.surfaceforcings.mass_balance=numpy.vstack((smb,[1.5,3.]))
     28md.smb.mass_balance=numpy.vstack((smb,[1.5,3.]))
    2929md.transient.isthermal=False
    3030
     
    3232
    3333#Fields and tolerances to track changes
    34 field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
    35         'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
    36         'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
    37         'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassbalance4']
     34field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', \
     35        'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', \
     36        'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', \
     37        'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassbalance4']
    3838field_tolerances=[\
    3939                1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-13,\
     
    5050        md.results.TransientSolution[0].Surface,\
    5151        md.results.TransientSolution[0].Thickness,\
    52         md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
     52        md.results.TransientSolution[0].SmbMassBalance,\
    5353        md.results.TransientSolution[1].Vx,\
    5454        md.results.TransientSolution[1].Vy,\
     
    5959        md.results.TransientSolution[1].Surface,\
    6060        md.results.TransientSolution[1].Thickness,\
    61         md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
     61        md.results.TransientSolution[1].SmbMassBalance,\
    6262        md.results.TransientSolution[2].Vx,\
    6363        md.results.TransientSolution[2].Vy,\
     
    6868        md.results.TransientSolution[2].Surface,\
    6969        md.results.TransientSolution[2].Thickness,\
    70         md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
     70        md.results.TransientSolution[2].SmbMassBalance,\
    7171        md.results.TransientSolution[3].Vx,\
    7272        md.results.TransientSolution[3].Vy,\
     
    7777        md.results.TransientSolution[3].Surface,\
    7878        md.results.TransientSolution[3].Thickness,\
    79         md.results.TransientSolution[3].SurfaceforcingsMassBalance,\
     79        md.results.TransientSolution[3].SmbMassBalance,\
    8080        ]
  • issm/trunk-jpl/test/NightlyRun/test3009.m

    r19049 r19527  
    88md.transient.isstressbalance=0;
    99md.transient.ismasstransport=0;
     10md.transient.issmb=0;
    1011md.transient.isthermal=1;
    1112md.transient.isgroundingline=0;
  • issm/trunk-jpl/test/NightlyRun/test3009.py

    r19049 r19527  
    1717md.transient.isstressbalance=False
    1818md.transient.ismasstransport=False
     19md.transient.issmb=False
    1920md.transient.isthermal=True
    2021md.transient.isgroundingline=False
  • issm/trunk-jpl/test/NightlyRun/test3109.m

    r19049 r19527  
    88md.transient.isstressbalance=0;
    99md.transient.ismasstransport=0;
     10md.transient.issmb=0;
    1011md.transient.isthermal=1;
    1112md.transient.isgroundingline=0;
  • issm/trunk-jpl/test/NightlyRun/test3109.py

    r19049 r19527  
    1717md.transient.isstressbalance=False
    1818md.transient.ismasstransport=False
     19md.transient.issmb=False
    1920md.transient.isthermal=True
    2021md.transient.isgroundingline=False
  • issm/trunk-jpl/test/NightlyRun/test313.m

    r19049 r19527  
    99md.transient.isstressbalance=0;
    1010md.transient.ismasstransport=0;
     11md.transient.issmb=0;
    1112md.transient.isthermal=1;
    1213md.transient.isgroundingline=0;
  • issm/trunk-jpl/test/NightlyRun/test313.py

    r19049 r19527  
    1818md.transient.isstressbalance=False
    1919md.transient.ismasstransport=False
     20md.transient.issmb=False
    2021md.transient.isthermal=True
    2122md.transient.isgroundingline=False
  • issm/trunk-jpl/test/NightlyRun/test326.m

    r19049 r19527  
    1010md.transient.isstressbalance=0;
    1111md.transient.ismasstransport=0;
     12md.transient.issmb=0;
    1213md.transient.isthermal=1;
    1314md.transient.isgroundingline=0;
  • issm/trunk-jpl/test/NightlyRun/test326.py

    r19049 r19527  
    2020md.transient.isstressbalance=False
    2121md.transient.ismasstransport=False
     22md.transient.issmb=False
    2223md.transient.isthermal=True
    2324md.transient.isgroundingline=False
  • issm/trunk-jpl/test/NightlyRun/test328.m

    r19049 r19527  
    44md=parameterize(md,'../Par/SquareSheetConstrained.par');
    55md=setflowequation(md,'SSA','all');
    6 md.surfaceforcings = SMBgradients();
    7 md.surfaceforcings.b_pos=-100. + 0.00005*md.mesh.x - 0.0001*md.mesh.y;
    8 md.surfaceforcings.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y;
    9 md.surfaceforcings.href=md.geometry.surface;
    10 md.surfaceforcings.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y;
     6md.smb = SMBgradients();
     7md.smb.b_pos=-100. + 0.00005*md.mesh.x - 0.0001*md.mesh.y;
     8md.smb.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y;
     9md.smb.href=md.geometry.surface;
     10md.smb.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y;
    1111md.transient.requested_outputs={'default','TotalSmb'};
    1212md.cluster=generic('name',oshostname(),'np',3);
     
    2323        (md.results.TransientSolution(1).Surface),...
    2424        (md.results.TransientSolution(1).Thickness),...
    25         (md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
     25        (md.results.TransientSolution(1).SmbMassBalance),...
    2626        (md.results.TransientSolution(1).TotalSmb),...
    2727        (md.results.TransientSolution(2).Vx),...
     
    3232        (md.results.TransientSolution(2).Thickness),...
    3333        (md.results.TransientSolution(2).TotalSmb),...
    34         (md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
     34        (md.results.TransientSolution(2).SmbMassBalance),...
    3535        (md.results.TransientSolution(3).Vx),...
    3636        (md.results.TransientSolution(3).Vy),...
     
    3939        (md.results.TransientSolution(3).Surface),...
    4040        (md.results.TransientSolution(3).Thickness),...
    41         (md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
     41        (md.results.TransientSolution(3).SmbMassBalance),...
    4242        (md.results.TransientSolution(3).TotalSmb),...
    4343        };
  • issm/trunk-jpl/test/NightlyRun/test328.py

    r19049 r19527  
    1515md=parameterize(md,'../Par/SquareSheetConstrained.py')
    1616md=setflowequation(md,'SSA','all')
    17 md.surfaceforcings = SMBgradients();
    18 md.surfaceforcings.b_pos=-100. + 0.00005*md.mesh.x - 0.0001*md.mesh.y
    19 md.surfaceforcings.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y
     17md.smb = SMBgradients();
     18md.smb.b_pos=-100. + 0.00005*md.mesh.x - 0.0001*md.mesh.y
     19md.smb.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y
    2020md.transient.requested_outputs=['default','TotalSmb']
    21 md.surfaceforcings.href=copy.deepcopy(md.geometry.surface).reshape(-1)
    22 md.surfaceforcings.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y;
     21md.smb.href=copy.deepcopy(md.geometry.surface).reshape(-1)
     22md.smb.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y;
    2323md.cluster=generic('name',oshostname(),'np',3)
    2424md=solve(md,TransientSolutionEnum())
     
    3434        md.results.TransientSolution[0].Surface,\
    3535        md.results.TransientSolution[0].Thickness,\
    36         md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
     36        md.results.TransientSolution[0].SmbMassBalance,\
    3737        md.results.TransientSolution[0].TotalSmb,\
    3838        md.results.TransientSolution[1].Vx,\
     
    4343        md.results.TransientSolution[1].Thickness,\
    4444        md.results.TransientSolution[1].TotalSmb,\
    45         md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
     45        md.results.TransientSolution[1].SmbMassBalance,\
    4646        md.results.TransientSolution[2].Vx,\
    4747        md.results.TransientSolution[2].Vy,\
     
    5050        md.results.TransientSolution[2].Surface,\
    5151        md.results.TransientSolution[2].Thickness,\
    52         md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
     52        md.results.TransientSolution[2].SmbMassBalance,\
    5353        md.results.TransientSolution[2].TotalSmb,\
    5454        ]
  • issm/trunk-jpl/test/NightlyRun/test329.m

    r19049 r19527  
    55md=extrude(md,3,1.);
    66md=setflowequation(md,'HO','all');
    7 md.surfaceforcings = SMBgradients();
    8 md.surfaceforcings.b_pos=-100. + 0.00005*md.mesh.x - 0.0001*md.mesh.y;
    9 md.surfaceforcings.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y;
    10 md.surfaceforcings.href=md.geometry.surface;
    11 md.surfaceforcings.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y;
     7md.smb = SMBgradients();
     8md.smb.b_pos=-100. + 0.00005*md.mesh.x - 0.0001*md.mesh.y;
     9md.smb.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y;
     10md.smb.href=md.geometry.surface;
     11md.smb.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y;
    1212md.transient.requested_outputs={'default','TotalSmb'};
    1313md.cluster=generic('name',oshostname(),'np',3);
     
    2828        (md.results.TransientSolution(1).Thickness),...
    2929        (md.results.TransientSolution(1).Temperature),...
    30         (md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
     30        (md.results.TransientSolution(1).SmbMassBalance),...
    3131        (md.results.TransientSolution(1).TotalSmb),...
    3232        (md.results.TransientSolution(2).Vx),...
     
    3838        (md.results.TransientSolution(2).Thickness),...
    3939        (md.results.TransientSolution(2).Temperature),...
    40         (md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
     40        (md.results.TransientSolution(2).SmbMassBalance),...
    4141        (md.results.TransientSolution(2).TotalSmb),...
    4242        (md.results.TransientSolution(3).Vx),...
     
    4848        (md.results.TransientSolution(3).Thickness),...
    4949        (md.results.TransientSolution(3).Temperature),...
    50         (md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
     50        (md.results.TransientSolution(3).SmbMassBalance),...
    5151        (md.results.TransientSolution(3).TotalSmb),...
    5252        };
  • issm/trunk-jpl/test/NightlyRun/test329.py

    r19049 r19527  
    1616md.extrude(3,1)
    1717md=setflowequation(md,'HO','all')
    18 md.surfaceforcings = SMBgradients();
    19 md.surfaceforcings.b_pos=-100. + 0.00005*md.mesh.x - 0.0001*md.mesh.y
    20 md.surfaceforcings.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y
    21 md.surfaceforcings.href=copy.deepcopy(md.geometry.surface).reshape(-1)
    22 md.surfaceforcings.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y;
     18md.smb = SMBgradients();
     19md.smb.b_pos=-100. + 0.00005*md.mesh.x - 0.0001*md.mesh.y
     20md.smb.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y
     21md.smb.href=copy.deepcopy(md.geometry.surface).reshape(-1)
     22md.smb.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y;
    2323md.transient.requested_outputs=['default','TotalSmb']
    2424md.cluster=generic('name',oshostname(),'np',3)
     
    3939        md.results.TransientSolution[0].Thickness,\
    4040        md.results.TransientSolution[0].Temperature,\
    41         md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
     41        md.results.TransientSolution[0].SmbMassBalance,\
    4242        md.results.TransientSolution[0].TotalSmb,\
    4343        md.results.TransientSolution[1].Vx,\
     
    4949        md.results.TransientSolution[1].Thickness,\
    5050        md.results.TransientSolution[1].Temperature,\
    51         md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
     51        md.results.TransientSolution[1].SmbMassBalance,\
    5252        md.results.TransientSolution[1].TotalSmb,\
    5353        md.results.TransientSolution[2].Vx,\
     
    5959        md.results.TransientSolution[2].Thickness,\
    6060        md.results.TransientSolution[2].Temperature,\
    61         md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
     61        md.results.TransientSolution[2].SmbMassBalance,\
    6262        md.results.TransientSolution[2].TotalSmb,\
    6363        ]
  • issm/trunk-jpl/test/NightlyRun/test336.m

    r19049 r19527  
    1414smb=[ smb smb*-1. ];
    1515
    16 md.surfaceforcings=SMBcomponents();
    17 md.surfaceforcings.accumulation=[smb*2; [1.5 3.]];
    18 md.surfaceforcings.runoff=[smb/2; [1.5 3.]];
    19 md.surfaceforcings.evaporation=[smb/2; [1.5 3.]];
     16md.smb=SMBcomponents();
     17md.smb.accumulation=[smb*2; [1.5 3.]];
     18md.smb.runoff=[smb/2; [1.5 3.]];
     19md.smb.evaporation=[smb/2; [1.5 3.]];
    2020md.transient.isthermal=0;
    2121
     
    2323
    2424%Fields and tolerances to track changes
    25 field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
    26         'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
    27         'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
    28         'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4'};
     25field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', ...
     26        'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', ...
     27        'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', ...
     28        'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4'};
    2929field_tolerances={1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
    3030        1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
     
    3939        (md.results.TransientSolution(1).Surface),...
    4040        (md.results.TransientSolution(1).Thickness),...
    41         (md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
     41        (md.results.TransientSolution(1).SmbMassBalance),...
    4242        (md.results.TransientSolution(2).Vx),...
    4343        (md.results.TransientSolution(2).Vy),...
     
    4747        (md.results.TransientSolution(2).Surface),...
    4848        (md.results.TransientSolution(2).Thickness),...
    49         (md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
     49        (md.results.TransientSolution(2).SmbMassBalance),...
    5050        (md.results.TransientSolution(3).Vx),...
    5151        (md.results.TransientSolution(3).Vy),...
     
    5555        (md.results.TransientSolution(3).Surface),...
    5656        (md.results.TransientSolution(3).Thickness),...
    57         (md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
     57        (md.results.TransientSolution(3).SmbMassBalance),...
    5858        (md.results.TransientSolution(4).Vx),...
    5959        (md.results.TransientSolution(4).Vy),...
     
    6363        (md.results.TransientSolution(4).Surface),...
    6464        (md.results.TransientSolution(4).Thickness),...
    65         (md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
     65        (md.results.TransientSolution(4).SmbMassBalance),...
    6666        };
  • issm/trunk-jpl/test/NightlyRun/test336.py

    r19049 r19527  
    2424smb=numpy.hstack((smb,smb*-1.))
    2525
    26 md.surfaceforcings=SMBcomponents();
    27 md.surfaceforcings.accumulation=numpy.vstack((smb*2, [1.5,3.]));
    28 md.surfaceforcings.runoff=numpy.vstack((smb/2, [1.5,3.]));
    29 md.surfaceforcings.evaporation=numpy.vstack((smb/2, [1.5,3.]));
     26md.smb=SMBcomponents();
     27md.smb.accumulation=numpy.vstack((smb*2, [1.5,3.]));
     28md.smb.runoff=numpy.vstack((smb/2, [1.5,3.]));
     29md.smb.evaporation=numpy.vstack((smb/2, [1.5,3.]));
    3030md.transient.isthermal=False
    3131
     
    3333
    3434#Fields and tolerances to track changes
    35 field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
    36         'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
    37         'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
    38         'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4']
     35field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', \
     36        'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', \
     37        'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', \
     38        'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4']
    3939field_tolerances=[1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
    4040        1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
     
    4949        md.results.TransientSolution[0].Surface,\
    5050        md.results.TransientSolution[0].Thickness,\
    51         md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
     51        md.results.TransientSolution[0].SmbMassBalance,\
    5252        md.results.TransientSolution[1].Vx,\
    5353        md.results.TransientSolution[1].Vy,\
     
    5757        md.results.TransientSolution[1].Surface,\
    5858        md.results.TransientSolution[1].Thickness,\
    59         md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
     59        md.results.TransientSolution[1].SmbMassBalance,\
    6060        md.results.TransientSolution[2].Vx,\
    6161        md.results.TransientSolution[2].Vy,\
     
    6565        md.results.TransientSolution[2].Surface,\
    6666        md.results.TransientSolution[2].Thickness,\
    67         md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
     67        md.results.TransientSolution[2].SmbMassBalance,\
    6868        md.results.TransientSolution[3].Vx,\
    6969        md.results.TransientSolution[3].Vy,\
     
    7373        md.results.TransientSolution[3].Surface,\
    7474        md.results.TransientSolution[3].Thickness,\
    75         md.results.TransientSolution[3].SurfaceforcingsMassBalance,\
     75        md.results.TransientSolution[3].SmbMassBalance,\
    7676        ]
  • issm/trunk-jpl/test/NightlyRun/test337.m

    r19049 r19527  
    1515smb=[ smb smb*-1. ];
    1616
    17 md.surfaceforcings=SMBcomponents();
    18 md.surfaceforcings.accumulation=[smb*2; [1.5 3.]];
    19 md.surfaceforcings.runoff=[smb/2; [1.5 3.]];
    20 md.surfaceforcings.evaporation=[smb/2; [1.5 3.]];
     17md.smb=SMBcomponents();
     18md.smb.accumulation=[smb*2; [1.5 3.]];
     19md.smb.runoff=[smb/2; [1.5 3.]];
     20md.smb.evaporation=[smb/2; [1.5 3.]];
    2121md.transient.isthermal=0;
    2222
     
    2424
    2525%Fields and tolerances to track changes
    26 field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
    27         'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
    28         'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
    29         'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4'};
     26field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', ...
     27        'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', ...
     28        'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', ...
     29        'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4'};
    3030field_tolerances={...
    3131        5e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,...
     
    4141        (md.results.TransientSolution(1).Surface),...
    4242        (md.results.TransientSolution(1).Thickness),...
    43         (md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
     43        (md.results.TransientSolution(1).SmbMassBalance),...
    4444        (md.results.TransientSolution(2).Vx),...
    4545        (md.results.TransientSolution(2).Vy),...
     
    4949        (md.results.TransientSolution(2).Surface),...
    5050        (md.results.TransientSolution(2).Thickness),...
    51         (md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
     51        (md.results.TransientSolution(2).SmbMassBalance),...
    5252        (md.results.TransientSolution(3).Vx),...
    5353        (md.results.TransientSolution(3).Vy),...
     
    5757        (md.results.TransientSolution(3).Surface),...
    5858        (md.results.TransientSolution(3).Thickness),...
    59         (md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
     59        (md.results.TransientSolution(3).SmbMassBalance),...
    6060        (md.results.TransientSolution(4).Vx),...
    6161        (md.results.TransientSolution(4).Vy),...
     
    6565        (md.results.TransientSolution(4).Surface),...
    6666        (md.results.TransientSolution(4).Thickness),...
    67         (md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
     67        (md.results.TransientSolution(4).SmbMassBalance),...
    6868        };
  • issm/trunk-jpl/test/NightlyRun/test337.py

    r19049 r19527  
    2525smb=numpy.hstack((smb,smb*-1.))
    2626
    27 md.surfaceforcings=SMBcomponents();
    28 md.surfaceforcings.accumulation=numpy.vstack((smb*2, [1.5,3.]));
    29 md.surfaceforcings.runoff=numpy.vstack((smb/2, [1.5,3.]));
    30 md.surfaceforcings.evaporation=numpy.vstack((smb/2, [1.5,3.]));
     27md.smb=SMBcomponents();
     28md.smb.accumulation=numpy.vstack((smb*2, [1.5,3.]));
     29md.smb.runoff=numpy.vstack((smb/2, [1.5,3.]));
     30md.smb.evaporation=numpy.vstack((smb/2, [1.5,3.]));
    3131md.transient.isthermal=False
    3232
     
    3434
    3535#Fields and tolerances to track changes
    36 field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
    37         'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
    38         'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
    39         'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4']
     36field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', \
     37        'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', \
     38        'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', \
     39        'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4']
    4040field_tolerances=[\
    4141                5e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,\
     
    5151        md.results.TransientSolution[0].Surface,\
    5252        md.results.TransientSolution[0].Thickness,\
    53         md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
     53        md.results.TransientSolution[0].SmbMassBalance,\
    5454        md.results.TransientSolution[1].Vx,\
    5555        md.results.TransientSolution[1].Vy,\
     
    5959        md.results.TransientSolution[1].Surface,\
    6060        md.results.TransientSolution[1].Thickness,\
    61         md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
     61        md.results.TransientSolution[1].SmbMassBalance,\
    6262        md.results.TransientSolution[2].Vx,\
    6363        md.results.TransientSolution[2].Vy,\
     
    6767        md.results.TransientSolution[2].Surface,\
    6868        md.results.TransientSolution[2].Thickness,\
    69         md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
     69        md.results.TransientSolution[2].SmbMassBalance,\
    7070        md.results.TransientSolution[3].Vx,\
    7171        md.results.TransientSolution[3].Vy,\
     
    7575        md.results.TransientSolution[3].Surface,\
    7676        md.results.TransientSolution[3].Thickness,\
    77         md.results.TransientSolution[3].SurfaceforcingsMassBalance,\
     77        md.results.TransientSolution[3].SmbMassBalance,\
    7878        ]
  • issm/trunk-jpl/test/NightlyRun/test338.m

    r19049 r19527  
    1414smb=[ smb smb*-1. ];
    1515
    16 md.surfaceforcings=SMBmeltcomponents();
    17 md.surfaceforcings.accumulation=[smb; [1.5 3.]];
    18 md.surfaceforcings.melt=[smb/2; [1.5 3.]];
    19 md.surfaceforcings.refreeze=[smb; [1.5 3.]];
    20 md.surfaceforcings.evaporation=[smb/2; [1.5 3.]];
     16md.smb=SMBmeltcomponents();
     17md.smb.accumulation=[smb; [1.5 3.]];
     18md.smb.melt=[smb/2; [1.5 3.]];
     19md.smb.refreeze=[smb; [1.5 3.]];
     20md.smb.evaporation=[smb/2; [1.5 3.]];
    2121md.transient.isthermal=0;
    2222
     
    2424
    2525%Fields and tolerances to track changes
    26 field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
    27         'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
    28         'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
    29         'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4'};
     26field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', ...
     27        'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', ...
     28        'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', ...
     29        'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4'};
    3030field_tolerances={1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
    3131        1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
     
    4040        (md.results.TransientSolution(1).Surface),...
    4141        (md.results.TransientSolution(1).Thickness),...
    42         (md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
     42        (md.results.TransientSolution(1).SmbMassBalance),...
    4343        (md.results.TransientSolution(2).Vx),...
    4444        (md.results.TransientSolution(2).Vy),...
     
    4848        (md.results.TransientSolution(2).Surface),...
    4949        (md.results.TransientSolution(2).Thickness),...
    50         (md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
     50        (md.results.TransientSolution(2).SmbMassBalance),...
    5151        (md.results.TransientSolution(3).Vx),...
    5252        (md.results.TransientSolution(3).Vy),...
     
    5656        (md.results.TransientSolution(3).Surface),...
    5757        (md.results.TransientSolution(3).Thickness),...
    58         (md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
     58        (md.results.TransientSolution(3).SmbMassBalance),...
    5959        (md.results.TransientSolution(4).Vx),...
    6060        (md.results.TransientSolution(4).Vy),...
     
    6464        (md.results.TransientSolution(4).Surface),...
    6565        (md.results.TransientSolution(4).Thickness),...
    66         (md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
     66        (md.results.TransientSolution(4).SmbMassBalance),...
    6767        };
  • issm/trunk-jpl/test/NightlyRun/test338.py

    r19049 r19527  
    2424smb=numpy.hstack((smb,smb*-1.))
    2525
    26 md.surfaceforcings=SMBmeltcomponents();
    27 md.surfaceforcings.accumulation=numpy.vstack((smb, [1.5,3.]));
    28 md.surfaceforcings.evaporation=numpy.vstack((smb/2, [1.5,3.]));
    29 md.surfaceforcings.melt=numpy.vstack((smb/2, [1.5,3.]));
    30 md.surfaceforcings.refreeze=numpy.vstack((smb, [1.5,3.]));
     26md.smb=SMBmeltcomponents();
     27md.smb.accumulation=numpy.vstack((smb, [1.5,3.]));
     28md.smb.evaporation=numpy.vstack((smb/2, [1.5,3.]));
     29md.smb.melt=numpy.vstack((smb/2, [1.5,3.]));
     30md.smb.refreeze=numpy.vstack((smb, [1.5,3.]));
    3131md.transient.isthermal=False
    3232
     
    3434
    3535#Fields and tolerances to track changes
    36 field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
    37         'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
    38         'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
    39         'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4']
     36field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', \
     37        'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', \
     38        'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', \
     39        'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4']
    4040field_tolerances=[1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
    4141        1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
     
    5050        md.results.TransientSolution[0].Surface,\
    5151        md.results.TransientSolution[0].Thickness,\
    52         md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
     52        md.results.TransientSolution[0].SmbMassBalance,\
    5353        md.results.TransientSolution[1].Vx,\
    5454        md.results.TransientSolution[1].Vy,\
     
    5858        md.results.TransientSolution[1].Surface,\
    5959        md.results.TransientSolution[1].Thickness,\
    60         md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
     60        md.results.TransientSolution[1].SmbMassBalance,\
    6161        md.results.TransientSolution[2].Vx,\
    6262        md.results.TransientSolution[2].Vy,\
     
    6666        md.results.TransientSolution[2].Surface,\
    6767        md.results.TransientSolution[2].Thickness,\
    68         md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
     68        md.results.TransientSolution[2].SmbMassBalance,\
    6969        md.results.TransientSolution[3].Vx,\
    7070        md.results.TransientSolution[3].Vy,\
     
    7474        md.results.TransientSolution[3].Surface,\
    7575        md.results.TransientSolution[3].Thickness,\
    76         md.results.TransientSolution[3].SurfaceforcingsMassBalance,\
     76        md.results.TransientSolution[3].SmbMassBalance,\
    7777        ]
  • issm/trunk-jpl/test/NightlyRun/test339.m

    r19049 r19527  
    1515smb=[ smb smb*-1. ];
    1616
    17 md.surfaceforcings=SMBmeltcomponents();
    18 md.surfaceforcings.accumulation=[smb; [1.5 3.]];
    19 md.surfaceforcings.melt=[smb/2; [1.5 3.]];
    20 md.surfaceforcings.refreeze=[smb; [1.5 3.]];
    21 md.surfaceforcings.evaporation=[smb/2; [1.5 3.]];
     17md.smb=SMBmeltcomponents();
     18md.smb.accumulation=[smb; [1.5 3.]];
     19md.smb.melt=[smb/2; [1.5 3.]];
     20md.smb.refreeze=[smb; [1.5 3.]];
     21md.smb.evaporation=[smb/2; [1.5 3.]];
    2222md.transient.isthermal=0;
    2323
     
    2525
    2626%Fields and tolerances to track changes
    27 field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
    28         'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
    29         'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
    30         'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4'};
     27field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', ...
     28        'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', ...
     29        'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', ...
     30        'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4'};
    3131field_tolerances={...
    3232        1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,...
     
    4242        (md.results.TransientSolution(1).Surface),...
    4343        (md.results.TransientSolution(1).Thickness),...
    44         (md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
     44        (md.results.TransientSolution(1).SmbMassBalance),...
    4545        (md.results.TransientSolution(2).Vx),...
    4646        (md.results.TransientSolution(2).Vy),...
     
    5050        (md.results.TransientSolution(2).Surface),...
    5151        (md.results.TransientSolution(2).Thickness),...
    52         (md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
     52        (md.results.TransientSolution(2).SmbMassBalance),...
    5353        (md.results.TransientSolution(3).Vx),...
    5454        (md.results.TransientSolution(3).Vy),...
     
    5858        (md.results.TransientSolution(3).Surface),...
    5959        (md.results.TransientSolution(3).Thickness),...
    60         (md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
     60        (md.results.TransientSolution(3).SmbMassBalance),...
    6161        (md.results.TransientSolution(4).Vx),...
    6262        (md.results.TransientSolution(4).Vy),...
     
    6666        (md.results.TransientSolution(4).Surface),...
    6767        (md.results.TransientSolution(4).Thickness),...
    68         (md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
     68        (md.results.TransientSolution(4).SmbMassBalance),...
    6969        };
  • issm/trunk-jpl/test/NightlyRun/test339.py

    r19049 r19527  
    2525smb=numpy.hstack((smb,smb*-1.))
    2626
    27 md.surfaceforcings=SMBmeltcomponents();
    28 md.surfaceforcings.accumulation=numpy.vstack((smb, [1.5,3.]));
    29 md.surfaceforcings.evaporation=numpy.vstack((smb/2, [1.5,3.]));
    30 md.surfaceforcings.melt=numpy.vstack((smb/2, [1.5,3.]));
    31 md.surfaceforcings.refreeze=numpy.vstack((smb, [1.5,3.]));
     27md.smb=SMBmeltcomponents();
     28md.smb.accumulation=numpy.vstack((smb, [1.5,3.]));
     29md.smb.evaporation=numpy.vstack((smb/2, [1.5,3.]));
     30md.smb.melt=numpy.vstack((smb/2, [1.5,3.]));
     31md.smb.refreeze=numpy.vstack((smb, [1.5,3.]));
    3232md.transient.isthermal=False
    3333
     
    3535
    3636#Fields and tolerances to track changes
    37 field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
    38         'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
    39         'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
    40         'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4']
     37field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', \
     38        'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', \
     39        'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', \
     40        'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4']
    4141field_tolerances=[\
    4242                1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,\
     
    5252        md.results.TransientSolution[0].Surface,\
    5353        md.results.TransientSolution[0].Thickness,\
    54         md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
     54        md.results.TransientSolution[0].SmbMassBalance,\
    5555        md.results.TransientSolution[1].Vx,\
    5656        md.results.TransientSolution[1].Vy,\
     
    6060        md.results.TransientSolution[1].Surface,\
    6161        md.results.TransientSolution[1].Thickness,\
    62         md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
     62        md.results.TransientSolution[1].SmbMassBalance,\
    6363        md.results.TransientSolution[2].Vx,\
    6464        md.results.TransientSolution[2].Vy,\
     
    6868        md.results.TransientSolution[2].Surface,\
    6969        md.results.TransientSolution[2].Thickness,\
    70         md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
     70        md.results.TransientSolution[2].SmbMassBalance,\
    7171        md.results.TransientSolution[3].Vx,\
    7272        md.results.TransientSolution[3].Vy,\
     
    7676        md.results.TransientSolution[3].Surface,\
    7777        md.results.TransientSolution[3].Thickness,\
    78         md.results.TransientSolution[3].SurfaceforcingsMassBalance,\
     78        md.results.TransientSolution[3].SmbMassBalance,\
    7979        ]
  • issm/trunk-jpl/test/NightlyRun/test4001.m

    r19049 r19527  
    483483        md.initialization.temperature=(273.15-20)*ones(md.mesh.numberofvertices,1);
    484484        md.initialization.pressure=md.materials.rho_ice*md.constants.g*(md.geometry.surface-md.geometry.base);
    485         md.surfaceforcings.mass_balance = [1*ones(md.mesh.numberofvertices,1); 1];
     485        md.smb.mass_balance = [1*ones(md.mesh.numberofvertices,1); 1];
    486486
    487487        %Flow law
  • issm/trunk-jpl/test/NightlyRun/test407.m

    r19049 r19527  
    88md.transient.isstressbalance=0;
    99md.transient.ismasstransport=0;
     10md.transient.issmb=0;
    1011md.transient.isthermal=1;
    1112md.transient.isgroundingline=0;
  • issm/trunk-jpl/test/NightlyRun/test407.py

    r19049 r19527  
    1818md.transient.isstressbalance=False
    1919md.transient.ismasstransport=False
     20md.transient.issmb=False
    2021md.transient.isthermal=True
    2122md.transient.isgroundingline=False
  • issm/trunk-jpl/test/NightlyRun/test423.m

    r19049 r19527  
    2121md.transient.isthermal=0;
    2222md.transient.ismasstransport=0;
     23md.transient.issmb=0;
    2324md.transient.isstressbalance=1;
    2425md.transient.isgroundingline=1;
  • issm/trunk-jpl/test/NightlyRun/test423.py

    r19049 r19527  
    3232md.transient.isthermal=False
    3333md.transient.ismasstransport=False
     34md.transient.issmb=False
    3435md.transient.isstressbalance=True
    3536md.transient.isgroundingline=True
  • issm/trunk-jpl/test/NightlyRun/test424.m

    r19049 r19527  
    1010md.geometry.thickness(:)=1000.;
    1111md.geometry.surface=md.geometry.base+md.geometry.thickness;
    12 md.surfaceforcings.mass_balance(:)=100.;
     12md.smb.mass_balance(:)=100.;
    1313md.transient.isstressbalance=0;
    1414md.transient.isgroundingline=1;
  • issm/trunk-jpl/test/NightlyRun/test424.py

    r19049 r19527  
    2020md.geometry.thickness[:]=1000.
    2121md.geometry.surface=md.geometry.base+md.geometry.thickness
    22 md.surfaceforcings.mass_balance[:]=100.
     22md.smb.mass_balance[:]=100.
    2323md.transient.isstressbalance=False
    2424md.transient.isgroundingline=True
  • issm/trunk-jpl/test/NightlyRun/test425.m

    r19049 r19527  
    1010md.geometry.thickness(:)=1300.;
    1111md.geometry.surface=md.geometry.base+md.geometry.thickness;
    12 md.surfaceforcings.mass_balance(:)=-150.;
     12md.smb.mass_balance(:)=-150.;
    1313md.transient.isstressbalance=0;
    1414md.transient.isgroundingline=1;
  • issm/trunk-jpl/test/NightlyRun/test425.py

    r19049 r19527  
    2020md.geometry.thickness[:]=1300.
    2121md.geometry.surface=md.geometry.base+md.geometry.thickness
    22 md.surfaceforcings.mass_balance[:]=-150.
     22md.smb.mass_balance[:]=-150.
    2323md.transient.isstressbalance=False
    2424md.transient.isgroundingline=True
  • issm/trunk-jpl/test/NightlyRun/test426.m

    r19049 r19527  
    99md.geometry.thickness(:)=1000.;
    1010md.geometry.surface=md.geometry.base+md.geometry.thickness;
    11 md.surfaceforcings.mass_balance(:)=100.;
     11md.smb.mass_balance(:)=100.;
    1212md=extrude(md,3,1.);
    1313md=setflowequation(md,'SSA','all');
  • issm/trunk-jpl/test/NightlyRun/test426.py

    r19049 r19527  
    1919md.geometry.thickness[:]=1000.
    2020md.geometry.surface=md.geometry.base+md.geometry.thickness
    21 md.surfaceforcings.mass_balance[:]=100.
     21md.smb.mass_balance[:]=100.
    2222md.extrude(3,1.);
    2323md=setflowequation(md,'SSA','all');
  • issm/trunk-jpl/test/NightlyRun/test427.m

    r19049 r19527  
    1212md=extrude(md,3,1.);
    1313
    14 md.surfaceforcings.mass_balance(:)=-150;
     14md.smb.mass_balance(:)=-150;
    1515md.transient.isstressbalance=0;
    1616md.transient.isgroundingline=1;
  • issm/trunk-jpl/test/NightlyRun/test427.py

    r19049 r19527  
    2222md.extrude(3,1.)
    2323
    24 md.surfaceforcings.mass_balance[:]=-150
     24md.smb.mass_balance[:]=-150
    2525md.transient.isstressbalance=False
    2626md.transient.isgroundingline=True
  • issm/trunk-jpl/test/NightlyRun/test433.m

    r19049 r19527  
    2222md.transient.isthermal=0;
    2323md.transient.ismasstransport=0;
     24md.transient.issmb=0;
    2425md.transient.isstressbalance=0;
    2526md.transient.isgroundingline=1;
  • issm/trunk-jpl/test/NightlyRun/test433.py

    r19049 r19527  
    3333md.transient.isthermal=False
    3434md.transient.ismasstransport=False
     35md.transient.issmb=False
    3536md.transient.isstressbalance=False
    3637md.transient.isgroundingline=True
  • issm/trunk-jpl/test/NightlyRun/test435.m

    r19049 r19527  
    3131md.friction.coefficient(:)=sqrt(10^7)*ones(md.mesh.numberofvertices,1);
    3232md.friction.p=3*ones(md.mesh.numberofelements,1);
    33 md.surfaceforcings.mass_balance(:)=1;
     33md.smb.mass_balance(:)=1;
    3434md.basalforcings.groundedice_melting_rate(:)=0;
    3535md.basalforcings.floatingice_melting_rate(:)=0;
     
    3838md.transient.isgroundingline=1;
    3939md.transient.ismasstransport=1;
     40md.transient.issmb=1;
    4041md.groundingline.migration='SubelementMigration';
    4142md.timestepping.final_time=30;
  • issm/trunk-jpl/test/NightlyRun/test437.m

    r19049 r19527  
    3737%Additional settings
    3838md.transient.ismasstransport=0;
     39md.transient.issmb=0;
    3940md.transient.isstressbalance=0;
    4041md.transient.isthermal=1;
  • issm/trunk-jpl/test/NightlyRun/test515.m

    r19186 r19527  
    99md.transient.isstressbalance=0;
    1010md.transient.ismasstransport=0;
     11md.transient.issmb=0;
    1112md.transient.isthermal=1;
    1213md.transient.isgroundingline=0;
  • issm/trunk-jpl/test/NightlyRun/test515.py

    r19187 r19527  
    1818md.transient.isstressbalance=False
    1919md.transient.ismasstransport=False
     20md.transient.issmb=False
    2021md.transient.isthermal=True
    2122md.transient.isgroundingline=False
  • issm/trunk-jpl/test/NightlyRun/test703.m

    r19049 r19527  
    4343md.timestepping.final_time=0.000005;
    4444md.stressbalance.shelf_dampening=1;
    45 md.surfaceforcings.mass_balance=zeros(md.mesh.numberofvertices,1);
     45md.smb.mass_balance=zeros(md.mesh.numberofvertices,1);
    4646md.basalforcings.groundedice_melting_rate=zeros(md.mesh.numberofvertices,1);
    4747md.basalforcings.floatingice_melting_rate=zeros(md.mesh.numberofvertices,1);
  • issm/trunk-jpl/test/NightlyRun/test801.m

    r19049 r19527  
    1111md.transient.iscalving=1;
    1212md.transient.ismasstransport=1;
     13md.transient.issmb=1;
    1314md.transient.isthermal=0;
    1415md.transient.isgroundingline=1;
  • issm/trunk-jpl/test/NightlyRun/test801.py

    r19049 r19527  
    2121md.transient.iscalving=True
    2222md.transient.ismasstransport=True
     23md.transient.issmb=True
    2324md.transient.isthermal=False
    2425md.transient.isgroundingline=True
  • issm/trunk-jpl/test/NightlyRun/test802.m

    r19049 r19527  
    1616md.transient.iscalving=1;
    1717md.transient.ismasstransport=1;
     18md.transient.issmb=1;
    1819md.transient.isthermal=1;
    1920md.transient.isgroundingline=1;
  • issm/trunk-jpl/test/NightlyRun/test802.py

    r19049 r19527  
    2626md.transient.iscalving=True
    2727md.transient.ismasstransport=True
     28md.transient.issmb=True
    2829md.transient.isthermal=True
    2930md.transient.isgroundingline=True
  • issm/trunk-jpl/test/NightlyRun/test803.m

    r19049 r19527  
    1818md.transient.iscalving=1;
    1919md.transient.ismasstransport=1;
     20md.transient.issmb=1;
    2021md.transient.isthermal=1;
    2122md.transient.isgroundingline=1;
  • issm/trunk-jpl/test/NightlyRun/test803.py

    r19049 r19527  
    2828md.transient.iscalving=True
    2929md.transient.ismasstransport=True
     30md.transient.issmb=True
    3031md.transient.isthermal=True
    3132md.transient.isgroundingline=True
  • issm/trunk-jpl/test/NightlyRun/test804.m

    r19049 r19527  
    1010md.transient.islevelset=1;
    1111md.transient.ismasstransport=1;
     12md.transient.issmb=1;
    1213md.transient.isthermal=0;
    1314md.transient.isgroundingline=1;
  • issm/trunk-jpl/test/NightlyRun/test804.py

    r19049 r19527  
    2020md.transient.islevelset=True
    2121md.transient.ismasstransport=True
     22md.transient.issmb=True
    2223md.transient.isthermal=False
    2324md.transient.isgroundingline=True
  • issm/trunk-jpl/test/NightlyRun/test805.m

    r19049 r19527  
    1717md.transient.islevelset=1;
    1818md.transient.ismasstransport=1;
     19md.transient.issmb=1;
    1920md.transient.isthermal=1;
    2021md.transient.isgroundingline=1;
  • issm/trunk-jpl/test/NightlyRun/test805.py

    r19049 r19527  
    2727md.transient.islevelset=True
    2828md.transient.ismasstransport=True
     29md.transient.issmb=True
    2930md.transient.isthermal=True
    3031md.transient.isgroundingline=True
  • issm/trunk-jpl/test/NightlyRun/test806.m

    r19167 r19527  
    2020md.transient.islevelset=1;
    2121md.transient.ismasstransport=1;
     22md.transient.issmb=1;
    2223md.transient.isthermal=0;
    2324md.transient.isgroundingline=0;
  • issm/trunk-jpl/test/NightlyRun/test806.py

    r19167 r19527  
    3131md.transient.islevelset=True
    3232md.transient.ismasstransport=True
     33md.transient.issmb=True
    3334md.transient.isthermal=False
    3435md.transient.isgroundingline=False
  • issm/trunk-jpl/test/NightlyRun/test807.m

    r19158 r19527  
    2020md.transient.islevelset=1;
    2121md.transient.ismasstransport=1;
     22md.transient.issmb=1;
    2223md.transient.isthermal=0;
    2324md.transient.isgroundingline=0;
  • issm/trunk-jpl/test/NightlyRun/test807.py

    r19167 r19527  
    3131md.transient.islevelset=True
    3232md.transient.ismasstransport=True
     33md.transient.issmb=True
    3334md.transient.isthermal=False
    3435md.transient.isgroundingline=False
  • issm/trunk-jpl/test/Par/79North.par

    r18068 r19527  
    3131md.basalforcings.floatingice_melting_rate(find(md.mask.groundedice_levelset<0.))=0.;
    3232md.basalforcings.groundedice_melting_rate=zeros(md.mesh.numberofvertices,1);
    33 md.surfaceforcings.mass_balance=15.*ones(md.mesh.numberofvertices,1);
     33md.smb.mass_balance=15.*ones(md.mesh.numberofvertices,1);
    3434
    3535%Numerical parameters
  • issm/trunk-jpl/test/Par/79North.py

    r18068 r19527  
    4343md.basalforcings.floatingice_melting_rate[numpy.nonzero(md.mask.groundedice_levelset<0.)[0]]=0.
    4444md.basalforcings.groundedice_melting_rate=numpy.zeros((md.mesh.numberofvertices,1))
    45 md.surfaceforcings.mass_balance=15*numpy.ones((md.mesh.numberofvertices,1))
     45md.smb.mass_balance=15*numpy.ones((md.mesh.numberofvertices,1))
    4646
    4747#Numerical parameters
  • issm/trunk-jpl/test/Par/RoundSheetEISMINT.par

    r17769 r19527  
    2525sb=10^-2/1000.; %m/yr/m
    2626rel=450.*1000.; %m
    27 md.surfaceforcings.mass_balance=min(smb_max,sb*(rel-radius));
     27md.smb.mass_balance=min(smb_max,sb*(rel-radius));
    2828
    2929disp('      creating velocities');
  • issm/trunk-jpl/test/Par/RoundSheetEISMINT.py

    r17769 r19527  
    2828sb=10**-2/1000.    #m/yr/m
    2929rel=450.*1000.    #m
    30 md.surfaceforcings.mass_balance=numpy.minimum(smb_max*numpy.ones_like(radius),sb*(rel-radius))
     30md.smb.mass_balance=numpy.minimum(smb_max*numpy.ones_like(radius),sb*(rel-radius))
    3131
    3232print "      creating velocities"
  • issm/trunk-jpl/test/Par/RoundSheetShelf.par

    r18121 r19527  
    6262
    6363%Surface mass balance and basal melting
    64 md.surfaceforcings.mass_balance=-10.*ones(md.mesh.numberofvertices,1);
     64md.smb.mass_balance=-10.*ones(md.mesh.numberofvertices,1);
    6565md.basalforcings.groundedice_melting_rate=zeros(md.mesh.numberofvertices,1);
    6666pos=find(md.mask.groundedice_levelset>0.);md.basalforcings.groundedice_melting_rate(pos)=10.;
  • issm/trunk-jpl/test/Par/RoundSheetShelf.py

    r18069 r19527  
    6969
    7070#Surface mass balance and basal melting
    71 md.surfaceforcings.mass_balance=-10.*numpy.ones((md.mesh.numberofvertices,1))
     71md.smb.mass_balance=-10.*numpy.ones((md.mesh.numberofvertices,1))
    7272md.basalforcings.groundedice_melting_rate=numpy.zeros((md.mesh.numberofvertices,1))
    7373pos=numpy.nonzero(md.mask.groundedice_levelset>0.)[0]
  • issm/trunk-jpl/test/Par/RoundSheetStaticEISMINT.par

    r17769 r19527  
    2929sb=10^-2/1000.; %m/yr/m
    3030rel=450.*1000.; %m
    31 md.surfaceforcings.mass_balance=min(smb_max,sb*(rel-radius));
     31md.smb.mass_balance=min(smb_max,sb*(rel-radius));
    3232
    3333disp('      creating velocities');
  • issm/trunk-jpl/test/Par/RoundSheetStaticEISMINT.py

    r17769 r19527  
    3232sb=10**-2/1000.    #m/yr/m
    3333rel=450.*1000.    #m
    34 md.surfaceforcings.mass_balance=numpy.minimum(smb_max*numpy.ones_like(radius),sb*(rel-radius))
     34md.smb.mass_balance=numpy.minimum(smb_max*numpy.ones_like(radius),sb*(rel-radius))
    3535
    3636print "      creating velocities"
  • issm/trunk-jpl/test/Par/SquareEISMINT.par

    r18068 r19527  
    2727
    2828disp('      creating surface mass balance');
    29 md.surfaceforcings.mass_balance=0.2*ones(md.mesh.numberofvertices,1); %0m/a
     29md.smb.mass_balance=0.2*ones(md.mesh.numberofvertices,1); %0m/a
    3030md.basalforcings.floatingice_melting_rate=0.*ones(md.mesh.numberofvertices,1); %0m/a
    3131md.basalforcings.groundedice_melting_rate=0.*ones(md.mesh.numberofvertices,1); %0m/a
  • issm/trunk-jpl/test/Par/SquareEISMINT.py

    r18068 r19527  
    3030
    3131print "      creating surface mass balance"
    32 md.surfaceforcings.mass_balance=0.2*numpy.ones((md.mesh.numberofvertices,1))    #0m/a
     32md.smb.mass_balance=0.2*numpy.ones((md.mesh.numberofvertices,1))    #0m/a
    3333md.basalforcings.floatingice_melting_rate=0.*numpy.ones((md.mesh.numberofvertices,1))    #0m/a
    3434md.basalforcings.groundedice_melting_rate=0.*numpy.ones((md.mesh.numberofvertices,1))    #0m/a
  • issm/trunk-jpl/test/Par/SquareSheetShelf.par

    r18068 r19527  
    3333
    3434%Accumulation and melting
    35 md.surfaceforcings.mass_balance=10.*ones(md.mesh.numberofvertices,1);
     35md.smb.mass_balance=10.*ones(md.mesh.numberofvertices,1);
    3636md.basalforcings.groundedice_melting_rate=5.*ones(md.mesh.numberofvertices,1);
    3737md.basalforcings.floatingice_melting_rate=5.*ones(md.mesh.numberofvertices,1);
  • issm/trunk-jpl/test/Par/SquareSheetShelf.py

    r18068 r19527  
    4444
    4545#Accumulation and melting
    46 md.surfaceforcings.mass_balance=10.*numpy.ones((md.mesh.numberofvertices,1))
     46md.smb.mass_balance=10.*numpy.ones((md.mesh.numberofvertices,1))
    4747md.basalforcings.groundedice_melting_rate=5.*numpy.ones((md.mesh.numberofvertices,1))
    4848md.basalforcings.floatingice_melting_rate=5.*numpy.ones((md.mesh.numberofvertices,1))
  • issm/trunk-jpl/test/Par/SquareShelfConstrained.par

    r18068 r19527  
    3030
    3131%Surface mass balance and basal melting
    32 md.surfaceforcings.mass_balance=10*ones(md.mesh.numberofvertices,1);
     32md.smb.mass_balance=10*ones(md.mesh.numberofvertices,1);
    3333md.basalforcings.floatingice_melting_rate=5*ones(md.mesh.numberofvertices,1);
    3434md.basalforcings.groundedice_melting_rate=5*ones(md.mesh.numberofvertices,1);
  • issm/trunk-jpl/test/Par/SquareShelfConstrained.py

    r18068 r19527  
    4141
    4242#Surface mass balance and basal melting
    43 md.surfaceforcings.mass_balance=10.*numpy.ones((md.mesh.numberofvertices,1))
     43md.smb.mass_balance=10.*numpy.ones((md.mesh.numberofvertices,1))
    4444md.basalforcings.groundedice_melting_rate=5.*numpy.ones((md.mesh.numberofvertices,1))
    4545md.basalforcings.floatingice_melting_rate=5.*numpy.ones((md.mesh.numberofvertices,1))
  • issm/trunk-jpl/test/Par/SquareThermal.par

    r18552 r19527  
    3131
    3232disp('      creating surface mass balance');
    33 md.surfaceforcings.mass_balance=ones(md.mesh.numberofvertices,1)/md.constants.yts; %1m/a
     33md.smb.mass_balance=ones(md.mesh.numberofvertices,1)/md.constants.yts; %1m/a
    3434md.basalforcings.groundedice_melting_rate=0.*ones(md.mesh.numberofvertices,1)/md.constants.yts; %1m/a
    3535md.basalforcings.floatingice_melting_rate=0.*ones(md.mesh.numberofvertices,1)/md.constants.yts; %1m/a
  • issm/trunk-jpl/test/Par/SquareThermal.py

    r17769 r19527  
    3232
    3333print "      creating surface mass balance"
    34 md.surfaceforcings.mass_balance=numpy.ones((md.mesh.numberofvertices,1))/md.constants.yts    #1m/a
     34md.smb.mass_balance=numpy.ones((md.mesh.numberofvertices,1))/md.constants.yts    #1m/a
    3535md.basalforcings.melting_rate=0.*numpy.ones((md.mesh.numberofvertices,1))/md.constants.yts    #1m/a
    3636
  • issm/trunk-jpl/test/Par/ValleyGlacierShelf.par

    r19158 r19527  
    4949
    5050%Surface mass balance and basal melting
    51 md.surfaceforcings.mass_balance = 0.3*ones(md.mesh.numberofvertices,1);
    52 md.basalforcings.floatingice_melting_rate = md.surfaceforcings.mass_balance;
    53 md.basalforcings.groundedice_melting_rate = md.surfaceforcings.mass_balance;
     51md.smb.mass_balance = 0.3*ones(md.mesh.numberofvertices,1);
     52md.basalforcings.floatingice_melting_rate = md.smb.mass_balance;
     53md.basalforcings.groundedice_melting_rate = md.smb.mass_balance;
    5454
    5555%Friction
  • issm/trunk-jpl/test/Par/ValleyGlacierShelf.py

    r19158 r19527  
    5656
    5757#Surface mass balance and basal melting
    58 md.surfaceforcings.mass_balance=0.3*numpy.ones((md.mesh.numberofvertices,1))
    59 md.basalforcings.groundedice_melting_rate=md.surfaceforcings.mass_balance
    60 md.basalforcings.floatingice_melting_rate=md.surfaceforcings.mass_balance
     58md.smb.mass_balance=0.3*numpy.ones((md.mesh.numberofvertices,1))
     59md.basalforcings.groundedice_melting_rate=md.smb.mass_balance
     60md.basalforcings.floatingice_melting_rate=md.smb.mass_balance
    6161
    6262#Friction
Note: See TracChangeset for help on using the changeset viewer.