Support
for
several
features
of
Fortran
2003
was
added
(see
Section 1.7).
A
parameter
was
added
to
the
ordered
clause
of
the
worksharing-loop
construct
(see
Section 2.11.4)
and
clauses
were
added
to
the
ordered
construct
(see
Section 2.19.9)
to
support
doacross
loop
nests
and
use
of
the
simd
construct
on
loops
with
loop-carried
backward
dependences.
The
linear
clause
was
added
to
the
worksharing-loop
construct
(see
Section 2.11.4).
The
simdlen
clause
was
added
to
the
simd
construct
(see
Section 2.11.5.1)
to
support
specification
of
the
exact
number
of
iterations
desired
per
SIMD
chunk.
The
priority
clause
was
added
to
the
task
construct
(see
Section 2.12.1)
to
support
hints
that
specify
the
relative
execution
priority
of
explicit
tasks.
The
omp_get_max_task_priority
routine
was
added
to
return
the
maximum
supported
priority
value
(see
Section 3.5.1)
and
the
OMP_MAX_TASK_PRIORITY
environment
variable
was
added
to
control
the
maximum
priority
value
allowed
(see
Section 6.16).
Taskloop
constructs
(see
Section 2.12.2
and
Section 2.12.3)
were
added
to
support
nestable
parallel
loops
that
create
OpenMP
tasks.
To
support
interaction
with
native
device
implementations,
the
use_device_ptr
clause
was
added
to
the
target
data
construct
(see
Section 2.14.2)
and
the
is_device_ptr
clause
was
added
to
the
target
construct
(see
Section 2.14.5).
To
support
unstructured
data
mapping
for
devices,
the
target
enter
data
(see
Section 2.14.3)
and
target
exit
data
(see
Section 2.14.4)
constructs
were
added
and
the
map
clause
(see
Section 2.21.7.1)
was
updated.
The
nowait
and
depend
clauses
were
added
to
the
target
construct
(see
Section 2.14.5)
to
improve
support
for
asynchronous
execution
of
target
regions.
The
private,
firstprivate
and
defaultmap
clauses
were
added
to
the
target
construct
(see
Section 2.14.5).
The
declaretarget
directive
was
extended
to
allow
mapping
of
global
variables
to
be
deferred
to
specific
device
executions
and
to
allow
an
extended-list
to
be
specified
in
C/C++
(see
Section 2.14.7).
To
support
a
more
complete
set
of
device
construct
shortcuts,
the
targetparallel
(see
Section 2.16.16),
target
parallel
worksharing-loop
(see
Section 2.16.17),
target
parallel
worksharing-loop
SIMD
(see
Section 2.16.18),
and
targetsimd
(see
Section 2.16.20),
combined
constructs
were
added.
The
if
clause
was
extended
to
take
a
directive-name-modifier
that
allows
it
to
apply
to
combined
constructs
(see
Section 2.18).
The
hint
clause
was
added
to
the
critical
construct
(see
Section 2.19.1).
The
source
and
sink
dependence
types
were
added
to
the
depend
clause
(see
Section 2.19.11)
to
support
doacross
loop
nests.
The
implicit
data-sharing
attribute
for
scalar
variables
in
target
regions
was
changed
to
firstprivate
(see
Section 2.21.1.1).
Use
of
some
C++
reference
types
was
allowed
in
some
data
sharing
attribute
clauses
(see
Section 2.21.4).
The
ref,
val,
and
uval
modifiers
were
added
to
the
linear
clause
(see
Section 2.21.4.6).
Semantics
for
reductions
on
C/C++
array
sections
were
added
and
restrictions
on
the
use
of
arrays
and
pointers
in
reductions
were
removed
(see
Section 2.21.5.4).
Support
was
added
to
the
map
clauses
to
handle
structure
elements
(see
Section 2.21.7.1).
Query
functions
for
OpenMP
thread
affinity
were
added
(see
Section 3.3.2
to
Section 3.3.7).
Device
memory
routines
were
added
to
allow
explicit
allocation,
deallocation,
memory
transfers
and
memory
associations
(see
Section 3.8).
The
lock
API
was
extended
with
lock
routines
that
support
storing
a
hint
with
a
lock
to
select
a
desired
lock
implementation
for
a
lock’s
intended
usage
by
the
application
code
(see
Section 3.9.2).
C/C++
Grammar
(previously
Appendix
B)
was
moved
to
a
separate
document.