aboutsummaryrefslogtreecommitdiff
path: root/Carpet
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2010-09-14 15:55:15 -0500
committerBarry Wardell <barry.wardell@gmail.com>2011-12-14 18:25:22 +0000
commite281e21826f9667d9e7d1c559352bac450754992 (patch)
treee1ce04b1048e8befb28eb2e95683a25bd4609dd4 /Carpet
parent11305ebb85f311fad4b145e312ed18d6d7fbb9cc (diff)
CarpetLib: Protect copy3d operator's debug output when using OpenMP
Diffstat (limited to 'Carpet')
-rw-r--r--Carpet/CarpetLib/src/copy_3d.cc24
1 files changed, 18 insertions, 6 deletions
diff --git a/Carpet/CarpetLib/src/copy_3d.cc b/Carpet/CarpetLib/src/copy_3d.cc
index f09a40bb7..4a78fe030 100644
--- a/Carpet/CarpetLib/src/copy_3d.cc
+++ b/Carpet/CarpetLib/src/copy_3d.cc
@@ -40,11 +40,14 @@ namespace CarpetLib {
if (any (srcbbox.stride() != regbbox.stride() or
dstbbox.stride() != regbbox.stride()))
{
- cout << "copy_3d.cc:" << endl
- << "srcbbox=" << srcbbox << endl
- << "dstbbox=" << dstbbox << endl
- << "regbbox=" << regbbox << endl;
- CCTK_WARN (0, "Internal error: strides disagree");
+#pragma omp critical
+ {
+ cout << "copy_3d.cc:" << endl
+ << "srcbbox=" << srcbbox << endl
+ << "dstbbox=" << dstbbox << endl
+ << "regbbox=" << regbbox << endl;
+ CCTK_WARN (0, "Internal error: strides disagree");
+ }
}
if (any (srcbbox.stride() != dstbbox.stride())) {
@@ -54,18 +57,27 @@ namespace CarpetLib {
// This could be handled, but is likely to point to an error
// elsewhere
if (regbbox.empty()) {
+#pragma omp critical
CCTK_WARN (0, "Internal error: region extent is empty");
}
if (not regbbox.is_contained_in(srcbbox) or
not regbbox.is_contained_in(dstbbox))
{
- CCTK_WARN (0, "Internal error: region extent is not contained in array extent");
+#pragma omp critical
+ {
+ cout << "copy_3d.cc:" << endl
+ << "srcbbox=" << srcbbox << endl
+ << "dstbbox=" << dstbbox << endl
+ << "regbbox=" << regbbox << endl;
+ CCTK_WARN (0, "Internal error: region extent is not contained in array extent");
+ }
}
if (any (srcext != srcbbox.shape() / srcbbox.stride() or
dstext != dstbbox.shape() / dstbbox.stride()))
{
+#pragma omp critical
CCTK_WARN (0, "Internal error: array sizes don't agree with bounding boxes");
}