Changeset 17072


Ignore:
Timestamp:
01/09/14 09:51:13 (11 years ago)
Author:
Mathieu Morlighem
Message:

NEW: working on SMB new class for surface mass balance

Location:
issm/trunk-jpl/src
Files:
1 added
10 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp

    r17005 r17072  
    3030void MasstransportAnalysis::UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
    3131
    32         int    stabilization,finiteelement;
     32        int    stabilization,finiteelement,smb_model;
    3333        bool   dakota_analysis;
    3434        bool   issmbgradients;
     
    4040        iomodel->Constant(&stabilization,MasstransportStabilizationEnum);
    4141        iomodel->Constant(&dakota_analysis,QmuIsdakotaEnum);
    42         iomodel->Constant(&ispdd,SurfaceforcingsIspddEnum);
    43         iomodel->Constant(&isdelta18o,SurfaceforcingsIsdelta18oEnum);
    44         iomodel->Constant(&issmbgradients,SurfaceforcingsIssmbgradientsEnum);
     42        iomodel->Constant(&smb_model,SurfaceforcingsEnum);
    4543        iomodel->Constant(&isgroundingline,TransientIsgroundinglineEnum);
    4644
     
    8886        }
    8987
    90         if(issmbgradients){
    91                 iomodel->FetchDataToInput(elements,SurfaceforcingsHrefEnum);
    92                 iomodel->FetchDataToInput(elements,SurfaceforcingsSmbrefEnum);
    93                 iomodel->FetchDataToInput(elements,SurfaceforcingsBPosEnum);
    94                 iomodel->FetchDataToInput(elements,SurfaceforcingsBNegEnum);
    95         }
    96         if(ispdd){
    97                 iomodel->FetchDataToInput(elements,ThermalSpctemperatureEnum);
    98                 if(isdelta18o){
    99                         iomodel->FetchDataToInput(elements,SurfaceforcingsTemperaturesLgmEnum);
    100                         iomodel->FetchDataToInput(elements,SurfaceforcingsTemperaturesPresentdayEnum);
    101                         iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationsPresentdayEnum);
    102                 }
    103                 else{
    104                         iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationEnum);
    105                         iomodel->FetchDataToInput(elements,SurfaceforcingsMonthlytemperaturesEnum);
    106                 }
    107         }
    108         if(~ispdd && ~issmbgradients){
    109                 iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum,0.);
    110         }
     88        switch(smb_model){
     89                case SMBEnum:
     90                        iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum,0.);
     91                        break;
     92                case SurfaceforcingsEnum: /*To Be REMOVED*/
     93                        iomodel->Constant(&ispdd,SurfaceforcingsIspddEnum);
     94                        iomodel->Constant(&isdelta18o,SurfaceforcingsIsdelta18oEnum);
     95                        iomodel->Constant(&issmbgradients,SurfaceforcingsIssmbgradientsEnum);
     96                        if(issmbgradients){
     97                                iomodel->FetchDataToInput(elements,SurfaceforcingsHrefEnum);
     98                                iomodel->FetchDataToInput(elements,SurfaceforcingsSmbrefEnum);
     99                                iomodel->FetchDataToInput(elements,SurfaceforcingsBPosEnum);
     100                                iomodel->FetchDataToInput(elements,SurfaceforcingsBNegEnum);
     101                        }
     102                        if(ispdd){
     103                                iomodel->FetchDataToInput(elements,ThermalSpctemperatureEnum);
     104                                if(isdelta18o){
     105                                        iomodel->FetchDataToInput(elements,SurfaceforcingsTemperaturesLgmEnum);
     106                                        iomodel->FetchDataToInput(elements,SurfaceforcingsTemperaturesPresentdayEnum);
     107                                        iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationsPresentdayEnum);
     108                                }
     109                                else{
     110                                        iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationEnum);
     111                                        iomodel->FetchDataToInput(elements,SurfaceforcingsMonthlytemperaturesEnum);
     112                                }
     113                        }
     114                        if(~ispdd && ~issmbgradients){
     115                                iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum,0.);
     116                        }
     117                        break;
     118                default:
     119                        _error_("Surface mass balance model "<<EnumToStringx(smb_model)<<" not supported yet");
     120        }
     121
    111122}/*}}}*/
    112123void MasstransportAnalysis::CreateNodes(Nodes* nodes,IoModel* iomodel){/*{{{*/
  • issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp

    r17021 r17072  
    2323        bool ispdd;
    2424        bool isefficientlayer;
    25         int  hydrology_model;
     25        int  hydrology_model,smb_model;
    2626        iomodel->Constant(&hydrology_model,HydrologyModelEnum);
    27         iomodel->Constant(&ispdd,SurfaceforcingsIspddEnum);
     27        iomodel->Constant(&smb_model,SurfaceforcingsEnum);
    2828
    2929        this->mid = matpar_mid;
     
    4343        iomodel->Constant(&this->g,ConstantsGEnum);
    4444
    45         if(ispdd){
    46                 iomodel->Constant(&this->desfac,SurfaceforcingsDesfacEnum);
    47                 iomodel->Constant(&this->s0p,SurfaceforcingsS0pEnum);
     45        switch(smb_model){
     46                case SMBEnum:
     47                        /*Nothing to add*/
     48                        break;
     49                case SurfaceforcingsEnum: /*To Be REMOVED*/
     50                        iomodel->Constant(&ispdd,SurfaceforcingsIspddEnum);
     51                        if(ispdd){
     52                                iomodel->Constant(&this->desfac,SurfaceforcingsDesfacEnum);
     53                                iomodel->Constant(&this->s0p,SurfaceforcingsS0pEnum);
     54                        }
     55                        break;
     56                default:
     57                        _error_("Surface mass balance model "<<EnumToStringx(smb_model)<<" not supported yet");
    4858        }
    4959
  • issm/trunk-jpl/src/c/cores/masstransport_core.cpp

    r16742 r17072  
    1414        /*parameters: */
    1515        int    i;
    16         int    numoutputs,meshtype;
     16        int    numoutputs,meshtype,smb_model;
    1717        bool   save_results;
    1818        bool   issmbgradients,ispdd,isdelta18o,isFS,isfreesurface,dakota_analysis;
     
    2525        /*recover parameters: */
    2626        femmodel->parameters->FindParam(&save_results,SaveResultsEnum);
    27         femmodel->parameters->FindParam(&issmbgradients,SurfaceforcingsIssmbgradientsEnum);
    28         femmodel->parameters->FindParam(&ispdd,SurfaceforcingsIspddEnum);
    29         femmodel->parameters->FindParam(&isdelta18o,SurfaceforcingsIsdelta18oEnum);
     27        femmodel->parameters->FindParam(&smb_model,SurfaceforcingsEnum);
    3028        femmodel->parameters->FindParam(&isFS,FlowequationIsFSEnum);
    3129        femmodel->parameters->FindParam(&isfreesurface,MasstransportIsfreesurfaceEnum);
     
    4341        }
    4442
    45         if(issmbgradients){
    46           if(VerboseSolution())_printf_("       call smb gradients module\n\n");
    47           SmbGradientsx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters);
    48         }
    49         if(ispdd){
    50                 if(isdelta18o){
    51                         if(VerboseSolution()) _printf0_("   call Delta18oParametrization module\n");
    52                         Delta18oParameterizationx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters);
    53                 }
    54                 if(VerboseSolution()) _printf0_("   call positive degree day module\n");
    55                 PositiveDegreeDayx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters);
     43        switch(smb_model){
     44                case SMBEnum:
     45                        /*Nothing to be done*/
     46                        break;
     47                case SurfaceforcingsEnum: /*To Be REMOVED*/
     48                        femmodel->parameters->FindParam(&issmbgradients,SurfaceforcingsIssmbgradientsEnum);
     49                        femmodel->parameters->FindParam(&ispdd,SurfaceforcingsIspddEnum);
     50                        femmodel->parameters->FindParam(&isdelta18o,SurfaceforcingsIsdelta18oEnum);
     51                        if(issmbgradients){
     52                                if(VerboseSolution())_printf_(" call smb gradients module\n\n");
     53                                SmbGradientsx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters);
     54                        }
     55                        if(ispdd){
     56                                if(isdelta18o){
     57                                        if(VerboseSolution()) _printf0_("   call Delta18oParametrization module\n");
     58                                        Delta18oParameterizationx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters);
     59                                }
     60                                if(VerboseSolution()) _printf0_("   call positive degree day module\n");
     61                                PositiveDegreeDayx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters);
     62                        }
     63                        break;
     64                default:
     65                        _error_("Surface mass balance model "<<EnumToStringx(smb_model)<<" not supported yet");
    5666        }
    5767
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r17055 r17072  
    1919
    2020        int         i,j,m,k;
    21         int         numoutputs,meshtype;
     21        int         numoutputs,meshtype,smb_model;
    2222        char**      requestedoutputs = NULL;
    2323        IssmDouble  time;
     
    7272        parameters->AddObject(iomodel->CopyConstantObject(InversionIscontrolEnum));
    7373        parameters->AddObject(iomodel->CopyConstantObject(InversionTaoEnum));
    74         parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIspddEnum));
    75         parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsdelta18oEnum));
    76         parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIssmbgradientsEnum));
    7774        parameters->AddObject(iomodel->CopyConstantObject(GiaCrossSectionShapeEnum));
    7875
     
    8784         parameters->AddObject(iomodel->CopyConstantObject(MeshNumberoflayersEnum));
    8885
    89         iomodel->Constant(&ispdd,SurfaceforcingsIspddEnum);
    90         if(ispdd){
    91 
    92                 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsDesfacEnum));
    93                 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsS0pEnum));
    94 
    95                 iomodel->Constant(&isdelta18o,SurfaceforcingsIsdelta18oEnum);
    96                 if(isdelta18o){
    97                         IssmDouble *temp = NULL;
    98                         IssmDouble  yts;
    99                         int         N,M;
    100 
    101                         iomodel->Constant(&yts,ConstantsYtsEnum);
    102 
    103                         iomodel->FetchData(&temp,&N,&M,SurfaceforcingsDelta18oEnum); _assert_(N==2);
    104                         for(i=0;i<M;i++) temp[M+i]=yts*temp[M+i];
    105                         parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oEnum,&temp[0],&temp[M],M));
    106                         iomodel->DeleteData(temp,SurfaceforcingsDelta18oEnum);
    107 
    108                         iomodel->FetchData(&temp,&N,&M,SurfaceforcingsDelta18oSurfaceEnum); _assert_(N==2);
    109                         for(i=0;i<M;i++) temp[M+i]=yts*temp[M+i];
    110                         parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oSurfaceEnum,&temp[0],&temp[M],M));
    111                         iomodel->DeleteData(temp,SurfaceforcingsDelta18oSurfaceEnum);
    112                 }
     86        /*Surface mass balance parameters*/
     87        parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsEnum));
     88        iomodel->Constant(&smb_model,SurfaceforcingsEnum);
     89        switch(smb_model){
     90                case SMBEnum:
     91                        /*Nothing to add to parameters*/
     92                        break;
     93                case SurfaceforcingsEnum: /*To Be REMOVED*/
     94                        parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIspddEnum));
     95                        parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsdelta18oEnum));
     96                        parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIssmbgradientsEnum));
     97                        iomodel->Constant(&ispdd,SurfaceforcingsIspddEnum);
     98                        if(ispdd){
     99                                parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsDesfacEnum));
     100                                parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsS0pEnum));
     101                                iomodel->Constant(&isdelta18o,SurfaceforcingsIsdelta18oEnum);
     102                                if(isdelta18o){
     103                                        IssmDouble *temp = NULL;
     104                                        IssmDouble  yts;
     105                                        int         N,M;
     106                                        iomodel->Constant(&yts,ConstantsYtsEnum);
     107                                        iomodel->FetchData(&temp,&N,&M,SurfaceforcingsDelta18oEnum); _assert_(N==2);
     108                                        for(i=0;i<M;i++) temp[M+i]=yts*temp[M+i];
     109                                        parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oEnum,&temp[0],&temp[M],M));
     110                                        iomodel->DeleteData(temp,SurfaceforcingsDelta18oEnum);
     111
     112                                        iomodel->FetchData(&temp,&N,&M,SurfaceforcingsDelta18oSurfaceEnum); _assert_(N==2);
     113                                        for(i=0;i<M;i++) temp[M+i]=yts*temp[M+i];
     114                                        parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oSurfaceEnum,&temp[0],&temp[M],M));
     115                                        iomodel->DeleteData(temp,SurfaceforcingsDelta18oSurfaceEnum);
     116                                }
     117                        }
     118                        break;
     119                default:
     120                        _error_("Surface mass balance model "<<EnumToStringx(smb_model)<<" not supported yet");
    113121        }
    114122
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r17038 r17072  
    237237        SettingsOutputFrequencyEnum,
    238238        SettingsWaitonlockEnum,
    239         SurfaceforcingsDelta18oEnum,
    240         SurfaceforcingsDelta18oSurfaceEnum,
    241         SurfaceforcingsIsdelta18oEnum,
    242         SurfaceforcingsPrecipitationsPresentdayEnum,
    243         SurfaceforcingsTemperaturesPresentdayEnum,
    244         SurfaceforcingsTemperaturesLgmEnum,
     239
    245240        DebugProfilingEnum,
    246241        ProfilingCurrentMemEnum,
     
    253248        SteadystateRequestedOutputsEnum,
    254249        SurfaceEnum,
    255         SurfaceforcingsPrecipitationEnum,
    256         SurfaceforcingsMassBalanceEnum,
    257         SurfaceforcingsIspddEnum,
    258         SurfaceforcingsDesfacEnum,
    259         SurfaceforcingsS0pEnum,
    260         SurfaceforcingsIssmbgradientsEnum,
    261         SurfaceforcingsMonthlytemperaturesEnum,
    262         SurfaceforcingsHrefEnum,
    263         SurfaceforcingsSmbrefEnum,
    264         SurfaceforcingsBPosEnum,
    265         SurfaceforcingsBNegEnum,
     250
    266251        ThermalIsenthalpyEnum,
    267252        ThermalIsdynamicbasalspcEnum,
     
    290275        TransientNumRequestedOutputsEnum,
    291276        TransientRequestedOutputsEnum,
     277        /*}}}*/
     278        /*Surfaceforcings{{{*/
     279        SurfaceforcingsEnum,
     280        SMBEnum,
     281        SurfaceforcingsMassBalanceEnum,
     282
     283        SurfaceforcingsDelta18oEnum,
     284        SurfaceforcingsDelta18oSurfaceEnum,
     285        SurfaceforcingsIsdelta18oEnum,
     286        SurfaceforcingsPrecipitationsPresentdayEnum,
     287        SurfaceforcingsTemperaturesPresentdayEnum,
     288        SurfaceforcingsTemperaturesLgmEnum,
     289        SurfaceforcingsPrecipitationEnum,
     290        SurfaceforcingsIspddEnum,
     291        SurfaceforcingsDesfacEnum,
     292        SurfaceforcingsS0pEnum,
     293        SurfaceforcingsIssmbgradientsEnum,
     294        SurfaceforcingsMonthlytemperaturesEnum,
     295        SurfaceforcingsHrefEnum,
     296        SurfaceforcingsSmbrefEnum,
     297        SurfaceforcingsBPosEnum,
     298        SurfaceforcingsBNegEnum,
    292299        /*}}}*/
    293300        /*Solutions and Analyses{{{ */
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r17038 r17072  
    245245                case SettingsOutputFrequencyEnum : return "SettingsOutputFrequency";
    246246                case SettingsWaitonlockEnum : return "SettingsWaitonlock";
    247                 case SurfaceforcingsDelta18oEnum : return "SurfaceforcingsDelta18o";
    248                 case SurfaceforcingsDelta18oSurfaceEnum : return "SurfaceforcingsDelta18oSurface";
    249                 case SurfaceforcingsIsdelta18oEnum : return "SurfaceforcingsIsdelta18o";
    250                 case SurfaceforcingsPrecipitationsPresentdayEnum : return "SurfaceforcingsPrecipitationsPresentday";
    251                 case SurfaceforcingsTemperaturesPresentdayEnum : return "SurfaceforcingsTemperaturesPresentday";
    252                 case SurfaceforcingsTemperaturesLgmEnum : return "SurfaceforcingsTemperaturesLgm";
    253247                case DebugProfilingEnum : return "DebugProfiling";
    254248                case ProfilingCurrentMemEnum : return "ProfilingCurrentMem";
     
    261255                case SteadystateRequestedOutputsEnum : return "SteadystateRequestedOutputs";
    262256                case SurfaceEnum : return "Surface";
    263                 case SurfaceforcingsPrecipitationEnum : return "SurfaceforcingsPrecipitation";
    264                 case SurfaceforcingsMassBalanceEnum : return "SurfaceforcingsMassBalance";
    265                 case SurfaceforcingsIspddEnum : return "SurfaceforcingsIspdd";
    266                 case SurfaceforcingsDesfacEnum : return "SurfaceforcingsDesfac";
    267                 case SurfaceforcingsS0pEnum : return "SurfaceforcingsS0p";
    268                 case SurfaceforcingsIssmbgradientsEnum : return "SurfaceforcingsIssmbgradients";
    269                 case SurfaceforcingsMonthlytemperaturesEnum : return "SurfaceforcingsMonthlytemperatures";
    270                 case SurfaceforcingsHrefEnum : return "SurfaceforcingsHref";
    271                 case SurfaceforcingsSmbrefEnum : return "SurfaceforcingsSmbref";
    272                 case SurfaceforcingsBPosEnum : return "SurfaceforcingsBPos";
    273                 case SurfaceforcingsBNegEnum : return "SurfaceforcingsBNeg";
    274257                case ThermalIsenthalpyEnum : return "ThermalIsenthalpy";
    275258                case ThermalIsdynamicbasalspcEnum : return "ThermalIsdynamicbasalspc";
     
    298281                case TransientNumRequestedOutputsEnum : return "TransientNumRequestedOutputs";
    299282                case TransientRequestedOutputsEnum : return "TransientRequestedOutputs";
     283                case SurfaceforcingsEnum : return "Surfaceforcings";
     284                case SMBEnum : return "SMB";
     285                case SurfaceforcingsMassBalanceEnum : return "SurfaceforcingsMassBalance";
     286                case SurfaceforcingsDelta18oEnum : return "SurfaceforcingsDelta18o";
     287                case SurfaceforcingsDelta18oSurfaceEnum : return "SurfaceforcingsDelta18oSurface";
     288                case SurfaceforcingsIsdelta18oEnum : return "SurfaceforcingsIsdelta18o";
     289                case SurfaceforcingsPrecipitationsPresentdayEnum : return "SurfaceforcingsPrecipitationsPresentday";
     290                case SurfaceforcingsTemperaturesPresentdayEnum : return "SurfaceforcingsTemperaturesPresentday";
     291                case SurfaceforcingsTemperaturesLgmEnum : return "SurfaceforcingsTemperaturesLgm";
     292                case SurfaceforcingsPrecipitationEnum : return "SurfaceforcingsPrecipitation";
     293                case SurfaceforcingsIspddEnum : return "SurfaceforcingsIspdd";
     294                case SurfaceforcingsDesfacEnum : return "SurfaceforcingsDesfac";
     295                case SurfaceforcingsS0pEnum : return "SurfaceforcingsS0p";
     296                case SurfaceforcingsIssmbgradientsEnum : return "SurfaceforcingsIssmbgradients";
     297                case SurfaceforcingsMonthlytemperaturesEnum : return "SurfaceforcingsMonthlytemperatures";
     298                case SurfaceforcingsHrefEnum : return "SurfaceforcingsHref";
     299                case SurfaceforcingsSmbrefEnum : return "SurfaceforcingsSmbref";
     300                case SurfaceforcingsBPosEnum : return "SurfaceforcingsBPos";
     301                case SurfaceforcingsBNegEnum : return "SurfaceforcingsBNeg";
    300302                case SolutionTypeEnum : return "SolutionType";
    301303                case AnalysisTypeEnum : return "AnalysisType";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r17038 r17072  
    248248              else if (strcmp(name,"SettingsOutputFrequency")==0) return SettingsOutputFrequencyEnum;
    249249              else if (strcmp(name,"SettingsWaitonlock")==0) return SettingsWaitonlockEnum;
    250               else if (strcmp(name,"SurfaceforcingsDelta18o")==0) return SurfaceforcingsDelta18oEnum;
    251               else if (strcmp(name,"SurfaceforcingsDelta18oSurface")==0) return SurfaceforcingsDelta18oSurfaceEnum;
    252               else if (strcmp(name,"SurfaceforcingsIsdelta18o")==0) return SurfaceforcingsIsdelta18oEnum;
    253               else if (strcmp(name,"SurfaceforcingsPrecipitationsPresentday")==0) return SurfaceforcingsPrecipitationsPresentdayEnum;
    254               else if (strcmp(name,"SurfaceforcingsTemperaturesPresentday")==0) return SurfaceforcingsTemperaturesPresentdayEnum;
    255               else if (strcmp(name,"SurfaceforcingsTemperaturesLgm")==0) return SurfaceforcingsTemperaturesLgmEnum;
    256250              else if (strcmp(name,"DebugProfiling")==0) return DebugProfilingEnum;
    257251              else if (strcmp(name,"ProfilingCurrentMem")==0) return ProfilingCurrentMemEnum;
     
    260254              else if (strcmp(name,"MaxIterationConvergenceFlag")==0) return MaxIterationConvergenceFlagEnum;
    261255              else if (strcmp(name,"SteadystateMaxiter")==0) return SteadystateMaxiterEnum;
     256              else if (strcmp(name,"SteadystateNumRequestedOutputs")==0) return SteadystateNumRequestedOutputsEnum;
     257              else if (strcmp(name,"SteadystateReltol")==0) return SteadystateReltolEnum;
     258              else if (strcmp(name,"SteadystateRequestedOutputs")==0) return SteadystateRequestedOutputsEnum;
     259              else if (strcmp(name,"Surface")==0) return SurfaceEnum;
     260              else if (strcmp(name,"ThermalIsenthalpy")==0) return ThermalIsenthalpyEnum;
     261              else if (strcmp(name,"ThermalIsdynamicbasalspc")==0) return ThermalIsdynamicbasalspcEnum;
    262262         else stage=3;
    263263   }
    264264   if(stage==3){
    265               if (strcmp(name,"SteadystateNumRequestedOutputs")==0) return SteadystateNumRequestedOutputsEnum;
    266               else if (strcmp(name,"SteadystateReltol")==0) return SteadystateReltolEnum;
    267               else if (strcmp(name,"SteadystateRequestedOutputs")==0) return SteadystateRequestedOutputsEnum;
    268               else if (strcmp(name,"Surface")==0) return SurfaceEnum;
    269               else if (strcmp(name,"SurfaceforcingsPrecipitation")==0) return SurfaceforcingsPrecipitationEnum;
    270               else if (strcmp(name,"SurfaceforcingsMassBalance")==0) return SurfaceforcingsMassBalanceEnum;
    271               else if (strcmp(name,"SurfaceforcingsIspdd")==0) return SurfaceforcingsIspddEnum;
    272               else if (strcmp(name,"SurfaceforcingsDesfac")==0) return SurfaceforcingsDesfacEnum;
    273               else if (strcmp(name,"SurfaceforcingsS0p")==0) return SurfaceforcingsS0pEnum;
    274               else if (strcmp(name,"SurfaceforcingsIssmbgradients")==0) return SurfaceforcingsIssmbgradientsEnum;
    275               else if (strcmp(name,"SurfaceforcingsMonthlytemperatures")==0) return SurfaceforcingsMonthlytemperaturesEnum;
    276               else if (strcmp(name,"SurfaceforcingsHref")==0) return SurfaceforcingsHrefEnum;
    277               else if (strcmp(name,"SurfaceforcingsSmbref")==0) return SurfaceforcingsSmbrefEnum;
    278               else if (strcmp(name,"SurfaceforcingsBPos")==0) return SurfaceforcingsBPosEnum;
    279               else if (strcmp(name,"SurfaceforcingsBNeg")==0) return SurfaceforcingsBNegEnum;
    280               else if (strcmp(name,"ThermalIsenthalpy")==0) return ThermalIsenthalpyEnum;
    281               else if (strcmp(name,"ThermalIsdynamicbasalspc")==0) return ThermalIsdynamicbasalspcEnum;
    282               else if (strcmp(name,"ThermalMaxiter")==0) return ThermalMaxiterEnum;
     265              if (strcmp(name,"ThermalMaxiter")==0) return ThermalMaxiterEnum;
    283266              else if (strcmp(name,"ThermalPenaltyFactor")==0) return ThermalPenaltyFactorEnum;
    284267              else if (strcmp(name,"ThermalPenaltyLock")==0) return ThermalPenaltyLockEnum;
     
    304287              else if (strcmp(name,"TransientNumRequestedOutputs")==0) return TransientNumRequestedOutputsEnum;
    305288              else if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum;
     289              else if (strcmp(name,"Surfaceforcings")==0) return SurfaceforcingsEnum;
     290              else if (strcmp(name,"SMB")==0) return SMBEnum;
     291              else if (strcmp(name,"SurfaceforcingsMassBalance")==0) return SurfaceforcingsMassBalanceEnum;
     292              else if (strcmp(name,"SurfaceforcingsDelta18o")==0) return SurfaceforcingsDelta18oEnum;
     293              else if (strcmp(name,"SurfaceforcingsDelta18oSurface")==0) return SurfaceforcingsDelta18oSurfaceEnum;
     294              else if (strcmp(name,"SurfaceforcingsIsdelta18o")==0) return SurfaceforcingsIsdelta18oEnum;
     295              else if (strcmp(name,"SurfaceforcingsPrecipitationsPresentday")==0) return SurfaceforcingsPrecipitationsPresentdayEnum;
     296              else if (strcmp(name,"SurfaceforcingsTemperaturesPresentday")==0) return SurfaceforcingsTemperaturesPresentdayEnum;
     297              else if (strcmp(name,"SurfaceforcingsTemperaturesLgm")==0) return SurfaceforcingsTemperaturesLgmEnum;
     298              else if (strcmp(name,"SurfaceforcingsPrecipitation")==0) return SurfaceforcingsPrecipitationEnum;
     299              else if (strcmp(name,"SurfaceforcingsIspdd")==0) return SurfaceforcingsIspddEnum;
     300              else if (strcmp(name,"SurfaceforcingsDesfac")==0) return SurfaceforcingsDesfacEnum;
     301              else if (strcmp(name,"SurfaceforcingsS0p")==0) return SurfaceforcingsS0pEnum;
     302              else if (strcmp(name,"SurfaceforcingsIssmbgradients")==0) return SurfaceforcingsIssmbgradientsEnum;
     303              else if (strcmp(name,"SurfaceforcingsMonthlytemperatures")==0) return SurfaceforcingsMonthlytemperaturesEnum;
     304              else if (strcmp(name,"SurfaceforcingsHref")==0) return SurfaceforcingsHrefEnum;
     305              else if (strcmp(name,"SurfaceforcingsSmbref")==0) return SurfaceforcingsSmbrefEnum;
     306              else if (strcmp(name,"SurfaceforcingsBPos")==0) return SurfaceforcingsBPosEnum;
     307              else if (strcmp(name,"SurfaceforcingsBNeg")==0) return SurfaceforcingsBNegEnum;
    306308              else if (strcmp(name,"SolutionType")==0) return SolutionTypeEnum;
    307309              else if (strcmp(name,"AnalysisType")==0) return AnalysisTypeEnum;
     
    381383              else if (strcmp(name,"DatasetInput")==0) return DatasetInputEnum;
    382384              else if (strcmp(name,"DoubleInput")==0) return DoubleInputEnum;
    383               else if (strcmp(name,"DataSetParam")==0) return DataSetParamEnum;
    384               else if (strcmp(name,"DoubleMatArrayParam")==0) return DoubleMatArrayParamEnum;
    385385         else stage=4;
    386386   }
    387387   if(stage==4){
    388               if (strcmp(name,"DoubleMatParam")==0) return DoubleMatParamEnum;
     388              if (strcmp(name,"DataSetParam")==0) return DataSetParamEnum;
     389              else if (strcmp(name,"DoubleMatArrayParam")==0) return DoubleMatArrayParamEnum;
     390              else if (strcmp(name,"DoubleMatParam")==0) return DoubleMatParamEnum;
    389391              else if (strcmp(name,"DoubleParam")==0) return DoubleParamEnum;
    390392              else if (strcmp(name,"DoubleVecParam")==0) return DoubleVecParamEnum;
     
    504506              else if (strcmp(name,"RheologyBbarAbsGradient")==0) return RheologyBbarAbsGradientEnum;
    505507              else if (strcmp(name,"DragCoefficientAbsGradient")==0) return DragCoefficientAbsGradientEnum;
    506               else if (strcmp(name,"TransientInput")==0) return TransientInputEnum;
    507               else if (strcmp(name,"Waterfraction")==0) return WaterfractionEnum;
    508508         else stage=5;
    509509   }
    510510   if(stage==5){
    511               if (strcmp(name,"Watercolumn")==0) return WatercolumnEnum;
     511              if (strcmp(name,"TransientInput")==0) return TransientInputEnum;
     512              else if (strcmp(name,"Waterfraction")==0) return WaterfractionEnum;
     513              else if (strcmp(name,"Watercolumn")==0) return WatercolumnEnum;
    512514              else if (strcmp(name,"BasalFriction")==0) return BasalFrictionEnum;
    513515              else if (strcmp(name,"ViscousHeating")==0) return ViscousHeatingEnum;
     
    627629              else if (strcmp(name,"Dense")==0) return DenseEnum;
    628630              else if (strcmp(name,"MpiDense")==0) return MpiDenseEnum;
    629               else if (strcmp(name,"MpiSparse")==0) return MpiSparseEnum;
    630               else if (strcmp(name,"Seq")==0) return SeqEnum;
    631631         else stage=6;
    632632   }
    633633   if(stage==6){
    634               if (strcmp(name,"Mpi")==0) return MpiEnum;
     634              if (strcmp(name,"MpiSparse")==0) return MpiSparseEnum;
     635              else if (strcmp(name,"Seq")==0) return SeqEnum;
     636              else if (strcmp(name,"Mpi")==0) return MpiEnum;
    635637              else if (strcmp(name,"Mumps")==0) return MumpsEnum;
    636638              else if (strcmp(name,"Gsl")==0) return GslEnum;
  • issm/trunk-jpl/src/m/classes/surfaceforcings.m

    r17071 r17072  
    116116                        yts=365.0*24.0*3600.0;
    117117
     118                        WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SurfaceforcingsEnum(),'format','Integer');
     119
    118120                        WriteData(fid,'object',obj,'fieldname','precipitation','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1);
    119121                        WriteData(fid,'object',obj,'fieldname','mass_balance','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1);
  • issm/trunk-jpl/src/m/classes/surfaceforcings.py

    r17071 r17072  
    115115                yts=365.0*24.0*3600.0
    116116
     117                WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SurfaceforcingsEnum(),'format','Integer');
     118
    117119                WriteData(fid,'object',self,'fieldname','precipitation','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1)
    118120                WriteData(fid,'object',self,'fieldname','mass_balance','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1)
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r17038 r17072  
    237237def SettingsOutputFrequencyEnum(): return StringToEnum("SettingsOutputFrequency")[0]
    238238def SettingsWaitonlockEnum(): return StringToEnum("SettingsWaitonlock")[0]
    239 def SurfaceforcingsDelta18oEnum(): return StringToEnum("SurfaceforcingsDelta18o")[0]
    240 def SurfaceforcingsDelta18oSurfaceEnum(): return StringToEnum("SurfaceforcingsDelta18oSurface")[0]
    241 def SurfaceforcingsIsdelta18oEnum(): return StringToEnum("SurfaceforcingsIsdelta18o")[0]
    242 def SurfaceforcingsPrecipitationsPresentdayEnum(): return StringToEnum("SurfaceforcingsPrecipitationsPresentday")[0]
    243 def SurfaceforcingsTemperaturesPresentdayEnum(): return StringToEnum("SurfaceforcingsTemperaturesPresentday")[0]
    244 def SurfaceforcingsTemperaturesLgmEnum(): return StringToEnum("SurfaceforcingsTemperaturesLgm")[0]
    245239def DebugProfilingEnum(): return StringToEnum("DebugProfiling")[0]
    246240def ProfilingCurrentMemEnum(): return StringToEnum("ProfilingCurrentMem")[0]
     
    253247def SteadystateRequestedOutputsEnum(): return StringToEnum("SteadystateRequestedOutputs")[0]
    254248def SurfaceEnum(): return StringToEnum("Surface")[0]
    255 def SurfaceforcingsPrecipitationEnum(): return StringToEnum("SurfaceforcingsPrecipitation")[0]
    256 def SurfaceforcingsMassBalanceEnum(): return StringToEnum("SurfaceforcingsMassBalance")[0]
    257 def SurfaceforcingsIspddEnum(): return StringToEnum("SurfaceforcingsIspdd")[0]
    258 def SurfaceforcingsDesfacEnum(): return StringToEnum("SurfaceforcingsDesfac")[0]
    259 def SurfaceforcingsS0pEnum(): return StringToEnum("SurfaceforcingsS0p")[0]
    260 def SurfaceforcingsIssmbgradientsEnum(): return StringToEnum("SurfaceforcingsIssmbgradients")[0]
    261 def SurfaceforcingsMonthlytemperaturesEnum(): return StringToEnum("SurfaceforcingsMonthlytemperatures")[0]
    262 def SurfaceforcingsHrefEnum(): return StringToEnum("SurfaceforcingsHref")[0]
    263 def SurfaceforcingsSmbrefEnum(): return StringToEnum("SurfaceforcingsSmbref")[0]
    264 def SurfaceforcingsBPosEnum(): return StringToEnum("SurfaceforcingsBPos")[0]
    265 def SurfaceforcingsBNegEnum(): return StringToEnum("SurfaceforcingsBNeg")[0]
    266249def ThermalIsenthalpyEnum(): return StringToEnum("ThermalIsenthalpy")[0]
    267250def ThermalIsdynamicbasalspcEnum(): return StringToEnum("ThermalIsdynamicbasalspc")[0]
     
    290273def TransientNumRequestedOutputsEnum(): return StringToEnum("TransientNumRequestedOutputs")[0]
    291274def TransientRequestedOutputsEnum(): return StringToEnum("TransientRequestedOutputs")[0]
     275def SurfaceforcingsEnum(): return StringToEnum("Surfaceforcings")[0]
     276def SMBEnum(): return StringToEnum("SMB")[0]
     277def SurfaceforcingsMassBalanceEnum(): return StringToEnum("SurfaceforcingsMassBalance")[0]
     278def SurfaceforcingsDelta18oEnum(): return StringToEnum("SurfaceforcingsDelta18o")[0]
     279def SurfaceforcingsDelta18oSurfaceEnum(): return StringToEnum("SurfaceforcingsDelta18oSurface")[0]
     280def SurfaceforcingsIsdelta18oEnum(): return StringToEnum("SurfaceforcingsIsdelta18o")[0]
     281def SurfaceforcingsPrecipitationsPresentdayEnum(): return StringToEnum("SurfaceforcingsPrecipitationsPresentday")[0]
     282def SurfaceforcingsTemperaturesPresentdayEnum(): return StringToEnum("SurfaceforcingsTemperaturesPresentday")[0]
     283def SurfaceforcingsTemperaturesLgmEnum(): return StringToEnum("SurfaceforcingsTemperaturesLgm")[0]
     284def SurfaceforcingsPrecipitationEnum(): return StringToEnum("SurfaceforcingsPrecipitation")[0]
     285def SurfaceforcingsIspddEnum(): return StringToEnum("SurfaceforcingsIspdd")[0]
     286def SurfaceforcingsDesfacEnum(): return StringToEnum("SurfaceforcingsDesfac")[0]
     287def SurfaceforcingsS0pEnum(): return StringToEnum("SurfaceforcingsS0p")[0]
     288def SurfaceforcingsIssmbgradientsEnum(): return StringToEnum("SurfaceforcingsIssmbgradients")[0]
     289def SurfaceforcingsMonthlytemperaturesEnum(): return StringToEnum("SurfaceforcingsMonthlytemperatures")[0]
     290def SurfaceforcingsHrefEnum(): return StringToEnum("SurfaceforcingsHref")[0]
     291def SurfaceforcingsSmbrefEnum(): return StringToEnum("SurfaceforcingsSmbref")[0]
     292def SurfaceforcingsBPosEnum(): return StringToEnum("SurfaceforcingsBPos")[0]
     293def SurfaceforcingsBNegEnum(): return StringToEnum("SurfaceforcingsBNeg")[0]
    292294def SolutionTypeEnum(): return StringToEnum("SolutionType")[0]
    293295def AnalysisTypeEnum(): return StringToEnum("AnalysisType")[0]
Note: See TracChangeset for help on using the changeset viewer.