Software Product Description Compaq PRODUCT NAME: Compaq Fortran 77 for OpenVMS VAX Systems SPD 25.16.51 ___________________________________________________________________ PRODUCT NAME: Compaq Fortran 77 for OpenVMS VAX Systems SPD 25.16.51 DESCRIPTION Compaq Fortran 77 is an implementation of full language FORTRAN-77, conforming to American National Standard FORTRAN, ANSI X3.9-1978. It includes optional support for programs conforming to the previous standard, ANSI X3.9-1966. Compaq Fortran 77 meets the Federal Information Processing Standard Publication (FIPS-69-1) requirements by conforming to the ANSI Standard and by including a flagger. The flagger optionally produces diagnostic messages for compile-time elements that do not conform to the Full-Level ANSI FORTRAN X3.9-1978 Standard. Compaq Fortran 77 also conforms to the International Standard ISO 1539-1980(E) and to MIL-STD 1753. Compaq Fortran 77 includes the following language enhancements to the ANSI/ISO standard: o INCLUDE statement o Use of the exclamation point (!) for end of line comments o 31-character identifiers that can include dollar sign ($) and underscore (_) NOVEMBER 1999 o IMPLICIT NONE statement o Explicit specification of storage allocation units for data types such as LOGICAL*4, INTEGER*4, REAL*4, REAL*8, and COMPLEX*8. o A set of data types beyond those specified by full language FORTRAN-77: - 1-byte and 2-byte short integers (BYTE, INTEGER*1, INTEGER*2) - 1-byte and 2-byte short logicals (LOGICAL*1, LOGICAL*2) - Quadruple-precision real (REAL*16) - Double-precision complex (DOUBLE COMPLEX, COMPLEX*16) o Composite data declarations using STRUCTURE, END STRUCTURE, and RECORD statements, and access to record components through field references. o POINTER declaration for integer pointer variables (often called CRAY[TM] pointers) o AUTOMATIC and STATIC statements o VOLATILE statement o Data initialization in type declaration statements o Binary, octal and hexadecimal bit constants to initialize LOGICAL, REAL, and INTEGER values and participate in arithmetic and logical expressions o DO WHILE and END DO statements o Built-in functions %DESCR, %LOC, %REF, and %VAL o Bit manipulation functions o NAMELIST-directed I/O o Z and O format edit descriptors applicable to all data types o ENCODE and DECODE statements o ACCEPT, TYPE, and REWRITE input/output statements o DEFINE FILE, UNLOCK, and DELETE statements 2 o Language elements for keyed and sequential access to OpenVMS RMS indexed organization files o Debug statements in source o Directives to control listing page titles and subtitles, object file identification field, COMMON and record field alignment and some attributes of common blocks Compaq Fortran 77 includes the following features: o Support of DATE_AND_TIME intrinsic for obtaining dates using a four- digit year format o Reporting of unused and uninitialized variables o Support for recursive subprograms o Support for stack-based storage o Support for reading and writing binary data files in non-native formats, including IEEE (little-endian and big-endian), IBM[R] System\360, and CRAY[R] o USEROPEN subroutine invocation at file OPEN time o Support for NTT Technical Requirement TR550001, Multivendor Inte- gration Architecture (MIA) Version 1.1, Division 2, Part 3-2, Programming Language Fortran o Generation of a source listing file with optional machine code representation of the executable source o Support for calls to OpenVMS system service procedures o Generation of shareable code o Generation of symbol tables for the OpenVMS Symbolic Debugger o Generation of Cross Reference Listings o Support for providing error diagnostics to the DEC Language-Sensitive Editor component and cross-reference information to the DEC Source Code Analyzer component of DECset for OpenVMS 3 o Support for low-level program design, including the processing of pseudocode and the extraction of design information from comments when used in conjunction with DECset. o Support for translation of Oracle CDD/Repository[TM] records into Fortran STRUCTURE declarations o Generation of optional diagnostic messages for extensions not supported by Compaq's ULTRIX and VAXELN operating systems o The ability to provide diagnostics for language features not supported by Compaq Fortran on Alpha platforms. o Suport for up to 255 actual arguments in a CALL statement o Support for up to 508 named COMMON blocks per subprogram o I/O unit numbers can be any integer value in the range of 0 and 119 The Compaq Fortran 77 compiler provides a multi-phase optimizer that is capable of performing optimizations across entire program units. Specific optimizations performed include: o Constant folding o Optimizations of arithmetic IF, logical IF, and block IF-THEN-ELSE o Global common subexpression elimination o In-line expansion of statement functions o Removal of invariant expressions from loops o Optimization of array addressing in loops o Value propagation o Deletion of redundant and unreachable code o Optimized interface to intrinsic functions o Improved generated code for references to dummy arguments and variables in COMMON o Improved generated code for operations involving COMPLEX variables 4 o Specially optimized scalar code for routines that process large arrays which can significantly reduce page faults and improve application performance (selectable with /OPTIMIZE=LEVEL=4) Compaq Fortran 77 for OpenVMS VAX Systems has additional features that support developing applications that take advantage of the VAX vector processors or multiprocessor VAX systems. o Support for automatic generation of VAX vector-processor instructions o Support for automatic and manual decomposition of programs to improve performance on multiple-processor OpenVMS VAX systems o Multi-level vectorization and decomposition o Vectorization of DO loops with both INTEGER*4 and INTEGER*2 loop control variables o Vectorization of many intrinsic mathematic functions for operands o Optimized vector code generation for solving dense systems of linear equations o Thorough dependence analysis o Compile-time performance analysis to choose the best vectorization and/or decomposition method o Integration of vector and scalar optimizations of INTEGER*4, REAL*4, REAL*8, COMPLEX*8, and COMPLEX*16 types o An ASSERT statement to provide additional information to the com- piler about the program. The ASSERT statement can be used in some programs to achieve a high degree of vectorization and/or automatic decomposition. The ASSERT statement can optionally generate code to verify the assertions at run time, if desired. ASSERT statements can be specified in directive form for portability and will be ig- nored by other compilers since they will appear as comments. 5 o The INIT_DEP_FWD directive allows vector processing for many loops that would otherwise not qualify due to unknown data dependencies. As this directive may change the meaning of the program, Compaq Computer Corporation does not warrant execution results conforming to the Fortran standard when this directive is used. o The NOVECTOR directive to allow the programmer to control the presence and level of vectorization in each nest of DO-loops o The /MATH_LIBRARY qualifier to support performance optimized vector math functions o The /CHECK=ALIGNMENT qualifier to suppress vector alignment exceptions at run time o Generation of diagnostics for vectorization inhibitors - Though some vector inhibition diagnostics will display in the listing and on the terminal, the DEC Language-Sensitive Editor component of the DEC Language-Sensitive Editor/DEC Source Code Analyzer is required to display all the vector inhibition di- agnostics generated by the compiler. Compaq Fortran 77 supports the following native VAX floating point data types: - 32-bit F_floating data type, with an 8-bit exponent and 23-bit man- tissa, which provides a range of approximately 0.29E-38 to 1.70E38 and a precision of typically 7 decimal digits - 64-bit D_floating data type, with an 8-bit exponent and 56-bit man- tissa, which provides a range of approximately 0.29E-38 to 1.70E38 and a precision of typically 16 decimal digits - 64-bit G_floating data type, with an 11-bit exponent and 53-bit man- tissa, which provides a range of approximately 0.56E-308 to 0.90E308 and a precision of typically 15 decimal digits - 128-bit H_floating data type, with a 15-bit exponent and a 113-bit mantissa, which provides a range of approximately 0.84E-4932 to 0.59E4932 and a precision of typically 33 decimal digits 6 The shareable, re-entrant compiler operates under the OpenVMS oper- ating system. It globally optimizes source programs while taking ad- vantage of the native instruction set and the OpenVMS virtual memory system. Run-Time Library Redistribution The Compaq Fortran 77 kit may include updated Run-Time Library share- able images. Compaq grants the user a nonexclusive royalty-free world- wide right to reproduce and distribute the executable version of the Run-Time Library (the "RTLs") provided that the user: o distributes the RTLs only in conjunction with and as a part of the user's software application product which is designed to operate in the OpenVMS environment; o does not use the name, logo, or trademarks from Digital or Compaq to market the user's software application product; o includes copyright notice from Compaq for Compaq Fortran 77 on the user's product disk label and/or on the title page of the documen- tation for software application product; and o agrees to indemnify, hold harmless, and defend Compaq from and against any claims or lawsuits, including attorney's fees, that arise or result from the use or distribution of the software application prod- uct. Except as expressly provided herein, Compaq grants no implied or express license under any of its patents, copyrights, trade secrets, trademarks, or any license or other proprietary interests and rights. The Run-Time Library image file names are FORRTL.EXE, MTHRTL.EXE, UVMTHRTL.EXE, and VMTHRTL.EXE. Three of these (MTHRTL.EXE, UVMTHRTL.EXE, and VMTHRTL.EXE) must be distributed together in order to ensure proper execution behavior. 7 HARDWARE REQUIREMENTS Processors Supported by Compaq Fortran 77 for OpenVMS VAX Systems: Any VAX system that is capable of running OpenVMS VAX Version 5.4 or higher. Processors Not Supported: MicroVAX I, VAXstation I, VAXstation 8000, VAX-11/725, VAX-11/782 Processors Restrictions: A TK50 Tape Drive is required for standalone MicroVAX 2000 and VAXstation 2000 systems. ___________________________________________________________________ Table_1:_Disk_Space_Requirements_(Block_Cluster_Size_=_1)__________ TASK________VAX____________________________________________________ Installation16,000 blocks (8.0 MB) Permanent:__11,000_blocks_(5.5_MB)_________________________________ These counts refer to the disk space required on the system disk. The sizes are approximate; actual sizes may vary depending on the user's system environment, configuration, and software options. Parallel Processing Hardware Requirements: Multiprocessor VAX systems are required for parallel execution of de- composed DO-loops. However, applications that are compiled using the Compaq Fortran 77 parallel processing options will run correctly on single-processor systems. Vector Processing Hardware Requirements: 8 Vector-processor equipped VAX systems are required for proper execu- tion of vectorized DO-loops. However, applications that are compiled using the vector-processing options will run on all VAX processors, using the VAX Vector Instruction Emulation Facility (VVIEF) that is supplied with OpenVMS. Execution using the VVIEF may be significantly slower than recompiling for scalar execution. OPTIONAL HARDWARE Compaq Fortran 77 for OpenVMS supports the optional vector processing hardware on the VAX 9000 and the VAX 6000 Model 400 and VAX 6000 Model 500 processors. Floating point intensive applications should be run on configurations with the appropriate hardware support for the floating point data types being used. Consult the base operating system Software Product Description (SPD) for the Floating Point Accelerator or other floating point hardware appropriate for your configuration. CLUSTER ENVIRONMENT This layered product is fully supported when installed on any valid and licensed VMScluster* configuration without restrictions. The HARDWARE REQUIREMENTS sections of this product's Software Product Description and System Support Addendum detail any special hardware required by this product. * VMScluster configurations are fully described in the VMScluster Software Product Description (SPD 29.78.xx) and include CI, Ethernet, SCSI and Mixed Interconnect configurations. SOFTWARE REQUIREMENTS o OpenVMS VAX Operating System V5.4 - V7.2 9 OpenVMS VAX Tailoring The following OpenVMS classes are required for full functionality of this layered product: o OpenVMS Required Saveset o Programming Support o Utilities OPTIONAL SOFTWARE o CDD/Repository* for VMS V3.0 - V5.3 Note: The reference to CDD/Repository refers to all the CDD products: VAX CDD, VAX CDD/Plus, and Oracle CDD/Repository. o DEC Language-Sensitive Editor/DEC Source Code Analyzer V3.1 - V4.6 o Digital Extended Math Library V1.0 - V2.9 for OpenVMS GROWTH CONSIDERATIONS The minimum hardware/software requirements for any future version of this product may be different from the requirements for the current version. DISTRIBUTION MEDIA 9-track 1600 BPI magnetic tape, TK50 Streaming Tape This product is also available as part of the OpenVMS Consolidated Software Distribution on CD-ROM (QA-VWJ8A-A8). The software documentation for this product is also available as part of the OpenVMS Online Documentation Library on CD-ROM. 10 ORDERING INFORMATION Compaq Fortran 77 for OpenVMS VAX Systems Software Licenses: Personal Use: QL-100AA-2B Concurrent Use: QL-100AA-3B Unlimited System Use: QL-100A*-** Software Media/Documentation: QA-100A*-** Software Documentation (Hard Copy): QA-100AA-GZ Software Product Services: QT-100A*-** * Denotes variant fields. For additional information on available licenses, services, and media, refer to the appropriate price book. SOFTWARE LICENSING This software is only furnished under a license. For more information about Compaq's licensing terms and policies, contact your local Compaq office. License Management Facility Support: This layered product supports the OpenVMS License Management Facility. License units for this product are allocated on an Unlimited System Use plus Personal Use and Concurrent Use basis. Each Personal Use license allows one identified individual to use the layered product. Each Concurrent Use license allows any one individual at a time to use the layered product. For more information on the OpenVMS License Management Facility refer to the appropriate OpenVMS Operating System SPD or documentation. 11 SOFTWARE PRODUCT SERVICES A variety of service options are available from Compaq. For more information, contact your local Compaq office. YEAR 2000 READY This product is Year 2000 Ready. Year 2000 Ready is defined: "Year 2000 Ready" products are defined by Compaq as products capable of accurately processing, providing, and /or receiving date data from, into and between the twentieth and the twenty-first centuries, and the years 1999 and 2000, including leap year calculations, when used in accordance with the associated product documentation and provided that all hardware, firmware and software used in combination with such products properly exchange accurate date data with the products. For additional information visit the DIGITAL Brand area on Compaq's Year 2000 Ready web site located at http://www.compaq.com/year2000/warranties3.html. SOFTWARE WARRANTY This software is provided by Compaq with a 90 day conformance warranty in accordance with the Compaq warranty terms applicable to the license purchase. TRADEMARK INFORMATION Compaq, the COMPAQ logo, DEC, DECnet, DIGITAL, VAX, and VMS are registered in the U.S. Patent and Trademark Office. CI, DEC Fortran, DECset, DECwindows, Digital, MicroVAX, OpenVMS, TK, ULTRIX, VAXELN, VAXft, VAXserver, VAXstation, and VMScluster, are trademarks of Digital Equipment Corporation. CRAY is a registered trademark of Cray Research, Incorporated. 12 IEEE is a registered trademark of the Institute of Electrical and Elec- tronics Engineers, Inc. Motif is a registered trademark of Open Software Foundation, Inc. IBM is a registered trademark of International Business Machines Corporation. Oracle CDD/Repository is a trademark of Oracle Corporation. 1999 Digital Equipment Corporation. All rights reserved. 13