Support
for
several
features
of
Fortran
2003
was
added
(see
Section 1.7
on
page 83
for
features
that
are
still
not
supported).
A
parameter
was
added
to
the
ordered
clause
of
the
worksharing-loop
construct
(see
Section 2.9.2
on
page 288)
and
clauses
were
added
to
the
ordered
construct
(see
Section 2.17.9
on
page 717)
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.9.2
on
page 288).
The
simdlen
clause
was
added
to
the
simd
construct
(see
Section 2.9.3.1
on
page 316)
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.10.1
on
page 384)
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.2.42
on
page 1141)
and
the
OMP_MAX_TASK_PRIORITY
environment
variable
was
added
to
control
the
maximum
priority
value
allowed
(see
Section 6.16
on
page 1678).
Taskloop
constructs
(see
Section 2.10.2
on
page 395
and
Section 2.10.3
on
page 407)
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.12.2
on
page 451)
and
the
is_device_ptr
clause
was
added
to
the
target
construct
(see
Section 2.12.5
on
page 478).
The
nowait
and
depend
clauses
were
added
to
the
target
construct
(see
Section 2.12.5
on
page 478)
to
improve
support
for
asynchronous
execution
of
target
regions.
The
private,
firstprivate
and
defaultmap
clauses
were
added
to
the
target
construct
(see
Section 2.12.5
on
page 478).
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.12.7
on
page 513).
To
support
unstructured
data
mapping
for
devices,
the
target
enter
data
(see
Section 2.12.3
on
page 461)
and
target
exit
data
(see
Section 2.12.4
on
page 469)
constructs
were
added
and
the
map
clause
(see
Section 2.19.7.1
on
page 939)
was
updated.
To
support
a
more
complete
set
of
device
construct
shortcuts,
the
targetparallel
(see
Section 2.13.16
on
page 572),
target
parallel
worksharing-loop
(see
Section 2.13.17
on
page 576),
target
parallel
worksharing-loop
SIMD
(see
Section 2.13.18
on
page 581),
and
targetsimd
(see
Section 2.13.20
on
page 589),
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.15
on
page 619).
The
hint
clause
was
addded
to
the
critical
construct
(see
Section 2.17.1
on
page 626).
The
source
and
sink
dependence
types
were
added
to
the
depend
clause
(see
Section 2.17.11
on
page 736)
to
support
doacross
loop
nests.
The
implicit
data-sharing
attribute
for
scalar
variables
in
target
regions
was
changed
to
firstprivate
(see
Section 2.19.1.1
on
page 777).
Use
of
some
C++
reference
types
was
allowed
in
some
data
sharing
attribute
clauses
(see
Section 2.19.4
on
page 842).
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.19.5.4
on
page 885).
The
ref,
val,
and
uval
modifiers
were
added
to
the
linear
clause
(see
Section 2.19.4.6
on
page 867).
Support
was
added
to
the
map
clauses
to
handle
structure
elements
(see
Section 2.19.7.1
on
page 939).
Query
functions
for
OpenMP
thread
affinity
were
added
(see
Section 3.2.24
on
page 1092
to
Section 3.2.29
on
page 1106).
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.3.2
on
page 1164).
Device
memory
routines
were
added
to
allow
explicit
allocation,
deallocation,
memory
transfers
and
memory
associations
(see
Section 3.6
on
page 1187).
C/C++
Grammar
(previously
Appendix
B)
was
moved
to
a
separate
document.