* @(#) 01 1.2.13.19 9/14/04 23:04:32 * * COMPONENT_NAME: (Fortran) AIX XL Fortran Compiler * * FUNCTIONS: XLF README file * * ORIGINS: 27 * * IBM(R) XL Fortran for AIX(R), Version 8.1.1 5765-F70, 5765-F71 * (C) COPYRIGHT International Business Machines Corp. 1990, 2004 * All Rights Reserved * Licensed Materials - Property of IBM * * US Government Users Restricted Rights - Use, duplication or * disclosure restricted by GSA ADP Schedule Contract with IBM Corp. * AIX, IBM, and OS/400 are trademarks of IBM Corp. * Other company, product, and service names may be trademarks or service * marks of others. This README file contains the latest information about IBM XL Fortran for AIX, Version 8.1.1 that was not available for our online help and documentation. By using IBM XL Fortran for AIX, Version 8.1.1, you agree to the terms of the license information. The License Information document is available as a PDF file and can be found in the root directory on the CD-ROM, or in the following directory after installing the product: /usr/lpp/xlf/license.pdf You will need a Portable Document Format (PDF) viewer to view the license agreement. Note: IBM XL Fortran for AIX, Version 8.1.1 is licensed based on a charge unit of one authorized user. The Program may be stored on more than one machine, provided that the Program is not in active use on more than one machine at the same time. An authorized user is an individual or specific named user authorized to have access to the program or any portion of the program. The Proof of Entitlement for this program is evidence of your authorization. Each individual or specific named user must obtain a Proof of Entitlement for each operating system on which the product is installed. I. Viewing Documentation on AIX II. Installation Issues III. October 2004 XL Fortran V8.1 for AIX Compiler PTF IV. July 2004 XL Fortran V8.1 for AIX Compiler PTF V. May 2004 XL Fortran V8.1 for AIX Compiler PTF VI. February 2004 XL Fortran V8.1 for AIX Compiler PTF VII. XL Fortran for AIX V8 November 2003 Compiler PTF VIII. XL Fortran for AIX V8 October 2003 Compiler PTF IX. XL Fortran for AIX V8 September 2003 Compiler PTF X. Known Limitations for IBM XL Fortran for AIX, V8.1.1 XI. Documentation Corrections XII. AS-IS Functions and/or Components I. Viewing Documentation on AIX =============================== To view the documentation, you must have the X Window System working on your system. In addition, you need to have the appropriate viewers, such as a frames-capable HTML browser like Mozilla (version 1.0, or later) and a PDF viewer, such as the Adobe Acrobat Reader. II. Installation Issues ======================= Installing the PTF ------------------ If you have installed XL Fortran for AIX in a non-default location, you can use the xlfndi script to apply a PTF to that location. Refer to "Installing XL Fortran to a Non-Default Directory" in the Memo to Users for details. Japanese Documentation on the Web --------------------------------- At the time the product CD-ROM was created, only the Japanese README.FIRST.ja_JP, memo-cmp-rte.txt.ja_JP, and memo-rte.txt.ja_JP files were available and included. The remaining translated publications are available for download, as compressed files, from the XL Fortran for AIX, V8.1.1 documentation download page: Publication Format File Name ----------------------------------------- ------ ------------------ IBM XL Fortran for AIX User's Guide HTML ug_jaJP_html.tar.Z PDF ug_jaJP.pdf.Z PS ug_jaJP.ps.Z IBM XL Fortran for AIX Language Reference HTML lr_jaJP_html.tar.Z PDF lr_jaJP.pdf.Z PS lr_jaJP.ps.Z From your Web browser, open the XL Fortran Support page at URL: http://www.ibm.com/software/awdtools/fortran/xlfortran/support/ Select the "Library" link for the documentation download page. Under "Product manuals" select: "XL Fortran V8.1.1 for AIX (Japanese language HTML, PDF, PS) Create the appropriate subdirectory and download the corresponding file to this directory. Uncompress the file. Suggested directories for uncompressed files: File Uncompress in Directory ------------ ---------------------------------- *_html.tar.Z /usr/share/man/info/ja_JP/xlf/html *.pdf.Z /usr/share/man/info/ja_JP/xlf/pdf *.ps.Z /usr/share/man/info/ja_JP/xlf/ps Rename the uncompressed *.ps and *.pdf files as follows: Rename To: ----------- ------ lr_jaJP.pdf lr.pdf lr_jaJP.ps lr.ps UG_jaJP.pdf UG.pdf Ug_jajP.ps Ug.ps Portable Application Solutions Environment (OS/400 PASE) Support ---------------------------------------------------------------- IBM XL Fortran for AIX, V8.1.1 can be installed and operated in the OS/400(R) PASE environment. xlfndi Not Shipped with XL Fortran Try-and-Buy Version ------------------------------------------------------ The xlf.ndi fileset is not provided with the IBM XL Fortran for AIX, V8.1.1, Try-and-Buy. You cannot use the xlfndi Perl script to install the XL Fortran Try-and-Buy to a non-default directory. III. October 2004 XL Fortran V8.1 for AIX Compiler PTF ====================================================== There are no documentation updates or errata for the IBM XL Fortran for AIX, Version 8.1.1, October 2004 PTF. IV. July 2004 XL Fortran V8.1 for AIX Compiler PTF ================================================== OS Support ---------- IBM XL Fortran for AIX now runs on AIX 5L for POWER V5.3. Operating system migration -------------------------- If you were using a previous version of the AIX operating system and you want to migrate to the new version, you need to manually update the configuration file symbolic link to point to the matching OS-specific configuration file after OS migration. You must have root user access to link the file. You can update the configuration file by performing the following command: ln -fs /etc/xlf.cfg.OS_Level /etc/xlf.cfg Where OS_level can be any of the following: * 51 * 52 * 53 If you have made any customization to the configuration file for the previous version and you want the changes to take effect in the new version, you should make the same customization for the new version. V. May 2004 XL Fortran V8.1 for AIX Compiler PTF ================================================ Documentation Corrections ------------------------- In Chapter 5 of the XL Fortran User's Guide, the -qport=sce compiler option now reads: sce | nosce ----- By default, the compiler performs short circuit evaluation in selected logical expressions using XL Fortran rules. Specifying sce allows the compiler to use non-XL Fortran rules. The compiler will perform short circuit evaluation if the current rules allow it. VI. February 2004 XL Fortran V8.1 for AIX Compiler PTF ====================================================== Documentation Corrections ------------------------- In Chapter 3 of the XL Fortran User's Guide, under the heading, "Attributes" the following text: cppoptions A string of options that are separated by commas, to be processed by cpp as if you entered them on the command line before any other option. This attribute is needed because some cpp options are usually required to produce output that can be compiled by XL Fortran. The default options are -C (which preserves any C-style comments in the output) and -P (which prevents #line directives from being generated). should read: cppoptions A string of options that are separated by commas, to be processed by cpp as if you entered them on the command line before any other option. This attribute is needed because some cpp options are usually required to produce output that can be compiled by XL Fortran. The default option is -C (which preserves any C-style comments in the output). In Chapter 10 of the Japanese translation of the XL Fortran Language Reference, the following text for the ACCESS specifier on the OPEN statement: If ACCESS= is STREAM, RECL= must be specified. should read: If ACCESS= is STREAM, RECL= must not be specified. VII. XL Fortran for AIX V8 November 2003 Compiler PTF ===================================================== DEFAULT_RECL runtime option --------------------------- The DEFAULT_RECL runtime option allows you to determine the default record size for sequential files opened without a RECL= specifier. Use the XLFRTEOPTS environment variable to specify the DEFAULT_RECL runtime option. DEFAULT_RECL uses the following syntax: default_recl={ 64 | 32 } -- 64: Uses a 64-bit value as the default record size. 32: Uses a 32-bit value as the default record size. The DEFAULT_RECL run-time option applies only in 64-bit mode. In 32-bit mode, DEFAULT_RECL is ignored and the default record size is 32-bit. Use DEFAULT_RECL when porting 32-bit programs to 64-bit mode where a 64-bit record length will not fit into the specified integer variable. Consider the following: INTEGER(4) I OPEN (11) INQUIRE (11, RECL=I) A runtime error occurs in the above code sample in 64-bit mode when default_recl=64, since the default record length of 2**63-1 does not fit into the 4-byte integer I. Specifying default_recl=32 ensures a default record size of 2**31-1 which fits into I. For more information on the RECL= specifier, see the OPEN statement in the "Statements" chapter of the XL Fortran Language Reference. Language Reference Errata ------------------------- Initialization Expressions -------------------------- In the Expressions and Assignment chapter in the Initialization Expressions section, the paragraph immediately before the example now states: If an initialization expression includes a reference to an inquiry function for a type parameter or an array bound of an object specified in the same specification part, the type parameter or array bound must be specified in a prior specification of the specification part. The prior specification can be to the left of the inquiry function in the same statement, but not within the same entity declaration. omp_init_nest_lock ------------------ The description of the OpenMP 2.0 routine omp_init_nest_lock now states: The omp_init_nest_lock subroutine allows you to initialize a nestable lock and associate it with the lock variable you specify. The initial state of the lock variable is unlocked, and the initial nesting count is zero. The argument must be an uninitialized nestable lock variable. User's Guide Errata ------------------- intrinthds={num_threads} ------------------------ The intrinthds runtime option now states the following: Specifies the number of threads for parallel execution of the MATMUL and RANDOM_NUMBER intrinsic procedures. The default value for num_threads when using the MATMUL intrinsic is equal to the number of processors online. The default value for num_threads when using the RANDOM_NUMBER intrinsic is equal to the number of processors online*2. Changing the number of threads available to the MATMUL and RANDOM_NUMBER intrinsic procedures can influence performance. -qstrict -------- The introduction for the -qstrict compiler option now reads as follows: Ensures that optimizations done by default with the -O3, -O4, -O5, -qhot, and -qipa options, and optionally with the -O2 option, do not alter the semantics of a program. The first paragraphs of the following sections have also changed: Defaults For -O3, -O4, -O5, -qhot, and -qipa, the default is -qnostrict. For -O2, the default is -qstrict. This option is ignored for -qnoopt. With -qnostrict, optimizations may rearrange code so that results or exceptions are different from those of unoptimized programs. Rules With -qnostrict in effect, the following optimizations are turned on, unless -qstrict is also specified: VIII. XL Fortran for AIX V8 October 2003 Compiler PTF ===================================================== The XL Fortran for AIX V8 October 2003 Compiler PTF contains one change which removes a prerequisite from the install process. This PTF supports the same compiler functionality as XL Fortran for AIX 8.1.1 with the AIX V8 September 2003 Compiler PTF applied. IX. XL Fortran for AIX V8 September 2003 Compiler PTF ===================================================== User's Guide Errata ------------------- MULTCONNIO runtime option ------------------------- The MULTCONNIO runtime option now supports the following suboptions: multconnio={ tty | nulldev | combined | no } -- nulldev: Enables you to connect the null device (/dev/null) to more than one logical unit. combined: Specifies the combination of all the suboptions of the MULTCONNIO run-time option except the 'no' suboption The functionality of the tty and no suboptions remains unchanged. X. Known Limitations for IBM XL Fortran for AIX, V8.1.1 ======================================================= Currently none. XI. Documentation Corrections ============================= User's Guide Errata and New Information --------------------------------------- The following corrections and additions apply to the IBM XL Fortran for AIX, Version 8.1.1 User's Guide: -qdirectstorage Compiler Option ------------------------------- Syntax: -qdirectstorage | -qnodirectstorage ----------------- This option informs the compiler that a given compilation unit may reference write-through-enabled or cache-inhibited storage. -qnodirectstorage is the default. Use this option with discretion. It is intended for programmers who know how the memory and cache blocks work, and how to tune their applications for optimal performance. For a program to execute correctly on all PowerPC implementations of cache organization, the programmer should assume that separate instruction and data caches exist, and should program to the separate cache model. Note: Using the -qdirectstorage option together with the CACHE_ZERO directive may cause your program to fail. -qfullpath Example ------------------ In the example for the -qfullpath compiler option, "xldb" should be "dbx". Embedding a Literal Comma in the -W String ------------------------------------------ You can use \, to embed a literal comma in the string supplied to the -W option. In the following example, the \, embeds a literal comma in the -WF string and causes three arguments, rather than four, to be supplied to the C preprocessor. $ xlf -qfree=f90 '-WF,-Dint1=1,-Dint2=2,-Dlist=3\,4' a.F $ cat a.F print *, int1 print *, int2 print *, list end Sample output: $ ./a.out 1 2 3 4 XLSMPOPTS and Thread Stack Size Limits -------------------------------------- The following should be added to the stack=num information: Set stack=num so it is within the acceptable upper limit. num can be up to 256 MB for 32-bit mode, or up to the limit imposed by system resources for 64-bit mode. An application that exceeds the upper limit may cause a segmentation fault. Language Reference Errata and New Information --------------------------------------------- The following corrections and additions apply to the IBM XL Fortran for AIX, Version 8.1.1 Language Reference: ENTRY Statement Rules - Allocatable result variables ---------------------------------------------------- In the fourth paragraph under "Rules" on page 352, the description: Otherwise, they are storage-associated and must be all nonpointer scalars of intrinsic (noncharacter) type. should read "nonpointer, nonallocatable scalars" instead of "nonpointer scalars". RANDOM_SEED Intrinsic Procedure ------------------------------- The RANDOM_SEED(PUT) description should have the following new information added: A valid seed must be a whole number between 1.0 and 2147483647.0 (2.0**31-1) for Generator 1 and between 1.0 and 281474976710656.0 (2.0**48) for Generator 2. XII. AS-IS Functions and/or Components ====================================== The IBM Distributed Debugger is provided as a technology preview with the XL Fortran for AIX product.