itexit matlab on error - cosmo - front and backend for Markov-Chain Monte Carlo inversion of cosmogenic nuclide concentrations Err mx1.adamsgaard.dk 70 hgit clone git://src.adamsgaard.dk/cosmo URL:git://src.adamsgaard.dk/cosmo mx1.adamsgaard.dk 70 1Log /src/log.gph mx1.adamsgaard.dk 70 1Files /src/files.gph mx1.adamsgaard.dk 70 1Refs /src/refs.gph mx1.adamsgaard.dk 70 1README /src/file/README.md.gph mx1.adamsgaard.dk 70 1LICENSE /src/file/LICENSE.gph mx1.adamsgaard.dk 70 i--- Err mx1.adamsgaard.dk 70 1commit b87a5a357c89179c1397be92a291c0d7523252e5 /src/commit/b87a5a357c89179c1397be92a291c0d7523252e5.gph mx1.adamsgaard.dk 70 1parent 4bdfcc45d50e0c057f7b42f611d17e7693ab48fb /src/commit/4bdfcc45d50e0c057f7b42f611d17e7693ab48fb.gph mx1.adamsgaard.dk 70 hAuthor: Anders Damsgaard URL:mailto:anders.damsgaard@geo.au.dk mx1.adamsgaard.dk 70 iDate: Mon, 7 Dec 2015 14:32:38 +0100 Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 iexit matlab on error Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 iDiffstat: Err mx1.adamsgaard.dk 70 i M matlab/file_scanner_mcmc_starter.m | 197 ++++++++++++++++--------------- Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i1 file changed, 102 insertions(+), 95 deletions(-) Err mx1.adamsgaard.dk 70 i--- Err mx1.adamsgaard.dk 70 1diff --git a/matlab/file_scanner_mcmc_starter.m b/matlab/file_scanner_mcmc_starter.m /src/file/matlab/file_scanner_mcmc_starter.m.gph mx1.adamsgaard.dk 70 it@@ -58,104 +58,111 @@ disp('Entering main loop, waiting for input from web interface...'); Err mx1.adamsgaard.dk 70 i %% main loop Err mx1.adamsgaard.dk 70 i while 1 Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i- % detect all files in infolder starting with prefix Err mx1.adamsgaard.dk 70 i- infiles = dir(strcat(infolder, '/', prefix, '*')); Err mx1.adamsgaard.dk 70 i+ try Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i- % sort files according to modification time Err mx1.adamsgaard.dk 70 i- [sorteddates, sortidx] = sort([infiles.datenum]); Err mx1.adamsgaard.dk 70 i- infiles = infiles(sortidx); Err mx1.adamsgaard.dk 70 i- Err mx1.adamsgaard.dk 70 i- % process files sequentially Err mx1.adamsgaard.dk 70 i- for i = 1:length(infiles); Err mx1.adamsgaard.dk 70 i- Err mx1.adamsgaard.dk 70 i- % read full file name and path Err mx1.adamsgaard.dk 70 i- infile = strcat(infolder, '/', infiles(i).name); Err mx1.adamsgaard.dk 70 i- Err mx1.adamsgaard.dk 70 i- % move to waitfolder Err mx1.adamsgaard.dk 70 i- movefile(infile, waitfolder); Err mx1.adamsgaard.dk 70 i- waitfile = strcat(waitfolder, '/', infiles(i).name); Err mx1.adamsgaard.dk 70 i- Err mx1.adamsgaard.dk 70 i- idstring = strsplit(infile, '_'); Err mx1.adamsgaard.dk 70 i- id = idstring(2); Err mx1.adamsgaard.dk 70 i- statusfile = char(strcat(infolder, '/status_', id)); Err mx1.adamsgaard.dk 70 i- diary(char(strcat(infolder, '/log_', id))); Err mx1.adamsgaard.dk 70 i- Err mx1.adamsgaard.dk 70 i- if debug Err mx1.adamsgaard.dk 70 i- disp(infile); Err mx1.adamsgaard.dk 70 i- disp(strcat('Simulation id: ', id)); Err mx1.adamsgaard.dk 70 i+ % detect all files in infolder starting with prefix Err mx1.adamsgaard.dk 70 i+ infiles = dir(strcat(infolder, '/', prefix, '*')); Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i+ % sort files according to modification time Err mx1.adamsgaard.dk 70 i+ [sorteddates, sortidx] = sort([infiles.datenum]); Err mx1.adamsgaard.dk 70 i+ infiles = infiles(sortidx); Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i+ % process files sequentially Err mx1.adamsgaard.dk 70 i+ for i = 1:length(infiles); Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i+ % read full file name and path Err mx1.adamsgaard.dk 70 i+ infile = strcat(infolder, '/', infiles(i).name); Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i+ % move to waitfolder Err mx1.adamsgaard.dk 70 i+ movefile(infile, waitfolder); Err mx1.adamsgaard.dk 70 i+ waitfile = strcat(waitfolder, '/', infiles(i).name); Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i+ idstring = strsplit(infile, '_'); Err mx1.adamsgaard.dk 70 i+ id = idstring(2); Err mx1.adamsgaard.dk 70 i+ statusfile = char(strcat(infolder, '/status_', id)); Err mx1.adamsgaard.dk 70 i+ diary(char(strcat(infolder, '/log_', id))); Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i+ if debug Err mx1.adamsgaard.dk 70 i+ disp(infile); Err mx1.adamsgaard.dk 70 i+ disp(strcat('Simulation id: ', id)); Err mx1.adamsgaard.dk 70 i+ end Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i+ % read file and save data to local scope Err mx1.adamsgaard.dk 70 i+ [sample_id, name, email, lat, long, ... Err mx1.adamsgaard.dk 70 i+ be_conc, al_conc, c_conc, ne_conc, ... Err mx1.adamsgaard.dk 70 i+ be_uncer, al_uncer, c_uncer, ne_uncer, ... Err mx1.adamsgaard.dk 70 i+ zobs, ... Err mx1.adamsgaard.dk 70 i+ be_prod_spall, al_prod_spall, c_prod_spall, ne_prod_spall, ... Err mx1.adamsgaard.dk 70 i+ be_prod_muons, al_prod_muons, c_prod_muons, ne_prod_muons, ... Err mx1.adamsgaard.dk 70 i+ rock_density, ... Err mx1.adamsgaard.dk 70 i+ epsilon_gla_min, epsilon_gla_max, ... Err mx1.adamsgaard.dk 70 i+ epsilon_int_min, epsilon_int_max, ... Err mx1.adamsgaard.dk 70 i+ t_degla_min, t_degla_max, ... Err mx1.adamsgaard.dk 70 i+ record, ... Err mx1.adamsgaard.dk 70 i+ record_threshold_min, record_threshold_max, ... Err mx1.adamsgaard.dk 70 i+ nwalkers] ... Err mx1.adamsgaard.dk 70 i+ = import_php_file(waitfile, 1, 1); % only read first line Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i+ % run inversion Err mx1.adamsgaard.dk 70 i+ [Ss, save_file] = mcmc_inversion(matlab_scripts_folder, debug, ... Err mx1.adamsgaard.dk 70 i+ nwalkers, outfolder, ... Err mx1.adamsgaard.dk 70 i+ be_conc, al_conc, c_conc, ne_conc, ... Err mx1.adamsgaard.dk 70 i+ be_uncer, al_uncer, c_uncer, ne_uncer, ... Err mx1.adamsgaard.dk 70 i+ zobs, ... Err mx1.adamsgaard.dk 70 i+ be_prod_spall, al_prod_spall, c_prod_spall, ne_prod_spall, ... Err mx1.adamsgaard.dk 70 i+ be_prod_muons, al_prod_muons, c_prod_muons, ne_prod_muons, ... Err mx1.adamsgaard.dk 70 i+ rock_density, ... Err mx1.adamsgaard.dk 70 i+ epsilon_gla_min, epsilon_gla_max, ... Err mx1.adamsgaard.dk 70 i+ epsilon_int_min, epsilon_int_max, ... Err mx1.adamsgaard.dk 70 i+ t_degla_min, t_degla_max, ... Err mx1.adamsgaard.dk 70 i+ record, ... Err mx1.adamsgaard.dk 70 i+ record_threshold_min, record_threshold_max, ... Err mx1.adamsgaard.dk 70 i+ statusfile, id); Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i+ fid = fopen(statusfile, 'w'); Err mx1.adamsgaard.dk 70 i+ fprintf(fid, 'Generating plots'); Err mx1.adamsgaard.dk 70 i+ fclose(fid); Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i+ % generate plots Err mx1.adamsgaard.dk 70 i+ %CompareWalks2(Ss, save_file) Err mx1.adamsgaard.dk 70 i+ generate_plots(Ss, matlab_scripts_folder, ... Err mx1.adamsgaard.dk 70 i+ save_file, graphics_formats, show_figures, ... Err mx1.adamsgaard.dk 70 i+ sample_id, name, email, lat, long, ... Err mx1.adamsgaard.dk 70 i+ be_conc, al_conc, c_conc, ne_conc, ... Err mx1.adamsgaard.dk 70 i+ be_uncer, al_uncer, c_uncer, ne_uncer, ... Err mx1.adamsgaard.dk 70 i+ zobs, ... Err mx1.adamsgaard.dk 70 i+ be_prod_spall, al_prod_spall, c_prod_spall, ne_prod_spall, ... Err mx1.adamsgaard.dk 70 i+ be_prod_muons, al_prod_muons, c_prod_muons, ne_prod_muons, ... Err mx1.adamsgaard.dk 70 i+ rock_density, ... Err mx1.adamsgaard.dk 70 i+ epsilon_gla_min, epsilon_gla_max, ... Err mx1.adamsgaard.dk 70 i+ epsilon_int_min, epsilon_int_max, ... Err mx1.adamsgaard.dk 70 i+ t_degla_min, t_degla_max, ... Err mx1.adamsgaard.dk 70 i+ record, ... Err mx1.adamsgaard.dk 70 i+ record_threshold_min, record_threshold_max, ... Err mx1.adamsgaard.dk 70 i+ nwalkers); Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i+ % close all figures Err mx1.adamsgaard.dk 70 i+ close all; Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i+ % delete or archive the file so it is not processed again Err mx1.adamsgaard.dk 70 i+ %delete(infile) Err mx1.adamsgaard.dk 70 i+ %movefile(infile, archivefolder); Err mx1.adamsgaard.dk 70 i+ movefile(char(strcat(waitfolder, '/cosmo_', id)), archivefolder); Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i+ fid = fopen(statusfile, 'w'); Err mx1.adamsgaard.dk 70 i+ fprintf(fid, 'Computations complete'); Err mx1.adamsgaard.dk 70 i+ fclose(fid); Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i+ disp(['Computations complete, id = ' id]); Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i+ diary off; Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i+ %keyboard Err mx1.adamsgaard.dk 70 i end Err mx1.adamsgaard.dk 70 i- Err mx1.adamsgaard.dk 70 i- % read file and save data to local scope Err mx1.adamsgaard.dk 70 i- [sample_id, name, email, lat, long, ... Err mx1.adamsgaard.dk 70 i- be_conc, al_conc, c_conc, ne_conc, ... Err mx1.adamsgaard.dk 70 i- be_uncer, al_uncer, c_uncer, ne_uncer, ... Err mx1.adamsgaard.dk 70 i- zobs, ... Err mx1.adamsgaard.dk 70 i- be_prod_spall, al_prod_spall, c_prod_spall, ne_prod_spall, ... Err mx1.adamsgaard.dk 70 i- be_prod_muons, al_prod_muons, c_prod_muons, ne_prod_muons, ... Err mx1.adamsgaard.dk 70 i- rock_density, ... Err mx1.adamsgaard.dk 70 i- epsilon_gla_min, epsilon_gla_max, ... Err mx1.adamsgaard.dk 70 i- epsilon_int_min, epsilon_int_max, ... Err mx1.adamsgaard.dk 70 i- t_degla_min, t_degla_max, ... Err mx1.adamsgaard.dk 70 i- record, ... Err mx1.adamsgaard.dk 70 i- record_threshold_min, record_threshold_max, ... Err mx1.adamsgaard.dk 70 i- nwalkers] ... Err mx1.adamsgaard.dk 70 i- = import_php_file(waitfile, 1, 1); % only read first line Err mx1.adamsgaard.dk 70 i- Err mx1.adamsgaard.dk 70 i- % run inversion Err mx1.adamsgaard.dk 70 i- [Ss, save_file] = mcmc_inversion(matlab_scripts_folder, debug, ... Err mx1.adamsgaard.dk 70 i- nwalkers, outfolder, ... Err mx1.adamsgaard.dk 70 i- be_conc, al_conc, c_conc, ne_conc, ... Err mx1.adamsgaard.dk 70 i- be_uncer, al_uncer, c_uncer, ne_uncer, ... Err mx1.adamsgaard.dk 70 i- zobs, ... Err mx1.adamsgaard.dk 70 i- be_prod_spall, al_prod_spall, c_prod_spall, ne_prod_spall, ... Err mx1.adamsgaard.dk 70 i- be_prod_muons, al_prod_muons, c_prod_muons, ne_prod_muons, ... Err mx1.adamsgaard.dk 70 i- rock_density, ... Err mx1.adamsgaard.dk 70 i- epsilon_gla_min, epsilon_gla_max, ... Err mx1.adamsgaard.dk 70 i- epsilon_int_min, epsilon_int_max, ... Err mx1.adamsgaard.dk 70 i- t_degla_min, t_degla_max, ... Err mx1.adamsgaard.dk 70 i- record, ... Err mx1.adamsgaard.dk 70 i- record_threshold_min, record_threshold_max, ... Err mx1.adamsgaard.dk 70 i- statusfile, id); Err mx1.adamsgaard.dk 70 i- Err mx1.adamsgaard.dk 70 i- fid = fopen(statusfile, 'w'); Err mx1.adamsgaard.dk 70 i- fprintf(fid, 'Generating plots'); Err mx1.adamsgaard.dk 70 i- fclose(fid); Err mx1.adamsgaard.dk 70 i- Err mx1.adamsgaard.dk 70 i- % generate plots Err mx1.adamsgaard.dk 70 i- %CompareWalks2(Ss, save_file) Err mx1.adamsgaard.dk 70 i- generate_plots(Ss, matlab_scripts_folder, ... Err mx1.adamsgaard.dk 70 i- save_file, graphics_formats, show_figures, ... Err mx1.adamsgaard.dk 70 i- sample_id, name, email, lat, long, ... Err mx1.adamsgaard.dk 70 i- be_conc, al_conc, c_conc, ne_conc, ... Err mx1.adamsgaard.dk 70 i- be_uncer, al_uncer, c_uncer, ne_uncer, ... Err mx1.adamsgaard.dk 70 i- zobs, ... Err mx1.adamsgaard.dk 70 i- be_prod_spall, al_prod_spall, c_prod_spall, ne_prod_spall, ... Err mx1.adamsgaard.dk 70 i- be_prod_muons, al_prod_muons, c_prod_muons, ne_prod_muons, ... Err mx1.adamsgaard.dk 70 i- rock_density, ... Err mx1.adamsgaard.dk 70 i- epsilon_gla_min, epsilon_gla_max, ... Err mx1.adamsgaard.dk 70 i- epsilon_int_min, epsilon_int_max, ... Err mx1.adamsgaard.dk 70 i- t_degla_min, t_degla_max, ... Err mx1.adamsgaard.dk 70 i- record, ... Err mx1.adamsgaard.dk 70 i- record_threshold_min, record_threshold_max, ... Err mx1.adamsgaard.dk 70 i- nwalkers); Err mx1.adamsgaard.dk 70 i- Err mx1.adamsgaard.dk 70 i- % close all figures Err mx1.adamsgaard.dk 70 i- close all; Err mx1.adamsgaard.dk 70 i- Err mx1.adamsgaard.dk 70 i- % delete or archive the file so it is not processed again Err mx1.adamsgaard.dk 70 i- %delete(infile) Err mx1.adamsgaard.dk 70 i- %movefile(infile, archivefolder); Err mx1.adamsgaard.dk 70 i- movefile(char(strcat(waitfolder, '/cosmo_', id)), archivefolder); Err mx1.adamsgaard.dk 70 i- Err mx1.adamsgaard.dk 70 i- fid = fopen(statusfile, 'w'); Err mx1.adamsgaard.dk 70 i- fprintf(fid, 'Computations complete'); Err mx1.adamsgaard.dk 70 i- fclose(fid); Err mx1.adamsgaard.dk 70 i- Err mx1.adamsgaard.dk 70 i- disp(['Computations complete, id = ' id]); Err mx1.adamsgaard.dk 70 i- Err mx1.adamsgaard.dk 70 i- diary off; Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i- %keyboard Err mx1.adamsgaard.dk 70 i+ catch E Err mx1.adamsgaard.dk 70 i+ disp(E.message) Err mx1.adamsgaard.dk 70 i+ exit(1) % quit matlab on error Err mx1.adamsgaard.dk 70 i end Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i % sleep in order to reduce system load Err mx1.adamsgaard.dk 70 .