A.23 Exemplos da diretiva ordered
É possível ter várias seções ordenadas com um for especificado com o ordered cláusula. O primeiro exemplo é incompatível porque a API Especifica o seguinte:
"Uma iteração de um loop com uma for construção não deve executar o mesmo ordered diretiva por mais de uma vez e ele não devem executar mais de um ordered diretiva." (Consulte seção 2.6.6 na página 22)
Neste exemplo não compatíveis, todas as iterações executar duas seções ordenadas:
#pragma omp for ordered
for (i=0; i<n; i++)
{
...
#pragma omp ordered
{ ... }
...
#pragma omp ordered
{ ... }
...
}
Mostra o seguinte exemplo compatível com um for com mais de um pedido na seção:
#pragma omp for ordered
for (i=0; i<n; i++)
{
...
if (i <= 10)
{
...
#pragma omp ordered
{ ... }
}
...
(i > 10)
{
...
#pragma omp ordered
{ ... }
}
...
}