📄 release_notes.htm
字号:
<dt><code>-xO</code></dt>
<dd>Specifies that the compiler is to generate SSE3, SSE2 and SSE instructions
and to optimize for the Intel® Pentium® 4 processor and Intel® Xeon® processor
with SSE3. Generated code might operate on processors not made
by Intel that support SSE3, SSE2 and SSE instruction sets. This
value does not enable some optimizations enabled in the S, T, and P processor
values. (IA-32 and Intel® 64 only, default: off) </dd>
<dt><code>-xS</code></dt>
<dd>Specifies that the compiler is to generate SSE4 Vectorizing Compiler
and Media Accelerators instructions for future Intel processors that
support the instructions. The compiler can also generate SSSE3, SSE3, SSE2,
and SSE instructions and it can optimize for future Intel processors. (IA-32
and Intel® 64 only, default: off) </dd>
</dl>
<!-- #BeginLibraryItem "/Library/Deprecated-options.lbi" --><h4>Deprecated and Removed Command Line Options</h4>
<p>For information on command line options that are either deprecated (still
functional but to be removed in a future version) or removed (no longer
supported), please refer to the section <em>Compiler Options</em> > <em>Deprecated
and Removed Compiler Options</em> in the on-disk documentation. </p>
<!-- #EndLibraryItem --><h4>Meaning of <code>-fast</code> Changed <code></code></h4>
<p>The <code>-fast</code> option is a shorter way of specifying a set of options
that generally improve run-time performance. As documented, the set
of options may change over time. In version 10.0, <code>-fast</code> sets <code>-xT</code>,
whereas in earlier versions it set <code>-xP</code>. If this change is not
appropriate for you, you must specify the individual options you want
instead of using <code>-fast</code>. Please see the Compiler Options section
of the on-disk documentation for further information.</p>
<h4>Meaning of <code>-stand</code> Changed</h4>
<p>In version 10.0, the meaning of the <code>-stand</code> option, when specified
without a following keyword, is changed to mean <code>-stand f03</code>,
or checking for conformance to Fortran 2003. You can select checking
against Fortran 90 or Fortran 95 by specifying <code>-stand f90</code> or <code>-stand
f95</code>. <code>-std</code> is an alternate spelling of <code>-stand</code>.
Note that the <em>Intel® Fortran Language Reference</em> still highlights Fortran
2003 features as extensions to Fortran 95. </p>
<!-- #BeginLibraryItem "/Library/Alternate Options.lbi" -->
<h4>Alternate Command Line Options </h4>
<p>Many command line options have an older spelling where underscores (“_”)
instead of hyphens (“-“) connect the words in the option name.
The older spelling is still a valid alternate option name. </p>
<!-- #EndLibraryItem -->
<h4><a name="f2003_behaviors"></a>Fortran 2003 Behaviors</h4>
<p>Fortran 2003 defines behaviors for language features that were either extensions
to previous standards or left unspecified in earlier standards. While
version 10.0 of the Intel Fortran Compiler does not yet support all
of Fortran 2003, the compiler now selects the Fortran 2003 behavior
in some cases where earlier compiler versions chose a different behavior.
In some other cases, the compiler defaults have not yet changed. These
are described below.</p>
<h5>Binary, octal and hexadecimal constants </h5>
<p>In Fortran 95, binary, octal and hexadecimal constants ("BOZ constants")
were allowed in DATA statements only and were restricted to initializing
scalar integer variables. As an extension to Fortran 95, the Intel
Fortran Compiler allowed BOZ constants in any context, with the type
interpretation determined by the context. Fortran 2003 expands the
use of BOZ constants permitting them to initialize any numeric type
and in arguments to the INT, REAL, DBLE and CMPLX intrinsics.</p>
<p>The Fortran 2003 semantics for use of BOZ constants match the previous extended
implementation of Intel Fortran except for the case of a BOZ constant
as an argument to INT, REAL, DBLE and CMPLX. Fortran 2003 specifies
that in these contexts a BOZ constant is interpreted as a binary value
which is interpreted directly as the data type returned by the intrinsic,
whereas the previous Intel Fortran interpretation was to treat the
BOZ constant as a signed integer value which was then converted.</p>
<p>For example:</p>
<p><code>print *, real(Z'40490FDB')</code></p>
<p>with the old behavior (<code>-assume old_boz</code>) prints 1.0785300E+09
and with the new behavior (<code>-assume noold_boz</code>) prints 3.141593.</p>
<p>In version 10.0, the default behavior for Intel Fortran is that of Fortran
2003, to transfer the binary value without conversion. If your application
needs the old behavior, compile with the option <code>-assume old_boz</code>.</p>
<h5>Default I/O unit *</h5>
<p>In the Intel Fortran Compiler, I/O unit * and the implied units used by
the <code>ACCEPT</code>, <code>PRINT</code> and <code>TYPE</code> statements,
are by default associated with unit numbers distinct from those that could
be specified in an <code>OPEN</code> statement, such as unit 5 or 6. Fortran
2003 requires that the programmer be able to OPEN these default units, which
is incompatible with the current Intel Fortran behavior.</p>
<p>In version 10.0, the <code>-assume [no]old_unit_star</code> compile command
option has been added to control this behavior. The default, <code>-assume
old_unit_star</code>, retains the current and past behavior with unit * being
distinct from units 5 and 6. If you want to use the Fortran 2003 behavior,
or if you will be using the Fortran 2003 intrinsic module <code>ISO_FORTRAN_ENV</code> and
its defined constants <code>INPUT_UNIT</code> and <code>OUTPUT_UNIT</code>,
specify <code>-assume noold_unit_star</code> to have unit * (and <code>ACCEPT</code>, <code>PRINT</code> and <code>TYPE</code>)
use units 5 (input) and 6 (output). </p>
<p>The default for this behavior may change in a future release. </p>
<h5>RECL= unit for unformatted files</h5>
<p>In version 10.0, as in versions 8.x and 9.x of Intel Fortran, when opening
a file for unformatted I/O, the value specified for the <code>RECL=</code> keyword
in <code>OPEN</code> is in four-byte units, the size of a default integer. Previous
Fortran standards have said that the <code>RECL=</code> unit was "implementation-dependent",
but Fortran 2003 "recommends" that it be single bytes. To specify that
the <code>RECL=</code> unit for unformatted I/O be bytes, use the existing compiler
option <code>-assume byterecl</code>. You must also use this option if your application
uses the <code>FILE_STORAGE_SIZE</code> named constant from the intrinsic module
<code>ISO_FORTRAN_ENV</code>.</p>
<h4>New Fortran 2003 Features</h4>
<p>The following features from the Fortran 2003 standard have been added since
the initial release of version 9.1. Some of these features first appeared
in updates to version 9.1. For additional details, please see the <em>Intel® Fortran
Language Reference</em>. </p>
<ul>
<li>ASYNCHRONOUS attribute and statement </li>
<li>BIND(C) attribute and statement</li>
<li>PROTECTED attribute and statement</li>
<li>VALUE attribute and statement</li>
<li>INTENT for pointer objects</li>
<li>FLUSH statement</li>
<li>WAIT statement </li>
<li>ASYNCHRONOUS keyword for OPEN and data transfer statements</li>
<li>ID keyword for INQUIRE and data transfer statements</li>
<li>PENDING keyword for INQUIRE</li>
<li>Rename of user-defined operators</li>
<li>IMPORT statement</li>
<li>INTRINSIC and NON_INTRINSIC keyword for USE statement </li>
<li>ISO_C_BINDING intrinsic module</li>
<li>ISO_FORTRAN_ENV intrinsic module (must compile with <code>-assume byterecl</code> and
<code>-assume noold_unit_star</code> for correct values) </li>
<li>COMMAND_ARGUMENT_COUNT intrinsic procedure</li>
<li>GET_COMMAND intrinsic procedure </li>
<li>GET_COMMAND_ARGUMENT intrinsic procedure </li>
<li>GET_ENVIRONMENT_VARIABLE intrinsic procedure </li>
<li>IS_IOSTAT_END intrinsic procedure </li>
<li>IS_IOSTAT_EOR intrinsic procedure </li>
<li>MOVE_ALLOC intrinsic procedure </li>
<li>NEW_LINE intrinsic procedure </li>
<li>SELECTED_CHAR_KIND intrinsic procedure </li>
</ul>
<h4>Additional Language Features</h4>
<p>For details on the following new language features, please see the <em>Intel® Fortran
Language Reference</em> </p>
<ul>
<li>ASSUME_ALIGNED Directive</li>
<li>LOOP_COUNT Directive </li>
<li>MEMORYTOUCH Directive</li>
<li>OPTIMIZE Directive </li>
<li>MULT_HIGH_SIGNED intrinsic procedure </li>
</ul>
<h4>New Environment Variables to Specify Default Record Lengths</h4>
<p>Two new environment variables are available to change the run-time behavior
of applications: <code>FORT_FMT_RECL</code> and <code>FORT_UFMT_RECL</code>.</p>
<p><code>FORT_FMT_RECL</code> is used to specify a default <code>RECL</code> (Record
Length) value for all Fortran units opened for formatted I/O. If defined
with an unsigned decimal integer value, the environment variable value is
used as if that value had been specified for <code>RECL=</code> for <code>OPEN</code> when
the <code>RECORDTYPE</code> is not <code>'FIXED'</code>. The most common
use of this is to change the line length for list-directed output, which
has a default of 80 columns.</p>
<p><code>FORT_UFMT_RECL</code> is used to specify a default <code>RECL</code> (Record
Length) value for all Fortran units opened for unformatted I/O. If
defined with an unsigned decimal integer value, the environment variable
value is used as if that value had been specified for <code>RECL=</code> for <code>OPEN</code> when
the <code>RECORDTYPE</code> is not <code>'FIXED'</code>. The most common
use of this is to change the maximum segment length for files opened
with <code>RECORDTYPE='SEGMENTED'</code>,
which has a default of 2040 bytes.
<h4><code>KMP_AFFINITY</code> Environment Variable for OpenMP* Applications </h4>
<p>The <code>KMP_AFFINITY</code> environment variable can be used in
an OpenMP* application to specify how execution threads should be bound
to processors on the system. This setting's effect is to bind each
thread, in order of creation, in a round-robin fashion to a processor
core in the system for the duration of the program. The value of <code>KMP_AFFINITY</code> should
be of the form:
<p><code>compact,<level> </code>
<p>where <code><level></code> is a non-negative integer. For example:
<p><code>compact,1 </code>
<p>The argument <code><level></code> specifies the gap between
successive thread's bound cores in the machine topology map, which
is represented as a binary tree. A level of zero indicates that threads
will be bound to successive threading contexts for processors which
have Intel® Hyper-Threading Technology enabled, or successive processors
if not. The levels increase by one level from threading contexts, to
cores, to packages (processors) in sequence. This setting is supported
for processors supplied by Intel Corporation only on systems where
the required operating system support for thread binding is present.
<h4>Improved Parallelizer and Vectorizer </h4>
<p>This version features a complete redesign of the optimizer that integrates
parallelization (IA-32, Intel® 64 and IA-64) and vectorization
(IA-32 and Intel® 64) at <code>O2</code> and <code>O3</code> optimization
levels with memory and loop optimizations.
<p>Performance can be substantially improved by:
<ul>
<li> Generation of more efficient multi-threaded code</li>
<li>Generation of more efficient SIMD code</li>
<li>Enhanced loop transformations </li>
</ul>
<h4>New and Enhanced Optimization Reports for Advanced Loop Transformations</h4>
<p>Loop Transformation (HLO) Optimization reports tell you why the
compiler was unable to apply loop interchange transformations on a set
of loops and suggests loop interchange if the reported bottlenecks
can be removed by source changes. These reports have been enhanced
to provide more detailed information and to be easier to understand. </p>
<h4>Static Verifier</h4>
<p>Static Verifier is a new compiler feature which performs static analysis
of a program across multiple source files. It can detect different
kinds of defects and doubtful or inconsistent uses of language features
in user code and report them according to their severity level. Static
Verifier understands C/C++ and Fortran code and can also perform analysis
of OpenMP directives.<!-- #BeginLibraryItem "/Library/F2003 Summary 10.0.lbi" --><h4>Fortran 2003 Feature Summary</h4>
<P>The Intel Fortran Compiler supports many features that are new to
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -