A.23 Примеры директивы ordered
Можно иметь разделах упорядоченные кратным with a for задана ordered предложение. В первом примере noncompliant поскольку api-интерфейсы определяет следующее:
"Итерация цикла with a for конструкция не должна выполнять эти же ordered директива несколько раз, и она не должна выполняться несколько ordered директива". (См. Раздел 2.6.6 на странице 22)
В этом noncompliant примере выполняются все итерации 2 приказанных раздела:
#pragma omp for ordered
for (i=0; i<n; i++)
{
...
#pragma omp ordered
{ ... }
...
#pragma omp ordered
{ ... }
...
}
Следующий пример показывает цикл, совместимый с for с более чем одним упорядоченным разделе:
#pragma omp for ordered
for (i=0; i<n; i++)
{
...
if (i <= 10)
{
...
#pragma omp ordered
{ ... }
}
...
(i > 10)
{
...
#pragma omp ordered
{ ... }
}
...
}