NERSC logo National Energy Research Scientific Computing Center
  A DOE Office of Science User Facility
  at Lawrence Berkeley National Laboratory
 

NERSC Announcements Message Archive

Select: [all-announcements] [users] [franklin] [bassi] [jacquard] [davinci] [nug] [managers]

[ Back ]

Subject: Seaborg Fortan to be upgraded on 7/12/05
Author: Mike Stewart <pmstewart_at_lbl.gov>
Date: 2005-07-07 09:32:06
The default version of the IBM Fortran compiler will be upgraded on Seaborg on Tuesday, July 12, 2005. This new version of Fortran is release 9.1.0.2. This version is currently contained in the xlf module on seaborg, and can be tested by loading this module before compiling and linking Fortran programs. New features, fixes, and documentation addeneda are described in the attached README file. -- ========================= Michael Stewart Consultant NERSC User Services Group 510-486-6648 pmstewart@lbl.gov ========================= *======================================================================= * IBM(R) XL Fortran Enterprise Edition V9.1 for AIX(R) 5724-I08 * (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 i5/OS 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 Enterprise Edition V9.1 for AIX, that was not available for our online help and documentation. By using IBM XL Fortran Enterprise Edition V9.1 for AIX, you agree to the terms of the license as specified in the following files: - LicAgree.pdf - LicInfo.pdf These files are located in the root directory of the installation CD. After installation, they are located in the following directory: /usr/lpp/xlf/ with the following names: - LicenseAgreement.pdf - license.pdf You will need a PDF viewer to view the license agreement. Note: IBM XL Fortran Enterprise Edition V9.1 for AIX is licensed based on a charge unit of one authorized user per operating system. Separate user authorizations are required by individual users for each operating system on which the program is used. For each user authorization on a given operating system, the program may be stored on more than one machine, provided that the program is not in active use by that individual user 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 on a single operating system. 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 program is used. When IBM XL Fortran Enterprise Edition V9.1 for AIX is ordered, its run-time component is shipped with the compiler on the same media. The XL Fortran Run-Time component must be installed on the machine where the Fortran program will be compiled and executed. This document contains the following sections: I. Viewing Documentation on AIX II. Installation Issues III. April 2005 XL Fortran Enterprise Edition V9.1 for AIX Update IV. November 2004 XL Fortran Enterprise Edition V9.1 for AIX Update V. Documentation Additions and Corrections VI. Support Information VII. Further Updates I. Viewing Documentation on AIX =============================== Documentation on installing and using IBM XL Fortran Enterprise Edition V9.1 for AIX can be found in the .pdf files included as part of this package and the XHTML-based information center. To view the documentation, you must have X-Windows working on your system. In addition, you need to have the appropriate viewers, such as a frames-capable HTML browser like Mozilla or a PDF viewer, such as the Adobe Reader. To start the XHTML-based information center, first launch the Eclipse server by logging in as root, and executing the following command: /usr/xlhelp/bin/xlhelp After the Eclipse server starts, you can view the information center from the server machine, or any client. For more information, see the XL Fortran Enterprise Edition V9.1 for AIX Installation Guide. II. Installation Issues ======================= Operating System Support ------------------------ IBM XL Fortran Enterprise Edition V9.1 for AIX is supported on the following AIX operating systems: - AIX 5L V5.1, AIX 5L V5.2, or AIX 5L for POWER V5.3 See the IBM XL Fortran Enterprise Edition V9.1 for AIX Installation Guide for installation instructions. Deinstalling Beta or Evaluation Versions ---------------------------------------- Before installing the fully-licensed version of the product, you must deinstall any Beta or Evaluation version of the product you have on your system. To do so enter the following command as root: installp -ug xlf* memdbg* xlsmp* xlhelp* xlf.adt.include xlf.msg* Note that deinstalling common components such as xlsmp*, xlhelp*, xlC.*, and memdbg* will also make any fully-licensed version of the C/C++ product you have installed unable to function. Use with discretion. Additional MASS Filesets ------------------------ The MASS libraries and include files are packaged in three additional filesets: Fileset Name Fileset Description xlmass.lib IBM Mathematical Acceleration Subsystem Libraries xlmass.aix51.lib IBM Mathematical Acceleration Subsystem Libraries for AIX 5.1 xlmass.adt.include IBM Mathematical Acceleration Subsystem Include Files For instructions on installing compiler filesets, see the XL Fortran Enterprise Edition V9.1 for AIX Installation Guide. Note: Do not overwrite the MASS files installed as part of the compiler with MASS files available on the Web. The XL Fortran installation creates the symbolic links necessary to compile and link the MASS include files and libraries automatically. Location of MASS Components --------------------------- The default directories and symbolic links that are created for the MASS components are as follows: Component Default Location Symbolic Link libmass.a /usr/xlmass/lib/aix51/ /usr/lib/ libmassv.a /usr/xlmass/lib/aix51/ /usr/lib/ libmassvp3.a /usr/xlmass/lib/aix51/ /usr/lib/ libmassvp4.a /usr/xlmass/lib/aix51/ /usr/lib/ mass.h /usr/xlmass/include/ /usr/include/ massv.h /usr/xlmass/include/ /usr/include/ mass.include /usr/xlmass/include/ /usr/include/ massv.include /usr/xlmass/include/ /usr/include/ Note that both XL C/C++ Enterprise Edition V7.0 for AIX and XL Fortran Enterprise Edition V9.1 for AIX install the MASS components to the same directories, so if you are using both products, the MASS components will be located in a single common directory. License Use Management ---------------------- It is no longer necessary to enroll your product license with the AIX License Use Management (LUM) utility after you have installed XL Fortran. You can begin to use XL Fortran Enterprise Edition V9.1 for AIX immediately after installation and system configuration. Ignore all LUM-related information presented in the User's Guide, such as, Tracking Use of the Compiler, found in the Editing, Compiling, Linking, and Running XL Fortran Programs section, and the -qlm option, found in the XL Fortran Compiler-Option Reference section. The IBM Distributed Debugger ---------------------------- The technology preview for The IBM Distributed Debugger (idebug) is not available in XL Fortran Enterprise Edition V9.1 for AIX. Please disregard all references to idebug in the documentation. Portable Application Solutions Environment (i5/OS PASE) Support --------------------------------------------------------------- IBM XL Fortran Enterprise Edition V9.1 for AIX can be installed and operated in the i5/OS PASE on iSeries with V5R2 OS/400 or V5R3 i5/OS. III. April 2005 XL Fortran Enterprise Edition V9.1 for AIX Update ================================================================= Language Reference Errata ------------------------- The following corrections and additions apply to the IBM XL Fortran Enterprise Edition V9.1 for AIX Language Reference: ALLOCATABLE Attribute --------------------- The ALLOCATABLE attribute is no longer marked as Fortran 2003 standard item in the applicable THREADPRIVATE and COPYIN descriptions. SAVE Attribute -------------- The following description of SAVE attribute behavior: ---------------- IBM Extension ------------------ XL Fortran permits function results to have the SAVE attribute. To indicate that a function result is to have the SAVE attribute, the function result name must be explicitly specified with the SAVE attribute. That is, a SAVE statement without a list does not provide the SAVE attribute for the function result. ---------------- End of IBM Extension ----------- Now reads: ---------------- IBM Extension ------------------ XL Fortran permits function results to have the SAVE attribute for intrinsic types. To indicate that a function result is to have the SAVE attribute, the function result name must be explicitly specified with the SAVE attribute. That is, a SAVE statement without a list does not provide the SAVE attribute for the function result. ---------------- End of IBM Extension ----------- PREFETCH_FOR_LOAD Directive --------------------------- This directive is valid for any PowerPC architecture. PROTECTED_STREAM_COUNT Directive -------------------------------- The syntax for this directive now reads: PROTECTED_STREAM_COUNT(unit_count, stream_id) This directive sets the number of cache lines to unit_count for the limited length protected stream with idetifier stream_id. FCFI(I) and FCTID(X) Intrinsics ------------------------------ The PowerPC requirements in the purpose section of the FCFI(I) and FCTID(X) intrinsics, now reads: This intrinsic is valid on any 64-bit PowerPC architecture. ROTATELM(RS, SHIFT, MASK) Hardware Intrinsic -------------------------------------------- The RS type description incorrectly states that integers must be less than 8 bytes. 8-byte integers are supported provided that the target architecture is a 64-bit capable Power PC. Specify -qarch=ppc64 as a minimum. C_LONG_DOUBLE, and C_LONG_DOUBLE_COMPLEX Constants -------------------------------------------------- The value of the C_LONG_DOUBLE, and C_LONG_DOUBLE_COMPLEX constants provided by the ISO_C_BINDING module have been change from 8 to 16. The C parts of new programs using these constants must be compiled with an option that enables 16-byte long doubles. Existing programs using C_LONG_DOUBLE or C_LONG_DOUBLE_COMPLEX will continue to work as long as the parts dependent on the value of these constants are not recompiled. If you are recompiling, and a type interoperable with an 8-byte long double, or long double _Complex is expected, you can use the C_DOUBLE and C_DOUBLE_COMPLEX constants, respectively. User's Guide Errata ------------------- The following corrections and additions apply to the IBM XL Fortran Enterprise Edition V9.1 for AIX User's Guide: -qsmallstack Option ------------------- -qsmallstack[=dynlenonheap] | -qnosmallstack -------------- Specifies that the compiler will minimize stack usage where possible. The -qsmallstack=dynlenonheap suboption affects automatic objects that have nonconstant character lengths or a nonconstant array bound. When specified, automatic variables are allocated on the heap. When this suboption is not specified, automatic variables are allocated on the stack. -qtune Option ------------- The default -qtune setting when compiling with -qarch=pwr is -qtune=pwr. IV. November 2004 XL Fortran Enterprise Edition V9.1 for AIX Update =================================================================== Language Reference errata ------------------------- Expressions and Assignment -------------------------- The section on Initialization Expressions now contains an additional rule: The transformational function IEEE_SELECTED_REAL_KIND from the intrinsic module IEEE_ARITHMETIC can also be referenced. Hardware-Specific Intrinsic Procedures -------------------------------------- SWDIV(X,Y) In addition to the existing documentation, please note the following: -> For REAL(4) arguments, the result is bitwise identical to IEEE division. -> For REAL(8) arguments with -qstrict in effect, the result is bitwise identical to IEEE division. -> For REAL(8) arguments with -qnostrict in effect, the result can differ slightly from the IEEE result. -> This function can increase performance over the normal divide operator where division is performed repeatedly within a loop. SWDIV_NOCHK(X,Y) In addition to the existing documentation, please note the following: -> For REAL(4) arguments, the result is bitwise identical to IEEE division. You must not specify the following arguments: -> |numerator| equal to infinity -> |denominator| equal to infinity -> |denominator|< 2**(-1022) -> |numerator/denominator| equal to infinity -> For REAL (8) arguments with -qstrict in effect, the result is bitwise identical to IEEE division. For correct operation, the arguments must satisfy the following conditions: -> 2**(-970) < |numerator| < Inf -> 2**(-1022) <= |denominator| < 2**1021 -> 2**(-1021) < |numerator/denominator| < 2**1023 With -qnostrict in effect, the result can differ slightly from the IEEE result. -> This function can increase performance over the normal divide operator or the SWDIV built-in function where division is performed repeatedly within a loop, and arguments are within the permitted range. V. Documentation Additions and Corrections ========================================== Installation Guide Errata ------------------------- XL Fortran Packaging and Filesets --------------------------------- Separate filesets for the MASS components have been added to the installation package. See Installation Issues in this README. Locations of XLOPT and MASS Components -------------------------------------- The installation directories and symbolic links for MASS components have changed. See Installation Issues in this README. Viewing the HTML Documentation ------------------------------ To launch the Eclipse server, you must have root authority. For more information, see Viewing Documentation on AIX in this README. User's Guide Errata ------------------- The following corrections and additions apply to the IBM XL Fortran Enterprise Edition V9.1 for AIX User's Guide: What's New ---------- - Ignore references to the "2003pure" run-time option. The related "What's New" item now reads: The 2003std run-time option provides conformance checking of code for adherence to the draft standard. - XL Fortran does not support auto-SIMD vectorization on AIX. The auto-vectorization "What's New" item now reads: The NOVECTOR directive and ALIGNX built-in subroutine provide fine-grain control of the auto-vectorization. - XL Fortran ships the MASS scalar and vector libraries. The "What's New" item now reads: XL Fortran includes the MASS scalar library of tuned mathematical intrinsic functions and a set of vector libraries for use with vectorized applications. Editing, Compiling, Linking, and Running XL Fortran Programs ------------------------------------------------------------ In the "Setting Run-Time Options" section, under the "XLFRTEOPTS Environment Variable" heading, the example for the "buffering=" run-time option now reads: Fortran main program: integer(4) p1,p2,p3 print *,'Reading p1 in Fortran...' read(5,*) p1 call c_func(p2) print *,'Reading p3 in Fortran...' read(5,*) p3 print *,'p1 p2 p3 Read: ',p1,p2,p3 end C subroutine (c_func.c): #include <stdio.h> void c_func(int *p2) { int n1 = -1; printf("Reading p2 in C... "); setbuf(stdin, NULL); /* Specifies no buffering for stdin */ fscanf(stdin,"%d",&n1); *p2=n1; fflush(stdout); } Input data file (infile): 11111 22222 33333 44444 The main program runs by using infile as redirected standard input, as follows: $ main < infile If you turn on buffering=disable_preconn the results are as follows: Reading p1 in Fortran... Reading p2 in C... Reading p3 in Fortran... p1 p2 p3 Read: 11111 22222 33333 If you turn on buffering=enable the results are unpredictable. -qarch=com ---------- The first sentence of the second paragraph under the com suboption for the -qarch compiler option: If you specify the -q64 and -qarch=com options together, the target platform is 64-bit, and the -qarch option is silently upgraded to ppc64grsq. Now reads: If you specify the -q64 and -qarch=com options together, the target platform is 64-bit, and the -qarch option is silently upgraded to ppc64. -qinlglue --------- -qinlglue | -qnoinlglue ----------- Specifying this compiler option inlines glue code that optimizes external function calls in your application, when compiling at -O2 and higher. The optimizer automatically inlines glue code when you compile with -qtune=pwr4, pwr5, ppc970, or -qtune=auto when compiling on a machine with the appropriate processor. Use the -qnoinlglue option to prevent the compiler from automatically inlining glue code on these architectures. The inlining of glue code can increase the size of your code. Specifying -qcompact overrides -qinlglue to prevent code growth. Specifying -qnoinlglue or -qcompact can degrade performance. Use with discretion. -qipa=threads ------------- Specifying -qipa=threads can reduce IPA optimization time. The threads suboption allows the IPA optimizer to run portions of the optimization process in parallel threads, which can speed up the compilation process on multi-processor systems. -qxflag=dvz ----------- Specifying -qxflag=dvz causes the compiler to generate code to detect floating-point divide-by-zero operations. With this option on, the extra code calls the external handler function __xl_dzx when the divisor is zero. The return value of this function is used as the result of the division. Users are required to provide the function to handle the divide-by-zero operations. Specifying -qxflag=dvz handles only single-precision (real*4) and double-precision (real*8) division. The interface of the function is as follows: real(8) function __xl_dzx(x, y, kind_type) real(8), value :: x, y integer, value :: kind_type end function where: x is the dividend value y is the divisor value, kind_type specifies the size of the actual arguments associated with x and y. A kind_type value equal to zero indicates that the actual arguments associated with x and y are of type REAL(8). A kind_type value equal to one indicates that the actual arguments associated with x and y are of type REAL(4). The division always executes before the handler routine is called. This means that any exception is posted and handled before the __xl_dzx handler function is called This option is only effective when you specify an optimization level of -O or higher. Using the Mathematical Acceleration Subsystem (MASS) ---------------------------------------------------- With the exception of rsqrt, all the MASS scalar functions have the same names as the corresponding Fortran intrinsic functions, so interface blocks are not necessary. Since rsqrt is not a Fortran intrinsic function, you must include the file mass.include in the calling program to provide the appropriate interface block. Technical Details of the -qfloat=hsflt Option ---------------------------------------------- The speedup from this option is primarily for POWER and POWER2 machines. We recommend that it not be used for programs targeted (through the -qarch option) for PowerPC machines. Now reads Using -qfloat=hsflt can show a performance benefit for applications that perform COMPLEX division and floating-point conversions. Additionally, specifying -qfloat=hsflt when compiling applications targeting COMMON, POWER, and POWER2 architectures, can achieve a broader range of performance improvements unique to those targets. Language Reference Errata ------------------------- The following corrections and additions apply to the IBM XL Fortran Enterprise Edition V9.1 for AIX Language Reference: Expressions and Assignment -------------------------- In the section on Specification Expressions, the following bullet: A reference to an array inquiry function (except ALLOCATED), the bit inquiry function BIT_SIZE, the character inquiry functions LEN and NEW_LINE, the kind inquiry function KIND, or a numeric inquiry function. Each argument is either a restricted expression, or it is a variable whose properties inquired about are not dependent on the upper bound of the last dimension of an assumed-size array, not defined by an expression that is not a restricted expression, or not definable by an ALLOCATE statement or by a pointer assignment statement. now reads: A reference to an array inquiry function (except ALLOCATED), the bit inquiry function BIT_SIZE, the character inquiry functions LEN and NEW_LINE, the kind inquiry function KIND, an IEEE inquiry function, or a numeric inquiry function. Each argument is either a restricted expression, or it is a variable whose properties inquired about are not dependent on the upper bound of the last dimension of an assumed-size array, not defined by an expression that is not a restricted expression, or not definable by an ALLOCATE statement or by a pointer assignment statement. Comma-Separated Input/Output ---------------------------- Note: This function is an IBM extension. When reading floating-point data using format-directed input/output, a comma that appears in the input terminates the field. This can be useful for reading files containing comma-separated values. Example: The following program reads two reals using the E edit descriptor. It requires that the field width be 16 characters. The program attempts to read the remaining characters in the record as a character string. > cat read.f real a,b character*10 c open(11, access='sequential', form='formatted') read(11, '(2e16.10, A)') a,b,c print *, a print *, b print *, c end If the floating-point fields are 16 characters wide, as the format specifies, the program executes correctly. (0.4000000000E+02 is 16 characters long) > cat fort.11 0.4000000000E+020.3000000000E+02hello > a.out 40.00000000 30.00000000 hello But if the floating-point input contains less than 16 characters, errors occur because parts of the next field are read. (0.400000E+02 is 12 characters long) > cat fort.11 0.400000E+020.3000000E+02hello > a.out 1525-097 A READ statement using decimal base input found the invalid digit '.' in the input file. The program will recover by assuming a zero in its place. 1525-097 A READ statement using decimal base input found the invalid digit 'h' in the input file. The program will recover by assuming a zero in its place. 1525-097 A READ statement using decimal base input found the invalid digit 'e' in the input file. The program will recover by assuming a zero in its place. 1525-097 A READ statement using decimal base input found the invalid digit 'l' in the input file. The program will recover by assuming a zero in its place. 1525-097 A READ statement using decimal base input found the invalid digit 'l' in the input file. The program will recover by assuming a zero in its place. 1525-097 A READ statement using decimal base input found the invalid digit 'o' in the input file. The program will recover by assuming a zero in its place. INF 0.0000000000E+00 If you use commas to terminate the fields, the floating-point values are read correctly. (0.400000E+02 is 12 characters long, but the fields are separated by commas.) > cat fort.11 0.400000E+02,0.3000000E+02,hello > a.out 40.00000000 30.00000000 hello Directives ---------- STREAM_UNROLL, UNROLL, UNROLL_AND_FUSE -------------------------------------- The -qipa=level=2 option is not sufficient to enable user-directed loop unrolling as stated under the STREAM_UNROLL directive. In order to enable user-directed loop unrolling, you must specify one of the following compiler options: -O4 or higher -qhot -qsmp Note that if the -qstrict option is in effect, no stream unrolling will occur. If you want to enable stream unrolling with the -qhot option alone, you must also specify -qnostrict. Hardware Specific Directives ---------------------------- In the PROTECTED STREAM section, that details the PROTECTED STREAM directive set, the following keywords: PROTECTED_STREAM_SET_GO_FORWARD PROTECTED_STREAM_SET_GO_BACKWARD Now read: PROTECTED_STREAM_SET_FORWARD PROTECTED_STREAM_SET_BACKWARD SWDIV(X,Y) and SWDIV_NOCHK(X,Y) Built-In Functions -------------------------------------------------- Arguments for which the numerator divided by the denominator equals positive or negative infinity are not permitted. Interoperability of Procedures ------------------------------- The example in this section contains incorrect syntax. There should not be a comma between "FUNC(...)" and "BIND(C)". The statement should read: FUNCTION FUNC(I, J, K, L, M) BIND(C) VI. Support Information ======================= The following site contains support information for the IBM XL Fortran Enterprise Edition V9.1 for AIX product: http://www.ibm.com/software/awdtools/fortran/xlfortran/support For the latest documentation XL Fortran, see the AIX Compiler Information Center at: http://publib.boulder.ibm.com/infocenter/comphelp/index.jsp VII. Further Updates ==================== Additional information and documentation errata for the April 2005 XL Fortran Enterprise Edition V9.1 for AIX Update and all future XL Fortran Enterprise Edition V9.1 for AIX Updates can be found at the following url: http://www.ibm.com/support/docview.wss?uid=swg1203115

LBNL Home
Page last modified: Fri, 05 Dec 2008 19:17:25 GMT
Page URL: http://www.nersc.gov/nusers/announcements/message_text.php
Web contact: webmaster@nersc.gov
Computing questions: consult@nersc.gov

Privacy and Security Notice
DOE Office of Science