source: CIVL/examples/omp/dataracebench-1.3.2/micro-benchmarks-fortran/DRB154-missinglock3-orig-gpu-no.f95

main
Last change on this file was ea777aa, checked in by Alex Wilton <awilton@…>, 3 years ago

Moved examples, include, build_default.properties, common.xml, and README out from dev.civl.com into the root of the repo.

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@5704 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100755
File size: 1.0 KB
Line 
1!!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!!!
2!!! Copyright (c) 2017-20, Lawrence Livermore National Security, LLC
3!!! and DataRaceBench project contributors. See the DataRaceBench/COPYRIGHT file for details.
4!!!
5!!! SPDX-License-Identifier: (BSD-3-Clause)
6!!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!!!
7
8!Concurrent accessing var@25:9 may cause atomicity violation and inter region data race.
9!Lock and reduction clause at line 22, avoids this. No Data Race Pair.
10
11program DRB154_missinglock3_orig_gpu_no
12 use omp_lib
13 implicit none
14
15 integer (kind=omp_lock_kind) :: lck
16 integer :: var, i
17 var = 0
18
19 call omp_init_lock (lck)
20
21 !$omp target map(tofrom:var) device(0)
22 !$omp teams distribute reduction(+:var)
23 do i = 1, 100
24 call omp_set_lock(lck)
25 var = var+1
26 call omp_unset_lock(lck)
27 end do
28 !$omp end teams distribute
29 !$omp end target
30
31 call omp_destroy_lock(lck)
32
33 print*, var
34end program
Note: See TracBrowser for help on using the repository browser.