Changeset 20036 for issm/trunk-jpl/src


Ignore:
Timestamp:
01/30/16 21:55:21 (9 years ago)
Author:
Eric.Larour
Message:

CHG: added requested outputs for slr solution.

Location:
issm/trunk-jpl/src
Files:
2 added
7 edited

Legend:

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

    r20034 r20036  
    4848        int         M,m,lower_row,upper_row;
    4949        IssmDouble  degacc=.01;
     50
     51        int     numoutputs;
     52        char**  requestedoutputs = NULL;
    5053
    5154        /*some constant parameters: */
     
    144147                xDelete<IssmDouble>(G_elastic_local);
    145148        }
     149       
     150        /*Requested outputs*/
     151        iomodel->FetchData(&requestedoutputs,&numoutputs,SealevelriseRequestedOutputsEnum);
     152        parameters->AddObject(new IntParam(SealevelriseNumRequestedOutputsEnum,numoutputs));
     153        if(numoutputs)parameters->AddObject(new StringArrayParam(SealevelriseRequestedOutputsEnum,requestedoutputs,numoutputs));
     154        iomodel->DeleteData(&requestedoutputs,numoutputs,SealevelriseRequestedOutputsEnum);
     155
    146156
    147157}/*}}}*/
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r20033 r20036  
    10491049        SealevelriseGElasticEnum,
    10501050        SealevelriseDegaccEnum,
     1051        SealevelriseRequestedOutputsEnum,
     1052        SealevelriseNumRequestedOutputsEnum,
    10511053        /*}}}*/
    10521054        MaximumNumberOfDefinitionsEnum
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r20033 r20036  
    10031003                case SealevelriseGElasticEnum : return "SealevelriseGElastic";
    10041004                case SealevelriseDegaccEnum : return "SealevelriseDegacc";
     1005                case SealevelriseRequestedOutputsEnum : return "SealevelriseRequestedOutputs";
     1006                case SealevelriseNumRequestedOutputsEnum : return "SealevelriseNumRequestedOutputs";
    10051007                case MaximumNumberOfDefinitionsEnum : return "MaximumNumberOfDefinitions";
    10061008                default : return "unknown";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r20033 r20036  
    10271027              else if (strcmp(name,"SealevelriseGElastic")==0) return SealevelriseGElasticEnum;
    10281028              else if (strcmp(name,"SealevelriseDegacc")==0) return SealevelriseDegaccEnum;
     1029              else if (strcmp(name,"SealevelriseRequestedOutputs")==0) return SealevelriseRequestedOutputsEnum;
     1030              else if (strcmp(name,"SealevelriseNumRequestedOutputs")==0) return SealevelriseNumRequestedOutputsEnum;
    10291031              else if (strcmp(name,"MaximumNumberOfDefinitions")==0) return MaximumNumberOfDefinitionsEnum;
    10301032         else stage=10;
  • issm/trunk-jpl/src/m/classes/slr.m

    r20033 r20036  
    1616                eustatic         = 0;
    1717                degacc         = 0;
     18                requested_outputs      = {};
    1819        end
    1920        methods
     
    4344                self.degacc=.01;
    4445               
     46                %output default:
     47                self.requested_outputs={'default'};
     48               
    4549                end % }}}
    4650                function md = checkconsistency(self,md,solution,analyses) % {{{
     
    5458                        md = checkfield(md,'fieldname','slr.maxiter','size',[1 1],'>=',1);
    5559                        md = checkfield(md,'fieldname','slr.degacc','size',[1 1],'>=',1e-10);
     60                        md = checkfield(md,'fieldname','slr.requested_outputs','stringrow',1);
    5661
    5762                        %check that love numbers are provided at the same level of accuracy:
     
    6065                        end
    6166
     67                end % }}}
     68                function list=defaultoutputs(self,md) % {{{
     69                        list = {'SealevelriseS'};
    6270                end % }}}
    6371                function disp(self) % {{{
     
    7482                        fielddisplay(self,'eustatic','eustatic sea level rise');
    7583                        fielddisplay(self,'degacc','accuracy (default .01 deg) for numerical discretization of the Green''s functions');
     84                        fielddisplay(self,'requested_outputs','additional outputs requested');
    7685
    7786                end % }}}
     
    8796                        WriteData(fid,'object',self,'class','sealevelrise','fieldname','eustatic','format','Boolean');
    8897                        WriteData(fid,'object',self,'class','sealevelrise','fieldname','degacc','format','Double');
     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',SealevelriseRequestedOutputsEnum,'format','StringArray');
     107
    89108                end % }}}
    90109                function savemodeljs(self,fid,modelname) % {{{
     
    99118                        writejsdouble(fid,[modelname '.slr.eustatic'],self.eustatic);
    100119                        writejsdouble(fid,[modelname '.slr.degacc'],self.degacc);
     120                        writejscellstring(fid,[modelname '.slr.requested_outputs'],self.requested_outputs);
    101121
    102122                end % }}}
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.js

    r20033 r20036  
    988988function SealevelriseGElasticEnum(){ return 984;}
    989989function SealevelriseDegaccEnum(){ return 985;}
    990 function MaximumNumberOfDefinitionsEnum(){ return 986;}
     990function SealevelriseRequestedOutputsEnum(){ return 986;}
     991function SealevelriseNumRequestedOutputsEnum(){ return 987;}
     992function MaximumNumberOfDefinitionsEnum(){ return 988;}
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r20033 r20036  
    995995def SealevelriseGElasticEnum(): return StringToEnum("SealevelriseGElastic")[0]
    996996def SealevelriseDegaccEnum(): return StringToEnum("SealevelriseDegacc")[0]
     997def SealevelriseRequestedOutputsEnum(): return StringToEnum("SealevelriseRequestedOutputs")[0]
     998def SealevelriseNumRequestedOutputsEnum(): return StringToEnum("SealevelriseNumRequestedOutputs")[0]
    997999def MaximumNumberOfDefinitionsEnum(): return StringToEnum("MaximumNumberOfDefinitions")[0]
Note: See TracChangeset for help on using the changeset viewer.