Skip to content

broken -DOPENMP_REPRODUCIBLE=ON #528

@suvarchal

Description

@suvarchal

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

fesom2/src/ice_fct.F90

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.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions