This product provides tools for Windows* software developers to create Fortran applications that deliver outstanding performance. Intel® Visual Fortran is a full-language Fortran 95 compiler with many features from the Fortran 2003 standard, plus a wide range of popular language extensions. Intel compilers support multi-threaded code development through autoparallelism and OpenMP* support.
You must recompile all Fortran sources that were compiled with Fortran compilers from vendors other than Intel, and those compiled with Intel Fortran versions earlier than 8.0, including those that create .mod files. If you are using third-party libraries and/or .mod files, you must obtain compatible versions from the library vendor. If you encounter difficulties obtaining updated third-party libraries, please let us know through Intel® Premier Support. If you previously used Compaq* Visual Fortran (CVF), note that the default procedure calling and naming conventions are different from CVF. A document describing CVF porting considerations is available.
Please also see the section below regarding a change in global name decoration for module variables on the Intel® 64 and IA-64 architectures.
Intel® Visual Fortran is available in three editions.
The Standard Edition contains the following components:
The Professional Edition includes all of the Standard Edition and adds the Intel® Math Kernel Library, which contains highly optimized, extensively threaded, mathematical functions for engineering, scientific, and financial applications that require maximum performance..
The Professional Edition with IMSL* includes all of the Professional Edition and adds the IMSL* Fortran Numeric Library (FNL) 6.0 from Visual Numerics*. Customers with current support licenses for Intel® Visual Fortran Professional Edition 9.1 can receive an updated license key to enable use of the Intel Math Kernel Library by logging in to the Intel® Software Development Products Registration Center and requesting that the license key be reissued.
Installation of the Intel Math Kernel Library and/or the IMSL Fortran Numeric Library is separate from that of the compiler. Please see the compiler Installation Guide for details.
Note: The default installation master directory referred to as <install-dir> in
this document is %ProgramFiles%\Intel. The Fortran 10.1 compiler
is installed into the Compiler\Fortran\10.1.xxx subfolder.
Note: Microsoft Visual Studio Premier Partner Edition is not provided for some license types, including Evaluation and Student. Please see the System Requirements for more details.
To receive technical support and product updates for the tools provided in this product you need to register, as described in the Technical Support section.
The following section discusses new features and changes in the Intel® Visual Fortran Compiler since version 10.0. Please see the separate
release notes for the Intel Debugger, found in the <install-dir>\IDB\10.1\docs folder.
Version numbers stated here may not reflect the actual released update version. The changes listed are included in updates with the stated version or higher.
/Qopt-prefetch-issue-excl-hint[-] added /arch:ia32 added /Qopt-jump-tables added /Qopt-loadpair[-] added/Qopt-mod-versioning[-] added /Qopt-prefetch-initial-values[-] added /Qopt-prefetch-next-iteration[-] added /Qunroll-aggressive[-] now available on IA-64 architecture As of version 10.0, developers of applications to run on IA-32 or Intel® 64 architecture systems no longer need to separately purchase and install a Microsoft development product. If you do not already have installed Microsoft Visual Studio 2005*, or on IA-32 architecture systems only, Microsoft Visual Studio .NET 2003* or Microsoft Visual C++ .NET 2003*, the Intel® Visual Fortran installation will install Microsoft Visual Studio 2005* Premier Partner Edition. This provides the Microsoft visual development environment, including debugger, as well as the tools and libraries needed for development from either the visual development environment or the command line.
Note: Microsoft Visual Studio Premier Partner Edition is not provided for some license types, including Evaluation and Student. Please see the System Requirements for more details.
If you will be using Microsoft Visual Studio 2005 Premier Partner Edition, the following limitations apply:
These limitations do not apply if you have a separately purchased version of Microsoft Visual Studio 2005, or on IA-32 architecture only, Visual Studio .NET 2003 or Visual C++ .NET 2003.
The Intel® COM Server Wizard enables programmers to create COM servers in Fortran which can then provide services to other applications, including those in the .NET environment. The Component Object Model (COM) provides mechanisms for creating reusable software components. COM is an object-based programming model designed to promote software interoperability; that is, to allow two or more applications or components to easily cooperate with one another, even if they were written by different vendors at different times, in different programming languages, or if they are running on different machines running different operating systems.
For further information, please refer to the section Using the Intel(R) Fortran COM Server in the on-disk documentation.
A set of example programs demonstrating various programming techniques and
usages for Fortran applications on Windows is provided in the <install_dir>\Compiler\Fortran\10.1.xxx\samples folder.
Also provided are sample programs that are referenced by the compiler
documentation. For further information, please open the samples.htm
document in the samples folder.
For version 10.1, three new samples have been added: COM\Autodice, DLL\DynamicLoad
and QuickWin\Poker.
You can have multiple versions of the Intel® Visual Fortran Compiler
installed, and as of version 10.0, two or more update versions can coexist.
When you install an update to version 10.1, previous versions are
not uninstalled automatically. Users of Microsoft
Visual Studio must select the new version from within Microsoft
Visual Studio (Tools
> Options > Intel(R) Fortran > Compilers).. If you do not
wish to have old versions installed, you can uninstall them before
(recommended) or after installing the newer version. Note that the install
path will be different for each update.
The following is a listing of command line options that are new or have changed since the initial version 9.1 release. Please refer to the compiler documentation for more information on these options.
/arch:ia32/assume:[no]old_boz /assume:[no]old_unit_star /assume:[no]old_xor .XOR. is defined by the compiler as an intrinsic operator.
See note below. (Default: on) /assume:protect_parensREAL and COMPLEX expression
evaluations by not reassociating operations. (Default: off) /assume:[no]realloc_lhs /assume:[no]std_mod_proc_name /check:[no]pointerALLOCATABLE variables. (Default: /check:nopointer) /fast/heap-arrays[-]/help [category]/QaxS/Qdiag-<type>:<diag-list>/Qdiag-dump/Qdiag-enable:sv[1|2|3] /Qdiag-enable:sv-include/Qdiag-file-append[:file]/Qfnalign[:n]/Qfp-speculation=<mode>/Qinline-dllimport[-]/Qinstrument-functions[-]/Qipo-jobs:n/Qkeep-static-consts[-]/Qopenmp-lib:typelegacy) /Qopt-jump-tables:default|never|large|<max-entries>default) /Qopt-loadpair[-]/Qopt-mod-versioning[-]/Qopt-multi-version-aggressive[-]/Qopt-prefetch-initial-values[-]/Qopt-prefetch-issue-excl-hint[-]/Qopt-prefetch-next-iteration[-]/Qopt-ra-region-strategy[:keyword]default) /Qpar-adjust-stack:n 0) /Qpar-runtime-control[-]/Qpar-schedule-<keyword>[[:]n]/Qprefetch[-]/QxT. (IA-32 and IA-64 architecture
only, default: off) /Qsave-temps[-]/Qtcheck[:<mode>]/Qtcollect/Qunroll-aggressive[-]/Qvec-guard-write[-]/QxO/QxS/std or /stand/stand:f03. Note that this is a change from previous
versions. (Default: off)/stand:f03 or /std03 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 Compiler Options > Deprecated and Removed Compiler Options in the on-disk documentation.
/Qopt-jump-tables:default|never|large|<max-entries> This option allows user control for the size of jump tables generated by
the compiler. Jump tables are used for SELECT CASE constructs,
which are implemented either as jump tables or a series of if-then-else
constructs. The method used typically has an impact on performance
of the generated code, and on the size of the data area. Using jump
tables will favor speed over size.
The available values are:
defaultnever large max-entries>/fast Changed The /fast 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. As of version 10.0, /fast sets /QxT,
whereas in earlier versions it set /QxP. If this change is not
appropriate for you, you must specify the individual options you want
instead of using /fast. Please see the Compiler Options
section of the on-disk documentation for further information.
/stand ChangedIn version 10.0, the meaning of the /stand option, when specified
without a following keyword, is changed to mean /stand:f03,
or checking for conformance to Fortran 2003. You can select checking
against Fortran 90 or Fortran 95 by specifying /stand:f90 or /stand:f95. /std is
an alternate spelling of /stand.
Note that the Intel® Fortran Language Reference still highlights
Fortran 2003 features as extensions to Fortran 95.
/QxW Enabled by Default on Intel® 64 Systems On Intel® 64 architecture systems, /QxW is enabled by default;
this has the effect of enabling vectorization and you may see vectorization
report messages displayed where you did not when using previous releases.
To disable the vectorization report messages, use /Qdiag-disable:vec. You
may still specify alternate options such as /QxP or /QaxT.
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.
Command line and visual development environment integration for Microsoft Visual Studio .NET 2002 is no longer provided. The Visual Studio versions supported are 2003 and 2005.
As of version 10.1 you can specify that OpenMP libraries compatible Microsoft
Visual C++ be used by specifying /Qopenmp-lib:compat. This may
be desirable if your application contains some source modules built
with Microsoft Visual C++ and your application uses OpenMP. The default
is /Qopenmp-lib:legacy which
uses the Intel-supplied OpenMP libraries.
Applications using the compat libraries must be built with
version 10.0 or later of the Intel C++ and/or Fortran compilers with /Qopenmp-lib:compat specified.
In a future release, the default will change to /Qopenmp-lib:compat,
and in a release after that, the legacy libraries will be removed.
Fortran 2003 defines behaviors for language features that were either extensions to previous standards or left unspecified in earlier standards. While version 10.1 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.
In Fortran 95, assignment to an allocatable array required that the left
and right hand side of the assignment match in shape and length parameters.
In Fortran 2003, if the shapes and length parameters do not match,
the variable being assigned to is deallocated and then reallocated
to shape and length parameters matching the expression being assigned.
As of version 10.1, the compiler can perform the extra actions specified
by Fortran 2003, but as these can significantly hurt performance, the
default is to retain the Fortran 95 behavior requiring that the shapes
and length parameters match. If you want the Fortran 2003 behavior
that deallocates and reallocates the variable on a shape mismatch,
specify /assume:realloc_lhs
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.
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.
For example:
print *, real(Z'40490FDB')
with the old behavior (/assume:old_boz) prints 1.0785300E+09
and with the new behavior (/assume:noold_boz) prints 3.141593.
As of 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 /assume:old_boz.
In the Intel Fortran Compiler, I/O unit * and the implied
units used by the ACCEPT, PRINT and TYPE statements,
are by default associated with unit numbers distinct from those that
could be specified in an OPEN 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.
In version 10.0, the /assume:[no]old_unit_star compile command
option has been added to control this behavior. The default, /assume:old_unit_star,
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 ISO_FORTRAN_ENV and
its defined constants INPUT_UNIT and OUTPUT_UNIT,
specify /assume:noold_unit_star to have unit * (and ACCEPT, PRINT and TYPE)
use units 5 (input) and 6 (output).
The default for this behavior may change in a future release.
RECL= unit for unformatted filesIn version 10.1, as in versions 8.x and 9.x of Intel Fortran, when opening
a file for unformatted I/O, the value specified for the RECL= keyword
in OPEN is in four-byte units, the size of a default integer.
Previous Fortran standards have said that the RECL= unit was "implementation-dependent",
but Fortran 2003 "recommends" that it be single bytes. To specify
that the RECL= unit for unformatted I/O be bytes, use the existing
compiler option /assume:byterecl. You must also use this option if
your application uses the FILE_STORAGE_SIZE named constant from
the intrinsic module ISO_FORTRAN_ENV.
.XOR. Intrinsic OperatorThe Intel Fortran compiler defines, as an extension, an intrinsic operator
.XOR.. This can cause conflicts with a user-defined operator of the
same name as the intrinsic operator has a different precedence than
user-defined operators. If you are definining your own operator .XOR. you can specify /assume:no_old_xor to disable the compiler's definition
of .XOR. as an intrinsic operator.
The Intel Fortran compiler constructs the global name for module procedures
and variables by joining the module name with the procedure or variable
name, separated with the string "_mp_", and then applying
the standard name decoration rules. For example, a procedure SUB in
module MYMOD would have a global name of MYMOD_mp_SUB.
If you have specified the /names:lowercase option, this method could
conflict with a user procedure whose name contains the string _mp_.
If your application has this conflict, specify the option /assume:noold_mod_proc_name which
will switch the case of the separator to be the opposite of the default
name case. You must specify the same option for the entire application
so that the names are consistent.
The compiler now supports the Fortran 2003 Stream I/O feature, which provides
the ability to read and write files as a stream of bytes. To enable
stream access, open the file specifying ACCESS='STREAM'. The READ and
WRITE statements support a POS= keyword to specify file position. For
more information, please refer to the Intel Fortran Compiler Language
Reference.
Intel Fortran has supported, as an extension, the RECORDTYPE values STREAM, STREAM_CR and STREAM_LF in the OPEN statement. In previous versions, neither the documentation nor the implementation were correct and the two were inconsistent. The old behavior was as follows:
Furthermore, if CARRIAGECONTROL='NONE' was specified, the behavior changed.
In version 10.1, the behavior changes as follows:
A new option is defined as follows:
CARRIAGECONTROL no longer affects the behavior of RECORDTYPE.
On Windows, the default formatted record delimiter is CR-LF; on Linux and Mac OS* X it is LF. With these changes, it is now possible to specify a particular delimiter type on all three operating systems in a consistent fashion.
If you wish to change the run-time behavior of an application without editing
the source, a new environment variable FOR_FMT_TERMINATOR can be defined.
The value of this environment variable takes the form:
mode[:ulist][;mode[:ulist]...]
where mode is one of CR, LF or CRLF and ulist is an optional range of unit
numbers to which that mode applies, for example, 2,17-20, 91
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 Intel® Fortran Language Reference.
/assume:byterecl and /assume:noold_unit_star for
correct values) COMMAND_ARGUMENT_COUNT intrinsic procedureFor details on the following new language features, please see the Intel® Fortran Language Reference
Two new environment variables are available to change the run-time
behavior of applications: FORT_FMT_RECL and FORT_UNFMT_RECL.
FORT_FMT_RECL is used to specify a default RECL (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 RECL= for OPEN when
the RECORDTYPE is not 'FIXED'. The most common
use of this is to change the line length for list-directed output,
which has a default of 80 columns.
FORT_UNFMT_RECL is used to specify a default RECL (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 RECL= for OPEN when
the RECORDTYPE is not 'FIXED'. The most common
use of this is to change the maximum segment length for files opened
with RECORDTYPE='SEGMENTED', which has a default of 2040
bytes.
KMP_AFFINITY Environment Variable for OpenMP* Applications The KMP_AFFINITY 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 KMP_AFFINITY should
be of the form:
compact,<level>
where <level> is a non-negative integer. For example:
compact,1
The argument <level> 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.
This version features a complete redesign of the optimizer that integrates
parallelization (all architectures) and vectorization
(IA-32 and Intel® 64 architecture) at O2 and O3 optimization
levels with memory and loop optimizations.
Performance can be substantially improved by:
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.
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.
In this release, when Static Verifier is enabled the linker is not
invoked so an executable or static/dynamic link library is not produced,
object files that were produced as a result of invocation of Static
Verifier are not valid and should not be used for generating of real
executable or static/dynamic link libraries. The current usage model
is that Static Verifier is added as an alternate build option to produce
a diagnostic report.
Static Verifier cannot be used in conjunction with cross-file interprocedural optimization (/Qipo).
For more information, please refer to the section on Building Applications > Error Handling > Handling Compile Time Errors > using Static Verification Diagnostic Options in the on-disk documentation.
When Static Verifier support is enabled within the IDE, the customary final build target (e.g. an executable image) is not created. As such, we recommend that a separate "Static Verification" configuration be created, by cloning the existing Debug (development) configuration, for use when static verification is desired.
<New..>Intel(R)
C++ > Diagnostics property page. Use
the "Level of Static Analysis" and "Analyze Included
Files" properties to control Static Verification.The WIn32* API modules, such as IFWINTY and KERNEL32,
have been updated to include additional symbols defined by newer Microsoft
operating system versions. If you have declared these symbols in your
application source you may need to remove your declarations in order
to allow for successful compilation. Also, a new module PSAPI is
provided.
STDCALL Attribute with ENTRY PointsVersion 10.0 of the compiler enforces the restriction that if in a
procedure containing ENTRY points, if the SUBROUTINE or FUNCTION or
any ENTRY is given the STDCALL attribute
through the use of the !DEC$ ATTRIBUTES STDCALL directive,
all must have STDCALL.
For Microsoft Windows on the Intel® 64 and IA-64 architecture systems, the documented convention for how external and global symbol names are decorated is different from that for the IA-32 architecture. On IA-32 architecture, global symbols generated by compilers are supposed to have a leading underscore, whereas on the Intel® 64 and iA-64 architectures the leading underscore is to be omitted.
In previous versions, the Intel
Fortran Compiler followed this rule except in the case of module variables.
For example, the variable X in module MOD should
be given the global name _MOD_mp_X on IA-32 architecture
but MOD_mp_X on
Intel® 64 and IA-64 architectures. However,
due to an error, the compiler was using the leading underscore for
module variables on all three platforms. This led to confusion and
linking errors, especially when module variables were referenced from
C++ or other non-Fortran code.
In the version 10.0 release, this error has been corrected, so that the leading underscore is properly omitted on the Intel® 64 and IA-64 architectures. Applications consisting of Fortran only should not notice the change if all sources are rebuilt. The change will be visible in the following cases:
.DEF file that names
the module variables with the leading underscoreWhile we understand that introducing an incompatibility of this nature
is not good, we believe it is better to fix it now while there are
still relatively few 64-bit applications rather than trying to deal
with the inconsistency at a later time. The old behavior is available
by use of a special compiler option, /switch:fe_old_modvar.
If you specify this option, then the underscore will be added as it
was in version 9.1 and earlier. If you need to specify this in the
Microsoft Visual Studio environment, select the property page Fortran > Command
Line and enter it under Additional Options.
IA-32 architecture applications are not affected by this change. If you have questions about this change, please contact Intel® Premier Support.
In version 10.1, the following changes have been made to the compiler's integration into Microsoft Visual Studio 2003 and 2005.
The Intel Fortran Compiler supports many features that are new to the latest revision of the Fortran standard, Fortran 2003. Additional Fortran 2003 features will appear in future versions. Fortran 2003 features supported by the current compiler include:
If you have licensed Intel® Visual Fortran Professional Edition with IMSL*, the IMSL* Fortran Libraries 6.0 from Visual Numerics* are provided (separate install required.)
For information on how to configure your environment for using the IMSL libraries from either Microsoft Visual Studio or the command line, please read Intel® Visual Fortran Compiler Documentation > Building Applications > Using Libraries > Using the IMSL* Mathematical and Statistical Libraries. This information has changed from previous releases. For information on the IMSL Fortran Libraries 6.0, including new features and changes, please refer to the IMSL documentation viewable using Start > All Programs > Visual Numerics.
The IMSL Fortran Libraries 6.0 are thread-safe. This requires changes in the build process for Fortran applications using IMSL.
INCLUDE files for specifying the libraries to link against
have changed their names, which will require that you change any
INCLUDE lines that name the old files:
link_f90_static.h and link_f90_static_smp.h are
now link_fnl_static.h,
or link_fnl_static_hpc.h if you want
to use both IMSL and the Intel® Math Kernel Library
in static library form link_f90_dll.h and link_f90_dll_smp.h are now link_fnl_shared.h,
or link_fnl_shared_hpc.h if you want
to use both IMSL and the Intel Math Kernel Library in DLL form %ProgramFiles%\VNI\imsl\fnl600 You
will need to change this in your build scripts or in Visual Studio
under Tools > Options > Intel(R) Fortran > Include Files (and Library
Files). /Qopenmp option
(in Visual Studio, this is Fortran > Language > Process OpenMP Directives
> Generate Parallel Code). Note that enabling this option has other
effects, including making all variables automatic (stack-allocated).
An alternative is to add libguide.lib to the list of
libraries linked into the application; in Visual Studio, specify
this in Linker > Input > Additional Dependencies. No change is required
if you are linking to the DLL libraries. In a future major release of the Intel® Visual Fortran Compiler for Windows, the Intel® Debugger (IDB) will no longer be provided. Debugging inside Microsoft Visual Studio is unaffected. Please use the debugging capability in Microsoft Visual Studio instead of IDB.
Intel® compilers support three platforms: general combinations of processor architecture and operating system type. This section explains the terms that Intel uses to describe the platforms in its documentation, installation procedures and support site.
The term "native" refers to building an application that will run on the same platform that it was built on; for example, building on IA-32 architecture to run on IA-32 architecture . The term "cross-platform" or "cross-compilation" refers to building an application on a platform type different from the one on which it will be run, for example, building on IA-32 architecture to run on Intel® 64 architecture systems. Not all combinations of cross-platform development are supported and some combinations may require installation of optional tools and libraries.
The following table describes the supported combinations of compilation host (system on which you build the application) and application target (system on which the application runs).
| Host \ Target | IA-32 | Intel® 64 | IA-64 |
|---|---|---|---|
| IA-32 | Yes |
Yes |
Yes |
| Intel® 64 | Yes |
Yes |
Yes |
| IA-64 | No |
No |
Yes |
w_fc_p_10.1.xxx_IA32.exe package
only; do not install a package that includes Microsoft Visual Studio
2005 Premier Partner Edition. Microsoft Visual Studio 2005 Premier Partner Edition is included with the following license types of Intel® Visual Fortran Compiler:
Microsoft Visual Studio 2005 Premier Partner Edition is not included with the following license types of Intel® Visual Fortran Compiler:
On IA-32 and Intel® 64 architecture systems, if Microsoft Visual Studio
is not found and the CD or w_fc_p_10.1.xxx.exe download installer
is used, Microsoft Visual Studio 2005 Premier Partner Edition will be installed.
Installers for single architectures and those with NOVSPPE in the name
do not install Visual Studio 2005 Premier Partner Edition.
Note: Microsoft Visual Studio .NET 2002* is not supported.
Notes:
It is the responsibility of application developers to ensure that the machine instructions contained in the application are supported by the operating system and processor on which the application is to run.
For Windows Vista, Microsoft supports only Visual Studio 2005/2008* and not earlier Visual Studio versions. Before installing the Intel compiler on Windows Vista, Visual Studio 2005 users should install Visual Studio 2005 Service Pack 1 (VS 2005 SP1) as well as the Visual Studio 2005 Service Pack 1 Update for Windows Vista which is linked to from the VS 2005 SP1 page. After installing these updates, you must ensure that Visual Studio runs with Administrator permissions, otherwise you will be unable to use the Intel compiler. Please uninstall the Intel compiler integration before installing any Visual Studio updates. For more information, please see Microsoft's Visual Studio on Windows Vista page and related documents.
Please see the separate Installation Guide for installation and configuration instructions.
If you specify the NAME= keyword for the BIND(C) attribute, the compiler should apply whatever name decoration rules, such as leading underscore, would be used by the C compiler for the same name. Some previous versions of the Intel Fortran Compiler did not apply this decoration, but the correct behavior was restored as of the January 2008 update. If you had added the decoration to the value of NAME= you will now need to remove it.
If you have a Visual Studio-created Intel Fortran project or solution and
wish to initiate a build from the command line or a batch file, use
devenv.exe, the Visual Studio launcher. Type devenv /? for
available command line options. The Microsoft tools MSBuild and Team
Build cannot currently be used to build Intel Fortran projects.
In Microsoft Visual Studio 2005, the static, single-threaded Visual C++
libraries libc.lib and libcd.lib have been removed.
If you specified that the Intel Fortran Compiler should use Visual
Studio 2005 for command-line building, and attempt to build an application
with the static, single-threaded library, which was the default
in earlier versions, you will get a warning from the compiler as follows:
ifort: warning: option '/Qvc8' or higher used with '/ML[d]' is not supported
Note that /Qvc8 was added to ifort.cfg at install
time if you specified command line integration with Visual Studio 2005.
This tells the ifort compiler driver that you are using
Visual Studio 2005. (You will also see this warning if you compile
with the /static option. This will be fixed in a future version of
the product.)
If you attempt to
link such an application you will get an error from the linker that libc.lib or libcd.lib is
not found. For example:
LINK : fatal error LNK1104: cannot open file 'LIBC.lib'
To resolve this, specify the threaded and/or DLL forms of the run-time libraries. For example:
/libs:static /threads/libs:dll/MTIf you do not specify otherwise, the ifort default for use with Visual Studio
2005 is /libs:static
/threads which is the same as /MT.
This issue may also affect projects which are built from the Microsoft Visual
Studio IDE. In this case, change the project property Fortran..Libraries..Use
Run-Time Library to the desired new value.
In Visual Studio 2005, after adding a new project platform (x64 or Itanium),
the active platform dropdown list in the toolbar may be empty. As a workaround,
click on the Output window to make it active, and then the dropdown list
will appear.
In Microsoft Visual Studio 2005 with a C/C++ main program and a Fortran static library dependent project, Visual Studio no longer looks for the output file (typically a .lib) of non-C/C++ dependent projects. The alternative is to add the dependent project's .lib as a "source file" or to give its full path on the Linker property page as an "Additional Dependency". This issue is resolved in Visual Studio 2005 Service Pack 1.
In Microsoft Visual Studio 2005, the Dialog Editor (part of the Resource Editor) disallows all changes unless a Visual C++ project has been opened. This issue is resolved in Visual Studio 2005 Service Pack 1.
When using a Fortran Project Wizard in Visual Studio to create a project with sample code, such as "Dynamic-Link Library with Sample Code", avoid the use of the following special characters in the project name:
~ ! @ $ ^ ( ) + ` - = { } [ ] ; ' ,
Otherwise, the project may fail to be created. You should also avoid use of these characters in the names of classes, interfaces, and class derived types in the Intel® COM Server Wizard.
/cpp_cmdifort /cpp_opt "/nologo
/fpp /P /E /Qoption,fpp,/no-fort-cont" . If at a later time
you uninstall Microsoft Visual Studio Premier Partner Edition and
install a retail version of Microsoft Visual Studio 2005, we recommend
that you remove these added options from the MIDL property page so
that the Microsoft preprocessor is used. When building for IA-64 or Intel® 64 architecture systems using the Microsoft Platform SDK, applications may fail to link with errors such as the following:
LIBC.lib(a_str.obj) : error LNK2001: unresolved external symbol
__security_cookie
[...]
LIBC.lib(a_str.obj) : error LNK2001: unresolved external symbol
__security_check_cookie
[...]
This problem is due to an inconsistency within some versions of the Microsoft Platform SDK. Intel is working with Microsoft to resolve this issue. To work around the problem, link your application in one of the following ways:
ifort hello.f90 /MD
ifort hello.f90 -link bufferoverflowu.lib
ifort hello.f90 /MT bufferoverflowu.lib
In some cases, enabling run-time checks using the /check or /C option
may cause the compiler to issue diagnostics for the requested condition
at compile-time, if it can be diagnosed then. For example, an array
bounds violation with a constant subscript may result in a compile-time
error if / check:bounds or /CB is specified.
(/Qax*)Compilation using /Qax[code] results in two copies of
generated code for each function: one for generic
code and one for CPU specific code. The symbol for each function then
refers to an Auto CPU Dispatch routine that decides at run-time which
one of the generated code sections to execute. Debugger breakpoints
that are set on these functions by name cause the application to stop in
the dispatch routine. This may cause unexpected behavior when debugging.
This issue may be addressed in a future version of the Intel Debugger
and Compilers.
/Oy-Compilation using /Oy- specifies that the IA-32 architecture
EBP register be used as a general purpose register, eliminating its use
as a frame pointer. Debuggers and traceback handlers may not be able
to properly unwind through a stack that contains a call to a function
that is compiled in this manner.
On IA-32 architecture systems, for programs compiled with the -fpe:0 option
that encounter a floating point exception, one extra floating overflow
exception will be raised deliberately by the Fortran runtime library
to determine which version of the Microsoft libraries is linked to
the user’s
program. This
extra exception is raised only once per program process. When in the
debugger, users should not be alarmed to see an expected underflow
exception followed by an unexpected overflow exception.
If you did not register your compiler during installation, please do so at the Intel® Software Development Products Registration Center. Registration entitles you to free technical support, product updates and upgrades for the duration of the support term.
For information about how to find Technical Support, Product Updates, Users Forums, FAQs, tips and tricks, and other support information, please visit: http://www.intel.com/software/products/support/fwin.
Note: If your distributor provides technical support for this product, please contact them for support rather than Intel.
Go" button next to the "Product"
drop-down list.
Submit Issue" link in the left navigation bar.
Development Environment (tools,SDV,EAP)" from the "Product
Type" drop-down list.
Intel(R)
Fortran Compiler for Windows*" from the "Product Name"
drop-down list.
Note: Please notify your support representative prior to submitting source code where access needs to be restricted to certain countries to determine if this request can be accommodated.
Start..All Programs..Intel(R) Software Development Tools..Intel(R)
Fortran Compiler 10.1.x..Fortran Build Environment for applications
running on <architecture-name> Applications Type the command: ifort /whatw_fc_x_10.1.xxx) from
the output into the corresponding Intel® Premier Support field. Please
include any other specific information that may be relevant
to helping us to reproduce and address your concern.
Please review <package ID>_README.TXT (e.g. w_fc_p_10.1.xxx_README),
available for download from Intel® Software
Development Products Registration Center Product
Downloads,
to see which issues have been resolved in the latest version of the
compiler.
Compiler Error Source Reducer (CESR) is a set of utilities which are useful individually or collectively in gathering, reducing, pinpointing, protecting, documenting, and bundling test cases comprised of C/C++ or Fortran source code. It can be helpful if you have a large application for which you want to extract a small test case for submission to Intel® Premier Support. CESR can be downloaded from Intel® Software Development Products Registration Center Product Downloads. Select your product and in the version dropdown, select CESR. CESR is unsupported and should be considered experimental, but we welcome your feedback on it through Intel® Premier Support. CESR requires prior installation of Python* 2.2 or newer.
You can view the Intel compiler and related HTML-based documentation with
a web browser that supports the Compiled HTML Help (.CHM) format, which
provides full navigation, index look-up, search, and hyperlink capabilities.
If your browser does not support opening .CHM files, you can open them
directly by double-clicking on the file names in Windows Explorer in
the Docs directory.
The documentation index is provided for easy access of all documents. The
Document index is available from the Intel® Visual Fortran Compiler
program folder and is located at: <install-dir>Compiler\Fortran\10.1.xxx\Docs\Doc_Index.htm.
For this release, the online help has been reorganized as described
in the Doc_Index.htm file and now includes a Getting Started
guide as well as a separate Installation Guide.
The
Intel®
Debugger Manual is available from the Intel® Debugger program folder.
Basic information on building applications using Microsoft Visual Studio
is provided in the on-disk documentation under Building Applications
> Building Applications from Microsoft Visual Studio*. Information
on advanced topics regarding Microsoft Visual Studio can be found in
the MSDN Library* supplied with retail versions of Microsoft Visual
Studio. MSDN Library is not provided with Microsoft Visual Studio Premier
Partner Edition in Intel® Visual Fortran. You can access MSDN Library
online at http://msdn2.microsoft.com/en-us/library/ and
can also download a DVD image of the latest MSDN Library by visiting
the Microsoft Download Center (http://www.microsoft.com/downloads)
and searching for "MSDN Library".
Documentation for the optional IMSL* Fortran Library and Intel® Math Kernel Library can be found under their respective Start Menu program groups.
Information on Intel software development products is available at http://www.intel.com/software/products.
Some of the related products include:
INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL(R) PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT DESIGNED NOR INTENDED FOR ANY APPLICATION IN WHICH THE FAILURE OF THE INTEL PRODUCT COULD CREATE A SITUATION WHERE PERSONAL INJURY OR DEATH MAY OCCUR.
Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information.
The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request.
Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order.
Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-800-548-4725, or by visiting Intel's Web Site.
Celeron, Centrino, Intel, Intel logo, Intel386, Intel486, Intel Core, Itanium, MMX, Pentium, VTune, and Xeon are trademarks of Intel Corporation in the U.S. and other countries.
* Other names and brands may be claimed as the property of others.
Copyright (C) 2008, Intel Corporation. All Rights Reserved.