Compaq Software Product Description ___________________________________________________________________ PRODUCT NAME: Compaq Fortran Version 7.2 for OpenVMS Alpha Systems SPD 56.18.07 Compaq Software Product Description ___________________________________________________________________ PRODUCT NAME: Compaq Fortran Version 7.2 for OpenVMS Alpha Systems SPD 56.18.07 DESCRIPTION This is the Software Product Description (SPD) for Compaq Fortran Version 7.2 for OpenVMS[TM] Alpha Systems. Compaq Fortran contains both the Compaq Fortran 90 Version 7.2 software and the Compaq Fortran 77 Version 7.2 software. The following description refers to Compaq Fortran unless a specific reference to the 90 or 77 product is needed to distinguish between the two software products. Compaq Fortran is an implementation of the Fortran programming language that supports the FORTRAN 66, FORTRAN 77 and Fortran 90 standards. Compaq Fortran 77 fully supports the following standards: o FORTRAN 66 (ANSI X3.9-1966) o FORTRAN 77 (ANSI X3.9-1978) o ISO 1539-1980(E) o MIL-STD-1753 April 1999 o FIPS-69-1 (Compaq Fortran meets the requirements of this standard 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 Standard.) Compaq Fortran 90 supports all of the standards that Compaq Fortran 77 supports plus the following new standards: o Fortran 90 (ANSI X3.198-1992) o ISO 1539-1991(E) o ISO 1539-1995(E) Compaq Fortran supports extensions to the ISO and ANSI standards, including a number of extensions defined by Compaq Fortran for the various Compaq Fortran platforms (operating system/architecture pairs). In addition to OpenVMS Alpha systems, Compaq Fortran platforms include: o Compaq Visual Fortran for Intel[R] systems under Windows NT[TM] and Windows[R] 95[R] and for Alpha systems under Windows NT o Compaq Fortran 90 and Compaq Fortran 77 on Compaq Tru64 UNIX[R] (formerly DEC OSF/1[R]) Alpha systems o Compaq Fortran 77 on OpenVMS VAX[TM] systems Major additions to the FORTRAN 77 standard introduced by the Fortran 90 standard include: o Array operations o Improved facilities for numeric computation o Parameterized intrinsic data types o User-defined data types o Facilities for modular data and procedure definitions o Pointers o The concept of language evolution 2 o Support for DATE_AND_TIME intrinsic for obtaining dates using a four-digit year format Compaq Fortran includes the following features and enhancements in both Compaq Fortran 90 and Compaq Fortran 77: o Support for shareable images which use 64-bit static space o Support for providing cross-reference information to the DEC Source Code Analyzer component of DECset for OpenVMS o Support for linking against static and shared libraries o Support for creating sharable code to be put into a shared library o Support for stack-based storage o Support for dynamic memory allocation o Support for reading and writing binary data files in nonnative formats, including IEEE[R] (little-endian and big-endian), VAX, IBM[R] System\360, and CRAY[R] integer and floating point formats o User control over IEEE floating point exception handling, reporting and resulting values o Control for memory boundary alignment of items in COMMON and fields in structures and warnings for misaligned data o Directives to control listing page titles and subtitles, object file identification field, COMMON and record field alignment, and some attributes of COMMON blocks o Composite data declarations using STRUCTURE, END STRUCTURE, and RECORD statements, and access to record components through field refer- ences o Explicit specification of storage allocation units for data types such as: INTEGER*4 LOGICAL*4 REAL*4 REAL*8 3 COMPLEX*8 o Support for 64-bit signed integers using INTEGER*8 and LOGICAL*8 o Support for 128-bit floating point reals using REAL*16 o A set of data types: - BYTE - LOGICAL*1, LOGICAL*2, LOGICAL*4, LOGICAL*8 - INTEGER*1, INTEGER*2, INTEGER*4, INTEGER*8 - REAL*4, REAL*8, REAL*16 - COMPLEX*8, COMPLEX*16, DOUBLE COMPLEX - POINTER (CRAY style) o Data statement style initialization in type declaration statements o AUTOMATIC and STATIC statements o Bit constants to initialize LOGICAL, REAL, and INTEGER values and participate in arithmetic and logical expressions o Built-in functions %LOC, %REF, %VAL, and %DESCR o VOLATILE statement o Bit manipulation functions o Binary, hexadecimal, and octal constants and Z and O format edit descriptors applicable to all data types o I/O unit numbers that can be any nonnegative INTEGER*4 value o Variable amounts of data can be read from and written to "STREAM" files, which contain no record delimiters o ENCODE and DECODE statements o ACCEPT, TYPE, and REWRITE input/output statements o DEFINE FILE, UNLOCK, and DELETE statements o USEROPEN subroutine invocation at file OPEN time 4 o Debug statements in source o Generation of a source listing file with optional machine code representation of the executable source o Variable format expressions in a FORMAT statement o Optional run-time bounds checking of array subscripts and charac- ter substrings o 31-character identifiers that can include dollar sign ($) and underscore (_) o Support for executing in-line assembler code using the ASM intrinsics o Support for the supercomputer intrinsics POPCNT, POPPAR, LEADZ, TRAILZ, and MULT_HIGH o Language elements that support the various extended range and extended precision floating point architectural features: - 32-bit VAX F_floating data type, with an 8-bit exponent and 24-bit mantissa, which provides a range of 0.293873588E-38 to 1.7014117E38 and a precision of typically 7 decimal digits - 64-bit VAX D_floating data type, with an 8-bit exponent and 56-bit mantissa, which provides a range of 0.2938735877055719D-38 to 1.70141183460469229D38 and a precision of typically 16 dec- imal digits. Calculations with D_floating data on Alpha systems use G_floating precision (53-bit instead of 56-bit mantissa) - 64-bit VAX G_floating data type, with an 11-bit exponent and 53-bit mantissa, which provides a range of 0.5562684646268004D-308 to 0.89884656743115785407D308 and a precision of typically 15 decimal digits - 32-bit IEEE S_floating data type, with an 8-bit exponent and 24-bit mantissa, which provides a range of 1.17549435E-38 (normal- ized) to 3.40282347E38 (the IEEE denormalized limit is 1.40129846E- 45) and a precision of typically 7 decimal digits 5 - 64-bit IEEE T_floating data type, with an 11-bit exponent and 53-bit mantissa, which provides a range of 2.2250738585072013D- 308 (normalized) to 1.7976931348623158D308 (the IEEE denormal- ized limit is 4.94065645841246544D-324) and a precision of typically 15 decimal digits - 128-bit IEEE extended Alpha X_floating data type, with a 15-bit exponent and a 113-bit mantissa, which provides a range of ap- proximately 6.48Q-4966 to 1.18Q4932 and a precision of typically 33 decimal digits o The following combinations of floating types may be specified: - F, G and X (the default) - F, D and X - S, T and X o Command line control for: - The size of default INTEGER, REAL, and DOUBLE PRECISION data items - The levels and types of optimization to be applied to the program - The directories to search for INCLUDE files - Inclusion or suppression of various compile-time warnings - Inclusion or suppression of run-time checking for various I/O and computational errors - Control over whether compilation terminates after a specific number of errors has been found - Choosing whether executing code will be thread-reentrant Compaq Fortran takes advantage of OpenVMS facilities to include the following features and enhancements in both Compaq Fortran 90 and Compaq Fortran 77: o Language elements for keyed and sequential access to OpenVMS RMS indexed organization files 6 o The ability to specify an OpenVMS text library module in an INCLUDE statement o Support for calls to OpenVMS system service and Run-Time Library procedures o Generation of symbol tables for the OpenVMS Symbolic Debugger o LIB$ESTABLISH and LIB$REVERT are provided as intrinsic functions for compatibility with Compaq Fortran exception handling o Support for providing error diagnostics to the DEC Language-Sensitive Editor component of DECset for OpenVMS Compaq Fortran 90 includes the following features and enhancements: o Internal procedures can be passed as actual arguments to procedures o Kind types for all of the hardware-supported data types: - For 1-, 2-, 4-, and 8-byte LOGICAL data: LOGICAL (KIND=1), LOGICAL (KIND=2), LOGICAL (KIND=4), LOGICAL (KIND=8) - For 1-, 2-, 4-, and 8-byte INTEGER data: INTEGER (KIND=1) INTEGER (KIND=2) INTEGER (KIND=4), INTEGER (KIND=8) - For 4-, 8-, and 16-byte REAL data: REAL (KIND=4) REAL (KIND=8) REAL (KIND=16) 7 - For single precision and double precision COMPLEX data: COMPLEX (KIND=4) COMPLEX (KIND=8) o Full support for the Fortran 95 standard, including the following features: - FORALL statement and construct (implemented prior to V7.1) - Automatic deallocation of ALLOCATABLE arrays (implemented prior to V7.1) - Dim argument to MAXLOC and MINLOC (implemented prior to V7.1) - PURE user-defined subprograms (implemented prior to V7.1) - ELEMETAL user-defined subprograms (a restricted form of a pure procedure) - Pointer initialization (initial value) - The NULL intrinsic to nullify a pointer - Derived-type structure initialization - CPU_TIME intrinsic subroutine - Kind argument to CEILING and FLOOR intrinsics - Nested WHERE constructs, masked ELSEWHERE statement, and named WHERE constructs - Comments allowed in namelist input - Generic identifier in END INTERFACE statements - Minimal width field editing using a numeric edit descriptor with 0 width - Detection of Obsolescent and/or Deleted features listed in the Fortran 95 standard. Compaq Fortran flags these obsolescent and deleted features, but fully supports them. 8 o The following features found in DIGITAL Visual Fortran: - # Constants-constants using other than base 10 - C Strings-NULL terminated strings - Conditional Compilation And Metacommand Expressions ($define, $undefine, $if, $elseif, $else, $endif) - $FREEFORM, $NOFREEFORM, $FIXEDFORM-source file format - $INTEGER, $REAL-selects size - $FIXEDFORMLINESIZE-line length for fixed form source - $STRICT, $NOSTRICT-F90 conformance - $PACK-structure packing - $ATTRIBUTES ALIAS-external name for a subprogram or common block - $ATTRIBUTES C, STDCALL-calling and naming conventions - $ATTRIBUTES VALUE, REFERENCE-calling conventions - \ Descriptor-prevents writing an end-of-record mark - Ew.dDe and Gw.dDe Edit Descriptors-similar to Ew.dEe and Gw.dEe - 7200 Character Statement Length - Free form infinite line length - $DECLARE and $NODECLARE == IMPLICIT NONE - $ATTRIBUTES EXTERN-variable allocated in another source file - $ATTRIBUTES VARYING-variable number of arguments - $ATTRIBUTES ALLOCATABLE-allocatable array - Mixing Subroutines/Functions in Generic Interfaces - $MESSAGE-output message during compilation - $LINE == C's #line - INT1 converts to one byte integer by truncating - INT2 converts to two byte integer by truncating 9 - INT4 converts to four byte integer by truncating - COTAN returns cotangent - DCOTAN returns double precision cotangent - IMAG returns the imaginary part of complex number - IBCHNG reverses value of bit - ISHA shifts arithmetically left or right - ISHC performs a circular shift - ISHL shifts logically left or right Compaq Fortran 77 contains the following extensions to the FORTRAN 77 standard: o Support for recursive subprograms o IMPLICIT NONE statements o INCLUDE statement o NAMELIST-directed I/O o DO WHILE and ENDDO statements o Use of exclamation point (!) for end of line comments o Generation of Cross Reference Listings o Support for NTT Technical Requirement TR550001, Multivendor Integration Architecture (MIA) Version 1.1, Division 2, Part 3-2, Programming Language FORTRAN o Support for automatic arrays o Support for the following SELECT CASE - CASE - CASE DEFAULT - END SELECT statements. o Support for the EXIT and CYCLE statements and for construct names on DO - END DO statements o Reporting of unused and uninitialized variables 10 o Support for DATE_AND_TIME intrinsic for obtaining dates using a four-digit year format Compaq Fortran 77 takes advantage of OpenVMS facilities to include the following features and enhancements: o Support for translation of CDD/Repository records into Fortran records o Support for the extraction of program design information in com- ments using the DEC Source Code Analyzer component of DECset for OpenVMS Compaq Fortran provides a multiphase optimizer that is capable of per- forming optimizations across entire programs. Specific optimizations performed by both Compaq Fortran 90 and Compaq Fortran 77 include: o Constant folding o Optimizations of arithmetic IF, logical IF, and block IF-THEN-ELSE o Global common subexpression elimination o Removal of invariant expressions from loops o Global allocation of general registers across program units o In-line expansion of statement functions and routines o Optimization of array addressing in loops o Value propagation o Deletion of redundant and unreachable code o Loop unrolling o Thorough dependence analysis o Software pipelining to rearrange instructions between different unrolled loop iterations o Optimized interface to intrinsic functions 11 o Loop transformation optimizations that apply to array references within loops, including: - Loop blocking - Loop distribution - Loop fusion - Loop interchange - Loop scalar replacement - Outer loop unrolling Specific optimizations performed by Compaq Fortran 90 include: o Array temporary elimination Both Compaq Fortran 90 and Compaq Fortran 77 are shareable, re-entrant compilers that operate under the OpenVMS operating system. They glob- ally optimize source programs while taking advantage of the native instruction set and the OpenVMS virtual memory system. Run-Time Library Redistribution: The Compaq Fortran kit may include updated Run-Time Library shareable images. Compaq grants the user a nonexclusive royalty-free world-wide right to reproduce and distribute the executable version of the Run-Time Library ("RTLs"), provided that the user does all of the following: o Distributes the RTLs only in conjunction with and as a part of the user's software application product that is designed to operate in the OpenVMS environment. o Does not use the name, logo, or trademarks of Compaq or Digital to market the user's software application product. o Includes the copyright notice of Digital for Compaq Fortran on the user's product disk label and/or on the title page of the documen- tation for software application product. 12 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 product. Except as expressly provided herein, Compaq grants no implied or ex- press license under any of its patents, copyrights, trade secrets, trademarks, or any license or other proprietary interests and rights. The RTL image is designated as DEC$FORRTL.EXE and is also provided with the name FOR$DEC$FORRTL.EXE. Compaq Fortran may include a separate installation kit for the purpose of installing the Compaq Fortran Run-Time Library. This kit, installable with the POLYCENTER Software Installation Utility (a component of OpenVMS), must be used to install the RTL image on other systems. HARDWARE REQUIREMENTS Processors Supported: Any Alpha system that is capable of running OpenVMS Alpha Version 7.1 or later. ___________________________________________________________________ Table_1:_Disk_Space_Requirements_(Block_Cluster_Size_=_1)__________ TASK____________SIZE_______________________________________________ Installation: 40,000 blocks (20.0 MB) Permanent:______40,000_blocks_(20.0_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. 13 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 Soft- ware Product Description (SPD 42.18.xx) and include CI, Ethernet, DSSI, FDDI, SCSI and Mixed Interconnect configurations. SOFTWARE REQUIREMENTS For All Systems Using Terminals (No DECwindows Interface): o OpenVMS Alpha Operating System V7.1-V7.2 For All Workstations Running DECwindows: o OpenVMS Alpha Operating System V7.1-V7.2 OpenVMS Optional Components The OpenVMS Alpha operating system can be configured to include or omit certain components. Compaq Fortran requires the following components to be included: o Programming Support o Utilities The default for OpenVMS Alpha installation is to include all components. OPTIONAL SOFTWARE REQUIREMENTS o DECset V11.1-V12.3 for OpenVMS Alpha o KAP Fortran V3.2 for OpenVMS Alpha 14 o Digital Extended Math Library V2.9 for OpenVMS Alpha o CDD/Repository V5.3 for OpenVMS Alpha 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 This product is available on the Compaq CD-ROM Software Library for OpenVMS Alpha (QA-03XAA-H8). Documentation in hardcopy format can be ordered separately. ORDERING INFORMATION Software Licenses: Unlimited System Use: QL-MV1A*-AA Concurrent Use: QL-100AA-3B Concurrent 5 Pack: QL-100AA-3C Concurrent 10 Pack: QL-100AA-3D Software Documentation: Compaq Fortran 90 Documentation: QA-MV1AA-GZ Compaq Fortran 77 Documentation: QA-MV1AB-GZ Software Product Services: QT-MV1*-** * Denotes variant fields. For additional information on available li- censes, services, and media, refer to the appropriate price book. 15 SOFTWARE LICENSING This software is furnished only under license. For more information about licensing terms and policies of Compaq, contact your local Compaq office. LICENSE MANAGEMENT FACILITY SUPPORT Compaq Fortran supports the License Management Facility of Compaq. License units for Compaq Fortran are allocated on an Unlimited System Use plus Concurrent Use basis. Each Concurrent Use license allows any one individual at a time to use the layered product. SOFTWARE PRODUCT SERVICES A variety of service options are available from Compaq. For more in- formation, contact your local Compaq office. 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. 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 be- tween the twentieth and the twenty-first centuries, and the years 1999 and 2000, including leap year calculations, when used in accordance 16 with the associated product documentation and provided that all hard- ware, firmware and software used in combination with such products prop- erly exchange accurate date data with the products. For additional in- formation visit the DIGITAL Brand area on Compaq's Year 2000 Ready web site located at http://www.compaq.com/year2000/warranties3.html. TRADEMARK INFORAMTION Compaq, the COMPAQ logo, DEC, DECnet, DIGITAL, VAX, and VMS are reg- istered in the U.S. Patent and Trademark Office. CI, DEC Fortran, DECset, CDD/Repository, ULTRIX, DECwindows, and Dig- ital are trademarks of Digital Equipment Corporation. [R] CRAY is a registered trademark of Cray Research, Inc. [R] IBM is a registered trademark of International Business Ma- chines Corporation. [R] IEEE is a registered trademark of the Institute of Electrical and Electronics Engineers, Inc. [R] Motif is a registered trademark of Open Software Foundation, Inc. [R] OSF and OSF/1 are registered trademarks of Open Software Foundation, Inc. [R] UNIX is a registered trademark in the United States and other countries licensed exclusively through X/Open Company Ltd. [TM] Windows NT, NT, and Windows are trademarks of Microsoft Cor- poration. © 1999 Digital Equipment Corporation. All rights reserved. 17