@@ -653,63 +653,71 @@ void defaults() {
653653}
654654
655655int main (int argc, char *argv[]) {
656- cout << " bw - Adaptive broadening tool - " << VERSION << endl;
657- cout << " Rok Zitko, rok.zitko@ijs.si, 2009-2010" << endl;
658- cout << setprecision (16 );
656+ try {
657+ cout << " bw - Adaptive broadening tool - " << VERSION << endl;
658+ cout << " Rok Zitko, rok.zitko@ijs.si, 2009-2010" << endl;
659+ cout << setprecision (16 );
659660
660- cmd_line (argc, argv);
661- defaults ();
662- read_files ();
663- merge ();
661+ cmd_line (argc, argv);
662+ defaults ();
663+ read_files ();
664+ merge ();
664665
665- make_mesh (mesh);
666- initial_b (b);
666+ make_mesh (mesh);
667+ initial_b (b);
667668
668- if (savemore) { save (" b" , vfreq, b, 0 , trim); }
669+ if (savemore) { save (" b" , vfreq, b, 0 , trim); }
669670
670- for (int iter = 1 ; iter <= nr_iter; iter++) {
671- broaden (mesh, a, b);
671+ for (int iter = 1 ; iter <= nr_iter; iter++) {
672+ broaden (mesh, a, b);
672673
673- if (savemore || iter == nr_iter) { save (" a" , mesh, a, iter, trim); }
674+ if (savemore || iter == nr_iter) { save (" a" , mesh, a, iter, trim); }
674675
675- integrate_a (a, mesh, inta);
676- if (saveall) { save (" inta" , mesh, inta, iter); }
676+ integrate_a (a, mesh, inta);
677+ if (saveall) { save (" inta" , mesh, inta, iter); }
677678
678- // inta = \int [-infty, omega]
679- // intb = \int [0, omega]
680- // intc = \int [+infty, omega]
681- combinations (mesh, inta, intb, intc);
682- if (saveall) {
683- save (" intb" , mesh, intb, iter);
684- save (" intc" , mesh, intc, iter);
685- }
679+ // inta = \int [-infty, omega]
680+ // intb = \int [0, omega]
681+ // intc = \int [+infty, omega]
682+ combinations (mesh, inta, intb, intc);
683+ if (saveall) {
684+ save (" intb" , mesh, intb, iter);
685+ save (" intc" , mesh, intc, iter);
686+ }
686687
687- vec deriva, derivb, derivc;
688+ vec deriva, derivb, derivc;
688689
689- calc_deriv (inta, deriva);
690- calc_deriv (intb, derivb);
691- calc_deriv (intc, derivc);
690+ calc_deriv (inta, deriva);
691+ calc_deriv (intb, derivb);
692+ calc_deriv (intc, derivc);
692693
693- if (saveall) {
694- save (" deriva" , mesh, deriva, iter);
695- save (" derivb" , mesh, derivb, iter);
696- save (" derivc" , mesh, derivc, iter);
697- }
694+ if (saveall) {
695+ save (" deriva" , mesh, deriva, iter);
696+ save (" derivb" , mesh, derivb, iter);
697+ save (" derivc" , mesh, derivc, iter);
698+ }
698699
699- vec bpos;
700- calc_b (derivb, derivc, bpos);
700+ vec bpos;
701+ calc_b (derivb, derivc, bpos);
701702
702- vec bneg;
703- calc_b (deriva, derivb, bneg);
703+ vec bneg;
704+ calc_b (deriva, derivb, bneg);
704705
705- recalc_b (mesh, bpos, bneg, b);
706+ recalc_b (mesh, bpos, bneg, b);
706707
707- if (saveall) {
708- save (" bpos" , mesh, bpos, iter);
709- save (" bneg" , mesh, bneg, iter);
710- }
711- if (savemore) { save (" b" , vfreq, b, iter, trim); }
708+ if (saveall) {
709+ save (" bpos" , mesh, bpos, iter);
710+ save (" bneg" , mesh, bneg, iter);
711+ }
712+ if (savemore) { save (" b" , vfreq, b, iter, trim); }
712713
713- if (dyn_mesh > 0.0 ) { refine_mesh (mesh, a); }
714+ if (dyn_mesh > 0.0 ) { refine_mesh (mesh, a); }
715+ }
716+ } catch (const std::exception &e) {
717+ cerr << " bw: error: " << e.what () << endl;
718+ return EXIT_FAILURE ;
719+ } catch (...) {
720+ cerr << " bw: error: unknown exception" << endl;
721+ return EXIT_FAILURE ;
714722 }
715723}
0 commit comments