The
bind-var
ICV
(see
Section 2.1)
and
the
OMP_PROC_BIND
environment
variable
(see
Section 21.1.7)
were
added
to
support
control
of
whether
threads
are
bound
to
processors.
Data
environment
restrictions
were
changed
to
allow
intent(in)
and
const-qualified
types
for
the
firstprivate
clause
(see
Section 5.4.4).
Data
environment
restrictions
were
changed
to
allow
Fortran
pointers
in
firstprivate
(see
Section 5.4.4)
and
lastprivate
(see
Section 5.4.5)
clauses.
New
reduction
operators
min
and
max
were
added
for
C
and
C++
(see
Section 5.5).
The
nthreads-var
ICV
was
modified
to
be
a
list
of
the
number
of
threads
to
use
at
each
nested
parallel
region
level,
and
the
algorithm
for
determining
the
number
of
threads
used
in
a
parallel
region
was
modified
to
handle
a
list
(see
Section 10.1.1).
The
final
and
mergeable
clauses
(see
Section 12.5)
were
added
to
the
task
construct
to
support
optimization
of
task
data
environments.
The
taskyield
construct
(see
Section 12.7)
was
added
to
allow
user-defined
task
scheduling
points.
The
atomic
construct
(see
Section 15.8.4)
was
extended
to
include
read,
write,
and
capture
forms,
and
an
update
clause
was
added
to
apply
the
already
existing
form
of
the
atomic
construct.
The
nesting
restrictions
in
Section 17.1
were
clarified
to
disallow
closely-nested
OpenMP
regions
within
an
atomic
region
so
that
an
atomic
region
can
be
consistently
defined
with
other
OpenMP
regions
to
include
all
code
in
the
atomic
construct.
The
omp_in_final
runtime
library
routine
(see
Section 18.5.3)
was
added
to
support
specialization
of
final
task
regions.
Descriptions
of
examples
(previously
Appendix
A)
were
expanded
and
clarified.
Incorrect
use
of
omp_integer_kind
in
Fortran
interfaces
was
replaced
with
selected_int_kind(8).