Fortran_Run-Time_Library____________________________ Release Notes for OpenVMS Alpha Systems January 1998 This document contains information about new and changed features in this version of DIGITAL Fortran Run-Time Library for OpenVMS Alpha Systems Software Version: Fortran Run-Time Library V7.1-427 Digital Equipment Corporation Maynard, Massachusetts ________________________________________________________________ January 1998 Digital Equipment Corporation makes no representations that the use of its products in the manner described in this publication will not infringe on existing or future patent rights, nor do the descriptions contained in this publication imply the granting of licenses to make, use, or sell equipment or software in accordance with the description. Possession, use, or copying of the software described in this publication is authorized only pursuant to a valid written license from Digital or an authorized sublicensor. © Digital Equipment Corporation 1998. All Rights Reserved. The following are trademarks of Digital Equipment Corporation: AlphaGeneration, AlphaStation, AlphaServer, Alpha AXP, AXP, Bookreader, DEC, DECnet, DECwindows, DEC Fortran, DIGITAL, OpenVMS, VAX, VAX FORTRAN, VMS, and the DIGITAL logo. OSF/1 is a registered trademark of the Open Software Foundation. PostScript is a trademark of Adobe Systems, Inc. UNIX is a registered trademark in the United States and other countries, licensed exclusively through X/Open Company, Ltd. This document was prepared using VAX DOCUMENT Version 2.1. _________________________________________________________________ Contents 1 Fortran Run-Time Library Version V7.1-427 Release Notes 1.1 Overview and Installation..................... 1-1 1.2 Support for Multithreaded Applications........ 1-3 1.3 Changes and Problems Corrected in V7.1-427.... 1-3 1.4 Changes and Problems Corrected in V7.1........ 1-4 1.5 Changes and Problems Corrected in V7.0-2...... 1-5 1.6 Changes and Problems Corrected in V7.0-1...... 1-6 iii 1 _________________________________________________________________ Fortran Run-Time Library Version V7.1-427 Release Notes Fortran Run-Time Library Version V7.1-427 is an update of Fortran Run-Time Library V7.1-1 which contains support for new features in DIGITAL Fortran and corrections to problems found in earlier versions as supplied with OpenVMS Alpha and DEC Fortran 90. The Fortran Run-Time Library Version V7.1-427 update requires OpenVMS Alpha (formerly OpenVMS AXP) Version V6.1 or higher. For complete installation details, see the Digital Fortran 90 Installation Guide for OpenVMS Alpha Systems. 1.1 Overview and Installation This kit installs an updated version of the Fortran Run- Time Library for OpenVMS Alpha Systems which is used by Digital Fortran. It also adds support for new math library routines used by the Fortran 90 NEAREST intrinsic. The kit can be installed on any OpenVMS Alpha (OpenVMS AXP) V6.1 through V7.0 system. The included Run-Time Library contains new features required by Digital Fortran as well as corrections to known problems. This kit is required in order to run Digital Fortran applications on OpenVMS versions through V7.0. The changes in this kit will be included in an OpenVMS Alpha version aftert V7.1. The kit will not replace the existing Run-Time Library if it is newer. When this kit is installed, it places the following files on the system: SYS$LIBRARY:FOR$DEC$FORRTL.EXE - Updated DEC$FORRTL.EXE SYS$LIBRARY:FOR$DEC$FORRTL.OBJ - Updated object modules SYS$LIBRARY:FOR$NXTAFTR.OBJ - Support for Fortran 90 NEAREST intrinsic Fortran Run-Time Library Version V7.1-427 Release Notes 1-1 SYS$UPDATE:FOR$INSTALL_FORRTL.COM - Command procedure The image identification string of the new FOR$DEC$FORRTL.EXE is "V01-05.427". If installed on OpenVMS versions earlier than V7.0, the RTL installed has multithreading disabled so as to not interfere with a problem in DEC C++. If installed on OpenVMS V7.0 or later, a thread-enabled version is installed. The thread-enabled version has a link date/time of 17-DEC-1997 08:37:00.33; the non-threaded version has a link date/time of 16-DEC- 1997 21:11:19.25. During installation, FOR$INSTALL_FORRTL.COM is run automatically - it checks to see if the current version of SYS$LIBRARY:DEC$FORRTL.EXE is newer than that provided by this kit. If not, the procedure saves the old DEC$FORRTL.EXE as SYS$LIBRARY:DEC$FORRTL.SAVED_EXE, copies FOR$DEC$FORRTL.EXE to DEC$FORRTL.EXE, replaces the image in SYS$LIBRARY:IMAGELIB.OLB and in the known image list (INSTALL REPLACE) and inserts the object modules in SYS$LIBRARY:STARLET.OLB. If the system is part of a VMScluster, the following command must be executed on all other cluster nodes: INSTALL REPLACE SYS$LIBRARY:DEC$FORRTL.EXE If a new version of OpenVMS is installed, SYS$UPDATE:FOR$INSTALL_FORRTL.COM must be run (and the INSTALL REPLACE command executed on all other cluster nodes) to restore the updated Run-Time Library. This Run-Time Library kit may be redistributed - please read the DEC Fortran and DEC Fortran 90 Software Product Descriptions for further details. If you have questions about this kit, please contact Digital Multivendor Customer Services or send mail to fortran@digital.com. 1-2 Fortran Run-Time Library Version V7.1-427 Release Notes 1.2 Support for Multithreaded Applications The Fortran Run-Time Library now supports multithreaded applications when used on OpenVMS Alpha V7.0 or later. To enable multithread support, use the /REENTRANCY qualifier with the appropriate keyword when compiling your Fortran code. See the Digital Fortran help and release notes for further information. On OpenVMS versions earlier than V7.0, this kit installs a non-thread-safe version of the Run-Time Library. 1.3 Changes and Problems Corrected in V7.1-427 o Under some circumstances, the RTL was improperly determining the ascending/descending order to index file keys. This problem has been fixed. (dfb2586) o A problem where bjtest was generating incorrect results has been fixed. (dfb2623) o A definition for FOR__STOP_RESOURCE was added into the object library. This eliminates an undefined symbol error when linking against the olb. o An access violation with read past end of internal file was corrected (dfb2632) o Support for the cpu_time intrinsic was added. o RANDOM_SEED with no arguments now uses clock based random seeds. o A bug involving an I/O list with multiple list items and a foreign file was fixed. (dfb2639) - F77 compiler only o Previously, for list directed reads to both internal and external files, and namelist io reads, an input value beginning with {E|D|Q}, or a value consisting solely of a single letter from {E|D|Q}, was interpreted at runtime as {0E0|0D0|0Q0} (i.e., zero). This is no longer the case. Such an input does not constitute a well-formed numeric constant according to Fortran syntax and is now treated as an input syntax error. This applies to lower case also, {e|d|q}. (dvf16 & dfb2612) Fortran Run-Time Library Version V7.1-427 Release Notes 1-3 o The conversion type (i.e., big_endian) was not properly set when reopening a file after an implicit close. (dfb2772) o NAMELIST input, when the f77 compiler was used, was not allowing whitespace between the left parenthesis "(" and first numeric value of a complex number. This problem has been fixed. (dvf1042) o SYSTEM_CLOCK now returns the number of seconds from 00:00 CUT 1 JAN 1970. The number is now returned with no bias. To obtain the elapsed time, it is necessary to call SYSTEM_CLOCK twice, and subtract the starting time value from the ending time value. Prior to this change the first call to SYSTEM_CLOCK effectively zeroed the clock register and subsequent calls returned a type of elapsed time. After examining other implementations and the F90 standard, and looking at the probable uses of SYSTEM_CLOCK, it was decided that SYSTEM_CLOCK would be more useful without the bias. 1.4 Changes and Problems Corrected in V7.1 This section provides highlights of changes and problems corrected in Fortran Run-Time Library V7.1-1. o New math library routines (MATH$NXTAFTR_F, MATH$NXTAFTR_ G, MATH$NXTAFTR_S, MATH$NXTAFTR_T, MATH$NXTAFTR_X), used to support the Fortran 90 NEAREST intrinsic, are added to SYS$LIBRARY:STARLET.OLB. They will be included in the shareable image version of the math library in OpenVMS V7.1. These routines are used by Digital Fortran 90 version 7.1 or later - earlier versions generated code that produced incorrect result for VAX floating types (IEEE-floating was correct). o The RTL no longer leaks memory when an indexed file is closed. o The RTL no longer leaks memory for an INQUIRE by FILE. o The use of an I format edit descriptor for a LOGICAL*8 item no longer results in a FORVARMIS error. 1-4 Fortran Run-Time Library Version V7.1-427 Release Notes o The RTL now correctly processes a COMPLEX value in a formatted I/O list when variable format expressions (VFEs) are used in the corresponding FORMAT edit descriptors. 1.5 Changes and Problems Corrected in V7.0-2 This section provides highlights of changes and problems corrected in Fortran Run-Time Library 7.0-2. o For Fortran 90 programs only, the default value of BLANK= for preconnected units (not explicitly opened) has been changed from 'ZERO' to 'NULL'. This is consistent with the default on Digital UNIX and other platforms, as well as with the default for explicitly opened units and internal I/O. Fortran 77 programs will continue to see BLANK='ZERO' as the default for preconnected units and internal I/O. o The RTL for F90 incorrectly failed to release previously allocated memory when padding F90 input. o The RTL would incorrectly go into an infinite loop when an embedded NULL character value was found while performing a list directed read operation. o The RTL would incorrectly treat an end-of-record marker as a value separator while performing a list-directed read operation. o The RTL would not properly perform RTL I/O clean-up during an unwind operation. This resulted in the user possibly receiving a "recursive I/O operation" error if I/O was pending on the unit before the unwind and then I/O was attempted after the unwind operation. o The RTL for F90 would incorrectly fail to return an End-of-record error for certain non-advancing I/O operations. This occured when attempting to read into successive array elements while running out of data. Fortran Run-Time Library Version V7.1-427 Release Notes 1-5 1.6 Changes and Problems Corrected in V7.0-1 This section provides highlights of changes and problems corrected in Fortran Run-Time Library V7.0-1. Many of these corrections were previously included in the Run-Time Library kit provided with DEC Fortran 90 V2.0. o Conversion of text to internal format failed to notice overflow. o List-directed IO to internal file lacked leading blank. o INQUIRE across network fails. o INQUIRE on NL: gives internal consistency failure. o INQUIRE returns wrong CONVERT= values. o BIG_ENDIAN processing of INTEGER*1/LOGICAL*1 gives wrong results. o BIG_ENDIAN processing of VAX types lacks byte swap on IEEE type. o VAXD/VAXG conversion of REAL*16 used IEEE_X rather than VAX_H. o INTEGER*2 -1 record key value handled incorrectly. o IEEE exception handling corrections. o Run-time format syntax error results in internal error. o Spurious characters in long output record. o List-directed & G format now correctly format rounded values during output conversion o Access violation/segmentation fault with VFE. o Backspace fails if rectyp=stream/lf/cr. o Internal write with overlap produced unexpected results. o BLOCKSIZE in OPEN not reflected in RAB$B_MBC field. o Unformatted write access violates if psect=solitary. o ENDDURREA with list-direct read of defaulted value at eor. o Negative unit number gives INQUIRE and OPEN problems. o MVBITS doesn't cross word/longword boundary. 1-6 Fortran Run-Time Library Version V7.1-427 Release Notes o List-directed input cannot read complex value into real variable. o Q edit descriptor should be ignored with output. o INQUIRE NAME differs from VAX for non-existent file. o Minor rounding changes per Fortran 90 standard. o Performance improvement of unformatted, contiguous, direct I/O. o Array bounds of run-time format are now ignored. o Support for ISNAN and FP_CLASS intrinsic functions. o Support for /CHECK=(OUTPUT_CONVERSION,FORMAT) o Colon (":") format operator now works with zero implied iterations. o Read w/INTEGER*2 key to remote file gives erroneous INVKEYSPE. o I/O performance has been improved for unformatted I/O of arrays. o Several minor problems with REAL*16 data have been corrected. o Full IEEE exception handling has been improved. o COMPLEX values displayed by list-directed and NAMELIST writes used to begin a new record after the embedded "," if the REAL part would fit in the current record but the entire value would not. This has been fixed so that the entire value will be displayed in the next record if the entire value won't fit in this record. o Attempting to input -2**31 during a list-directed READ generated an "input conversion" error. o Double precision (T-floating) values are now formatted slightly differently when written with list-directed output. The exponent field has been increased from 2 to 3 characters, and the fraction field has been decreased by one character. o Unformatted, sequential read erroneously looks for ENDFILE marker. Fortran Run-Time Library Version V7.1-427 Release Notes 1-7 The non-VMS ENDFILE behavior has been changed so that files containing an ENDFILE record are now portable between AXP/VMS and non-VMS platforms. In "VMS mode", an ENDFILE statement will write a record containing a single ^Z-never a ^D, and never in a segment. This is what DEC Fortran on OpenVMS VAX does. This is the default on OpenVMS Alpha and the behavior on U*x if you use -vms. In "U*x mode", an ENDFILE statement will truncate the file. This is the default on U*x, and the behavior on OpenVMS Alpha if you use /NOVMS. For those customers that have old segmented files with old-style ENDFILE records in them, they will have to convert their files before the RTL can read the ENDFILE records. o A $ format descriptor at the beginning of the FORMAT no longer gets an INVARGFOR error. o Namelist input of a 'T' or an 'F' where CHARACTER data was expected no longer aborts the execution. o The FORTRAN RTL did not output the secondary RMS status value for some RMS errors. o The FORTRAN RTL would output a extra blank line when the last item was a zero trip implied do-loop (eg.; with n=1,0,"zero elements"). o The FORTRAN RTL would leave the NAM$L_RSA left pointing at a stale stack temporary which did not allow users to get the value directly from the NAM block. o The FORTRAN RTL PAUSE didn't allow the debug command. o Indexed organization files with a maximum record size(MRS) of 0 would incorrectly produce the IMPRECTOO or OUTSTAOVE error message. o The DEC FORTRAN RTL would give a different IOSTAT value from the VAX FORTRAN RTL for VFE values which are out of range. o The DEC FORTRAN RTL VFE behavior no longer differs from the VAX FORTRAN RTL behavior in terms of at what time during processing of an I/O list the VFE is evaluated. 1-8 Fortran Run-Time Library Version V7.1-427 Release Notes o The FORTRAN RTL incorrectly recognized repeated null values for list-directed I/O. o The FORTRAN RTL incorrectly produced a bugheck error when given an invalid file specification. o The FORTRAN RTL incorrectly produced an input conversion error (INPCONERR) for some small integer conversions. o The RTL now correctly checks the range of VFE values. Previously, certain out-of-range values could cause unpredictable results. o The RTL now correctly handles keyed READ statements where multiple records are to be read. Fortran Run-Time Library Version V7.1-427 Release Notes 1-9