diff options
-rw-r--r-- | Carpet/LoopControl/interface.ccl | 2 | ||||
-rw-r--r-- | Carpet/LoopControl/param.ccl | 7 | ||||
-rw-r--r-- | Carpet/LoopControl/schedule.ccl | 23 | ||||
-rw-r--r-- | Carpet/LoopControl/src/lc_selftest.c | 3 |
4 files changed, 24 insertions, 11 deletions
diff --git a/Carpet/LoopControl/interface.ccl b/Carpet/LoopControl/interface.ccl index e3c1e81c9..c0362e5fa 100644 --- a/Carpet/LoopControl/interface.ccl +++ b/Carpet/LoopControl/interface.ccl @@ -8,7 +8,7 @@ USES INCLUDE HEADER: vectors.h -CCTK_REAL selftest TYPE=gf +CCTK_REAL selftest TYPE=gf TAGS='prolongation="none"' { var1 var2 } "Self-test variables" diff --git a/Carpet/LoopControl/param.ccl b/Carpet/LoopControl/param.ccl index a21339583..005202538 100644 --- a/Carpet/LoopControl/param.ccl +++ b/Carpet/LoopControl/param.ccl @@ -33,10 +33,15 @@ BOOLEAN debug "Output debug information" STEERABLE=always { } "no" -BOOLEAN check_type_sizes "check that Fortran and C types match at Startup" +BOOLEAN check_type_sizes "Check that Fortran and C types match" { } "yes" +BOOLEAN do_selftest "Perform some self-tests" +{ +} "no" + + ################# # Thread topology diff --git a/Carpet/LoopControl/schedule.ccl b/Carpet/LoopControl/schedule.ccl index c8eb1233c..c1b74863a 100644 --- a/Carpet/LoopControl/schedule.ccl +++ b/Carpet/LoopControl/schedule.ccl @@ -8,16 +8,21 @@ if (check_type_sizes) { } "Check that sizes of control structures are identical in C and Fortran" } -SCHEDULE lc_selftest AT basegrid -{ - LANG: C +if (do_selftest) { STORAGE: selftest -} "Perform some self-checks" -SCHEDULE lc_selftest AT postregrid -{ - LANG: C - STORAGE: selftest -} "Perform some self-checks" + + SCHEDULE lc_selftest AT basegrid + { + LANG: C + OPTIONS: global loop-local + } "Perform some self-checks" + + SCHEDULE lc_selftest AT postregrid + { + LANG: C + OPTIONS: global loop-local + } "Perform some self-checks" +} if (printstats) { SCHEDULE lc_printstats_analysis AT analysis diff --git a/Carpet/LoopControl/src/lc_selftest.c b/Carpet/LoopControl/src/lc_selftest.c index 0db494f40..d80421af6 100644 --- a/Carpet/LoopControl/src/lc_selftest.c +++ b/Carpet/LoopControl/src/lc_selftest.c @@ -45,6 +45,7 @@ void lc_selftest (CCTK_ARGUMENTS) vector_size) { int const ind3d = CCTK_GFINDEX3D(cctkGH, i,j,k); +#pragma omp atomic ++ var1[ind3d]; } LC_ENDLOOP3VEC(lc_selftest1); } @@ -66,6 +67,7 @@ void lc_selftest (CCTK_ARGUMENTS) vector_size) { int const ind3d = CCTK_GFINDEX3D(cctkGH, i,j,k); +#pragma omp atomic ++ var2[ind3d]; } LC_ENDLOOP3VEC(lc_selftest2a); @@ -95,6 +97,7 @@ void lc_selftest (CCTK_ARGUMENTS) vector_size) { int const ind3d = CCTK_GFINDEX3D(cctkGH, i,j,k); +#pragma omp atomic ++ var2[ind3d]; } LC_ENDLOOP3VEC(lc_selftest2b); } |