Only create step_timing.txt file if it gets written to.

If output=false is requested we created an empty file.
Now that file will only be created if output was requested
and it will only be opened on one rank in a parallel run.
This commit is contained in:
Markus Blatt 2017-06-19 17:47:24 +02:00
parent 56cef57c8d
commit e0a7ced256
2 changed files with 17 additions and 11 deletions

View File

@ -103,7 +103,12 @@ namespace Opm
Opm::time::StopWatch total_timer;
total_timer.start();
std::string tstep_filename = output_writer_.outputDirectory() + "/step_timing.txt";
std::ofstream tstep_os(tstep_filename.c_str());
std::ofstream tstep_os;
if ( output_writer_.output() ) {
if ( output_writer_.isIORank() )
tstep_os.open(tstep_filename.c_str());
}
const auto& schedule = eclipse_state_->getSchedule();
@ -307,12 +312,9 @@ namespace Opm
OpmLog::note(msg);
}
if ( output_writer_.output() ) {
if ( output_writer_.isIORank() )
{
if ( tstep_os.is_open() ) {
stepReport.reportParam(tstep_os);
}
}
// Increment timer, remember well state.
++timer;

View File

@ -163,7 +163,14 @@ public:
Opm::time::StopWatch total_timer;
total_timer.start();
std::string tstep_filename = output_writer_.outputDirectory() + "/step_timing.txt";
std::ofstream tstep_os(tstep_filename.c_str());
std::ofstream tstep_os;
if ( output_writer_.output() ) {
if ( output_writer_.isIORank() )
{
tstep_os.open(tstep_filename.c_str());
}
}
const auto& schedule = eclState().getSchedule();
@ -351,12 +358,9 @@ public:
// update timing.
report.solver_time += solver_timer.secsSinceStart();
if ( output_writer_.output() ) {
if ( output_writer_.isIORank() )
{
if ( tstep_os.is_open() ) {
stepReport.reportParam(tstep_os);
}
}
// Increment timer, remember well state.
++timer;