diff options
author | Erik Schnetter <schnetter@gmail.com> | 2012-02-25 09:14:33 -0500 |
---|---|---|
committer | Erik Schnetter <schnetter@gmail.com> | 2012-02-25 09:14:33 -0500 |
commit | 72747499026cf8e15b0fd2d8e6e0e6aebf6fe73f (patch) | |
tree | e2d82b9515334f8e5d035769ca03616a736a0f6c /Carpet/CarpetLib | |
parent | 770e6dc09508b3a5ec287110e70ca468391b1f7d (diff) |
CarpetLib: Rewrite some loops to avoid Intel compiler segfault
Diffstat (limited to 'Carpet/CarpetLib')
-rw-r--r-- | Carpet/CarpetLib/src/prolongate_3d_dgfe_rf2.cc | 40 | ||||
-rw-r--r-- | Carpet/CarpetLib/src/restrict_3d_dgfe_rf2.cc | 10 |
2 files changed, 25 insertions, 25 deletions
diff --git a/Carpet/CarpetLib/src/prolongate_3d_dgfe_rf2.cc b/Carpet/CarpetLib/src/prolongate_3d_dgfe_rf2.cc index b6bd0c5d2..3bcd3f10c 100644 --- a/Carpet/CarpetLib/src/prolongate_3d_dgfe_rf2.cc +++ b/Carpet/CarpetLib/src/prolongate_3d_dgfe_rf2.cc @@ -138,20 +138,20 @@ namespace CarpetLib { int const dststr2d[2] = {dstdj, dstdk}; // Loop over fine region +#ifdef HRSCC_HH ptrdiff_t const i=0; #pragma omp parallel for collapse(2) for (ptrdiff_t k=0; k<regkext; k+=2*(ORDER+1)) { for (ptrdiff_t j=0; j<regjext; j+=2*(ORDER+1)) { -#ifdef HRSCC_HH GLLElement<ORDER>::prolongate_2D (&src[SRCIND3(srcioff+i, srcjoff+j, srckoff+k)], srcstr2d, &dst[DSTIND3(dstioff+2*i, dstjoff+2*j, dstkoff+2*k)], dststr2d); -#else - // HRSCCore is not available - assert(0); -#endif } } +#else + // HRSCCore is not available + assert(0); +#endif } else if (regext[1] == 1) { // 2D prolongation on y face @@ -177,20 +177,20 @@ namespace CarpetLib { int const dststr2d[2]= {dstdi, dstdk}; // Loop over fine region +#ifdef HRSCC_HH ptrdiff_t const j=0; #pragma omp parallel for collapse(2) for (ptrdiff_t k=0; k<regkext; k+=2*(ORDER+1)) { for (ptrdiff_t i=0; i<regiext; i+=2*(ORDER+1)) { -#ifdef HRSCC_HH GLLElement<ORDER>::prolongate_2D (&src[SRCIND3(srcioff+i, srcjoff+j, srckoff+k)], srcstr2d, &dst[DSTIND3(dstioff+2*i, dstjoff+2*j, dstkoff+2*k)], dststr2d); -#else - // HRSCCore is not available - assert(0); -#endif } } +#else + // HRSCCore is not available + assert(0); +#endif } else if (regext[2] == 1) { // 2D prolongation on z face @@ -216,20 +216,20 @@ namespace CarpetLib { int const dststr2d[2]= {dstdi, dstdj}; // Loop over fine region +#ifdef HRSCC_HH ptrdiff_t const k=0; #pragma omp parallel for collapse(2) for (ptrdiff_t j=0; j<regjext; j+=2*(ORDER+1)) { for (ptrdiff_t i=0; i<regiext; i+=2*(ORDER+1)) { -#ifdef HRSCC_HH GLLElement<ORDER>::prolongate_2D (&src[SRCIND3(srcioff+i, srcjoff+j, srckoff+k)], srcstr2d, &dst[DSTIND3(dstioff+2*i, dstjoff+2*j, dstkoff+2*k)], dststr2d); -#else - // HRSCCore is not available - assert(0); -#endif } } +#else + // HRSCCore is not available + assert(0); +#endif } else { // 3D prolongation @@ -253,21 +253,21 @@ namespace CarpetLib { int const dststr[3] = {dstdi, dstdj, dstdk}; // Loop over fine region +#ifdef HRSCC_HH #pragma omp parallel for collapse(3) for (ptrdiff_t k=0; k<regkext; k+=2*(ORDER+1)) { for (ptrdiff_t j=0; j<regjext; j+=2*(ORDER+1)) { for (ptrdiff_t i=0; i<regiext; i+=2*(ORDER+1)) { -#ifdef HRSCC_HH GLLElement<ORDER>::prolongate_full (&src[SRCIND3(srcioff+i, srcjoff+j, srckoff+k)], srcstr, &dst[DSTIND3(dstioff+2*i, dstjoff+2*j, dstkoff+2*k)], dststr); -#else - // HRSCCore is not available - assert(0); -#endif } } } +#else + // HRSCCore is not available + assert(0); +#endif } } diff --git a/Carpet/CarpetLib/src/restrict_3d_dgfe_rf2.cc b/Carpet/CarpetLib/src/restrict_3d_dgfe_rf2.cc index cab088347..45bf10b21 100644 --- a/Carpet/CarpetLib/src/restrict_3d_dgfe_rf2.cc +++ b/Carpet/CarpetLib/src/restrict_3d_dgfe_rf2.cc @@ -123,21 +123,21 @@ namespace CarpetLib { assert(all(regext % (ORDER+1) == 0)); // Loop over coarse region +#ifdef HRSCC_HH #pragma omp parallel for collapse(3) for (ptrdiff_t k=0; k<regkext; k+=ORDER+1) { for (ptrdiff_t j=0; j<regjext; j+=ORDER+1) { for (ptrdiff_t i=0; i<regiext; i+=ORDER+1) { -#ifdef HRSCC_HH GLLElement<ORDER>::restrict_full (&src[SRCIND3(srcioff+2*i, srcjoff+2*j, srckoff+2*k)], srcstr, &dst[DSTIND3(dstioff+i, dstjoff+j, dstkoff+k)], dststr); -#else - // HRSCCore is not available - assert(0); -#endif } } } +#else + // HRSCCore is not available + assert(0); +#endif } |