Intel® Fortran Compiler 7.1 for Linux*
Release Notes

Contents

Overview
What's New
Package Contents
Documentation
System Requirements
Installation Notes
Known Limitations
Resolved Issues
Technical Support and Feedback

Overview

Intel® Compilers help make your software run at top speeds on all Intel® 32-bit processors and 64-bit Itanium® processors. Optimizations include support for Streaming SIMD Extensions 2 (SSE2) in the Intel® Pentium® 4 and Pentium-M processors and software pipelining in the Intel® Itanium® 2 processor. Inter-procedural optimization (IPO) and profile-guided optimization (PGO) can provide greater application performance. Intel Compilers support multi-threaded code development through auto-parallelism and OpenMP* support.

The following executables are included in the installation package:

The paper, Optimizing Applications with the Intel C++ and Fortran Compilers for Windows* and Linux , explains how to use the Intel compilers to optimize for the Pentium® 4 and Itanium-processor based systems and is available at http://www.intel.com/software/products/compilers/ . Additional information on the Intel Software Development Products is available at http://www.intel.com/software/products/ .

Related Products and Services

Information on Intel software development products is available at http://www.intel.com/software/products/ .

The Intel® Software College Provides a one-stop shop at Intel for training developers on leading edge software development technologies. Training consists of online and classroom courses covering all Intel architectures, platforms and technologies. For details refer to http://www.intel.com/software/college/ .

The Intel® VTune™ Performance Analyzer allows you to evaluate how your application is utilizing the CPU and helps you determine if there are modifications you can make to improve your application's performance. It is not part of this product, but is available at http://www.intel.com/software/products/vtune/.

The Intel® Performance Library Suite provides a set of routines optimized for various Intel processors. It is not part of this product, but is available at http://www.intel.com/software/products/perflib/.

What's New

New in the Intel® Fortran Compiler 7.1 for Linux*

The 7.1 version of the Intel Fortran Compiler for Linux* includes some performance enhancements, a number of bug fixes, stability improvements, and the following new features:

Cray POINTERs in MODULEs

The restriction prohibiting the use of Cray POINTERs in MODULEs has been removed.

Option to Specify Creation of Temporary Arrays on the Stack

When the Intel Fortran compiler has to create a temporary array, it can either allocate the array on the heap (dynamic allocation) or on the runtime stack. -nostack_temps tells the compiler to allocate such temporaries on the heap. This is the default. -stack_temps tells the compiler to allocate such temporaries on the stack whenever possible.
When -stack_temps is specified, it is possible that the program may require a larger stack than the default maximum stack size. One can specify the stack size on Linux with the limit stacksize unlimited C-shell command or the ulimit -s Bourne shell command.
Threaded programs (e.g., OpenMP programs) which repeatedly allocate heap memory sometimes show poor performance as the number of threads increase. Allocating arrays on the stack using -stack_temps will sometimes eliminate such performance problems. Threaded programs using auto-parallelization or OpenMP may also need to increase the thread stack size by defining the KMP_STACKSIZE environment variable in addition to the increase in the program stack size mentioned above.

CPUID Dispatch Support for the Intel Pentium M Processor

The Intel Fortran compiler has been enhanced to recognize the Intel Pentium M processor for automatic CPUID dispatch code generation. The -Q[a]xW option, also used for the Pentium 4 processor, is to be used for code targetted to the Pentium M processor.

Changes to the -ax{i|M|K|W} switch

Now you can specify more than one version with the -ax option. For example, if you specify -axMK, the compiler may generate up to 3 versions of the code. One version would be for the Pentium® with MMXTM technology processor (M), another version for the Pentium® III processor (K), and one generic version that would work properly on processors without these extensions. At runtime, one of the versions is chosen to execute depending on the processor the program is currently running on. In this way, the program can get large performance gains on more advanced Intel processors, while still working properly on other processors.

New in the Intel® Fortran Compiler 7.0 for Linux

New features in the 7.0 release of the Intel Fortran compiler include improved support for OpenMP*, compile time improvements, profile-guided optimization tolerance for source file relocation, improved optimization, especially for -O3 and interprocedural optimizations (IPO), simplified implementation of Fortran modules enabling compatibility with parallel builds, and support for new compiler directives to assist with loop optimizations.

OpenMP 2.0 support

The Intel Fortran Compiler 7.0 supports the OpenMP 2.0 specifications and nested parallel regions with the following exceptions: the WORKSHARE directive is not supported, and support for array reductions is incomplete.   See below under Known Limitations for some OpenMP limitations. 

New Optimization Support for the Intel® Itanium® 2 Processor

The Intel Fortran Compiler 7.0 includes optimization support for the Intel Itanium 2 processor via the -tpp2 compiler option. Please refer to the New Options section of the Intel Fortran Compiler User's Guide for details.

Install time license checking

The Intel Compilers for Linux uses Macrovision* Corporation's FLEXlm* electronic licensing technology. The install time license checking function checks for a valid license before installing any Intel Compiler component. For details see the Installation Notes section below.

See the 'What's New in This Release' section of the User's Guide and Appendix A in the Intel Fortran Programmer's Reference Guide for details on the new features.

Training Tutorial

A new training tutorial, "Enhancing Performance with the Intel® Compiler", is provided in this product. This tutorial covers the major compiler optimizations provided with the Intel Compilers, and also provide examples on how to improve performance of an application by using the optimizations. The optimizations covered by this tutorial are: By default, the tutorial is installed at /opt/intel/compiler70/training/optimize/index.htm.

Intel Debugger

The Intel Debugger is now available and has replaced the ldb debugger provided with the 5.0.1 and 6.0 compiler. Run idb after setting up the compiler configuration script (see section Compiler Environment and configuration scripts ) and enter help .

Compiler Configuration

It is no longer necessary to run a script to create several new environment variables at the start of each session. The only required variables are PATH and LD_LIBRARY_PATH, which may be updated by the .login file. Refer to section: " Compiler Environment and configuration scripts" for details.

Package Contents

Intel Fortran Compiler for IA-32 Based Applications

The Intel Fortran compiler for IA-32 based applications contains the following components:

Intel Fortran Compiler for Itanium-Based Applications

The Intel Fortran compiler for Itanium-based applications contains the following components:

Documentation

The compiler and assembler documentation is presented in HTML format with full navigation, search, and hypertext capabilities and is viewable with your web browser. The documents also have PDF versions for easier printing via Adobe Acrobat Reader*.

The documentation is installed in the <install-dir>/compiler70/docs directory. Also, an HTML index document can be found at <install-dir>/compiler70/docs/fcompindex.htm. For information on the GNU glibc C language library, documentation can be obtained from the Linux OS vendor or from the GNU web site, http://www.gnu.org/.

Additional documentation, including getting started guides, optimization and compatibility, is available on the product web site at http://www.intel.com/software/products/compilers/flin.

Viewing HTML Documentation

To view the compiler User's Guide HTML-based documentation, you no longer need to use a Java*-enabled or Javascript-enabled Web browser. The documentation format has been tested to work with Web browsers shipped on standard Red Hat* distributions. To allow the HTML-based User's Guide help to be browser-neutral and not require java support, the Search capability has been removed. If you need to search the User's Guide, please use the supplied User's Guide PDF files (same content as HTML-based User's Guide).

Viewing PDF Documentation Files

You can read the PDF files using the xpdf utility or install Adobe Acrobat Reader. It is recommended to view the PDF documentation with Acrobat running within Netscape as this provides additional navigation features. To enable Netscape to start Acrobat Reader, it needs to be installed in a directory searched by your PATH environment variable and you need to edit the browser's preferences. NOTE: If Acrobat Reader isn't configured correctly, you can overwrite the PDF files, requiring you to reinstall them. If improperly configured, the browser may prompt you to Save-As file, which if you click OK can overwrite the PDF documentation files. Perform these steps needed to update your preferences for Acrobat Reader:
Edit --> Preferences --> Navigator --> Applications--> new
Description: Portable Document Format
MIMEType: application/pdf
Suffixes: pdf
Application: acroread %s
Another method to configure acroread is to add the following entry in the file .mailcap in your home directory:
application/pdf; acroread %s
Depending on your version of the Netscape browser, you might need to disable (turn OFF) the "Automatically load images" option or the browser will freeze when you open the HTML documentation files, this means that you will then need to click on the images in the documentation if you want to see them while paging through the documentation with the browser. Turn OFF this option by clicking on: Edit-->Preferences-->Advanced-->Automatically load images and other data types.

System Requirements

IA-32 Processor System Requirements

Itanium Processor System Requirements

Installation Notes

Note: If you are using some other versions of the Intel Fortran Compiler 7.1 or 7.0, we recommend you uninstall them prior to installing this version of Intel Fortran Compiler.

The Intel compilers use the Macrovision Corporation's FLEXlm* electronic licensing technology. A valid license is needed to install the compilers. Following are the steps to install the compiler:

  1. The installation program of Intel Fortran Compiler 7.1 checks for a valid license before installing any component of the product. Also, the license must remain in place on the system in order to use the Intel Fortran Compiler to compile and build programs. If you have downloaded the compiler from Intel Premier Support, the license key you received with your 6.0 compiler will work with the 7.1 compiler provided your support services have not expired.
    Here is how to setup the license file before installation. For details about the support service license, please see http://www.intel.com/software/products/compilers/flin/pricelist.htm
  2. If you downloaded the compiler, untar the compiler package.
  3. Login as the root user and execute the install script, "install". Please note that you may not be able to run the ‘rpm’ command successfully if you are not logged in as a root user. It is possible to install the compilers without root access by unpacking the RPM files with rpm2cpio and editing the compiler environment and configuration files, described below, but this installation method is not supported.
  4. Select the compiler or debugger to install. The default RPM options "-U --replacefiles" are recommended to update existing files. The recommended installation directory is /opt/intel.
  5. After the installation process, all the packages that are successfully installed are listed. Please confirm that this list is accurate and Enter "x" to exit.
  6. Execute the appropriate script to setup the compiler environment variables:
    $ source <install-dir>/compiler70/ia32/bin/ifcvars.sh(.csh) or
    $ source <install-dir>/compiler70/ia64/bin/efcvars.sh(.csh)
  7. Run the compiler.

Compiler Environment and Configuration Scripts Information

The compilers use environment variables that can be easily set by the following scripts.
<install-dir>/compiler70/ia32/bin/ifcvars.sh(.csh) for IA-32 applications, and
<install-dir>/compiler70/ia64/bin/efcvars.sh(.csh) for Itanium processor-based applications.

Default compiler options are stored in the following configuration files.
<install-dir>/compiler70/ia32/bin/ifc.cfg for IA-32 applications and
<install-dir>/compiler70/ia64/bin/efc.cfg for Itanium processor-based applications.

They contain common settings that can be used to add additional system-wide default compilation options. Please note that you will need to save and restore any custom options in the configuration files, when you install a new version of the Intel compiler.

The default cfg files that are provided at install time contain the following statement: "-Xlinker -rpath <PATH libraries installed in>".
This option embeds the path of the shared libraries into the executable. This eliminates the need for setting the variable LD_LIBRARY_PATH. However, if the application is moved to a system without the same installation configuration, the application will not work. For this purpose, the user can remove this option from the config files and use the environment variable LD_LIBRARY_PATH to specify the location of the shared libraries.

Installation Warnings

Installation Warning for RPM 4.0.2
RPM 4.0.2 cannot install to a non-default directory. This has been resolved in RPM 4.0.3. RPM 4.1 cannot install to a non-default directory. This has been resolved in RPM 4.11 to 4.2.

Installation Warning for Intel C++ and Fortran compilers in Different Directories
Intel C++ compiler for Linux and the Intel Fortran compiler for Linux share common files.The default RPM options in the install script prevent the compilers from working correctly when installed in different directories. For this reason, it is recommended that the compilers are installed in the same directory. However, the compiler installation packages should still be untar-ed into separate directories.

FLEXlm Server for counted license users

All distributions of the Linux compilers include a copy of the software "Intel(R) License Manager for FLEXlm*" to help you in configuring the license server. This software is automatically installed during the compiler installation if a counted license is detected. The license manager's installer displays its End User License Agreement (EULA) via a "pager" program such as "more" or "less". The default pager is "less", which requires that the "q" key be pressed after viewing the EULA. If this default behavior is not desired, simply set the PAGER environment variable to some other value (e.g., "export PAGER=more" in sh/ksh/bash, or "setenv PAGER more" in csh/tcsh) before installing the software.

Uninstalling the compilers

Login as root and run the uninstall script:
<install-dir>/compiler70/ia32/bin/uninstall on IA-32 based systems.
<install-dir>/compiler70/ia64/bin/uninstall on Itanium-based systems.

Known Limitations

The Intel Fortran Compilers for Linux are not binary compatible with the GNU G77 Fortran compiler as the compilers use different run-time libraries. The Intel Fortran compilers are binary compatible with C language object files created with either the Intel C++ Compilers for Linux or the GNU GCC compiler. See the User's Guide under the section Mixing C and Fortran for details.

Please note the following limitations:

  1. Use of STRUCTURE or RECORD is not allowed inside modules
  2. Heavy use of F90 MODULE/USE, particularly when modules are nested, may lead to long compile times and increased memory usage.
  3. OpenMP Limitations
    POSIX threaded programs that require a large stack size may not run correctly on some versions of Linux because of hard-coded stack size limits in some versions of the Linux POSIX threads libraries. These limits also apply to OpenMP programs (-openmp) and automatically generated parallel programs (-parallel) with the Intel compilers, because the Intel compilers use the POSIX threads library to implement OpenMP based and automatically generated parallelism. Threaded programs that exceed the stack space limit usually experience segmentation violations or addressing errors.

    To avoid these limitations, please use a version of glibc built with the FLOATING_STACKS parameter defined, typically version 2.2.4 or later for both IA-32 and Itanium Processor Family. Then use the ulimit -s .... command to set the maximum shell stack size to an explicit large value (units of KBytes) and also set the KMP_STACKSIZE environment variable to the needed thread stacksize in bytes. A shell stacksize limit of unlimited does not work - it causes a fixed hard limit to be imposed. Note, in the bash shell, ulimit -s can be used to set a large maximum stack size only once. In the C shell (csh), ulimit -stacksize can be used to reset the maximum stacksize repeatedly. The default values for KMP_STACKSIZE have been increased to 2 MB for IA-32 and 4 MB for Itanium-based systems.

    This solution has been tested on glibc version 2.2.4-13 for IA-32 and glibc 2.2.4-19 for Itanium Processor Family as found in the RedHat 7.2 Linux distribution. For glibc 2.2.4-13 on IA-32, the shared version of the POSIX threads library must be used, (there should not be a -static flag in the compiler .cfg file or on the command line).

    In addition, if a common block is declared as "THREADPRIVATE" with an OpenMP directive, the common block must have the same length in all the source files in which it is declared.

    Use of Profile Guided Optimization along with OpenMP may substantially increase the execution time for the generation of the profile (.dyn file). This is a known issue which is being addressed. The use of profile guided optimization in conjunction with OpenMP is not recommended for this version of the Intel Fortran compiler.

Please click on the appropriate link below to see additional notes and known issues in the latest version of the compiler.

Backward binary compatibility

Code generated by the Intel Fortran Compiler 7.1 for Linux is compatible with the code generated by version 7.0.
However the generated binary code by the Intel Fortran Compiler 7.1 is not backward compatible with the code generated by previous release 6.0 or earlier. This means object files, static libraries, shared libraries, and executables built with previous Intel compiler/library versions may not work with current object files, static libraries, and shared libraries. Version 7.1 of the Intel Compiler has implemented shared library versioning to detect many failures due to shared library incompatibilities before run-time. Shared libraries provided with the 7.1 Intel compilers have version numbers different from libraries shipped with previous compilers. Any executable or shared object built against older versions of a shared library must be rebuilt with the new version of the compiler, or point to the library version against which they were built.

Resolved Customer Support Issues

Please click on the appropriate link below to see which issues have been resolved in the latest version of the compiler.

Technical Support and Feedback

Register for support

Your feedback is very important to us. To receive technical support and product updates for the tools provided in this product you need to register at http://support.intel.com/support/performancetools/support.htm and click on "Registration Center".

Note:
If you are having trouble registering or unable to access your Premier Support account, contact developer.support@intel.com. Please do not email your technical issue to developer.support@intel.com as it is not a secure medium.

Be sure to also check out our Users Forums, FAQ's, tips and tricks, and other support information available from our web-site at: http://support.intel.com/support/performancetools/fortran/linux/. For general support information please visit http://www.intel.com/software/products/support/.

For more information about using the Intel Fortran Compiler 7.1 for Linux, please visit http://www.intel.com/software/products/compilers/flin/. The following are some examples of the technical papers:

Submitting Issues

To submit an issue via the Intel Premier Support website, perform the following steps:
  1. Go to https://premier.intel.com/. You need to have Java* and Javascript* enabled in your web browser to submit an issue.
  2. Type in your Login and Password. Both are case-sensitive.
  3. Click the "Submit" button.
  4. Read the Confidentiality Statement and click the "I Accept" button.
  5. Click on the "Go" button next to the "Product" drop-down list.
  6. Click on the "Submit Issue" link in the left navigation bar.
  7. Choose "Development Environment (tools,SDV,EAP)" from the "Product Type" drop-down list.
  8. If this is a software or license-related issue choose "Intel® Fortran Compiler, Linux*" from the "Product Name" drop-down list.
  9. Enter your question and complete the fields in the windows that follow to successfully submit the issue.

Please follow these guidelines when forming your problem report or product suggestion:

A technical support engineer will respond within one (1) Intel business day.

Copyright and Legal Information

Intel, Pentium and Itanium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries
* Other names and brands may be claimed as the property of others

Copyright (C) 2001 - 2003 Intel Corporation. All Rights Reserved.