Changeset 375


Ignore:
Timestamp:
05/13/09 09:00:01 (16 years ago)
Author:
jschierm
Message:

Addition of error flags from Matlab runs back to Dakota.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/m/solutions/dakota/dakota_m_write.m

    r356 r375  
    5959%  write end of the Matlab m-file
    6060
    61 end_write(fidm,name);
     61end_write(fidm,name,params);
    6262
    6363fclose(fidm);
     
    7777    fprintf(fidm,'%%\n');
    7878    fprintf(fidm,'function Dakota=%s(Dakota)\n\n',name);
    79     fprintf(fidm,'\tclk=clock;\n');
    80     fprintf(fidm,'\tcpu=cputime;\n\n');
    81     fprintf(fidm,'%%\tDakota\n\n');
    82     fprintf(fidm,'\tinfile=''%s'';\n','Qmu.model');
     79    fprintf(fidm,'clk=clock;\n');
     80    fprintf(fidm,'cpu=cputime;\n\n');
     81    fprintf(fidm,'%% Dakota\n\n');
     82    fprintf(fidm,'infile=''%s'';\n','Qmu.model');
    8383else
    8484    fprintf(fidm,'%%  Run the specified input file and return the output file.\n');
    8585    fprintf(fidm,'%%\n');
    8686    fprintf(fidm,'function %s(infile,outfile)\n\n',name);
    87     fprintf(fidm,'\tclk=clock;\n');
    88     fprintf(fidm,'\tcpu=cputime;\n\n');
    89 end
     87    fprintf(fidm,'clk=clock;\n');
     88    fprintf(fidm,'cpu=cputime;\n\n');
     89end
     90fprintf(fidm,'try\n');
    9091fprintf(fidm,'\tloadmodel(infile);\n\n');
    9192
     
    221222%%  function to write end of the Matlab m-file
    222223
    223 function []=end_write(fidm,name)
     224function []=end_write(fidm,name,params)
    224225
    225226display('Writing end of Matlab m-file.');
    226227
    227 fprintf(fidm,'\tdisp(sprintf(''%s -- %%f CPU seconds; %%f clock seconds\\n'',...\n',name);
    228 fprintf(fidm,'\t    cputime-cpu,etime(clock,clk)))\n\n');
     228fprintf(fidm,'%%  Error condition.\n\n');
     229
     230fprintf(fidm,'catch ME\n');
     231fprintf(fidm,'\tME\n');
     232fprintf(fidm,'\tfor i=1:length(ME.stack)\n');
     233fprintf(fidm,'\t\tdisplay(sprintf(''    file(%%d): %%s'',  i,ME.stack(i).file));\n');
     234fprintf(fidm,'\t\tdisplay(sprintf(''    name(%%d): %%s'',  i,ME.stack(i).name));\n');
     235fprintf(fidm,'\t\tdisplay(sprintf(''    line(%%d): %%d\\n'',i,ME.stack(i).line));\n');
     236fprintf(fidm,'\tend\n');
     237if strcmpi(params.analysis_driver,'matlab')
     238    fprintf(fidm,'\tDakota.failure=1;\n');
     239else
     240    fprintf(fidm,'\tfid=fopen(outfile,''w'');\n');
     241    fprintf(fidm,'\tfprintf(fid,''fail\\n'');\n');
     242    fprintf(fidm,'\tstatus=fclose(fid);\n');
     243end
    229244fprintf(fidm,'end\n\n');
    230245
    231 end
     246fprintf(fidm,'disp(sprintf(''%s -- %%f CPU seconds; %%f clock seconds\\n'',...\n',name);
     247fprintf(fidm,'    cputime-cpu,etime(clock,clk)))\n\n');
     248fprintf(fidm,'end\n\n');
     249
     250end
Note: See TracChangeset for help on using the changeset viewer.