-
Notifications
You must be signed in to change notification settings - Fork 69
Open
Milestone
Description
compilation is broken with flag OPENMP_REPRODUCIBLE flag on.
core issue is errors like this when reproducible is on:
790 | !$OMP ORDERED
| ^
Error: 'ordered' region must be closely nested inside a loop region with an 'ordered' clause
fix for instance in code block example would be
Lines 864 to 899 in 231c416
| !$OMP DO | |
| #if !defined(DISABLE_OPENACC_ATOMICS) | |
| !$ACC PARALLEL LOOP GANG VECTOR PRIVATE(elnodes) DEFAULT(PRESENT) | |
| #else | |
| !$ACC UPDATE SELF(m_snow, icefluxes) | |
| #endif | |
| do elem=1, myDim_elem2D | |
| ! if cavity cycle over | |
| if(ulevels(elem)>1) cycle !LK89140 | |
| elnodes=elem2D_nodes(:,elem) | |
| do q=1,3 | |
| n=elnodes(q) | |
| #if defined(_OPENMP) && !defined(__openmp_reproducible) | |
| call omp_set_lock (partit%plock(n)) | |
| #else | |
| !$OMP ORDERED | |
| #endif | |
| #if !defined(DISABLE_OPENACC_ATOMICS) | |
| !$ACC ATOMIC UPDATE | |
| #endif | |
| m_snow(n)=m_snow(n)+icefluxes(elem,q) | |
| #if defined(_OPENMP) && !defined(__openmp_reproducible) | |
| call omp_unset_lock(partit%plock(n)) | |
| #else | |
| !$OMP END ORDERED | |
| #endif | |
| end do | |
| end do | |
| #if !defined(DISABLE_OPENACC_ATOMICS) | |
| !$ACC END PARALLEL LOOP | |
| #else | |
| !$ACC UPDATE DEVICE(m_snow) | |
| #endif | |
| !$OMP END DO | |
| end if |
to add ordered to all clauses where we may use OMP_ORDERED like: !$OMP DO ordered.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels