diff options
author | eschnett <eschnett@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2013-01-19 18:09:23 +0000 |
---|---|---|
committer | eschnett <eschnett@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2013-01-19 18:09:23 +0000 |
commit | cbb5ceaeb8b507b6b9469bd8609c954411c94cd6 (patch) | |
tree | 5ea5d937565b7a00deb11a096bdc1e6a6e54cf18 /src | |
parent | d56e49b892e63b0ccd337093337ece0546f3d738 (diff) |
Make it obvious that all variables are used initialised
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4944 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'src')
-rw-r--r-- | src/include/cctk_Loop.h | 100 | ||||
-rwxr-xr-x | src/include/cctk_Loop.h.pl | 19 |
2 files changed, 66 insertions, 53 deletions
diff --git a/src/include/cctk_Loop.h b/src/include/cctk_Loop.h index 05e846f9..fb1bb92a 100644 --- a/src/include/cctk_Loop.h +++ b/src/include/cctk_Loop.h @@ -57,8 +57,11 @@ int const cctki0_istr = (istr); \ int const imin CCTK_ATTRIBUTE_UNUSED = cctki0_imin; \ int const imax CCTK_ATTRIBUTE_UNUSED = cctki0_imax; \ + \ + \ + int const cctki0_ioff = (cctki0_imin) % cctki0_istr; \ _Pragma("omp for") \ - for (int i=cctki0_imin - (cctki0_imin) % cctki0_istr; i<cctki0_imax; i+=cctki0_istr) { \ + for (int i=cctki0_imin-cctki0_ioff; i<cctki0_imax; i+=cctki0_istr) { \ int const ni CCTK_ATTRIBUTE_UNUSED = cctki0_idir<0 ? i+1 : cctki0_idir==0 ? 0 : cctki0_imax-i; \ { \ @@ -687,11 +690,11 @@ && if (name/**/2_idir==-1) name/**/2_any_bbox = name/**/2_any_bbox .or. name/**/2_bboxlo(1) /= 0 \ && if (name/**/2_idir==+1) name/**/2_any_bbox = name/**/2_any_bbox .or. name/**/2_bboxhi(1) /= 0 \ && if (name/**/2_any_bbox) then \ + && name/**/2_bmin(1) = name/**/2_blo(1)+1 \ && if (name/**/2_idir==-1) name/**/2_bmin(1) = 1 \ - && if (name/**/2_idir== 0) name/**/2_bmin(1) = name/**/2_blo(1)+1 \ && if (name/**/2_idir==+1) name/**/2_bmin(1) = cctk_lsh(1) - name/**/2_bhi(1) \ + && name/**/2_bmax(1) = cctk_lsh(1) - name/**/2_bhi(1) \ && if (name/**/2_idir==-1) name/**/2_bmax(1) = name/**/2_blo(1) \ - && if (name/**/2_idir== 0) name/**/2_bmax(1) = cctk_lsh(1) - name/**/2_bhi(1) \ && if (name/**/2_idir==+1) name/**/2_bmax(1) = cctk_lsh(1) \ CCTK_LOOP1STR_NORMAL(name/**/_boundaries, \ i, \ @@ -770,11 +773,11 @@ && if (name/**/2_idir==-1) name/**/2_all_bbox = name/**/2_all_bbox .and. name/**/2_bboxlo(1) /= 0 \ && if (name/**/2_idir==+1) name/**/2_all_bbox = name/**/2_all_bbox .and. name/**/2_bboxhi(1) /= 0 \ && if (name/**/2_all_bbox .and. name/**/2_any_bbox) then \ + && name/**/2_bmin(1) = name/**/2_blo(1)+1 \ && if (name/**/2_idir==-1) name/**/2_bmin(1) = 1 \ - && if (name/**/2_idir== 0) name/**/2_bmin(1) = name/**/2_blo(1)+1 \ && if (name/**/2_idir==+1) name/**/2_bmin(1) = cctk_lsh(1) - name/**/2_bhi(1) \ + && name/**/2_bmax(1) = cctk_lsh(1) - name/**/2_bhi(1) \ && if (name/**/2_idir==-1) name/**/2_bmax(1) = name/**/2_blo(1) \ - && if (name/**/2_idir== 0) name/**/2_bmax(1) = cctk_lsh(1) - name/**/2_bhi(1) \ && if (name/**/2_idir==+1) name/**/2_bmax(1) = cctk_lsh(1) \ CCTK_LOOP1STR_NORMAL(name/**/_intboundaries, \ i, \ @@ -1037,7 +1040,10 @@ int const imax CCTK_ATTRIBUTE_UNUSED = cctki0_imax; \ _Pragma("omp for collapse(1)") \ for (int j=cctki0_jmin; j<cctki0_jmax; ++j) { \ - for (int i=cctki0_imin - (cctki0_imin+cctki0_iash*(j)) % cctki0_istr; i<cctki0_imax; i+=cctki0_istr) { \ + \ + int const cctki0_ioff = (cctki0_imin+cctki0_iash*(j)) % cctki0_istr; \ + \ + for (int i=cctki0_imin-cctki0_ioff; i<cctki0_imax; i+=cctki0_istr) { \ int const ni CCTK_ATTRIBUTE_UNUSED = cctki0_idir<0 ? i+1 : cctki0_idir==0 ? 0 : cctki0_imax-i; \ int const nj CCTK_ATTRIBUTE_UNUSED = cctki0_jdir<0 ? j+1 : cctki0_jdir==0 ? 0 : cctki0_jmax-j; \ { \ @@ -1700,16 +1706,16 @@ && if (name/**/2_idir==+1) name/**/2_any_bbox = name/**/2_any_bbox .or. name/**/2_bboxhi(1) /= 0 \ && if (name/**/2_jdir==+1) name/**/2_any_bbox = name/**/2_any_bbox .or. name/**/2_bboxhi(2) /= 0 \ && if (name/**/2_any_bbox) then \ + && name/**/2_bmin(1) = name/**/2_blo(1)+1 \ + && name/**/2_bmin(2) = name/**/2_blo(2)+1 \ && if (name/**/2_idir==-1) name/**/2_bmin(1) = 1 \ && if (name/**/2_jdir==-1) name/**/2_bmin(2) = 1 \ - && if (name/**/2_idir== 0) name/**/2_bmin(1) = name/**/2_blo(1)+1 \ - && if (name/**/2_jdir== 0) name/**/2_bmin(2) = name/**/2_blo(2)+1 \ && if (name/**/2_idir==+1) name/**/2_bmin(1) = cctk_lsh(1) - name/**/2_bhi(1) \ && if (name/**/2_jdir==+1) name/**/2_bmin(2) = cctk_lsh(2) - name/**/2_bhi(2) \ + && name/**/2_bmax(1) = cctk_lsh(1) - name/**/2_bhi(1) \ + && name/**/2_bmax(2) = cctk_lsh(2) - name/**/2_bhi(2) \ && if (name/**/2_idir==-1) name/**/2_bmax(1) = name/**/2_blo(1) \ && if (name/**/2_jdir==-1) name/**/2_bmax(2) = name/**/2_blo(2) \ - && if (name/**/2_idir== 0) name/**/2_bmax(1) = cctk_lsh(1) - name/**/2_bhi(1) \ - && if (name/**/2_jdir== 0) name/**/2_bmax(2) = cctk_lsh(2) - name/**/2_bhi(2) \ && if (name/**/2_idir==+1) name/**/2_bmax(1) = cctk_lsh(1) \ && if (name/**/2_jdir==+1) name/**/2_bmax(2) = cctk_lsh(2) \ CCTK_LOOP2STR_NORMAL(name/**/_boundaries, \ @@ -1797,16 +1803,16 @@ && if (name/**/2_idir==+1) name/**/2_all_bbox = name/**/2_all_bbox .and. name/**/2_bboxhi(1) /= 0 \ && if (name/**/2_jdir==+1) name/**/2_all_bbox = name/**/2_all_bbox .and. name/**/2_bboxhi(2) /= 0 \ && if (name/**/2_all_bbox .and. name/**/2_any_bbox) then \ + && name/**/2_bmin(1) = name/**/2_blo(1)+1 \ + && name/**/2_bmin(2) = name/**/2_blo(2)+1 \ && if (name/**/2_idir==-1) name/**/2_bmin(1) = 1 \ && if (name/**/2_jdir==-1) name/**/2_bmin(2) = 1 \ - && if (name/**/2_idir== 0) name/**/2_bmin(1) = name/**/2_blo(1)+1 \ - && if (name/**/2_jdir== 0) name/**/2_bmin(2) = name/**/2_blo(2)+1 \ && if (name/**/2_idir==+1) name/**/2_bmin(1) = cctk_lsh(1) - name/**/2_bhi(1) \ && if (name/**/2_jdir==+1) name/**/2_bmin(2) = cctk_lsh(2) - name/**/2_bhi(2) \ + && name/**/2_bmax(1) = cctk_lsh(1) - name/**/2_bhi(1) \ + && name/**/2_bmax(2) = cctk_lsh(2) - name/**/2_bhi(2) \ && if (name/**/2_idir==-1) name/**/2_bmax(1) = name/**/2_blo(1) \ && if (name/**/2_jdir==-1) name/**/2_bmax(2) = name/**/2_blo(2) \ - && if (name/**/2_idir== 0) name/**/2_bmax(1) = cctk_lsh(1) - name/**/2_bhi(1) \ - && if (name/**/2_jdir== 0) name/**/2_bmax(2) = cctk_lsh(2) - name/**/2_bhi(2) \ && if (name/**/2_idir==+1) name/**/2_bmax(1) = cctk_lsh(1) \ && if (name/**/2_jdir==+1) name/**/2_bmax(2) = cctk_lsh(2) \ CCTK_LOOP2STR_NORMAL(name/**/_intboundaries, \ @@ -2077,7 +2083,10 @@ _Pragma("omp for collapse(2)") \ for (int k=cctki0_kmin; k<cctki0_kmax; ++k) { \ for (int j=cctki0_jmin; j<cctki0_jmax; ++j) { \ - for (int i=cctki0_imin - (cctki0_imin+cctki0_iash*(j+cctki0_jash*(k))) % cctki0_istr; i<cctki0_imax; i+=cctki0_istr) { \ + \ + int const cctki0_ioff = (cctki0_imin+cctki0_iash*(j+cctki0_jash*(k))) % cctki0_istr; \ + \ + for (int i=cctki0_imin-cctki0_ioff; i<cctki0_imax; i+=cctki0_istr) { \ int const ni CCTK_ATTRIBUTE_UNUSED = cctki0_idir<0 ? i+1 : cctki0_idir==0 ? 0 : cctki0_imax-i; \ int const nj CCTK_ATTRIBUTE_UNUSED = cctki0_jdir<0 ? j+1 : cctki0_jdir==0 ? 0 : cctki0_jmax-j; \ int const nk CCTK_ATTRIBUTE_UNUSED = cctki0_kdir<0 ? k+1 : cctki0_kdir==0 ? 0 : cctki0_kmax-k; \ @@ -2774,21 +2783,21 @@ && if (name/**/2_jdir==+1) name/**/2_any_bbox = name/**/2_any_bbox .or. name/**/2_bboxhi(2) /= 0 \ && if (name/**/2_kdir==+1) name/**/2_any_bbox = name/**/2_any_bbox .or. name/**/2_bboxhi(3) /= 0 \ && if (name/**/2_any_bbox) then \ + && name/**/2_bmin(1) = name/**/2_blo(1)+1 \ + && name/**/2_bmin(2) = name/**/2_blo(2)+1 \ + && name/**/2_bmin(3) = name/**/2_blo(3)+1 \ && if (name/**/2_idir==-1) name/**/2_bmin(1) = 1 \ && if (name/**/2_jdir==-1) name/**/2_bmin(2) = 1 \ && if (name/**/2_kdir==-1) name/**/2_bmin(3) = 1 \ - && if (name/**/2_idir== 0) name/**/2_bmin(1) = name/**/2_blo(1)+1 \ - && if (name/**/2_jdir== 0) name/**/2_bmin(2) = name/**/2_blo(2)+1 \ - && if (name/**/2_kdir== 0) name/**/2_bmin(3) = name/**/2_blo(3)+1 \ && if (name/**/2_idir==+1) name/**/2_bmin(1) = cctk_lsh(1) - name/**/2_bhi(1) \ && if (name/**/2_jdir==+1) name/**/2_bmin(2) = cctk_lsh(2) - name/**/2_bhi(2) \ && if (name/**/2_kdir==+1) name/**/2_bmin(3) = cctk_lsh(3) - name/**/2_bhi(3) \ + && name/**/2_bmax(1) = cctk_lsh(1) - name/**/2_bhi(1) \ + && name/**/2_bmax(2) = cctk_lsh(2) - name/**/2_bhi(2) \ + && name/**/2_bmax(3) = cctk_lsh(3) - name/**/2_bhi(3) \ && if (name/**/2_idir==-1) name/**/2_bmax(1) = name/**/2_blo(1) \ && if (name/**/2_jdir==-1) name/**/2_bmax(2) = name/**/2_blo(2) \ && if (name/**/2_kdir==-1) name/**/2_bmax(3) = name/**/2_blo(3) \ - && if (name/**/2_idir== 0) name/**/2_bmax(1) = cctk_lsh(1) - name/**/2_bhi(1) \ - && if (name/**/2_jdir== 0) name/**/2_bmax(2) = cctk_lsh(2) - name/**/2_bhi(2) \ - && if (name/**/2_kdir== 0) name/**/2_bmax(3) = cctk_lsh(3) - name/**/2_bhi(3) \ && if (name/**/2_idir==+1) name/**/2_bmax(1) = cctk_lsh(1) \ && if (name/**/2_jdir==+1) name/**/2_bmax(2) = cctk_lsh(2) \ && if (name/**/2_kdir==+1) name/**/2_bmax(3) = cctk_lsh(3) \ @@ -2885,21 +2894,21 @@ && if (name/**/2_jdir==+1) name/**/2_all_bbox = name/**/2_all_bbox .and. name/**/2_bboxhi(2) /= 0 \ && if (name/**/2_kdir==+1) name/**/2_all_bbox = name/**/2_all_bbox .and. name/**/2_bboxhi(3) /= 0 \ && if (name/**/2_all_bbox .and. name/**/2_any_bbox) then \ + && name/**/2_bmin(1) = name/**/2_blo(1)+1 \ + && name/**/2_bmin(2) = name/**/2_blo(2)+1 \ + && name/**/2_bmin(3) = name/**/2_blo(3)+1 \ && if (name/**/2_idir==-1) name/**/2_bmin(1) = 1 \ && if (name/**/2_jdir==-1) name/**/2_bmin(2) = 1 \ && if (name/**/2_kdir==-1) name/**/2_bmin(3) = 1 \ - && if (name/**/2_idir== 0) name/**/2_bmin(1) = name/**/2_blo(1)+1 \ - && if (name/**/2_jdir== 0) name/**/2_bmin(2) = name/**/2_blo(2)+1 \ - && if (name/**/2_kdir== 0) name/**/2_bmin(3) = name/**/2_blo(3)+1 \ && if (name/**/2_idir==+1) name/**/2_bmin(1) = cctk_lsh(1) - name/**/2_bhi(1) \ && if (name/**/2_jdir==+1) name/**/2_bmin(2) = cctk_lsh(2) - name/**/2_bhi(2) \ && if (name/**/2_kdir==+1) name/**/2_bmin(3) = cctk_lsh(3) - name/**/2_bhi(3) \ + && name/**/2_bmax(1) = cctk_lsh(1) - name/**/2_bhi(1) \ + && name/**/2_bmax(2) = cctk_lsh(2) - name/**/2_bhi(2) \ + && name/**/2_bmax(3) = cctk_lsh(3) - name/**/2_bhi(3) \ && if (name/**/2_idir==-1) name/**/2_bmax(1) = name/**/2_blo(1) \ && if (name/**/2_jdir==-1) name/**/2_bmax(2) = name/**/2_blo(2) \ && if (name/**/2_kdir==-1) name/**/2_bmax(3) = name/**/2_blo(3) \ - && if (name/**/2_idir== 0) name/**/2_bmax(1) = cctk_lsh(1) - name/**/2_bhi(1) \ - && if (name/**/2_jdir== 0) name/**/2_bmax(2) = cctk_lsh(2) - name/**/2_bhi(2) \ - && if (name/**/2_kdir== 0) name/**/2_bmax(3) = cctk_lsh(3) - name/**/2_bhi(3) \ && if (name/**/2_idir==+1) name/**/2_bmax(1) = cctk_lsh(1) \ && if (name/**/2_jdir==+1) name/**/2_bmax(2) = cctk_lsh(2) \ && if (name/**/2_kdir==+1) name/**/2_bmax(3) = cctk_lsh(3) \ @@ -3178,7 +3187,10 @@ for (int l=cctki0_lmin; l<cctki0_lmax; ++l) { \ for (int k=cctki0_kmin; k<cctki0_kmax; ++k) { \ for (int j=cctki0_jmin; j<cctki0_jmax; ++j) { \ - for (int i=cctki0_imin - (cctki0_imin+cctki0_iash*(j+cctki0_jash*(k+cctki0_kash*(l)))) % cctki0_istr; i<cctki0_imax; i+=cctki0_istr) { \ + \ + int const cctki0_ioff = (cctki0_imin+cctki0_iash*(j+cctki0_jash*(k+cctki0_kash*(l)))) % cctki0_istr; \ + \ + for (int i=cctki0_imin-cctki0_ioff; i<cctki0_imax; i+=cctki0_istr) { \ int const ni CCTK_ATTRIBUTE_UNUSED = cctki0_idir<0 ? i+1 : cctki0_idir==0 ? 0 : cctki0_imax-i; \ int const nj CCTK_ATTRIBUTE_UNUSED = cctki0_jdir<0 ? j+1 : cctki0_jdir==0 ? 0 : cctki0_jmax-j; \ int const nk CCTK_ATTRIBUTE_UNUSED = cctki0_kdir<0 ? k+1 : cctki0_kdir==0 ? 0 : cctki0_kmax-k; \ @@ -3909,26 +3921,26 @@ && if (name/**/2_kdir==+1) name/**/2_any_bbox = name/**/2_any_bbox .or. name/**/2_bboxhi(3) /= 0 \ && if (name/**/2_ldir==+1) name/**/2_any_bbox = name/**/2_any_bbox .or. name/**/2_bboxhi(4) /= 0 \ && if (name/**/2_any_bbox) then \ + && name/**/2_bmin(1) = name/**/2_blo(1)+1 \ + && name/**/2_bmin(2) = name/**/2_blo(2)+1 \ + && name/**/2_bmin(3) = name/**/2_blo(3)+1 \ + && name/**/2_bmin(4) = name/**/2_blo(4)+1 \ && if (name/**/2_idir==-1) name/**/2_bmin(1) = 1 \ && if (name/**/2_jdir==-1) name/**/2_bmin(2) = 1 \ && if (name/**/2_kdir==-1) name/**/2_bmin(3) = 1 \ && if (name/**/2_ldir==-1) name/**/2_bmin(4) = 1 \ - && if (name/**/2_idir== 0) name/**/2_bmin(1) = name/**/2_blo(1)+1 \ - && if (name/**/2_jdir== 0) name/**/2_bmin(2) = name/**/2_blo(2)+1 \ - && if (name/**/2_kdir== 0) name/**/2_bmin(3) = name/**/2_blo(3)+1 \ - && if (name/**/2_ldir== 0) name/**/2_bmin(4) = name/**/2_blo(4)+1 \ && if (name/**/2_idir==+1) name/**/2_bmin(1) = cctk_lsh(1) - name/**/2_bhi(1) \ && if (name/**/2_jdir==+1) name/**/2_bmin(2) = cctk_lsh(2) - name/**/2_bhi(2) \ && if (name/**/2_kdir==+1) name/**/2_bmin(3) = cctk_lsh(3) - name/**/2_bhi(3) \ && if (name/**/2_ldir==+1) name/**/2_bmin(4) = cctk_lsh(4) - name/**/2_bhi(4) \ + && name/**/2_bmax(1) = cctk_lsh(1) - name/**/2_bhi(1) \ + && name/**/2_bmax(2) = cctk_lsh(2) - name/**/2_bhi(2) \ + && name/**/2_bmax(3) = cctk_lsh(3) - name/**/2_bhi(3) \ + && name/**/2_bmax(4) = cctk_lsh(4) - name/**/2_bhi(4) \ && if (name/**/2_idir==-1) name/**/2_bmax(1) = name/**/2_blo(1) \ && if (name/**/2_jdir==-1) name/**/2_bmax(2) = name/**/2_blo(2) \ && if (name/**/2_kdir==-1) name/**/2_bmax(3) = name/**/2_blo(3) \ && if (name/**/2_ldir==-1) name/**/2_bmax(4) = name/**/2_blo(4) \ - && if (name/**/2_idir== 0) name/**/2_bmax(1) = cctk_lsh(1) - name/**/2_bhi(1) \ - && if (name/**/2_jdir== 0) name/**/2_bmax(2) = cctk_lsh(2) - name/**/2_bhi(2) \ - && if (name/**/2_kdir== 0) name/**/2_bmax(3) = cctk_lsh(3) - name/**/2_bhi(3) \ - && if (name/**/2_ldir== 0) name/**/2_bmax(4) = cctk_lsh(4) - name/**/2_bhi(4) \ && if (name/**/2_idir==+1) name/**/2_bmax(1) = cctk_lsh(1) \ && if (name/**/2_jdir==+1) name/**/2_bmax(2) = cctk_lsh(2) \ && if (name/**/2_kdir==+1) name/**/2_bmax(3) = cctk_lsh(3) \ @@ -4034,26 +4046,26 @@ && if (name/**/2_kdir==+1) name/**/2_all_bbox = name/**/2_all_bbox .and. name/**/2_bboxhi(3) /= 0 \ && if (name/**/2_ldir==+1) name/**/2_all_bbox = name/**/2_all_bbox .and. name/**/2_bboxhi(4) /= 0 \ && if (name/**/2_all_bbox .and. name/**/2_any_bbox) then \ + && name/**/2_bmin(1) = name/**/2_blo(1)+1 \ + && name/**/2_bmin(2) = name/**/2_blo(2)+1 \ + && name/**/2_bmin(3) = name/**/2_blo(3)+1 \ + && name/**/2_bmin(4) = name/**/2_blo(4)+1 \ && if (name/**/2_idir==-1) name/**/2_bmin(1) = 1 \ && if (name/**/2_jdir==-1) name/**/2_bmin(2) = 1 \ && if (name/**/2_kdir==-1) name/**/2_bmin(3) = 1 \ && if (name/**/2_ldir==-1) name/**/2_bmin(4) = 1 \ - && if (name/**/2_idir== 0) name/**/2_bmin(1) = name/**/2_blo(1)+1 \ - && if (name/**/2_jdir== 0) name/**/2_bmin(2) = name/**/2_blo(2)+1 \ - && if (name/**/2_kdir== 0) name/**/2_bmin(3) = name/**/2_blo(3)+1 \ - && if (name/**/2_ldir== 0) name/**/2_bmin(4) = name/**/2_blo(4)+1 \ && if (name/**/2_idir==+1) name/**/2_bmin(1) = cctk_lsh(1) - name/**/2_bhi(1) \ && if (name/**/2_jdir==+1) name/**/2_bmin(2) = cctk_lsh(2) - name/**/2_bhi(2) \ && if (name/**/2_kdir==+1) name/**/2_bmin(3) = cctk_lsh(3) - name/**/2_bhi(3) \ && if (name/**/2_ldir==+1) name/**/2_bmin(4) = cctk_lsh(4) - name/**/2_bhi(4) \ + && name/**/2_bmax(1) = cctk_lsh(1) - name/**/2_bhi(1) \ + && name/**/2_bmax(2) = cctk_lsh(2) - name/**/2_bhi(2) \ + && name/**/2_bmax(3) = cctk_lsh(3) - name/**/2_bhi(3) \ + && name/**/2_bmax(4) = cctk_lsh(4) - name/**/2_bhi(4) \ && if (name/**/2_idir==-1) name/**/2_bmax(1) = name/**/2_blo(1) \ && if (name/**/2_jdir==-1) name/**/2_bmax(2) = name/**/2_blo(2) \ && if (name/**/2_kdir==-1) name/**/2_bmax(3) = name/**/2_blo(3) \ && if (name/**/2_ldir==-1) name/**/2_bmax(4) = name/**/2_blo(4) \ - && if (name/**/2_idir== 0) name/**/2_bmax(1) = cctk_lsh(1) - name/**/2_bhi(1) \ - && if (name/**/2_jdir== 0) name/**/2_bmax(2) = cctk_lsh(2) - name/**/2_bhi(2) \ - && if (name/**/2_kdir== 0) name/**/2_bmax(3) = cctk_lsh(3) - name/**/2_bhi(3) \ - && if (name/**/2_ldir== 0) name/**/2_bmax(4) = cctk_lsh(4) - name/**/2_bhi(4) \ && if (name/**/2_idir==+1) name/**/2_bmax(1) = cctk_lsh(1) \ && if (name/**/2_jdir==+1) name/**/2_bmax(2) = cctk_lsh(2) \ && if (name/**/2_kdir==+1) name/**/2_bmax(3) = cctk_lsh(3) \ diff --git a/src/include/cctk_Loop.h.pl b/src/include/cctk_Loop.h.pl index 311efbcb..d290df79 100755 --- a/src/include/cctk_Loop.h.pl +++ b/src/include/cctk_Loop.h.pl @@ -249,11 +249,12 @@ for $dim (1,2,3,4) { # Export loop bounds in the i direction (bsnl ' int const imin CCTK_ATTRIBUTE_UNUSED = cctki0_imin;'), (bsnl ' int const imax CCTK_ATTRIBUTE_UNUSED = cctki0_imax;'), - (bsnl ' _Pragma("omp for[DIM==1?: collapse([DIM-1])]")'), - (reverse (rpt (bsnl (' for (int [C]=cctki0_[C]min' . - # Align i-loop to vector size - '[I==1? - ' . (sep '', rpt '[I==1?(cctki0_imin:+cctki0_[C-1]ash*([C]]') . (sep '', rpt ')') . ' % cctki0_istr:]' . - '; [C]<cctki0_[C]max; [I==1?[C]+=cctki0_[C]str:++[C]]) {')))), + (bsnl ' [DIM==1?:_Pragma("omp for collapse([DIM-1])")]'), + (reverse (rpt (bsnl ' [I==1?:for (int [C]=cctki0_[C]min; [C]<cctki0_[C]max; ++[C]) {]'))), + # Align i-loop to vector size + (bsnl (' int const cctki0_ioff = ' . (sep '', rpt '[I==1?(cctki0_imin:+cctki0_[C-1]ash*([C]]') . (sep '', rpt ')') . ' % cctki0_istr;')), + (bsnl ' [DIM==1?_Pragma("omp for"):]'), + (bsnl ' for (int i=cctki0_imin-cctki0_ioff; i<cctki0_imax; i+=cctki0_istr) {'), (rpt (bsnl ' int const n[C] CCTK_ATTRIBUTE_UNUSED = cctki0_[C]dir<0 ? [C]+1 : cctki0_[C]dir==0 ? 0 : cctki0_[C]max-[C];')), (bsnl ' {'), (nl ''), @@ -889,11 +890,11 @@ for $dim (1,2,3,4) { (rpt (bsnl ' && if (name/**/2_[C]dir==-1) name/**/2_any_bbox = name/**/2_any_bbox .or. name/**/2_bboxlo([I+1]) /= 0')), (rpt (bsnl ' && if (name/**/2_[C]dir==+1) name/**/2_any_bbox = name/**/2_any_bbox .or. name/**/2_bboxhi([I+1]) /= 0')), (bsnl ' && if (name/**/2_any_bbox) then'), + (rpt (bsnl ' && name/**/2_bmin([I+1]) = name/**/2_blo([I+1])+1')), (rpt (bsnl ' && if (name/**/2_[C]dir==-1) name/**/2_bmin([I+1]) = 1')), - (rpt (bsnl ' && if (name/**/2_[C]dir== 0) name/**/2_bmin([I+1]) = name/**/2_blo([I+1])+1')), (rpt (bsnl ' && if (name/**/2_[C]dir==+1) name/**/2_bmin([I+1]) = cctk_lsh([I+1]) - name/**/2_bhi([I+1])')), + (rpt (bsnl ' && name/**/2_bmax([I+1]) = cctk_lsh([I+1]) - name/**/2_bhi([I+1])')), (rpt (bsnl ' && if (name/**/2_[C]dir==-1) name/**/2_bmax([I+1]) = name/**/2_blo([I+1])')), - (rpt (bsnl ' && if (name/**/2_[C]dir== 0) name/**/2_bmax([I+1]) = cctk_lsh([I+1]) - name/**/2_bhi([I+1])')), (rpt (bsnl ' && if (name/**/2_[C]dir==+1) name/**/2_bmax([I+1]) = cctk_lsh([I+1])')), (bsnl ' CCTK_LOOP[DIM]STR_NORMAL(name/**/_boundaries,'), (bsnl ' '.(crpt '[C]').','), @@ -973,11 +974,11 @@ for $dim (1,2,3,4) { (rpt (bsnl ' && if (name/**/2_[C]dir==-1) name/**/2_all_bbox = name/**/2_all_bbox .and. name/**/2_bboxlo([I+1]) /= 0')), (rpt (bsnl ' && if (name/**/2_[C]dir==+1) name/**/2_all_bbox = name/**/2_all_bbox .and. name/**/2_bboxhi([I+1]) /= 0')), (bsnl ' && if (name/**/2_all_bbox .and. name/**/2_any_bbox) then'), + (rpt (bsnl ' && name/**/2_bmin([I+1]) = name/**/2_blo([I+1])+1')), (rpt (bsnl ' && if (name/**/2_[C]dir==-1) name/**/2_bmin([I+1]) = 1')), - (rpt (bsnl ' && if (name/**/2_[C]dir== 0) name/**/2_bmin([I+1]) = name/**/2_blo([I+1])+1')), (rpt (bsnl ' && if (name/**/2_[C]dir==+1) name/**/2_bmin([I+1]) = cctk_lsh([I+1]) - name/**/2_bhi([I+1])')), + (rpt (bsnl ' && name/**/2_bmax([I+1]) = cctk_lsh([I+1]) - name/**/2_bhi([I+1])')), (rpt (bsnl ' && if (name/**/2_[C]dir==-1) name/**/2_bmax([I+1]) = name/**/2_blo([I+1])')), - (rpt (bsnl ' && if (name/**/2_[C]dir== 0) name/**/2_bmax([I+1]) = cctk_lsh([I+1]) - name/**/2_bhi([I+1])')), (rpt (bsnl ' && if (name/**/2_[C]dir==+1) name/**/2_bmax([I+1]) = cctk_lsh([I+1])')), (bsnl ' CCTK_LOOP[DIM]STR_NORMAL(name/**/_intboundaries,'), (bsnl ' '.(crpt '[C]').','), |