JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Oracle Solaris Studio 12.3: OpenMP API User's Guide     Oracle Solaris Studio 12.3 Information Library
search filter icon
search icon

Document Information

Preface

1.  Introducing the OpenMP API

2.  Compiling and Running OpenMP Programs

3.  Implementation-Defined Behaviors

3.1 Task Scheduling Points

3.2 Memory Model

3.3 Internal Control Variables

3.4 Dynamic Adjustment of Threads

3.5 Loop Directive

3.6 Constructs

3.6.1 SECTIONS

3.6.2 SINGLE

3.6.3 ATOMIC

3.7 Routines

3.7.1 omp_set_num_threads()

3.7.2 omp_set_schedule()

3.7.3 omp_set_max_active_levels()

3.7.4 omp_get_max_active_levels()

3.8 Environment Variables

3.9 Fortran Issues

3.9.1 THREADPRIVATE Directive

3.9.2 SHARED Clause

3.9.3 Runtime Library Definitions

4.  Nested Parallelism

5.  Tasking

6.  Automatic Scoping of Variables

7.  Scope Checking

8.  Performance Considerations

A.  Placement of Clauses on Directives

Index

3.9 Fortran Issues

The following issues apply to Fortran only.

3.9.1 THREADPRIVATE Directive

If the conditions for values of data in the thread-private objects of threads (other than the initial thread) to persist between two consecutive active parallel regions do not all hold, then the allocation status of an allocatable array in the second region might be not currently allocated.

3.9.2 SHARED Clause

Passing a shared variable to a non-intrinsic procedure could result in the value of the shared variable being copied into temporary storage before the procedure reference, and back out of the temporary storage into the actual argument storage after the procedure reference. This copying into and out of temporary storage can occur only if the conditions found in the OpenMP 3.1 Specification shared clause section hold, namely:

3.9.3 Runtime Library Definitions

Both the include file omp_lib.h and the module file omp_lib are provided in the implementation.

On Oracle Solaris platforms, the OpenMP runtime library routines that take an argument are extended with a generic interface so arguments of different Fortran KIND types can be accommodated.