HP_Fortran_for_OpenVMS_I64_Systems__________________ Release Notes January 2005 This document contains information about HP Fortran for OpenVMS Industry Standard 64 for Integrity Servers. Software Version: HP Fortran Version 8.0 Operating System: OpenVMS I64 Version 8.2 Hewlett-Packard Company Palo Alto, California ________________________________________________________________ January 2005 Copyright 2005 Hewlett-Packard Development Company, L.P. Confidential computer software. Valid license from HP required for possession, use or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor's standard commercial license. The information contained herein is subject to change without notice. The only warranties for HP products and services are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. HP shall not be liable for technical or editorial errors or omissions contained herein. Intel and Itanium are trademarks or registered trademarks of Intel Corporatioor its subsidiaries in the United States and other countries. This document was prepared using DECdocument, Version 3.3- 1n. _________________________________________________________________ Contents 1 HP Fortran Version V8.0 Overview 1.1 Operating System Compatibility................ 1-1 1.2 Web Page...................................... 1-1 1.3 Getting Help and Reporting Problems........... 1-1 2 Differences from HP Fortran for OpenVMS Alpha Systems 2.1 Floating-Point Arithmetic..................... 2-1 2.2 No F77 Compiler............................... 2-3 2.3 Dirty Zeros Trigger Exceptions................ 2-3 2.4 Math Algorithm Differences.................... 2-4 2.5 Math Library Exceptions....................... 2-4 2.6 /ARCH and /OPT=TUNE qualifiers................ 2-4 3 Known Problems and Incomplete Functionality 3.1 Disabled /CHECK=ARG_INFO,FP_EXCEPTIONS,UNDERFLOW....... 3-1 3.2 IEEE Exceptions Detected During Compilation... 3-1 3.3 INSVIRMEM with Entry Parameters and Assumed-Size Arrays........................... 3-1 3.4 INVARGFOR with /NOI4 and Integer Access Keys.......................................... 3-1 3.5 Syntax Error with Alternative Record Specifier Syntax........................................ 3-2 3.6 No /ROUND=DYNAMIC Support..................... 3-2 iii 4 Documentation and Online Information iv 1 _________________________________________________________________ HP Fortran Version V8.0 Overview HP Fortran Version V8.0 is the initial release version of the HP Fortran compiler for the OpenVMS I64 platform. This release requires OpenVMS I64 Version V8.2 or higher. The HP Fortran product kit can be installed whether or not any earlier pre-release version of HP Fortran was previously installed. For complete installation details, see the HP Fortran Installation Guide for OpenVMS I64 Systems. This chapter provides general information about the HP Fortran product. 1.1 Operating System Compatibility HP Fortran is supported on OpenVMS I64 Version V8.2, which has been released at the time of printing. It is likely that HP Fortran will work correctly on all later versions of OpenVMS I64. If you have questions about version compatibility, please contact us as described in Section 1.3. 1.2 Web Page The HP Fortran web page is at: http://www.hp.com/software/fortran/ 1.3 Getting Help and Reporting Problems If you encounter a problem while using HP Fortran, report it to HP. If an error occurs while HP Fortran is in use and you believe the error is caused by a problem with HP Fortran, take one of the following actions: o If you have a Software Product Services Support Agreement, consider contacting HP Global Services by HP Fortran Version V8.0 Overview 1-1 telephone (in the United States, 1-800-354-9000) or by using the electronic means provided with your support agreement. o Customers without a service contract can arrange for per-call support. When you initially contact HP Global Services, please indicate the following: o The name (OpenVMS I64) and version number of the operating system you are using o The name (HP Fortran) and complete version number of the compiler you are using (The version number is displayed at the end of a compiler listing file) o The hardware system you are using (such as a model number) o How critical the problem is o A very brief description of the problem (one sentence if possible) When you submit information electronically or are speaking on the phone to the appropriate support specialist, you can provide more detailed information. This includes the specific commands used to compile and link the program, the error messages displayed, and relevant detailed information (possibly including source program listings). Please try to narrow the cause of the problem to a specific source module or lines of code. Support personnel might ask for additional information, such as listings of any command files, INCLUDE files, relevant data files, and so forth. If the program is longer than 50 lines, submit a copy of it electronically or provide machine-readable media. Experience shows that problem reports sometimes do not contain enough information to duplicate or identify the problem. Concise, complete information helps HP give accurate and timely service to software problems. To obtain information about purchasing HP support services, please contact your local HP sales representative. 1-2 HP Fortran Version V8.0 Overview You can also send comments, questions and suggestions about the HP Fortran product to fortran@hp.com. Note that this address is for informational inquiries and is not a formal support channel. HP Fortran Version V8.0 Overview 1-3 2 _________________________________________________________________ Differences from HP Fortran for OpenVMS Alpha Systems HP Fortran for OpenVMS I64 Systems features the same command-line options and language features as HP Fortran for OpenVMS Alpha Systems with a few exceptions. A new appendix has been added to the HP Fortran for OpenVMS User Manual called "Differences Between HP Fortran on OpenVMS I64 and OpenVMS Alpha Systems," which fully details those exceptions. This chapter highlights only the major differences. 2.1 Floating-Point Arithmetic The white paper "OpenVMS floating-point arithmetic on the Intel Itanium architecture" is essential reading. This document is at: http://www.hp.com/products1/evolution/alpha_retaintrust/ download/i64-floating-pt-wp.pdf Note: the URL is one continuous line (broken here to fit). That white paper, together with these release notes, describes how HP Fortran for OpenVMS I64 Systems handles floating-point issues. Here are some highlights to keep in mind: o IEEE is the default floating-point datatype (that is, the default is /FLOAT=IEEE_FLOAT) HP Fortran for OpenVMS Alpha Systems defaults to the VAX G_float floating-point format (/FLOAT=G_FLOAT). On OpenVMS I64 systems, however, there is no hardware support for floating-point representations other than IEEE. Instead, the compiler supports VAX floating- point formats by generating run-time code which converts operands to IEEE format, performs the needed arithmetic operations, and then converts the IEEE result back to the appropriate VAX format. Depending on the Differences from HP Fortran for OpenVMS Alpha Systems 2-1 application, this may impose significant additional run-time overhead and some loss of accuracy compared to performing the operations in hardware on an Alpha (or VAX). This software support for the VAX formats is an important functional compatibility requirement for certain applications that need to deal with on- disk binary floating-point data, but its use should be strongly discouraged. This change is similar to the change in default from /FLOAT=D_FLOAT on VAX to /FLOAT=G_FLOAT on Alpha. If at all possible, users should use /FLOAT=IEEE_FLOAT (the default) for the highest performance and accuracy. Note that the changed /FLOAT default will have implications for the use of /CONVERT=NATIVE (the default). This switch causes unformatted data to remain unconverted on input, on the assumption that it matches the prevailing floating-point datatype. Files written from Fortran applications built with /FLOAT=G_FLOAT/CONVERT=NATIVE (the default) on Alpha can be read by I64 applications built with /FLOAT=G_ FLOAT/CONVERT=NATIVE or /FLOAT=IEEE/CONVERT=VAXG. o The /IEEE_MODE qualifier defaults to /IEEE_MODE=DENORM_ RESULTS This differs from Alpha, where the default is /IEEE_MODE=FAST. Despite the name, /IEEE_MODE=FAST does not have a significant effect on run-time performance on I64 (or on Alpha processors from EV6 onward). o On I64, users will have to pick one compile-time /FLOAT value and one compile-time /IEEE_MODE value and stick with it for the whole of their application. This is because mixed-mode applications will not (in general) work on OpenVMS I64 systems as a result of architectural differences in the hardware. This is a change from OpenVMS Alpha systems, where mixed-mode applications work. In particular, per-routine/per-file/per-library settings of a mode will not work. o If your code changes the floating-point exception mode at runtime, it is your responsibility to change it back on routine-exit, including exits by means of exception handlers. Failure to do so may lead to 2-2 Differences from HP Fortran for OpenVMS Alpha Systems unexpected results, as the compilers will assume that that no called routine changes the current mode. This is also a requirement on user-written libraries. The new appendix in the HP Fortran for OpenVMS User Manual explains in detail how to perform this exception-mode change. Please note that this requirement is also in effect for user-written libraries. o Exception handlers will be entered with the floating- point mode in effect at the time the exception was raised, not the mode with which the handler was compiled. 2.2 No F77 Compiler Only the F90 compiler is supported on OpenVMS I64. The F77 compiler, invoked on OpenVMS Alpha with the /OLD_F77 qualifier, is not available. To ease the transition from F77 to F90, CDD (Common Data Dictionary) and DML (Data Manipulation Language) support, which were previously available only in the Alpha F77 compiler, have now been implemented in the F90 compiler for OpenVMS I64. Code previously compiled with the F77 compiler that does not compile with the F90 compiler should be reported through standard problem reporting mechanisms. Although it may not be possible to eliminate all differences between the two compiler versions, the HP Fortran development team will attempt to minimize these differences by enhancing the F90 compiler. Note: The unsupported /OLD_F77 qualifier should not be confused with the /F77 qualifier, which instructs the compiler to use FORTRAN-77 interpretation rules for those statements that have a meaning incompatible with FORTRAN- 66; /F77 is still fully supported. 2.3 Dirty Zeros Trigger Exceptions VAX-format "dirty zeros" (bit patterns which represent the value 0.0 but have some bits set in should-be-zero fields) may trigger exceptions where the equivalent Alpha program would not. Differences from HP Fortran for OpenVMS Alpha Systems 2-3 2.4 Math Algorithm Differences Typically, the true function result for a math library function such as sin, atan, log, or exp is irrational, and cannot be represented exactly in any binary floating- point format (whether VAX or IEEE). In addition, because of architectural considerations, some of the algorithms used in the I64 math library differ from the algorithms used on Alpha. As a result of these factors, various I64 mathematics builtins may produce rounded floating-point results that are very accurate, but slightly different from the equivalent Alpha results. 2.5 Math Library Exceptions User code built with any of the three IEEE modes (FAST, UNDERFLOW, or DENORM_RESULTS) will work with the math library provided with the OpenVMS I64 release. Exceptions will be raised by the math library as specified by the mode. For example, if you specify /IEEE_MODE=DENORM_ RESULTS, a denormal or NaN result will not cause an exception; if you specify FAST, a NaN will cause an exception and a denormal result will be set to zero. The math library runs using its own exception mode, not the mode currently in effect when a math library routine is called. The math library checks the operands and the mode set by the user. When a calculation would cause an exception for the user, the math library will raise a math library exception, as it does on Alpha. Other system libraries provided with this release run in the exception mode in effect when the library routine is called. 2.6 /ARCH and /OPT=TUNE qualifiers o HP Fortran for OpenVMS I64 is tuned by default for Itanium 2 processors, which are included in all systems supported by OpenVMS I64 Version 8.2. Therefore, the use of /ARCH and /OPT=TUNE qualifiers is not supported in this release. 2-4 Differences from HP Fortran for OpenVMS Alpha Systems o For the sake of "compile-and-go" compatibility, Alpha values for the /ARCH and /OPT=TUNE qualifiers are accepted on the compiler invocation command. An informational is printed saying they are ignored. Differences from HP Fortran for OpenVMS Alpha Systems 2-5 3 _________________________________________________________________ Known Problems and Incomplete Functionality 3.1 Disabled /CHECK=ARG_INFO,FP_EXCEPTIONS,UNDERFLOW The full frameworks needed to provide run-time checks of argument types and counting of IEEE exceptions are not yet available on OpenVMS I64 systems. As a result, the ARG_INFO, FP_EXCEPTIONS, and UNDERFLOW keywords have been disabled for the /CHECK qualifier. A warning to this effect will be issued during compilation if these keywords are specified on the command line. In addition, these checks are not currently enabled by specifying /CHECK=ALL. 3.2 IEEE Exceptions Detected During Compilation If the compiler detects that a calculation will result in an exceptional IEEE value (such as a denormalized number), it may issue a compilation warning or error regardless of the IEEE exception mode chosen when compiling the program. 3.3 INSVIRMEM with Entry Parameters and Assumed-Size Arrays In some cases where a user-written procedure defines an additional entry point with different parameters than the original procedure, and those parameters are used to define the shape of a local assumed-size array, an INSVIRMEM error may be incorrectly generated at run time. 3.4 INVARGFOR with /NOI4 and Integer Access Keys An INVARGFOR error will occur at runtime if a program compiled using the switch /NOI4 defines an integer key for accessing records in an indexed file, as in the following example: OPEN(UNIT=I, ACCESS='KEYED', KEY=(665:668:INTEGER)) Known Problems and Incomplete Functionality 3-1 3.5 Syntax Error with Alternative Record Specifier Syntax A syntax error will occur during compilation if the alternative record specifier syntax detailed in section B.8 of the HP Fortran for OpenVMS Language Reference Manual appears on the same line as an unrelated single-quote character, as in the following example: WRITE(8'RECORD) 1 ! It's good Workarounds include using the standard record specifier syntax detailed in Section 10.2.1.4 of the HP Fortran for OpenVMS Language Reference Manual, or removing the second quote character. 3.6 No /ROUND=DYNAMIC Support Dynamic (run-time) changing of the rounding mode is not currently supported. Attempts to change the rounding mode may or may not change the mode as specified, and may lead to FLTINE exceptions during subsequent floating-point calculations. 3-2 Known Problems and Incomplete Functionality 4 _________________________________________________________________ Documentation and Online Information The HP Fortran documentation set contains the following: o HP Fortran Installation Guide for OpenVMS I64 Systems (AA-PU3AF-TE) This guide explains how to install HP Fortran on the OpenVMS I64 operating system. o HP Fortran for OpenVMS Language Reference Manual (AA- Q66SD-TK) This manual contains the complete description of the HP Fortran programming language, which includes Fortran 95 and Fortran 90 features. It contains information about language syntax and semantics, adherence to various Fortran standards, and extensions to those standards. This document is included with the HP Fortran documentation kit, BA368MN. It is also on the Online Documentation Library CD-ROM, and is on the HP Fortran web site. o HP Fortran for OpenVMS User Manual (AA-QJRWD-TE) This manual provides information about HP Fortran program development and the run-time environment. It describes compiling, linking, running, and debugging HP Fortran programs, run-time error-handling and I/O, performance guidelines, data types, numeric data conversion, calling other procedures and library routines, and compatibility with Compaq Fortran 77. This document is included with the HP Fortran documentation kit, BA368MN. It is also on the Online Documentation Library CD-ROM, and is on the HP Fortran web site. The HP Fortran Software Product Description (SPD) is provided on the Software Product Library CD-ROM. Documentation and Online Information 4-1 The following HP Fortran online information is available (once installed on the system): o HP Fortran online release notes Provide more information on this version of HP Fortran, including known problems. To display or print the HP Fortran release notes before installing, use the PRODUCT EXTRACT RELEASE_NOTES FORTRAN command (see the HP Fortran Installation Guide for OpenVMS I64 Systems). Once installed, the ASCII version of the online release notes are located in: SYS$HELP:FORTRAN.RELEASE_NOTES Other forms of the release notes (PostScript and Bookreader) are also provided, using the file name: SYS$HELP:FORTRAN_RELEASE_NOTES.* o HP Fortran online help The HP Fortran HELP module in SYS$HELP:HELPLIB.HLB provides online access to HP Fortran help, including descriptions of command qualifiers, a summary of the language elements (statements, intrinsic procedures, and so on), error message descriptions, and other information. To view the online HP Fortran help file using the HELP command, type: $ HELP FORTRAN You can specify topics to navigate the help hierarchy. For example: $ HELP FORTRAN /ALIGN 4-2 Documentation and Online Information