@@ -41,8 +41,12 @@ struct TestAdjointAccessControlNested2 : public TestBase<4, 1, 3, TestAdjointAcc
4141 T* b = new T[N];
4242 T* c = new T[N];
4343
44+ assertAdjointAccessMode (opdi::LogicInterface::AdjointAccessMode::Atomic);
45+
4446 OPDI_PARALLEL ()
4547 {
48+ assertAdjointAccessMode (opdi::LogicInterface::AdjointAccessMode::Atomic);
49+
4650 int outerNThreads = omp_get_num_threads ();
4751 int outerStart = ((N - 1 ) / outerNThreads + 1 ) * omp_get_thread_num ();
4852 int outerEnd = std::min (N, ((N - 1 ) / outerNThreads + 1 ) * (omp_get_thread_num () + 1 ));
@@ -56,6 +60,8 @@ struct TestAdjointAccessControlNested2 : public TestBase<4, 1, 3, TestAdjointAcc
5660 opdi::logic->setAdjointAccessMode (opdi::LogicInterface::AdjointAccessMode::Classical);
5761 #endif
5862
63+ assertAdjointAccessMode (opdi::LogicInterface::AdjointAccessMode::Classical);
64+
5965 // no shared reading
6066 for (int i = outerStart; i < outerEnd; ++i) {
6167 b[i] = sin (exp (a[i]));
@@ -65,6 +71,8 @@ struct TestAdjointAccessControlNested2 : public TestBase<4, 1, 3, TestAdjointAcc
6571
6672 OPDI_PARALLEL ()
6773 {
74+ assertAdjointAccessMode (opdi::LogicInterface::AdjointAccessMode::Classical);
75+
6876 int innerNThreads = omp_get_num_threads ();
6977 int innerStart = outerStart + (((outerEnd - outerStart) - 1 ) / innerNThreads + 1 ) * omp_get_thread_num ();
7078 int innerEnd = std::min (outerEnd, outerStart + (((outerEnd - outerStart) - 1 ) / innerNThreads + 1 )
@@ -74,6 +82,8 @@ struct TestAdjointAccessControlNested2 : public TestBase<4, 1, 3, TestAdjointAcc
7482 opdi::logic->setAdjointAccessMode (opdi::LogicInterface::AdjointAccessMode::Atomic);
7583 #endif
7684
85+ assertAdjointAccessMode (opdi::LogicInterface::AdjointAccessMode::Atomic);
86+
7787 // shared reading on a
7888 for (int j = innerStart; j < innerEnd; ++j) {
7989 T arg = b[j];
@@ -87,6 +97,8 @@ struct TestAdjointAccessControlNested2 : public TestBase<4, 1, 3, TestAdjointAcc
8797 }
8898 OPDI_END_PARALLEL
8999
100+ assertAdjointAccessMode (opdi::LogicInterface::AdjointAccessMode::Atomic);
101+
90102 // shared reading on a
91103 for (int i = outerStart; i < outerEnd; ++i) {
92104 T arg = c[i];
@@ -101,6 +113,8 @@ struct TestAdjointAccessControlNested2 : public TestBase<4, 1, 3, TestAdjointAcc
101113 opdi::logic->addReverseBarrier ();
102114 #endif
103115
116+ assertAdjointAccessMode (opdi::LogicInterface::AdjointAccessMode::Classical);
117+
104118 // no shared reading
105119 for (int i = outerStart; i < outerEnd; ++i) {
106120 c[i] += sin (exp (c[i]));
@@ -111,6 +125,8 @@ struct TestAdjointAccessControlNested2 : public TestBase<4, 1, 3, TestAdjointAcc
111125 opdi::logic->addReverseBarrier ();
112126 #endif
113127
128+ assertAdjointAccessMode (opdi::LogicInterface::AdjointAccessMode::Atomic);
129+
114130 // shared reading on a
115131 for (int i = outerStart; i < outerEnd; ++i) {
116132 T arg = c[i];
@@ -123,6 +139,8 @@ struct TestAdjointAccessControlNested2 : public TestBase<4, 1, 3, TestAdjointAcc
123139 }
124140 OPDI_END_PARALLEL
125141
142+ assertAdjointAccessMode (opdi::LogicInterface::AdjointAccessMode::Atomic);
143+
126144 for (int i = 0 ; i < N; ++i) {
127145 out[0 ] += c[i];
128146 }
0 commit comments