Index: ../trunk-jpl/test/NightlyRun/test426.m =================================================================== --- ../trunk-jpl/test/NightlyRun/test426.m (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test426.m (revision 16363) @@ -13,7 +13,7 @@ md.transient.isstressbalance=0; md.transient.isgroundingline=1; md.groundingline.migration='AgressiveMigration'; -md.transient.requested_outputs=[IceVolumeEnum();IceVolumeAboveFloatationEnum()]; +md.transient.requested_outputs={'IceVolume','IceVolumeAboveFloatation'}; md.cluster=generic('name',oshostname(),'np',3); md=solve(md,TransientSolutionEnum()); Index: ../trunk-jpl/test/NightlyRun/test328.m =================================================================== --- ../trunk-jpl/test/NightlyRun/test328.m (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test328.m (revision 16363) @@ -7,7 +7,7 @@ md.surfaceforcings.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y; md.surfaceforcings.href=md.geometry.surface; md.surfaceforcings.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y; -md.transient.requested_outputs=TotalSmbEnum(); +md.transient.requested_outputs={'TotalSmb'}; md.cluster=generic('name',oshostname(),'np',3); md=solve(md,TransientSolutionEnum()); Index: ../trunk-jpl/test/NightlyRun/test3001.m =================================================================== --- ../trunk-jpl/test/NightlyRun/test3001.m (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test3001.m (revision 16363) @@ -3,7 +3,7 @@ md=parameterize(md,'../Par/SquareShelfConstrained.par'); md=setflowequation(md,'SSA','all'); md.cluster=generic('name',oshostname(),'np',1); -md.stressbalance.requested_outputs=StressTensorEnum(); +md.stressbalance.requested_outputs={'StressTensor'}; md.autodiff.isautodiff=true; md.toolkits.DefaultAnalysis=issmgslsolver(); Index: ../trunk-jpl/test/NightlyRun/test3103.py =================================================================== --- ../trunk-jpl/test/NightlyRun/test3103.py (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test3103.py (revision 16363) @@ -13,7 +13,7 @@ md.extrude(3,2.) md=setflowequation(md,'HO','all') md.cluster=generic('name',oshostname(),'np',3) -md.stressbalance.requested_outputs=StressTensorEnum() +md.stressbalance.requested_outputs=['StressTensor'] md.toolkits.DefaultAnalysis=issmmumpssolver() md.autodiff.isautodiff=True md=solve(md,StressbalanceSolutionEnum()) Index: ../trunk-jpl/test/NightlyRun/test3010.m =================================================================== --- ../trunk-jpl/test/NightlyRun/test3010.m (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test3010.m (revision 16363) @@ -3,7 +3,7 @@ md=parameterize(md,'../Par/SquareShelfConstrained.par'); md=setflowequation(md,'SSA','all'); md.cluster=generic('name',oshostname(),'np',1); -md.transient.requested_outputs=IceVolumeEnum(); +md.transient.requested_outputs={'IceVolume'}; md.autodiff.isautodiff=true; md.verbose=verbose('autodiff',true); Index: ../trunk-jpl/test/NightlyRun/test329.py =================================================================== --- ../trunk-jpl/test/NightlyRun/test329.py (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test329.py (revision 16363) @@ -19,7 +19,7 @@ md.surfaceforcings.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y md.surfaceforcings.href=copy.deepcopy(md.geometry.surface).reshape(-1) md.surfaceforcings.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y; -md.transient.requested_outputs=TotalSmbEnum() +md.transient.requested_outputs=['TotalSmb'] md.cluster=generic('name',oshostname(),'np',3) md=solve(md,TransientSolutionEnum()) Index: ../trunk-jpl/test/NightlyRun/test329.m =================================================================== --- ../trunk-jpl/test/NightlyRun/test329.m (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test329.m (revision 16363) @@ -8,7 +8,7 @@ md.surfaceforcings.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y; md.surfaceforcings.href=md.geometry.surface; md.surfaceforcings.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y; -md.transient.requested_outputs=TotalSmbEnum(); +md.transient.requested_outputs={'TotalSmb'}; md.cluster=generic('name',oshostname(),'np',3); md=solve(md,TransientSolutionEnum()); Index: ../trunk-jpl/test/NightlyRun/test101.m =================================================================== --- ../trunk-jpl/test/NightlyRun/test101.m (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test101.m (revision 16363) @@ -3,7 +3,8 @@ md=parameterize(md,'../Par/SquareShelfConstrained.par'); md=setflowequation(md,'SSA','all'); md.cluster=generic('name',oshostname(),'np',3); -md.stressbalance.requested_outputs=StressTensorEnum(); +md.stressbalance.requested_outputs={'StressTensor'}; +md.verbose=verbose('11111111'); md=solve(md,StressbalanceSolutionEnum()); %Fields and tolerances to track changes Index: ../trunk-jpl/test/NightlyRun/android.m =================================================================== --- ../trunk-jpl/test/NightlyRun/android.m (revision 16362) +++ ../trunk-jpl/test/NightlyRun/android.m (revision 16363) @@ -4,7 +4,7 @@ md=setflowequation(md,'SSA','all'); md.cluster=generic('name',oshostname(),'np',3); md.verbose=verbose('mprocessor',true,'module',true,'solution',true,'solver',true,'convergence',true,'control',true,'qmu',true,'autodiff',true); -md.stressbalance.requested_outputs=StressTensorEnum(); +md.stressbalance.requested_outputs={'StressTensor'}; md=solve(md,StressbalanceSolutionEnum()); Index: ../trunk-jpl/test/NightlyRun/test3020.m =================================================================== --- ../trunk-jpl/test/NightlyRun/test3020.m (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test3020.m (revision 16363) @@ -7,7 +7,7 @@ md=parameterize(md,'../Par/SquareShelfConstrained.par'); md=setflowequation(md,'SSA','all'); md.cluster=generic('name',oshostname(),'np',1); -md.transient.requested_outputs=[IceVolumeEnum();MaxVelEnum()]; +md.transient.requested_outputs={'IceVolume','MaxVelEnum'}; md.verbose=verbose('autodiff',true); md.stressbalance.restol=1e-4; md.toolkits.DefaultAnalysis=issmgslsolver(); Index: ../trunk-jpl/test/NightlyRun/test3101.m =================================================================== --- ../trunk-jpl/test/NightlyRun/test3101.m (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test3101.m (revision 16363) @@ -3,7 +3,7 @@ md=parameterize(md,'../Par/SquareShelfConstrained.par'); md=setflowequation(md,'SSA','all'); md.cluster=generic('name',oshostname(),'np',3); -md.stressbalance.requested_outputs=StressTensorEnum(); +md.stressbalance.requested_outputs={'StressTensor'}; md.autodiff.isautodiff=true; md.toolkits.DefaultAnalysis=issmmumpssolver(); Index: ../trunk-jpl/test/NightlyRun/test3003.m =================================================================== --- ../trunk-jpl/test/NightlyRun/test3003.m (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test3003.m (revision 16363) @@ -4,7 +4,7 @@ md=extrude(md,3,2.); md=setflowequation(md,'HO','all'); md.cluster=generic('name',oshostname(),'np',1); -md.stressbalance.requested_outputs=StressTensorEnum(); +md.stressbalance.requested_outputs={'StressTensor'}; md.autodiff.isautodiff=true; md.toolkits.DefaultAnalysis=issmgslsolver(); md.verbose=verbose('autodiff',true); Index: ../trunk-jpl/test/NightlyRun/test110.m =================================================================== --- ../trunk-jpl/test/NightlyRun/test110.m (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test110.m (revision 16363) @@ -3,7 +3,7 @@ md=parameterize(md,'../Par/SquareShelfConstrained.par'); md=setflowequation(md,'SSA','all'); md.cluster=generic('name',oshostname(),'np',3); -md.transient.requested_outputs=IceVolumeEnum(); +md.transient.requested_outputs={'IceVolume'}; md=solve(md,TransientSolutionEnum()); Index: ../trunk-jpl/test/NightlyRun/test3110.m =================================================================== --- ../trunk-jpl/test/NightlyRun/test3110.m (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test3110.m (revision 16363) @@ -3,7 +3,7 @@ md=parameterize(md,'../Par/SquareShelfConstrained.par'); md=setflowequation(md,'SSA','all'); md.cluster=generic('name',oshostname(),'np',3); -md.transient.requested_outputs=IceVolumeEnum(); +md.transient.requested_outputs={'IceVolume'}; md.autodiff.isautodiff=true; md.verbose=verbose('autodiff',true); Index: ../trunk-jpl/test/NightlyRun/test3001.py =================================================================== --- ../trunk-jpl/test/NightlyRun/test3001.py (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test3001.py (revision 16363) @@ -12,7 +12,7 @@ md=parameterize(md,'../Par/SquareShelfConstrained.py') md=setflowequation(md,'SSA','all') md.cluster=generic('name',oshostname(),'np',1) -md.stressbalance.requested_outputs=StressTensorEnum() +md.stressbalance.requested_outputs=['StressTensor'] md.toolkits.DefaultAnalysis=issmgslsolver() md.autodiff.isautodiff=True md=solve(md,StressbalanceSolutionEnum()) Index: ../trunk-jpl/test/NightlyRun/test3015.py =================================================================== --- ../trunk-jpl/test/NightlyRun/test3015.py (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test3015.py (revision 16363) @@ -21,7 +21,7 @@ md=parameterize(md,'../Par/SquareShelfConstrained.py') md=setflowequation(md,'SSA','all') md.cluster=generic('name',oshostname(),'np',3) -md.masstransport.requested_outputs=IceVolumeEnum() +md.masstransport.requested_outputs=['IceVolume'] md.verbose=verbose('autodiff',True) md.toolkits.DefaultAnalysis=issmgslsolver() Index: ../trunk-jpl/test/NightlyRun/test3021.m =================================================================== --- ../trunk-jpl/test/NightlyRun/test3021.m (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test3021.m (revision 16363) @@ -3,7 +3,7 @@ md=parameterize(md,'../Par/SquareShelfConstrained.par'); md=setflowequation(md,'SSA','all'); md.cluster=generic('name',oshostname(),'np',3); -md.stressbalance.requested_outputs=StressTensorEnum(); +md.stressbalance.requested_outputs={'StressTensor'}; md.autodiff.isautodiff=false; md.toolkits.DefaultAnalysis=issmsolver(); md.verbose=verbose('1111111'); Index: ../trunk-jpl/test/NightlyRun/test111.m =================================================================== --- ../trunk-jpl/test/NightlyRun/test111.m (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test111.m (revision 16363) @@ -4,7 +4,7 @@ md=extrude(md,3,1.); md=setflowequation(md,'HO','all'); md.cluster=generic('name',oshostname(),'np',3); -md.transient.requested_outputs=IceVolumeEnum(); +md.transient.requested_outputs={'IceVolume'}; md=solve(md,TransientSolutionEnum()); %Fields and tolerances to track changes Index: ../trunk-jpl/test/NightlyRun/test234.m =================================================================== --- ../trunk-jpl/test/NightlyRun/test234.m (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test234.m (revision 16363) @@ -56,7 +56,7 @@ md.qmu.isdakota=1; md.stressbalance.reltol=10^-5; %tighten for qmu analyses -md.transient.requested_outputs=IceVolumeEnum(); +md.transient.requested_outputs={'IceVolume'}; %solve md=solve(md,TransientSolutionEnum(),'overwrite','y'); Index: ../trunk-jpl/test/NightlyRun/test3010.py =================================================================== --- ../trunk-jpl/test/NightlyRun/test3010.py (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test3010.py (revision 16363) @@ -13,7 +13,7 @@ md=setflowequation(md,'SSA','all') md.cluster=generic('name',oshostname(),'np',1) md.toolkits.DefaultAnalysis=issmgslsolver() -md.transient.requested_outputs=IceVolumeEnum() +md.transient.requested_outputs=['IceVolume'] md.autodiff.isautodiff=True md=solve(md,TransientSolutionEnum()) Index: ../trunk-jpl/test/NightlyRun/test101.py =================================================================== --- ../trunk-jpl/test/NightlyRun/test101.py (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test101.py (revision 16363) @@ -12,7 +12,7 @@ md=parameterize(md,'../Par/SquareShelfConstrained.py') md=setflowequation(md,'SSA','all') md.cluster=generic('name',oshostname(),'np',3) -md.stressbalance.requested_outputs=StressTensorEnum() +md.stressbalance.requested_outputs=['StressTensor'] md=solve(md,StressbalanceSolutionEnum()) #Fields and tolerances to track changes Index: ../trunk-jpl/test/NightlyRun/test103.m =================================================================== --- ../trunk-jpl/test/NightlyRun/test103.m (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test103.m (revision 16363) @@ -4,7 +4,7 @@ md=extrude(md,3,2.); md=setflowequation(md,'HO','all'); md.cluster=generic('name',oshostname(),'np',3); -md.stressbalance.requested_outputs=StressTensorEnum(); +md.stressbalance.requested_outputs={'StressTensor'}; md=solve(md,StressbalanceSolutionEnum()); %Fields and tolerances to track changes Index: ../trunk-jpl/test/NightlyRun/test424.py =================================================================== --- ../trunk-jpl/test/NightlyRun/test424.py (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test424.py (revision 16363) @@ -22,7 +22,7 @@ md.transient.isstressbalance=False md.transient.isgroundingline=True md.groundingline.migration='AgressiveMigration' -md.transient.requested_outputs=[IceVolumeEnum(),IceVolumeAboveFloatationEnum()] +md.transient.requested_outputs=['IceVolume','IceVolumeAboveFloatation'] md.cluster=generic('name',oshostname(),'np',3) md=solve(md,TransientSolutionEnum()) Index: ../trunk-jpl/test/NightlyRun/test3103.m =================================================================== --- ../trunk-jpl/test/NightlyRun/test3103.m (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test3103.m (revision 16363) @@ -4,7 +4,7 @@ md=extrude(md,3,2.); md=setflowequation(md,'HO','all'); md.cluster=generic('name',oshostname(),'np',3); -md.stressbalance.requested_outputs=StressTensorEnum(); +md.stressbalance.requested_outputs={'StressTensor'}; md.autodiff.isautodiff=true; md.toolkits.DefaultAnalysis=issmmumpssolver(); md.verbose=verbose('autodiff',true); Index: ../trunk-jpl/test/NightlyRun/test110.py =================================================================== --- ../trunk-jpl/test/NightlyRun/test110.py (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test110.py (revision 16363) @@ -12,7 +12,7 @@ md=parameterize(md,'../Par/SquareShelfConstrained.py') md=setflowequation(md,'SSA','all') md.cluster=generic('name',oshostname(),'np',3) -md.transient.requested_outputs=IceVolumeEnum() +md.transient.requested_outputs=['IceVolume'] md=solve(md,TransientSolutionEnum()) Index: ../trunk-jpl/test/NightlyRun/test235.m =================================================================== --- ../trunk-jpl/test/NightlyRun/test235.m (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test235.m (revision 16363) @@ -51,7 +51,7 @@ md.qmu.isdakota=1; md.stressbalance.reltol=10^-5; %tighten for qmu analyses -md.transient.requested_outputs=IceVolumeEnum(); +md.transient.requested_outputs={'IceVolume'}; %solve md=solve(md,TransientSolutionEnum(),'overwrite','y'); Index: ../trunk-jpl/test/NightlyRun/test3101.py =================================================================== --- ../trunk-jpl/test/NightlyRun/test3101.py (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test3101.py (revision 16363) @@ -12,7 +12,7 @@ md=parameterize(md,'../Par/SquareShelfConstrained.py') md=setflowequation(md,'SSA','all') md.cluster=generic('name',oshostname(),'np',3) -md.stressbalance.requested_outputs=StressTensorEnum() +md.stressbalance.requested_outputs=['StressTensor'] md.toolkits.DefaultAnalysis=issmmumpssolver() md.autodiff.isautodiff=True md=solve(md,StressbalanceSolutionEnum()) Index: ../trunk-jpl/test/NightlyRun/test3020.py =================================================================== --- ../trunk-jpl/test/NightlyRun/test3020.py (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test3020.py (revision 16363) @@ -21,7 +21,7 @@ md=parameterize(md,'../Par/SquareShelfConstrained.py') md=setflowequation(md,'SSA','all') md.cluster=generic('name',oshostname(),'np',1) -md.transient.requested_outputs=[IceVolumeEnum(),MaxVelEnum()] +md.transient.requested_outputs=['IceVolume','MaxVel'] md.verbose=verbose('autodiff',True) md.stressbalance.restol=0.000001 md.toolkits.DefaultAnalysis=issmgslsolver() Index: ../trunk-jpl/test/NightlyRun/test3015.m =================================================================== --- ../trunk-jpl/test/NightlyRun/test3015.m (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test3015.m (revision 16363) @@ -7,7 +7,7 @@ md=parameterize(md,'../Par/SquareShelfConstrained.par'); md=setflowequation(md,'SSA','all'); md.cluster=generic('name',oshostname(),'np',1); -md.masstransport.requested_outputs=IceVolumeEnum(); +md.masstransport.requested_outputs={'IceVolume'}; md.verbose=verbose('autodiff',true); md.toolkits.DefaultAnalysis=issmgslsolver(); Index: ../trunk-jpl/test/NightlyRun/test111.py =================================================================== --- ../trunk-jpl/test/NightlyRun/test111.py (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test111.py (revision 16363) @@ -13,7 +13,7 @@ md.extrude(3,1.) md=setflowequation(md,'HO','all') md.cluster=generic('name',oshostname(),'np',3) -md.transient.requested_outputs=IceVolumeEnum() +md.transient.requested_outputs=['IceVolume'] md=solve(md,TransientSolutionEnum()) #Fields and tolerances to track changes Index: ../trunk-jpl/test/NightlyRun/test424.m =================================================================== --- ../trunk-jpl/test/NightlyRun/test424.m (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test424.m (revision 16363) @@ -12,7 +12,7 @@ md.transient.isstressbalance=0; md.transient.isgroundingline=1; md.groundingline.migration='AgressiveMigration'; -md.transient.requested_outputs=[IceVolumeEnum();IceVolumeAboveFloatationEnum()]; +md.transient.requested_outputs={'IceVolume','IceVolumeAboveFloatation'}; md.cluster=generic('name',oshostname(),'np',3); md=solve(md,TransientSolutionEnum()); Index: ../trunk-jpl/test/NightlyRun/test3110.py =================================================================== --- ../trunk-jpl/test/NightlyRun/test3110.py (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test3110.py (revision 16363) @@ -13,7 +13,7 @@ md=setflowequation(md,'SSA','all') md.cluster=generic('name',oshostname(),'np',3) md.toolkits.DefaultAnalysis=issmmumpssolver() -md.transient.requested_outputs=IceVolumeEnum() +md.transient.requested_outputs=['IceVolume'] md.autodiff.isautodiff=True md=solve(md,TransientSolutionEnum()) Index: ../trunk-jpl/test/NightlyRun/test3003.py =================================================================== --- ../trunk-jpl/test/NightlyRun/test3003.py (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test3003.py (revision 16363) @@ -13,7 +13,7 @@ md.extrude(3,2.) md=setflowequation(md,'HO','all') md.cluster=generic('name',oshostname(),'np',1) -md.stressbalance.requested_outputs=StressTensorEnum() +md.stressbalance.requested_outputs=['StressTensor'] md.toolkits.DefaultAnalysis=issmgslsolver() md.autodiff.isautodiff=True md=solve(md,StressbalanceSolutionEnum()) Index: ../trunk-jpl/test/NightlyRun/test103.py =================================================================== --- ../trunk-jpl/test/NightlyRun/test103.py (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test103.py (revision 16363) @@ -13,7 +13,7 @@ md.extrude(3,2.) md=setflowequation(md,'HO','all') md.cluster=generic('name',oshostname(),'np',3) -md.stressbalance.requested_outputs=StressTensorEnum() +md.stressbalance.requested_outputs=['StressTensor'] md=solve(md,StressbalanceSolutionEnum()) #Fields and tolerances to track changes Index: ../trunk-jpl/test/NightlyRun/test426.py =================================================================== --- ../trunk-jpl/test/NightlyRun/test426.py (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test426.py (revision 16363) @@ -23,7 +23,7 @@ md.transient.isstressbalance=False md.transient.isgroundingline=True md.groundingline.migration='AgressiveMigration' -md.transient.requested_outputs=[IceVolumeEnum(),IceVolumeAboveFloatationEnum()] +md.transient.requested_outputs=['IceVolume','IceVolumeAboveFloatation'] md.cluster=generic('name',oshostname(),'np',3) md=solve(md,TransientSolutionEnum()) Index: ../trunk-jpl/test/NightlyRun/test328.py =================================================================== --- ../trunk-jpl/test/NightlyRun/test328.py (revision 16362) +++ ../trunk-jpl/test/NightlyRun/test328.py (revision 16363) @@ -16,7 +16,7 @@ md.surfaceforcings.issmbgradients=1 md.surfaceforcings.b_pos=-100. + 0.00005*md.mesh.x - 0.0001*md.mesh.y md.surfaceforcings.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y -md.transient.requested_outputs=TotalSmbEnum() +md.transient.requested_outputs=['TotalSmb'] md.surfaceforcings.href=copy.deepcopy(md.geometry.surface).reshape(-1) md.surfaceforcings.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y; md.cluster=generic('name',oshostname(),'np',3) Index: ../trunk-jpl/src/c/analyses/transient_core.cpp =================================================================== --- ../trunk-jpl/src/c/analyses/transient_core.cpp (revision 16362) +++ ../trunk-jpl/src/c/analyses/transient_core.cpp (revision 16363) @@ -19,6 +19,7 @@ void transient_core(FemModel* femmodel){ /*parameters: */ + int i; IssmDouble starttime,finaltime,dt,yts; bool isstressbalance,ismasstransport,isFS,isthermal,isgroundingline,isenthalpy,isdelta18o,isgia; bool save_results,dakota_analysis; @@ -26,8 +27,9 @@ int output_frequency; int meshtype,groundingline_migration; int numoutputs = 0; - int *requested_outputs = NULL; + char** requested_outputs = NULL; + /*intermediary: */ int step; IssmDouble time; @@ -183,6 +185,6 @@ femmodel->RequestedDependentsx(); - /*Free ressources:*/ - xDelete(requested_outputs); + /*Free ressources:*/ + if(numoutputs){ for (i=0;i(string);} xDelete(requested_outputs);} } Index: ../trunk-jpl/src/c/analyses/masstransport_core.cpp =================================================================== --- ../trunk-jpl/src/c/analyses/masstransport_core.cpp (revision 16362) +++ ../trunk-jpl/src/c/analyses/masstransport_core.cpp (revision 16363) @@ -12,10 +12,11 @@ void masstransport_core(FemModel* femmodel){ /*parameters: */ + int i; bool save_results; bool issmbgradients,ispdd,isdelta18o,isFS,isfreesurface,dakota_analysis; int solution_type; - int *requested_outputs = NULL; + char** requested_outputs = NULL; int numoutputs = 0; /*activate configuration*/ @@ -76,5 +77,5 @@ if(solution_type==MasstransportSolutionEnum)femmodel->RequestedDependentsx(); /*Free ressources:*/ - xDelete(requested_outputs); + if(numoutputs){ for (i=0;i(string);} xDelete(requested_outputs);} } Index: ../trunk-jpl/src/c/analyses/stressbalance_core.cpp =================================================================== --- ../trunk-jpl/src/c/analyses/stressbalance_core.cpp (revision 16362) +++ ../trunk-jpl/src/c/analyses/stressbalance_core.cpp (revision 16363) @@ -20,8 +20,10 @@ int newton; int solution_type; int numoutputs = 0; - int *requested_outputs = NULL; + char** requested_outputs = NULL; + int i; + /* recover parameters:*/ femmodel->parameters->FindParam(&meshtype,MeshTypeEnum); femmodel->parameters->FindParam(&isSIA,FlowequationIsSIAEnum); @@ -95,6 +97,6 @@ if(solution_type==StressbalanceSolutionEnum)femmodel->RequestedDependentsx(); - /*Free ressources:*/ - xDelete(requested_outputs); + /*Free ressources:*/ + if(numoutputs){ for (i=0;i(string);} xDelete(requested_outputs);} } Index: ../trunk-jpl/src/c/analyses/steadystate_core.cpp =================================================================== --- ../trunk-jpl/src/c/analyses/steadystate_core.cpp (revision 16362) +++ ../trunk-jpl/src/c/analyses/steadystate_core.cpp (revision 16363) @@ -20,6 +20,7 @@ void steadystate_core(FemModel* femmodel){ /*intermediary: */ + int i; int step; Vector* ug = NULL; Vector* ug_old = NULL; @@ -31,7 +32,7 @@ int maxiter; IssmDouble reltol; int numoutputs = 0; - int *requested_outputs = NULL; + char** requested_outputs = NULL; /* recover parameters:*/ femmodel->parameters->FindParam(&save_results,SaveResultsEnum); @@ -101,8 +102,8 @@ delete tg_old; delete ug_old; delete tg; - delete ug; - xDelete(requested_outputs); + delete ug; + if(numoutputs){ for (i=0;i(string);} xDelete(requested_outputs);} } bool steadystateconvergence(Vector* tg,Vector* tg_old,Vector* ug,Vector* ug_old,IssmDouble reltol){ Index: ../trunk-jpl/src/c/modules/ModelProcessorx/Stressbalance/CreateParametersStressbalance.cpp =================================================================== --- ../trunk-jpl/src/c/modules/ModelProcessorx/Stressbalance/CreateParametersStressbalance.cpp (revision 16362) +++ ../trunk-jpl/src/c/modules/ModelProcessorx/Stressbalance/CreateParametersStressbalance.cpp (revision 16363) @@ -11,7 +11,7 @@ /*Intermediaries*/ int numoutputs; - IssmDouble *requestedoutputs = NULL; + char** requestedoutputs = NULL; /*Get parameters: */ Parameters *parameters=*pparameters; @@ -34,10 +34,10 @@ parameters->AddObject(iomodel->CopyConstantObject(StressbalanceViscosityOvershootEnum)); /*Requested outputs*/ - iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,StressbalanceRequestedOutputsEnum); + iomodel->FetchData(&requestedoutputs,&numoutputs,StressbalanceRequestedOutputsEnum); parameters->AddObject(new IntParam(StressbalanceNumRequestedOutputsEnum,numoutputs)); - if(numoutputs)parameters->AddObject(new IntVecParam(StressbalanceRequestedOutputsEnum,requestedoutputs,numoutputs)); - iomodel->DeleteData(requestedoutputs,StressbalanceRequestedOutputsEnum); + if(numoutputs)parameters->AddObject(new StringArrayParam(StressbalanceRequestedOutputsEnum,requestedoutputs,numoutputs)); + iomodel->DeleteData(&requestedoutputs,numoutputs,StressbalanceRequestedOutputsEnum); /*Assign output pointer: */ *pparameters = parameters; Index: ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp =================================================================== --- ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp (revision 16362) +++ ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp (revision 16363) @@ -20,7 +20,7 @@ int i,j,m,k; int numoutputs,meshtype; Parameters *parameters = NULL; - IssmDouble *requestedoutputs = NULL; + char** requestedoutputs = NULL; IssmDouble time; bool ispdd,isdelta18o; @@ -135,20 +135,21 @@ /*By default, save all results*/ parameters->AddObject(new BoolParam(SaveResultsEnum,true)); - iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,TransientRequestedOutputsEnum); + /*Requested outputs */ + iomodel->FetchData(&requestedoutputs,&numoutputs,TransientRequestedOutputsEnum); parameters->AddObject(new IntParam(TransientNumRequestedOutputsEnum,numoutputs)); - if(numoutputs)parameters->AddObject(new IntVecParam(TransientRequestedOutputsEnum,requestedoutputs,numoutputs)); - iomodel->DeleteData(requestedoutputs,TransientRequestedOutputsEnum); + if(numoutputs)parameters->AddObject(new StringArrayParam(TransientRequestedOutputsEnum,requestedoutputs,numoutputs)); + iomodel->DeleteData(&requestedoutputs,numoutputs,TransientRequestedOutputsEnum); - iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,SteadystateRequestedOutputsEnum); + iomodel->FetchData(&requestedoutputs,&numoutputs,SteadystateRequestedOutputsEnum); parameters->AddObject(new IntParam(SteadystateNumRequestedOutputsEnum,numoutputs)); - if(numoutputs)parameters->AddObject(new IntVecParam(SteadystateRequestedOutputsEnum,requestedoutputs,numoutputs)); - iomodel->DeleteData(requestedoutputs,SteadystateRequestedOutputsEnum); + if(numoutputs)parameters->AddObject(new StringArrayParam(SteadystateRequestedOutputsEnum,requestedoutputs,numoutputs)); + iomodel->DeleteData(&requestedoutputs,numoutputs,SteadystateRequestedOutputsEnum); - iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,MasstransportRequestedOutputsEnum); + iomodel->FetchData(&requestedoutputs,&numoutputs,MasstransportRequestedOutputsEnum); parameters->AddObject(new IntParam(MasstransportNumRequestedOutputsEnum,numoutputs)); - if(numoutputs)parameters->AddObject(new IntVecParam(MasstransportRequestedOutputsEnum,requestedoutputs,numoutputs)); - iomodel->DeleteData(requestedoutputs,MasstransportRequestedOutputsEnum); + if(numoutputs)parameters->AddObject(new StringArrayParam(MasstransportRequestedOutputsEnum,requestedoutputs,numoutputs)); + iomodel->DeleteData(&requestedoutputs,numoutputs,MasstransportRequestedOutputsEnum); /*Deal with mass flux segments: {{{*/ iomodel->FetchData(&qmu_mass_flux_present,QmuMassFluxSegmentsPresentEnum); Index: ../trunk-jpl/src/c/classes/FemModel.cpp =================================================================== --- ../trunk-jpl/src/c/classes/FemModel.cpp (revision 16362) +++ ../trunk-jpl/src/c/classes/FemModel.cpp (revision 16363) @@ -469,9 +469,9 @@ } /*}}}*/ -void FemModel::RequestedOutputsx(int* requested_outputs, int numoutputs){/*{{{*/ +void FemModel::RequestedOutputsx(char** requested_outputs, int numoutputs){/*{{{*/ - int output_enum; + char* output_string; int step; IssmDouble time; IssmDouble output_value; @@ -484,34 +484,28 @@ /*retrieve Inputs*/ if(numoutputs){ for(int i=0;iAddObject(new GenericExternalResult(results->Size()+1,IceVolumeEnum,reCast(output_value),step,time)); - case IceVolumeEnum: - Responsex(&output_value,"IceVolume"); - results->AddObject(new GenericExternalResult(results->Size()+1,IceVolumeEnum,reCast(output_value),step,time)); - break; - case IceVolumeAboveFloatationEnum: - Responsex(&output_value,"IceVolumeAboveFloatation"); - results->AddObject(new GenericExternalResult(results->Size()+1,IceVolumeAboveFloatationEnum,reCast(output_value),step,time)); - break; - case TotalSmbEnum: - Responsex(&output_value,"TotalSmb"); - results->AddObject(new GenericExternalResult(results->Size()+1,TotalSmbEnum,reCast(output_value),step,time)); - break; - case MaxVelEnum: - Responsex(&output_value,"MaxVel"); - results->AddObject(new GenericExternalResult(results->Size()+1,MaxVelEnum,reCast(output_value),step,time)); - break; - default: - /*create this output in the element inputs, and then transfer to results:*/ - for(int j=0;jSize();j++){ - element=(Element*)elements->GetObjectByOffset(j); - element->RequestedOutput(output_enum,step,time); - } - break; } + else if (strcmp(output_string,"TotalSmb")==0){ + Responsex(&output_value,output_string); + results->AddObject(new GenericExternalResult(results->Size()+1,TotalSmbEnum,reCast(output_value),step,time)); + } + else if (strcmp(output_string,"MaxVel")==0){ + Responsex(&output_value,output_string); + results->AddObject(new GenericExternalResult(results->Size()+1,MaxVelEnum,reCast(output_value),step,time)); + } + else{ + /*create this output in the element inputs, and then transfer to results:*/ + for(int j=0;jSize();j++){ + element=(Element*)elements->GetObjectByOffset(j); + element->RequestedOutput(StringToEnumx(output_string),step,time); + } + } } } } Index: ../trunk-jpl/src/c/classes/IoModel.h =================================================================== --- ../trunk-jpl/src/c/classes/IoModel.h (revision 16362) +++ ../trunk-jpl/src/c/classes/IoModel.h (revision 16363) @@ -66,6 +66,7 @@ IssmDouble *Data(int dataenum); void DeleteData(int num,...); void DeleteData(IssmDouble* vector, int dataenum); + void DeleteData(char*** pstringarray, int numstrings, int dataenum); void FetchConstants(void); void FetchData(bool* pboolean,int data_enum); void FetchData(int* pinteger,int data_enum); Index: ../trunk-jpl/src/c/classes/IoModel.cpp =================================================================== --- ../trunk-jpl/src/c/classes/IoModel.cpp (revision 16362) +++ ../trunk-jpl/src/c/classes/IoModel.cpp (revision 16363) @@ -339,6 +339,21 @@ if(vector)if (!this->independents[dataenum]) xDelete(vector); } /*}}}*/ +/*FUNCTION IoModel::DeleteData(char*** pstringarray, int numstrings, int dataenum) {{{*/ +void IoModel::DeleteData(char*** pstringarray, int numstrings, int dataenum){ + + int i; + char** stringarray=*pstringarray; + + if (numstrings){ + for (i=0;i(string); + } + xDelete(stringarray); + } + *pstringarray=NULL; +} /*}}}*/ /*FUNCTION IoModel::FetchConstants{{{*/ void IoModel::FetchConstants(void){ Index: ../trunk-jpl/src/c/classes/FemModel.h =================================================================== --- ../trunk-jpl/src/c/classes/FemModel.h (revision 16362) +++ ../trunk-jpl/src/c/classes/FemModel.h (revision 16363) @@ -81,7 +81,7 @@ #ifdef _HAVE_DAKOTA_ void DakotaResponsesx(double* d_responses,char** responses_descriptors,int numresponsedescriptors,int d_numresponses); #endif - void RequestedOutputsx(int* requested_outputs, int numoutputs); + void RequestedOutputsx(char** requested_outputs, int numoutputs); void RequestedDependentsx(void); void Responsex(IssmDouble* presponse,int response_descriptor_enum); void Responsex(IssmDouble* presponse,const char* response_descriptor); Index: ../trunk-jpl/src/m/classes/transient.py =================================================================== --- ../trunk-jpl/src/m/classes/transient.py (revision 16362) +++ ../trunk-jpl/src/m/classes/transient.py (revision 16363) @@ -17,7 +17,7 @@ self.isthermal = False self.isgroundingline = False self.isgia = False - self.requested_outputs = float('NaN') + self.requested_outputs = [] #set defaults self.setdefaultparameters() @@ -55,7 +55,7 @@ md = checkfield(md,'transient.isthermal','numel',[1],'values',[0,1]) md = checkfield(md,'transient.isgroundingline','numel',[1],'values',[0,1]) md = checkfield(md,'transient.isgia','numel',[1],'values',[0,1]) - md = checkfield(md,'transient.requested_outputs','size',[float('NaN')]) + md = checkfield(md,'transient.requested_outputs','size',[1, float('NaN')]) return md @@ -66,6 +66,6 @@ WriteData(fid,'object',self,'fieldname','isthermal','format','Boolean') WriteData(fid,'object',self,'fieldname','isgroundingline','format','Boolean') WriteData(fid,'object',self,'fieldname','isgia','format','Boolean') - WriteData(fid,'object',self,'fieldname','requested_outputs','format','DoubleMat','mattype',3) + WriteData(fid,'object',self,'fieldname','requested_outputs','format','StringArray') # }}} Index: ../trunk-jpl/src/m/classes/steadystate.m =================================================================== --- ../trunk-jpl/src/m/classes/steadystate.m (revision 16362) +++ ../trunk-jpl/src/m/classes/steadystate.m (revision 16363) @@ -7,7 +7,7 @@ properties (SetAccess=public) reltol = 0; maxiter = 0; - requested_outputs = NaN; + requested_outputs = {}; end methods function obj = steadystate(varargin) % {{{ @@ -49,7 +49,7 @@ function marshall(obj,md,fid) % {{{ WriteData(fid,'object',obj,'fieldname','reltol','format','Double'); WriteData(fid,'object',obj,'fieldname','maxiter','format','Integer'); - WriteData(fid,'object',obj,'fieldname','requested_outputs','format','DoubleMat','mattype',3); + WriteData(fid,'object',obj,'fieldname','requested_outputs','format','StringArray'); end % }}} end end Index: ../trunk-jpl/src/m/classes/transient.m =================================================================== --- ../trunk-jpl/src/m/classes/transient.m (revision 16362) +++ ../trunk-jpl/src/m/classes/transient.m (revision 16363) @@ -11,7 +11,7 @@ isgroundingline = 0; isgia = 0; isdamage = 0; - requested_outputs = NaN; + requested_outputs = {}; end methods function obj = transient(varargin) % {{{ @@ -44,7 +44,7 @@ md = checkfield(md,'transient.isgroundingline','numel',[1],'values',[0 1]); md = checkfield(md,'transient.isgia','numel',[1],'values',[0 1]); md = checkfield(md,'transient.isdamage','numel',[1],'values',[0 1]); - md = checkfield(md,'transient.requested_outputs','size',[NaN 1]); + md = checkfield(md,'transient.requested_outputs','size',[1 NaN]); end % }}} function disp(obj) % {{{ @@ -66,7 +66,7 @@ WriteData(fid,'object',obj,'fieldname','isgroundingline','format','Boolean'); WriteData(fid,'object',obj,'fieldname','isgia','format','Boolean'); WriteData(fid,'object',obj,'fieldname','isdamage','format','Boolean'); - WriteData(fid,'object',obj,'fieldname','requested_outputs','format','DoubleMat','mattype',3); + WriteData(fid,'object',obj,'fieldname','requested_outputs','format','StringArray'); end % }}} end end Index: ../trunk-jpl/src/m/classes/masstransport.py =================================================================== --- ../trunk-jpl/src/m/classes/masstransport.py (revision 16362) +++ ../trunk-jpl/src/m/classes/masstransport.py (revision 16363) @@ -20,7 +20,7 @@ self.stabilization = 0 self.vertex_pairing = float('NaN') self.penalty_factor = 0 - self.requested_outputs = float('NaN') + self.requested_outputs = [] #set defaults self.setdefaultparameters() @@ -65,7 +65,7 @@ md = checkfield(md,'masstransport.stabilization','values',[0,1,2,3]) md = checkfield(md,'masstransport.min_thickness','>',0) if not md.masstransport.requested_outputs: - md = checkfield(md,'masstransport.requested_outputs','size',[float('NaN'),1]) + md = checkfield(md,'masstransport.requested_outputs','size',[1, float('NaN')]) return md # }}} @@ -77,5 +77,5 @@ WriteData(fid,'object',self,'fieldname','stabilization','format','Integer') WriteData(fid,'object',self,'fieldname','vertex_pairing','format','DoubleMat','mattype',3) WriteData(fid,'object',self,'fieldname','penalty_factor','format','Double') - WriteData(fid,'object',self,'fieldname','requested_outputs','format','DoubleMat','mattype',3); + WriteData(fid,'object',self,'fieldname','requested_outputs','format','StringArray'); # }}} Index: ../trunk-jpl/src/m/classes/snowpack.m =================================================================== --- ../trunk-jpl/src/m/classes/snowpack.m (revision 16362) +++ ../trunk-jpl/src/m/classes/snowpack.m (revision 16363) @@ -470,7 +470,7 @@ WriteData(fid,'object',obj,'class','snowpack','fieldname','rift_penalty_lock','format','Integer'); WriteData(fid,'object',obj,'class','snowpack','fieldname','rift_penalty_threshold','format','Integer'); WriteData(fid,'object',obj,'class','snowpack','fieldname','referential','format','DoubleMat','mattype',1); - WriteData(fid,'object',obj,'class','snowpack','fieldname','requested_outputs','format','DoubleMat','mattype',3); + WriteData(fid,'object',obj,'class','snowpack','fieldname','requested_outputs','format','StringArray'); WriteData(fid,'data',obj.loadingforce(:,1),'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum); WriteData(fid,'data',obj.loadingforce(:,2),'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum); WriteData(fid,'data',obj.loadingforce(:,3),'format','DoubleMat','mattype',1,'enum',LoadingforceZEnum); Index: ../trunk-jpl/src/m/classes/stressbalance.py =================================================================== --- ../trunk-jpl/src/m/classes/stressbalance.py (revision 16362) +++ ../trunk-jpl/src/m/classes/stressbalance.py (revision 16363) @@ -33,7 +33,7 @@ self.rift_penalty_threshold = 0 self.referential = float('NaN') self.loadingforce = float('NaN') - self.requested_outputs = float('NaN') + self.requested_outputs = [] #set defaults self.setdefaultparameters() @@ -123,7 +123,7 @@ md = checkfield(md,'stressbalance.referential','size',[md.mesh.numberofvertices,6]) md = checkfield(md,'stressbalance.loadingforce','size',[md.mesh.numberofvertices,3]) if not md.stressbalance.requested_outputs: - md = checkfield(md,'stressbalance.requested_outputs','size',[float('NaN'),1]) + md = checkfield(md,'stressbalance.requested_outputs','size',[1, float('NaN')]) #singular solution # if ~any((~isnan(md.stressbalance.spcvx)+~isnan(md.stressbalance.spcvy))==2), @@ -171,7 +171,7 @@ WriteData(fid,'object',self,'class','stressbalance','fieldname','rift_penalty_lock','format','Integer') WriteData(fid,'object',self,'class','stressbalance','fieldname','rift_penalty_threshold','format','Integer') WriteData(fid,'object',self,'class','stressbalance','fieldname','referential','format','DoubleMat','mattype',1) - WriteData(fid,'object',self,'class','stressbalance','fieldname','requested_outputs','format','DoubleMat','mattype',3) + WriteData(fid,'object',self,'class','stressbalance','fieldname','requested_outputs','format','StringArray') WriteData(fid,'data',self.loadingforce[:,0],'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum()) WriteData(fid,'data',self.loadingforce[:,1],'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum()) WriteData(fid,'data',self.loadingforce[:,2],'format','DoubleMat','mattype',1,'enum',LoadingforceZEnum()) Index: ../trunk-jpl/src/m/classes/steadystate.py =================================================================== --- ../trunk-jpl/src/m/classes/steadystate.py (revision 16362) +++ ../trunk-jpl/src/m/classes/steadystate.py (revision 16363) @@ -15,7 +15,7 @@ def __init__(self): # {{{ self.reltol = 0 self.maxiter = 0 - self.requested_outputs = float('NaN') + self.requested_outputs = [] #set defaults self.setdefaultparameters() @@ -55,5 +55,5 @@ def marshall(self,md,fid): # {{{ WriteData(fid,'object',self,'fieldname','reltol','format','Double') WriteData(fid,'object',self,'fieldname','maxiter','format','Integer') - WriteData(fid,'object',self,'fieldname','requested_outputs','format','DoubleMat','mattype',3) + WriteData(fid,'object',self,'fieldname','requested_outputs','format','StringArray') # }}} Index: ../trunk-jpl/src/m/classes/stressbalance.m =================================================================== --- ../trunk-jpl/src/m/classes/stressbalance.m (revision 16362) +++ ../trunk-jpl/src/m/classes/stressbalance.m (revision 16363) @@ -22,7 +22,7 @@ rift_penalty_threshold = 0; referential = NaN; loadingforce = NaN; - requested_outputs = NaN; + requested_outputs = {}; end methods function obj = stressbalance(varargin) % {{{ @@ -91,7 +91,7 @@ md = checkfield(md,'stressbalance.referential','size',[md.mesh.numberofvertices 6]); md = checkfield(md,'stressbalance.loadingforce','size',[md.mesh.numberofvertices 3]); if ~isempty(md.stressbalance.requested_outputs), - md = checkfield(md,'stressbalance.requested_outputs','size',[NaN 1]); + md = checkfield(md,'stressbalance.requested_outputs','size',[1 NaN]); end %singular solution @@ -171,7 +171,7 @@ WriteData(fid,'object',obj,'class','stressbalance','fieldname','rift_penalty_lock','format','Integer'); WriteData(fid,'object',obj,'class','stressbalance','fieldname','rift_penalty_threshold','format','Integer'); WriteData(fid,'object',obj,'class','stressbalance','fieldname','referential','format','DoubleMat','mattype',1); - WriteData(fid,'object',obj,'class','stressbalance','fieldname','requested_outputs','format','DoubleMat','mattype',3); + WriteData(fid,'object',obj,'class','stressbalance','fieldname','requested_outputs','format','StringArray'); WriteData(fid,'data',obj.loadingforce(:,1),'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum); WriteData(fid,'data',obj.loadingforce(:,2),'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum); WriteData(fid,'data',obj.loadingforce(:,3),'format','DoubleMat','mattype',1,'enum',LoadingforceZEnum); Index: ../trunk-jpl/src/m/classes/masstransport.m =================================================================== --- ../trunk-jpl/src/m/classes/masstransport.m (revision 16362) +++ ../trunk-jpl/src/m/classes/masstransport.m (revision 16363) @@ -12,7 +12,7 @@ stabilization = 0; vertex_pairing = NaN; penalty_factor = 0; - requested_outputs = NaN; + requested_outputs = {}; end methods (Static) function obj = loadobj(obj) % {{{ @@ -84,7 +84,7 @@ md = checkfield(md,'masstransport.stabilization','values',[0 1 2 3]); md = checkfield(md,'masstransport.min_thickness','>',0); if ~isempty(md.masstransport.requested_outputs), - md = checkfield(md,'masstransport.requested_outputs','size',[NaN 1]); + md = checkfield(md,'masstransport.requested_outputs','size',[1 NaN]); end end % }}} @@ -110,7 +110,7 @@ WriteData(fid,'object',obj,'fieldname','stabilization','format','Integer'); WriteData(fid,'object',obj,'fieldname','vertex_pairing','format','DoubleMat','mattype',3); WriteData(fid,'object',obj,'fieldname','penalty_factor','format','Double'); - WriteData(fid,'object',obj,'fieldname','requested_outputs','format','DoubleMat','mattype',3); + WriteData(fid,'object',obj,'fieldname','requested_outputs','format','StringArray'); end % }}} end end