1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
/////////////////////////////////////////////////////////////
// //
// Copyright (c) 2003-2011 by The University of Queensland //
// Earth Systems Science Computational Centre (ESSCC) //
// http://www.uq.edu.au/esscc //
// //
// Primary Business: Brisbane, Queensland, Australia //
// Licensed under the Open Software License version 3.0 //
// http://www.opensource.org/licenses/osl-3.0.php //
// //
/////////////////////////////////////////////////////////////
#define MPI_NO_CPPBIND
#include <mpi.h>
#include <boost/shared_ptr.hpp>
//--project includes--
#include "Foundation/console.h"
#include "Parallel/SubLatticeControler.h"
//--- IO includes ---
#include <iostream>
#include <fstream>
using std::cout;
using std::endl;
using std::flush;
typedef boost::shared_ptr<std::ofstream> OFStreamPtr;
int main(int argc, char **argv) {
int status = MPI_Init(&argc,&argv);
if (status != MPI_SUCCESS) {
std::cerr << argv[0] << ": MPI_Init failed! Exiting ..." << std::endl;
return status;
}
console.SetQuiet(true) ;
console.SetVerbose(Con::silent);
console.SetTiming(false) ;
try
{
OFStreamPtr ofstreamPtr;
if (argc > 1)
{
if (std::string(argv[1]) == std::string("-v"))
{
//ofstreamPtr = OFStreamPtr(new std::ofstream("log.txt"));
//console.SetOStream(ofstreamPtr.get());
console.SetQuiet(false);
console.SetVerbose(Con::all);
}
}
console.Debug() << "slave start\n";
CSubLatticeControler SLC;
SLC.initMPI();
SLC.run();
}
catch (std::runtime_error &e)
{
console.Error() << "EXCEPTION: " << e.what() << "\n";
std::cerr << "EXCEPTION: " << e.what() << std::endl;
throw;
}
catch (char *e)
{
console.Error() << "EXCEPTION: " << e << "\n";
std::cerr << "EXCEPTION: " << e << std::endl;
throw;
}
catch (...)
{
console.Error() << "EXCEPTION: UNKNOWN." << "\n";
std::cerr << "EXCEPTION: UNKNOWN." << std::endl;
throw;
}
MPI_Finalize();
return 0;
}
|