diff options
author | Erik Schnetter <schnetter@cct.lsu.edu> | 2008-08-03 22:04:07 -0500 |
---|---|---|
committer | Erik Schnetter <schnetter@cct.lsu.edu> | 2008-08-03 22:10:45 -0500 |
commit | 468aec3031c0ec657353e277637c9068fe305af7 (patch) | |
tree | b2e052dfecbbf4eae4c008784c249855ede51d65 /Carpet/CarpetIOASCII | |
parent | b42ccb8da80bb7c413a57d418dc9ac81d21d862d (diff) |
CarpetIOASCII: Correct problem with IO::out_dt
Correct a multi-processor synchronisation problem when using IO::out_dt.
Diffstat (limited to 'Carpet/CarpetIOASCII')
-rw-r--r-- | Carpet/CarpetIOASCII/src/ioascii.cc | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/Carpet/CarpetIOASCII/src/ioascii.cc b/Carpet/CarpetIOASCII/src/ioascii.cc index f09513c7e..11814b216 100644 --- a/Carpet/CarpetIOASCII/src/ioascii.cc +++ b/Carpet/CarpetIOASCII/src/ioascii.cc @@ -339,12 +339,17 @@ namespace CarpetIOASCII { } if (myoutdt == 0 or cctk_iteration == this_iteration[outdim]) { output_this_iteration = true; - } else if (myoutdt > 0 and (cctk_time / cctk_delta_time - >= (last_output_time[outdim] + myoutdt) / cctk_delta_time - 1.0e-12)) { - // it is time for the next output - output_this_iteration = true; - last_output_time[outdim] = cctk_time; - this_iteration[outdim] = cctk_iteration; + } else if (myoutdt > 0) { + int do_output = + cctk_time / cctk_delta_time >= + (last_output_time[outdim] + myoutdt) / cctk_delta_time - 1.0e-12; + MPI_Bcast (&do_output, 1, MPI_INT, 0, dist::comm()); + if (do_output) { + // it is time for the next output + output_this_iteration = true; + last_output_time[outdim] = cctk_time; + this_iteration[outdim] = cctk_iteration; + } } } // select output criterion |