JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Oracle Solaris Studio 12.2: OpenMP API User's Guide
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_schedule()

3.7.2 omp_set_max_active_levels()

3.7.3 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

B.  Converting to OpenMP

Index

3.9 Fortran Issues

The following apply to Fortran only.

3.9.1 THREADPRIVATE Directive

If the conditions for values of data in the threadprivate 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 may 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 conditions a, b, and c in OpenMP 3.0 Specification, section 2.9.3.2 page 88, 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 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.