source: issm/oecreview/Archive/16133-16554/ISSM-16362-16363.diff@ 16556

Last change on this file since 16556 was 16556, checked in by Mathieu Morlighem, 11 years ago

NEW: added Archive/16133-16554

File size: 45.5 KB
  • ../trunk-jpl/test/NightlyRun/test426.m

     
    1313md.transient.isstressbalance=0;
    1414md.transient.isgroundingline=1;
    1515md.groundingline.migration='AgressiveMigration';
    16 md.transient.requested_outputs=[IceVolumeEnum();IceVolumeAboveFloatationEnum()];
     16md.transient.requested_outputs={'IceVolume','IceVolumeAboveFloatation'};
    1717md.cluster=generic('name',oshostname(),'np',3);
    1818
    1919md=solve(md,TransientSolutionEnum());
  • ../trunk-jpl/test/NightlyRun/test328.m

     
    77md.surfaceforcings.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y;
    88md.surfaceforcings.href=md.geometry.surface;
    99md.surfaceforcings.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y;
    10 md.transient.requested_outputs=TotalSmbEnum();
     10md.transient.requested_outputs={'TotalSmb'};
    1111md.cluster=generic('name',oshostname(),'np',3);
    1212md=solve(md,TransientSolutionEnum());
    1313
  • ../trunk-jpl/test/NightlyRun/test3001.m

     
    33md=parameterize(md,'../Par/SquareShelfConstrained.par');
    44md=setflowequation(md,'SSA','all');
    55md.cluster=generic('name',oshostname(),'np',1);
    6 md.stressbalance.requested_outputs=StressTensorEnum();
     6md.stressbalance.requested_outputs={'StressTensor'};
    77md.autodiff.isautodiff=true;
    88md.toolkits.DefaultAnalysis=issmgslsolver();
    99
  • ../trunk-jpl/test/NightlyRun/test3103.py

     
    1313md.extrude(3,2.)
    1414md=setflowequation(md,'HO','all')
    1515md.cluster=generic('name',oshostname(),'np',3)
    16 md.stressbalance.requested_outputs=StressTensorEnum()
     16md.stressbalance.requested_outputs=['StressTensor']
    1717md.toolkits.DefaultAnalysis=issmmumpssolver()
    1818md.autodiff.isautodiff=True
    1919md=solve(md,StressbalanceSolutionEnum())
  • ../trunk-jpl/test/NightlyRun/test3010.m

     
    33md=parameterize(md,'../Par/SquareShelfConstrained.par');
    44md=setflowequation(md,'SSA','all');
    55md.cluster=generic('name',oshostname(),'np',1);
    6 md.transient.requested_outputs=IceVolumeEnum();
     6md.transient.requested_outputs={'IceVolume'};
    77
    88md.autodiff.isautodiff=true;
    99md.verbose=verbose('autodiff',true);
  • ../trunk-jpl/test/NightlyRun/test329.py

     
    1919md.surfaceforcings.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y
    2020md.surfaceforcings.href=copy.deepcopy(md.geometry.surface).reshape(-1)
    2121md.surfaceforcings.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y;
    22 md.transient.requested_outputs=TotalSmbEnum()
     22md.transient.requested_outputs=['TotalSmb']
    2323md.cluster=generic('name',oshostname(),'np',3)
    2424md=solve(md,TransientSolutionEnum())
    2525
  • ../trunk-jpl/test/NightlyRun/test329.m

     
    88md.surfaceforcings.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y;
    99md.surfaceforcings.href=md.geometry.surface;
    1010md.surfaceforcings.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y;
    11 md.transient.requested_outputs=TotalSmbEnum();
     11md.transient.requested_outputs={'TotalSmb'};
    1212md.cluster=generic('name',oshostname(),'np',3);
    1313md=solve(md,TransientSolutionEnum());
    1414
  • ../trunk-jpl/test/NightlyRun/test101.m

     
    33md=parameterize(md,'../Par/SquareShelfConstrained.par');
    44md=setflowequation(md,'SSA','all');
    55md.cluster=generic('name',oshostname(),'np',3);
    6 md.stressbalance.requested_outputs=StressTensorEnum();
     6md.stressbalance.requested_outputs={'StressTensor'};
     7md.verbose=verbose('11111111');
    78md=solve(md,StressbalanceSolutionEnum());
    89
    910%Fields and tolerances to track changes
  • ../trunk-jpl/test/NightlyRun/android.m

     
    44md=setflowequation(md,'SSA','all');
    55md.cluster=generic('name',oshostname(),'np',3);
    66md.verbose=verbose('mprocessor',true,'module',true,'solution',true,'solver',true,'convergence',true,'control',true,'qmu',true,'autodiff',true);
    7 md.stressbalance.requested_outputs=StressTensorEnum();
     7md.stressbalance.requested_outputs={'StressTensor'};
    88md=solve(md,StressbalanceSolutionEnum());
    99
    1010       
  • ../trunk-jpl/test/NightlyRun/test3020.m

     
    77md=parameterize(md,'../Par/SquareShelfConstrained.par');
    88md=setflowequation(md,'SSA','all');
    99md.cluster=generic('name',oshostname(),'np',1);
    10 md.transient.requested_outputs=[IceVolumeEnum();MaxVelEnum()];
     10md.transient.requested_outputs={'IceVolume','MaxVelEnum'};
    1111md.verbose=verbose('autodiff',true);
    1212md.stressbalance.restol=1e-4;
    1313md.toolkits.DefaultAnalysis=issmgslsolver();
  • ../trunk-jpl/test/NightlyRun/test3101.m

     
    33md=parameterize(md,'../Par/SquareShelfConstrained.par');
    44md=setflowequation(md,'SSA','all');
    55md.cluster=generic('name',oshostname(),'np',3);
    6 md.stressbalance.requested_outputs=StressTensorEnum();
     6md.stressbalance.requested_outputs={'StressTensor'};
    77md.autodiff.isautodiff=true;
    88md.toolkits.DefaultAnalysis=issmmumpssolver();
    99
  • ../trunk-jpl/test/NightlyRun/test3003.m

     
    44md=extrude(md,3,2.);
    55md=setflowequation(md,'HO','all');
    66md.cluster=generic('name',oshostname(),'np',1);
    7 md.stressbalance.requested_outputs=StressTensorEnum();
     7md.stressbalance.requested_outputs={'StressTensor'};
    88md.autodiff.isautodiff=true;
    99md.toolkits.DefaultAnalysis=issmgslsolver();
    1010md.verbose=verbose('autodiff',true);
  • ../trunk-jpl/test/NightlyRun/test110.m

     
    33md=parameterize(md,'../Par/SquareShelfConstrained.par');
    44md=setflowequation(md,'SSA','all');
    55md.cluster=generic('name',oshostname(),'np',3);
    6 md.transient.requested_outputs=IceVolumeEnum();
     6md.transient.requested_outputs={'IceVolume'};
    77
    88md=solve(md,TransientSolutionEnum());
    99
  • ../trunk-jpl/test/NightlyRun/test3110.m

     
    33md=parameterize(md,'../Par/SquareShelfConstrained.par');
    44md=setflowequation(md,'SSA','all');
    55md.cluster=generic('name',oshostname(),'np',3);
    6 md.transient.requested_outputs=IceVolumeEnum();
     6md.transient.requested_outputs={'IceVolume'};
    77
    88md.autodiff.isautodiff=true;
    99md.verbose=verbose('autodiff',true);
  • ../trunk-jpl/test/NightlyRun/test3001.py

     
    1212md=parameterize(md,'../Par/SquareShelfConstrained.py')
    1313md=setflowequation(md,'SSA','all')
    1414md.cluster=generic('name',oshostname(),'np',1)
    15 md.stressbalance.requested_outputs=StressTensorEnum()
     15md.stressbalance.requested_outputs=['StressTensor']
    1616md.toolkits.DefaultAnalysis=issmgslsolver()
    1717md.autodiff.isautodiff=True
    1818md=solve(md,StressbalanceSolutionEnum())
  • ../trunk-jpl/test/NightlyRun/test3015.py

     
    2121md=parameterize(md,'../Par/SquareShelfConstrained.py')
    2222md=setflowequation(md,'SSA','all')
    2323md.cluster=generic('name',oshostname(),'np',3)
    24 md.masstransport.requested_outputs=IceVolumeEnum()
     24md.masstransport.requested_outputs=['IceVolume']
    2525md.verbose=verbose('autodiff',True)
    2626md.toolkits.DefaultAnalysis=issmgslsolver()
    2727
  • ../trunk-jpl/test/NightlyRun/test3021.m

     
    33md=parameterize(md,'../Par/SquareShelfConstrained.par');
    44md=setflowequation(md,'SSA','all');
    55md.cluster=generic('name',oshostname(),'np',3);
    6 md.stressbalance.requested_outputs=StressTensorEnum();
     6md.stressbalance.requested_outputs={'StressTensor'};
    77md.autodiff.isautodiff=false;
    88md.toolkits.DefaultAnalysis=issmsolver();
    99md.verbose=verbose('1111111');
  • ../trunk-jpl/test/NightlyRun/test111.m

     
    44md=extrude(md,3,1.);
    55md=setflowequation(md,'HO','all');
    66md.cluster=generic('name',oshostname(),'np',3);
    7 md.transient.requested_outputs=IceVolumeEnum();
     7md.transient.requested_outputs={'IceVolume'};
    88md=solve(md,TransientSolutionEnum());
    99
    1010%Fields and tolerances to track changes
  • ../trunk-jpl/test/NightlyRun/test234.m

     
    5656md.qmu.isdakota=1;
    5757
    5858md.stressbalance.reltol=10^-5; %tighten for qmu analyses
    59 md.transient.requested_outputs=IceVolumeEnum();
     59md.transient.requested_outputs={'IceVolume'};
    6060
    6161%solve
    6262md=solve(md,TransientSolutionEnum(),'overwrite','y');
  • ../trunk-jpl/test/NightlyRun/test3010.py

     
    1313md=setflowequation(md,'SSA','all')
    1414md.cluster=generic('name',oshostname(),'np',1)
    1515md.toolkits.DefaultAnalysis=issmgslsolver()
    16 md.transient.requested_outputs=IceVolumeEnum()
     16md.transient.requested_outputs=['IceVolume']
    1717
    1818md.autodiff.isautodiff=True
    1919md=solve(md,TransientSolutionEnum())
  • ../trunk-jpl/test/NightlyRun/test101.py

     
    1212md=parameterize(md,'../Par/SquareShelfConstrained.py')
    1313md=setflowequation(md,'SSA','all')
    1414md.cluster=generic('name',oshostname(),'np',3)
    15 md.stressbalance.requested_outputs=StressTensorEnum()
     15md.stressbalance.requested_outputs=['StressTensor']
    1616md=solve(md,StressbalanceSolutionEnum())
    1717
    1818#Fields and tolerances to track changes
  • ../trunk-jpl/test/NightlyRun/test103.m

     
    44md=extrude(md,3,2.);
    55md=setflowequation(md,'HO','all');
    66md.cluster=generic('name',oshostname(),'np',3);
    7 md.stressbalance.requested_outputs=StressTensorEnum();
     7md.stressbalance.requested_outputs={'StressTensor'};
    88md=solve(md,StressbalanceSolutionEnum());
    99
    1010%Fields and tolerances to track changes
  • ../trunk-jpl/test/NightlyRun/test424.py

     
    2222md.transient.isstressbalance=False
    2323md.transient.isgroundingline=True
    2424md.groundingline.migration='AgressiveMigration'
    25 md.transient.requested_outputs=[IceVolumeEnum(),IceVolumeAboveFloatationEnum()]
     25md.transient.requested_outputs=['IceVolume','IceVolumeAboveFloatation']
    2626
    2727md.cluster=generic('name',oshostname(),'np',3)
    2828md=solve(md,TransientSolutionEnum())
  • ../trunk-jpl/test/NightlyRun/test3103.m

     
    44md=extrude(md,3,2.);
    55md=setflowequation(md,'HO','all');
    66md.cluster=generic('name',oshostname(),'np',3);
    7 md.stressbalance.requested_outputs=StressTensorEnum();
     7md.stressbalance.requested_outputs={'StressTensor'};
    88md.autodiff.isautodiff=true;
    99md.toolkits.DefaultAnalysis=issmmumpssolver();
    1010md.verbose=verbose('autodiff',true);
  • ../trunk-jpl/test/NightlyRun/test110.py

     
    1212md=parameterize(md,'../Par/SquareShelfConstrained.py')
    1313md=setflowequation(md,'SSA','all')
    1414md.cluster=generic('name',oshostname(),'np',3)
    15 md.transient.requested_outputs=IceVolumeEnum()
     15md.transient.requested_outputs=['IceVolume']
    1616
    1717md=solve(md,TransientSolutionEnum())
    1818
  • ../trunk-jpl/test/NightlyRun/test235.m

     
    5151md.qmu.isdakota=1;
    5252
    5353md.stressbalance.reltol=10^-5; %tighten for qmu analyses
    54 md.transient.requested_outputs=IceVolumeEnum();
     54md.transient.requested_outputs={'IceVolume'};
    5555
    5656%solve
    5757md=solve(md,TransientSolutionEnum(),'overwrite','y');
  • ../trunk-jpl/test/NightlyRun/test3101.py

     
    1212md=parameterize(md,'../Par/SquareShelfConstrained.py')
    1313md=setflowequation(md,'SSA','all')
    1414md.cluster=generic('name',oshostname(),'np',3)
    15 md.stressbalance.requested_outputs=StressTensorEnum()
     15md.stressbalance.requested_outputs=['StressTensor']
    1616md.toolkits.DefaultAnalysis=issmmumpssolver()
    1717md.autodiff.isautodiff=True
    1818md=solve(md,StressbalanceSolutionEnum())
  • ../trunk-jpl/test/NightlyRun/test3020.py

     
    2121md=parameterize(md,'../Par/SquareShelfConstrained.py')
    2222md=setflowequation(md,'SSA','all')
    2323md.cluster=generic('name',oshostname(),'np',1)
    24 md.transient.requested_outputs=[IceVolumeEnum(),MaxVelEnum()]
     24md.transient.requested_outputs=['IceVolume','MaxVel']
    2525md.verbose=verbose('autodiff',True)
    2626md.stressbalance.restol=0.000001
    2727md.toolkits.DefaultAnalysis=issmgslsolver()
  • ../trunk-jpl/test/NightlyRun/test3015.m

     
    77md=parameterize(md,'../Par/SquareShelfConstrained.par');
    88md=setflowequation(md,'SSA','all');
    99md.cluster=generic('name',oshostname(),'np',1);
    10 md.masstransport.requested_outputs=IceVolumeEnum();
     10md.masstransport.requested_outputs={'IceVolume'};
    1111md.verbose=verbose('autodiff',true);
    1212md.toolkits.DefaultAnalysis=issmgslsolver();
    1313
  • ../trunk-jpl/test/NightlyRun/test111.py

     
    1313md.extrude(3,1.)
    1414md=setflowequation(md,'HO','all')
    1515md.cluster=generic('name',oshostname(),'np',3)
    16 md.transient.requested_outputs=IceVolumeEnum()
     16md.transient.requested_outputs=['IceVolume']
    1717md=solve(md,TransientSolutionEnum())
    1818
    1919#Fields and tolerances to track changes
  • ../trunk-jpl/test/NightlyRun/test424.m

     
    1212md.transient.isstressbalance=0;
    1313md.transient.isgroundingline=1;
    1414md.groundingline.migration='AgressiveMigration';
    15 md.transient.requested_outputs=[IceVolumeEnum();IceVolumeAboveFloatationEnum()];
     15md.transient.requested_outputs={'IceVolume','IceVolumeAboveFloatation'};
    1616
    1717md.cluster=generic('name',oshostname(),'np',3);
    1818md=solve(md,TransientSolutionEnum());
  • ../trunk-jpl/test/NightlyRun/test3110.py

     
    1313md=setflowequation(md,'SSA','all')
    1414md.cluster=generic('name',oshostname(),'np',3)
    1515md.toolkits.DefaultAnalysis=issmmumpssolver()
    16 md.transient.requested_outputs=IceVolumeEnum()
     16md.transient.requested_outputs=['IceVolume']
    1717
    1818md.autodiff.isautodiff=True
    1919md=solve(md,TransientSolutionEnum())
  • ../trunk-jpl/test/NightlyRun/test3003.py

     
    1313md.extrude(3,2.)
    1414md=setflowequation(md,'HO','all')
    1515md.cluster=generic('name',oshostname(),'np',1)
    16 md.stressbalance.requested_outputs=StressTensorEnum()
     16md.stressbalance.requested_outputs=['StressTensor']
    1717md.toolkits.DefaultAnalysis=issmgslsolver()
    1818md.autodiff.isautodiff=True
    1919md=solve(md,StressbalanceSolutionEnum())
  • ../trunk-jpl/test/NightlyRun/test103.py

     
    1313md.extrude(3,2.)
    1414md=setflowequation(md,'HO','all')
    1515md.cluster=generic('name',oshostname(),'np',3)
    16 md.stressbalance.requested_outputs=StressTensorEnum()
     16md.stressbalance.requested_outputs=['StressTensor']
    1717md=solve(md,StressbalanceSolutionEnum())
    1818
    1919#Fields and tolerances to track changes
  • ../trunk-jpl/test/NightlyRun/test426.py

     
    2323md.transient.isstressbalance=False
    2424md.transient.isgroundingline=True
    2525md.groundingline.migration='AgressiveMigration'
    26 md.transient.requested_outputs=[IceVolumeEnum(),IceVolumeAboveFloatationEnum()]
     26md.transient.requested_outputs=['IceVolume','IceVolumeAboveFloatation']
    2727md.cluster=generic('name',oshostname(),'np',3)
    2828
    2929md=solve(md,TransientSolutionEnum())
  • ../trunk-jpl/test/NightlyRun/test328.py

     
    1616md.surfaceforcings.issmbgradients=1
    1717md.surfaceforcings.b_pos=-100. + 0.00005*md.mesh.x - 0.0001*md.mesh.y
    1818md.surfaceforcings.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y
    19 md.transient.requested_outputs=TotalSmbEnum()
     19md.transient.requested_outputs=['TotalSmb']
    2020md.surfaceforcings.href=copy.deepcopy(md.geometry.surface).reshape(-1)
    2121md.surfaceforcings.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y;
    2222md.cluster=generic('name',oshostname(),'np',3)
  • ../trunk-jpl/src/c/analyses/transient_core.cpp

     
    1919void transient_core(FemModel* femmodel){
    2020
    2121        /*parameters: */
     22        int    i;
    2223        IssmDouble starttime,finaltime,dt,yts;
    2324        bool   isstressbalance,ismasstransport,isFS,isthermal,isgroundingline,isenthalpy,isdelta18o,isgia;
    2425        bool   save_results,dakota_analysis;
     
    2627        int    output_frequency;
    2728        int    meshtype,groundingline_migration;
    2829        int    numoutputs         = 0;
    29         int   *requested_outputs = NULL;
     30        char** requested_outputs = NULL;
    3031
     32
    3133        /*intermediary: */
    3234        int    step;
    3335        IssmDouble time;
     
    183185
    184186        femmodel->RequestedDependentsx();
    185187
    186         /*Free ressources:*/
    187         xDelete<int>(requested_outputs);
     188        /*Free ressources:*/   
     189        if(numoutputs){ for (i=0;i<numoutputs;i++){char* string=requested_outputs[i];xDelete<char>(string);} xDelete<char*>(requested_outputs);}
    188190}
  • ../trunk-jpl/src/c/analyses/masstransport_core.cpp

     
    1212void masstransport_core(FemModel* femmodel){
    1313
    1414        /*parameters: */
     15        int   i;
    1516        bool  save_results;
    1617        bool  issmbgradients,ispdd,isdelta18o,isFS,isfreesurface,dakota_analysis;
    1718        int   solution_type;
    18         int  *requested_outputs = NULL;
     19        char** requested_outputs = NULL;
    1920        int   numoutputs        = 0;
    2021
    2122        /*activate configuration*/
     
    7677        if(solution_type==MasstransportSolutionEnum)femmodel->RequestedDependentsx();
    7778
    7879        /*Free ressources:*/
    79         xDelete<int>(requested_outputs);
     80        if(numoutputs){ for (i=0;i<numoutputs;i++){char* string=requested_outputs[i];xDelete<char>(string);} xDelete<char*>(requested_outputs);}
    8081}
  • ../trunk-jpl/src/c/analyses/stressbalance_core.cpp

     
    2020        int   newton;
    2121        int   solution_type;
    2222        int   numoutputs        = 0;
    23         int  *requested_outputs = NULL;
     23        char** requested_outputs = NULL;
     24        int    i;
    2425
     26
    2527        /* recover parameters:*/
    2628        femmodel->parameters->FindParam(&meshtype,MeshTypeEnum);
    2729        femmodel->parameters->FindParam(&isSIA,FlowequationIsSIAEnum);
     
    9597
    9698        if(solution_type==StressbalanceSolutionEnum)femmodel->RequestedDependentsx();
    9799
    98         /*Free ressources:*/
    99         xDelete<int>(requested_outputs);
     100        /*Free ressources:*/   
     101        if(numoutputs){ for (i=0;i<numoutputs;i++){char* string=requested_outputs[i];xDelete<char>(string);} xDelete<char*>(requested_outputs);}
    100102}
  • ../trunk-jpl/src/c/analyses/steadystate_core.cpp

     
    2020void steadystate_core(FemModel* femmodel){
    2121
    2222        /*intermediary: */
     23        int i;
    2324        int step;
    2425        Vector<IssmDouble>* ug     = NULL;
    2526        Vector<IssmDouble>* ug_old = NULL;
     
    3132        int         maxiter;
    3233        IssmDouble  reltol;
    3334        int         numoutputs        = 0;
    34         int        *requested_outputs = NULL;
     35        char**      requested_outputs = NULL;
    3536
    3637        /* recover parameters:*/
    3738        femmodel->parameters->FindParam(&save_results,SaveResultsEnum);
     
    101102        delete tg_old;
    102103        delete ug_old;
    103104        delete tg;
    104         delete ug;
    105         xDelete<int>(requested_outputs);
     105        delete ug;     
     106        if(numoutputs){ for (i=0;i<numoutputs;i++){char* string=requested_outputs[i];xDelete<char>(string);} xDelete<char*>(requested_outputs);}
    106107}
    107108bool steadystateconvergence(Vector<IssmDouble>* tg,Vector<IssmDouble>* tg_old,Vector<IssmDouble>* ug,Vector<IssmDouble>* ug_old,IssmDouble reltol){
    108109
  • ../trunk-jpl/src/c/modules/ModelProcessorx/Stressbalance/CreateParametersStressbalance.cpp

     
    1111
    1212        /*Intermediaries*/
    1313        int         numoutputs;
    14         IssmDouble *requestedoutputs = NULL;
     14        char**      requestedoutputs = NULL;
    1515
    1616        /*Get parameters: */
    1717        Parameters *parameters=*pparameters;
     
    3434        parameters->AddObject(iomodel->CopyConstantObject(StressbalanceViscosityOvershootEnum));
    3535
    3636        /*Requested outputs*/
    37         iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,StressbalanceRequestedOutputsEnum);
     37        iomodel->FetchData(&requestedoutputs,&numoutputs,StressbalanceRequestedOutputsEnum);
    3838        parameters->AddObject(new IntParam(StressbalanceNumRequestedOutputsEnum,numoutputs));
    39         if(numoutputs)parameters->AddObject(new IntVecParam(StressbalanceRequestedOutputsEnum,requestedoutputs,numoutputs));
    40         iomodel->DeleteData(requestedoutputs,StressbalanceRequestedOutputsEnum);
     39        if(numoutputs)parameters->AddObject(new StringArrayParam(StressbalanceRequestedOutputsEnum,requestedoutputs,numoutputs));
     40        iomodel->DeleteData(&requestedoutputs,numoutputs,StressbalanceRequestedOutputsEnum);
    4141
    4242        /*Assign output pointer: */
    4343        *pparameters = parameters;
  • ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp

     
    2020        int         i,j,m,k;
    2121        int         numoutputs,meshtype;
    2222        Parameters *parameters       = NULL;
    23         IssmDouble *requestedoutputs = NULL;
     23        char**      requestedoutputs = NULL;
    2424        IssmDouble  time;
    2525        bool        ispdd,isdelta18o;
    2626
     
    135135        /*By default, save all results*/
    136136        parameters->AddObject(new BoolParam(SaveResultsEnum,true));
    137137
    138         iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,TransientRequestedOutputsEnum);
     138        /*Requested outputs */
     139        iomodel->FetchData(&requestedoutputs,&numoutputs,TransientRequestedOutputsEnum);
    139140        parameters->AddObject(new IntParam(TransientNumRequestedOutputsEnum,numoutputs));
    140         if(numoutputs)parameters->AddObject(new IntVecParam(TransientRequestedOutputsEnum,requestedoutputs,numoutputs));
    141         iomodel->DeleteData(requestedoutputs,TransientRequestedOutputsEnum);
     141        if(numoutputs)parameters->AddObject(new StringArrayParam(TransientRequestedOutputsEnum,requestedoutputs,numoutputs));
     142        iomodel->DeleteData(&requestedoutputs,numoutputs,TransientRequestedOutputsEnum);
    142143
    143         iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,SteadystateRequestedOutputsEnum);
     144        iomodel->FetchData(&requestedoutputs,&numoutputs,SteadystateRequestedOutputsEnum);
    144145        parameters->AddObject(new IntParam(SteadystateNumRequestedOutputsEnum,numoutputs));
    145         if(numoutputs)parameters->AddObject(new IntVecParam(SteadystateRequestedOutputsEnum,requestedoutputs,numoutputs));
    146         iomodel->DeleteData(requestedoutputs,SteadystateRequestedOutputsEnum);
     146        if(numoutputs)parameters->AddObject(new StringArrayParam(SteadystateRequestedOutputsEnum,requestedoutputs,numoutputs));
     147        iomodel->DeleteData(&requestedoutputs,numoutputs,SteadystateRequestedOutputsEnum);
    147148
    148         iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,MasstransportRequestedOutputsEnum);
     149        iomodel->FetchData(&requestedoutputs,&numoutputs,MasstransportRequestedOutputsEnum);
    149150        parameters->AddObject(new IntParam(MasstransportNumRequestedOutputsEnum,numoutputs));
    150         if(numoutputs)parameters->AddObject(new IntVecParam(MasstransportRequestedOutputsEnum,requestedoutputs,numoutputs));
    151         iomodel->DeleteData(requestedoutputs,MasstransportRequestedOutputsEnum);
     151        if(numoutputs)parameters->AddObject(new StringArrayParam(MasstransportRequestedOutputsEnum,requestedoutputs,numoutputs));
     152        iomodel->DeleteData(&requestedoutputs,numoutputs,MasstransportRequestedOutputsEnum);
    152153
    153154        /*Deal with mass flux segments: {{{*/
    154155        iomodel->FetchData(&qmu_mass_flux_present,QmuMassFluxSegmentsPresentEnum);
  • ../trunk-jpl/src/c/classes/FemModel.cpp

     
    469469
    470470}
    471471/*}}}*/
    472 void FemModel::RequestedOutputsx(int* requested_outputs, int numoutputs){/*{{{*/
     472void FemModel::RequestedOutputsx(char** requested_outputs, int numoutputs){/*{{{*/
    473473
    474         int      output_enum;
     474        char*    output_string;
    475475        int      step;
    476476        IssmDouble   time;
    477477        IssmDouble   output_value;
     
    484484        /*retrieve Inputs*/
    485485        if(numoutputs){
    486486                for(int i=0;i<numoutputs;i++){
    487                         output_enum=requested_outputs[i];
     487                        output_string=requested_outputs[i];
    488488
    489                         switch(output_enum){
     489                        if (strcmp(output_string,"IceVolume")==0){
     490                                Responsex(&output_value,output_string);
     491                                results->AddObject(new GenericExternalResult<double>(results->Size()+1,IceVolumeEnum,reCast<IssmPDouble>(output_value),step,time));
    490492
    491                                 case IceVolumeEnum:
    492                                         Responsex(&output_value,"IceVolume");
    493                                         results->AddObject(new GenericExternalResult<double>(results->Size()+1,IceVolumeEnum,reCast<IssmPDouble>(output_value),step,time));
    494                                         break;
    495                                 case IceVolumeAboveFloatationEnum:
    496                                         Responsex(&output_value,"IceVolumeAboveFloatation");
    497                                         results->AddObject(new GenericExternalResult<double>(results->Size()+1,IceVolumeAboveFloatationEnum,reCast<IssmPDouble>(output_value),step,time));
    498                                         break;
    499                                 case TotalSmbEnum:
    500                                         Responsex(&output_value,"TotalSmb");
    501                                         results->AddObject(new GenericExternalResult<double>(results->Size()+1,TotalSmbEnum,reCast<IssmPDouble>(output_value),step,time));
    502                                         break;
    503                                 case MaxVelEnum:
    504                                         Responsex(&output_value,"MaxVel");
    505                                         results->AddObject(new GenericExternalResult<double>(results->Size()+1,MaxVelEnum,reCast<IssmPDouble>(output_value),step,time));
    506                                         break;
    507                                 default:
    508                                         /*create this output in the element inputs, and then transfer to results:*/
    509                                         for(int j=0;j<elements->Size();j++){
    510                                                 element=(Element*)elements->GetObjectByOffset(j);
    511                                                 element->RequestedOutput(output_enum,step,time);
    512                                         }
    513                                         break;
    514493                        }
     494                        else if (strcmp(output_string,"TotalSmb")==0){
     495                                Responsex(&output_value,output_string);
     496                                results->AddObject(new GenericExternalResult<double>(results->Size()+1,TotalSmbEnum,reCast<IssmPDouble>(output_value),step,time));
     497                        }
     498                        else if (strcmp(output_string,"MaxVel")==0){
     499                                Responsex(&output_value,output_string);
     500                                results->AddObject(new GenericExternalResult<double>(results->Size()+1,MaxVelEnum,reCast<IssmPDouble>(output_value),step,time));
     501                        }
     502                        else{
     503                                /*create this output in the element inputs, and then transfer to results:*/
     504                                for(int j=0;j<elements->Size();j++){
     505                                        element=(Element*)elements->GetObjectByOffset(j);
     506                                        element->RequestedOutput(StringToEnumx(output_string),step,time);
     507                                }
     508                        }
    515509                }
    516510        }
    517511}
  • ../trunk-jpl/src/c/classes/IoModel.h

     
    6666                IssmDouble *Data(int dataenum);
    6767                void        DeleteData(int num,...);
    6868                void        DeleteData(IssmDouble* vector, int dataenum);
     69                void        DeleteData(char*** pstringarray, int numstrings, int dataenum);
    6970                void        FetchConstants(void);
    7071                void        FetchData(bool* pboolean,int data_enum);
    7172                void        FetchData(int* pinteger,int data_enum);
  • ../trunk-jpl/src/c/classes/IoModel.cpp

     
    339339        if(vector)if (!this->independents[dataenum]) xDelete<IssmDouble>(vector);
    340340
    341341} /*}}}*/
     342/*FUNCTION IoModel::DeleteData(char*** pstringarray, int numstrings, int dataenum) {{{*/
     343void  IoModel::DeleteData(char*** pstringarray, int numstrings, int dataenum){
     344
     345        int i;
     346        char** stringarray=*pstringarray;
     347       
     348        if (numstrings){
     349                for (i=0;i<numstrings;i++){
     350                        char* string=stringarray[i];
     351                        xDelete<char>(string);
     352                }
     353                xDelete<char*>(stringarray);
     354        }
     355        *pstringarray=NULL;
     356} /*}}}*/
    342357/*FUNCTION IoModel::FetchConstants{{{*/
    343358void  IoModel::FetchConstants(void){
    344359
  • ../trunk-jpl/src/c/classes/FemModel.h

     
    8181                #ifdef  _HAVE_DAKOTA_
    8282                void DakotaResponsesx(double* d_responses,char** responses_descriptors,int numresponsedescriptors,int d_numresponses);
    8383                #endif
    84                 void RequestedOutputsx(int* requested_outputs, int numoutputs);
     84                void RequestedOutputsx(char** requested_outputs, int numoutputs);
    8585                void RequestedDependentsx(void);
    8686                void Responsex(IssmDouble* presponse,int response_descriptor_enum);
    8787                void Responsex(IssmDouble* presponse,const char* response_descriptor);
  • ../trunk-jpl/src/m/classes/transient.py

     
    1717                self.isthermal         = False
    1818                self.isgroundingline   = False
    1919                self.isgia             = False
    20                 self.requested_outputs = float('NaN')
     20                self.requested_outputs = []
    2121
    2222                #set defaults
    2323                self.setdefaultparameters()
     
    5555                md = checkfield(md,'transient.isthermal','numel',[1],'values',[0,1])
    5656                md = checkfield(md,'transient.isgroundingline','numel',[1],'values',[0,1])
    5757                md = checkfield(md,'transient.isgia','numel',[1],'values',[0,1])
    58                 md = checkfield(md,'transient.requested_outputs','size',[float('NaN')])
     58                md = checkfield(md,'transient.requested_outputs','size',[1, float('NaN')])
    5959
    6060
    6161                return md
     
    6666                WriteData(fid,'object',self,'fieldname','isthermal','format','Boolean')
    6767                WriteData(fid,'object',self,'fieldname','isgroundingline','format','Boolean')
    6868                WriteData(fid,'object',self,'fieldname','isgia','format','Boolean')
    69                 WriteData(fid,'object',self,'fieldname','requested_outputs','format','DoubleMat','mattype',3)
     69                WriteData(fid,'object',self,'fieldname','requested_outputs','format','StringArray')
    7070        # }}}
    7171
  • ../trunk-jpl/src/m/classes/steadystate.m

     
    77        properties (SetAccess=public)
    88                reltol            = 0;
    99                maxiter           = 0;
    10                 requested_outputs = NaN;
     10                requested_outputs = {};
    1111        end
    1212        methods
    1313                function obj = steadystate(varargin) % {{{
     
    4949                function marshall(obj,md,fid) % {{{
    5050                        WriteData(fid,'object',obj,'fieldname','reltol','format','Double');
    5151                        WriteData(fid,'object',obj,'fieldname','maxiter','format','Integer');
    52                         WriteData(fid,'object',obj,'fieldname','requested_outputs','format','DoubleMat','mattype',3);
     52                        WriteData(fid,'object',obj,'fieldname','requested_outputs','format','StringArray');
    5353                end % }}}
    5454        end
    5555end
  • ../trunk-jpl/src/m/classes/transient.m

     
    1111                isgroundingline   = 0;
    1212                isgia             = 0;
    1313                isdamage             = 0;
    14                 requested_outputs = NaN;
     14                requested_outputs = {};
    1515        end
    1616        methods
    1717                function obj = transient(varargin) % {{{
     
    4444                        md = checkfield(md,'transient.isgroundingline','numel',[1],'values',[0 1]);
    4545                        md = checkfield(md,'transient.isgia','numel',[1],'values',[0 1]);
    4646                        md = checkfield(md,'transient.isdamage','numel',[1],'values',[0 1]);
    47                         md = checkfield(md,'transient.requested_outputs','size',[NaN 1]);
     47                        md = checkfield(md,'transient.requested_outputs','size',[1 NaN]);
    4848
    4949                end % }}}
    5050                function disp(obj) % {{{
     
    6666                        WriteData(fid,'object',obj,'fieldname','isgroundingline','format','Boolean');
    6767                        WriteData(fid,'object',obj,'fieldname','isgia','format','Boolean');
    6868                        WriteData(fid,'object',obj,'fieldname','isdamage','format','Boolean');
    69                         WriteData(fid,'object',obj,'fieldname','requested_outputs','format','DoubleMat','mattype',3);
     69                        WriteData(fid,'object',obj,'fieldname','requested_outputs','format','StringArray');
    7070                end % }}}
    7171        end
    7272end
  • ../trunk-jpl/src/m/classes/masstransport.py

     
    2020                self.stabilization          = 0
    2121                self.vertex_pairing         = float('NaN')
    2222                self.penalty_factor         = 0
    23                 self.requested_outputs      = float('NaN')
     23                self.requested_outputs      = []
    2424
    2525                #set defaults
    2626                self.setdefaultparameters()
     
    6565                md = checkfield(md,'masstransport.stabilization','values',[0,1,2,3])
    6666                md = checkfield(md,'masstransport.min_thickness','>',0)
    6767                if not md.masstransport.requested_outputs:
    68                         md = checkfield(md,'masstransport.requested_outputs','size',[float('NaN'),1])
     68                        md = checkfield(md,'masstransport.requested_outputs','size',[1, float('NaN')])
    6969
    7070                return md
    7171        # }}}
     
    7777                WriteData(fid,'object',self,'fieldname','stabilization','format','Integer')
    7878                WriteData(fid,'object',self,'fieldname','vertex_pairing','format','DoubleMat','mattype',3)
    7979                WriteData(fid,'object',self,'fieldname','penalty_factor','format','Double')
    80                 WriteData(fid,'object',self,'fieldname','requested_outputs','format','DoubleMat','mattype',3);
     80                WriteData(fid,'object',self,'fieldname','requested_outputs','format','StringArray');
    8181        # }}}
  • ../trunk-jpl/src/m/classes/snowpack.m

     
    470470                        WriteData(fid,'object',obj,'class','snowpack','fieldname','rift_penalty_lock','format','Integer');
    471471                        WriteData(fid,'object',obj,'class','snowpack','fieldname','rift_penalty_threshold','format','Integer');
    472472                        WriteData(fid,'object',obj,'class','snowpack','fieldname','referential','format','DoubleMat','mattype',1);
    473                         WriteData(fid,'object',obj,'class','snowpack','fieldname','requested_outputs','format','DoubleMat','mattype',3);
     473                        WriteData(fid,'object',obj,'class','snowpack','fieldname','requested_outputs','format','StringArray');
    474474                        WriteData(fid,'data',obj.loadingforce(:,1),'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum);
    475475                        WriteData(fid,'data',obj.loadingforce(:,2),'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum);
    476476                        WriteData(fid,'data',obj.loadingforce(:,3),'format','DoubleMat','mattype',1,'enum',LoadingforceZEnum);
  • ../trunk-jpl/src/m/classes/stressbalance.py

     
    3333                self.rift_penalty_threshold   = 0
    3434                self.referential              = float('NaN')
    3535                self.loadingforce             = float('NaN')
    36                 self.requested_outputs        = float('NaN')
     36                self.requested_outputs        = []
    3737
    3838                #set defaults
    3939                self.setdefaultparameters()
     
    123123                md = checkfield(md,'stressbalance.referential','size',[md.mesh.numberofvertices,6])
    124124                md = checkfield(md,'stressbalance.loadingforce','size',[md.mesh.numberofvertices,3])
    125125                if not md.stressbalance.requested_outputs:
    126                         md = checkfield(md,'stressbalance.requested_outputs','size',[float('NaN'),1])
     126                        md = checkfield(md,'stressbalance.requested_outputs','size',[1, float('NaN')])
    127127
    128128                #singular solution
    129129#               if ~any((~isnan(md.stressbalance.spcvx)+~isnan(md.stressbalance.spcvy))==2),
     
    171171                WriteData(fid,'object',self,'class','stressbalance','fieldname','rift_penalty_lock','format','Integer')
    172172                WriteData(fid,'object',self,'class','stressbalance','fieldname','rift_penalty_threshold','format','Integer')
    173173                WriteData(fid,'object',self,'class','stressbalance','fieldname','referential','format','DoubleMat','mattype',1)
    174                 WriteData(fid,'object',self,'class','stressbalance','fieldname','requested_outputs','format','DoubleMat','mattype',3)
     174                WriteData(fid,'object',self,'class','stressbalance','fieldname','requested_outputs','format','StringArray')
    175175                WriteData(fid,'data',self.loadingforce[:,0],'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum())
    176176                WriteData(fid,'data',self.loadingforce[:,1],'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum())
    177177                WriteData(fid,'data',self.loadingforce[:,2],'format','DoubleMat','mattype',1,'enum',LoadingforceZEnum())
  • ../trunk-jpl/src/m/classes/steadystate.py

     
    1515        def __init__(self): # {{{
    1616                self.reltol            = 0
    1717                self.maxiter           = 0
    18                 self.requested_outputs = float('NaN')
     18                self.requested_outputs = []
    1919
    2020                #set defaults
    2121                self.setdefaultparameters()
     
    5555        def marshall(self,md,fid):    # {{{
    5656                WriteData(fid,'object',self,'fieldname','reltol','format','Double')
    5757                WriteData(fid,'object',self,'fieldname','maxiter','format','Integer')
    58                 WriteData(fid,'object',self,'fieldname','requested_outputs','format','DoubleMat','mattype',3)
     58                WriteData(fid,'object',self,'fieldname','requested_outputs','format','StringArray')
    5959        # }}}
  • ../trunk-jpl/src/m/classes/stressbalance.m

     
    2222                rift_penalty_threshold = 0;
    2323                referential            = NaN;
    2424                loadingforce           = NaN;
    25                 requested_outputs      = NaN;
     25                requested_outputs      = {};
    2626        end
    2727        methods
    2828                function obj = stressbalance(varargin) % {{{
     
    9191                        md = checkfield(md,'stressbalance.referential','size',[md.mesh.numberofvertices 6]);
    9292                        md = checkfield(md,'stressbalance.loadingforce','size',[md.mesh.numberofvertices 3]);
    9393                        if ~isempty(md.stressbalance.requested_outputs),
    94                                 md = checkfield(md,'stressbalance.requested_outputs','size',[NaN 1]);
     94                                md = checkfield(md,'stressbalance.requested_outputs','size',[1 NaN]);
    9595                        end
    9696
    9797                        %singular solution
     
    171171                        WriteData(fid,'object',obj,'class','stressbalance','fieldname','rift_penalty_lock','format','Integer');
    172172                        WriteData(fid,'object',obj,'class','stressbalance','fieldname','rift_penalty_threshold','format','Integer');
    173173                        WriteData(fid,'object',obj,'class','stressbalance','fieldname','referential','format','DoubleMat','mattype',1);
    174                         WriteData(fid,'object',obj,'class','stressbalance','fieldname','requested_outputs','format','DoubleMat','mattype',3);
     174                        WriteData(fid,'object',obj,'class','stressbalance','fieldname','requested_outputs','format','StringArray');
    175175                        WriteData(fid,'data',obj.loadingforce(:,1),'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum);
    176176                        WriteData(fid,'data',obj.loadingforce(:,2),'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum);
    177177                        WriteData(fid,'data',obj.loadingforce(:,3),'format','DoubleMat','mattype',1,'enum',LoadingforceZEnum);
  • ../trunk-jpl/src/m/classes/masstransport.m

     
    1212                 stabilization          = 0;
    1313                 vertex_pairing         = NaN;
    1414                 penalty_factor         = 0;
    15                  requested_outputs      = NaN;
     15                 requested_outputs      = {};
    1616        end
    1717        methods (Static)
    1818                function obj = loadobj(obj) % {{{
     
    8484                        md = checkfield(md,'masstransport.stabilization','values',[0 1 2 3]);
    8585                        md = checkfield(md,'masstransport.min_thickness','>',0);
    8686                        if ~isempty(md.masstransport.requested_outputs),
    87                                 md = checkfield(md,'masstransport.requested_outputs','size',[NaN 1]);
     87                                md = checkfield(md,'masstransport.requested_outputs','size',[1 NaN]);
    8888                        end
    8989
    9090                end % }}}
     
    110110                        WriteData(fid,'object',obj,'fieldname','stabilization','format','Integer');
    111111                        WriteData(fid,'object',obj,'fieldname','vertex_pairing','format','DoubleMat','mattype',3);
    112112                        WriteData(fid,'object',obj,'fieldname','penalty_factor','format','Double');
    113                         WriteData(fid,'object',obj,'fieldname','requested_outputs','format','DoubleMat','mattype',3);
     113                        WriteData(fid,'object',obj,'fieldname','requested_outputs','format','StringArray');
    114114                end % }}}
    115115        end
    116116end
Note: See TracBrowser for help on using the repository browser.