1! RUN: %S/test_symbols.sh %s %t %f18 -fopenmp 2 3! 2.15.2 threadprivate Directive 4! The threadprivate directive specifies that variables are replicated, 5! with each thread having its own copy. When threadprivate variables are 6! referenced in the OpenMP region, we know they are already private to 7! their threads, so no new symbol needs to be created. 8 9!DEF: /mm Module 10module mm 11 !$omp threadprivate (i) 12contains 13 !DEF: /mm/foo PUBLIC (Subroutine) Subprogram 14 subroutine foo 15 !DEF: /mm/foo/a ObjectEntity INTEGER(4) 16 integer :: a = 3 17 !$omp parallel 18 !REF: /mm/foo/a 19 a = 1 20 !DEF: /mm/i PUBLIC (Implicit, OmpThreadprivate) ObjectEntity INTEGER(4) 21 !REF: /mm/foo/a 22 i = a 23 !$omp end parallel 24 !REF: /mm/foo/a 25 print *, a 26 block 27 !DEF: /mm/foo/Block2/i ObjectEntity REAL(4) 28 real i 29 !REF: /mm/foo/Block2/i 30 i = 3.14 31 end block 32 end subroutine foo 33end module mm 34!DEF: /tt MainProgram 35program tt 36 !REF: /mm 37 use :: mm 38 !DEF: /tt/foo (Subroutine) Use 39 call foo 40end program tt 41