     	  Software   Product  Description  D  ___________________________________________________________________  D  PRODUCT NAME:  DEC Fortran for OpenVMS                 SPD 25.16.41  !  This SPD describes two products:   3  o  DEC Fortran Version 6.0 for OpenVMS VAX Systems   3  o  DEC Fortran Version 6.0 for OpenVMS AXP Systems   H  The general description section describes features common to both prod-E  ucts. The differences in product functionality are indicated in sep-   arate sections that follow.    DESCRIPTION  G  DEC Fortran is an implementation of full language FORTRAN-77, conform- G  ing to American National Standard FORTRAN, ANSI X3.9-1978. It includes H  optional support for programs conforming to the previous standard, ANSIF  X3.9-1966. DEC Fortran meets the Federal Information Processing Stan-D  dard Publication (FIPS-69-1) requirements by conforming to the ANSIE  Standard and by including a flagger. The flagger optionally produces E  diagnostic messages for compile-time elements that do not conform to F  the Full-Level ANSI FORTRAN X3.9-1978 Standard. DEC Fortran also con-D  forms to the International Standard ISO 1539-1980(E) and to MIL-STD  1753.  F  DEC Fortran includes the following enhancements to the ANSI standard:  H  o  Directives to control listing page titles and subtitles, object file?     identification field, and some attributes of common blocks.   J  o  Composite data declarations using STRUCTURE, END STRUCTURE, and RECORDD     statements, and access to record components through field refer-
     ences.  D                                DIGITAL                 February 1993  D                                                          AE-PVWKA-TE       K  o  A set of data types beyond those specified by full language FORTRAN-77:        -  BYTE        -  LOGICAL*1 and LOGICAL*2       -  INTEGER*1 and INTEGER*2  $     -  COMPLEX*16 and DOUBLE COMPLEX  E  o  Explicit specification of storage allocation units for data types      (e.g., REAL*8, INTEGER*4).  7  o  Data initialization in type declaration statements.   &  o  Support for recursive subprograms.  $  o  Support for stack-based storage.  H  o  Support for reading and writing binary data files in non-native for-     mats using unformatted I/O.     o  IMPLICIT NONE statements.     o  INCLUDE statement.    o  AUTOMATIC statement.    o  STATIC statement.     o  NAMELIST-directed I/O.  E  o  31-character identifiers that can include dollar sign ($) and un-      derscore (_).   "  o  DO WHILE and ENDDO statements.  B  o  Bit constants to initialize LOGICAL, REAL, and INTEGER values.  >  o  Use of the exclamation point (!) for end of line comments.  4  o  Built-in functions %DESCR, %LOC, %REF, and %VAL.    o  VOLATILE statement.     o  Bit manipulation functions.   #                                   2        E  o  Hexadecimal and octal constants, and Z and O format edit descrip- &     tors applicable to all data types.  !  o  ENCODE and DECODE statements.   ,  o  ACCEPT and TYPE input/output statements.    o  DEFINE FILE statement.  5  o  USEROPEN subroutine invocation at file OPEN time.   D  o  Language elements for keyed and sequential access to OpenVMS RMS     indexed organization files.     o  Debug statements in source.   B  Each Fortran compiler supports the following additional features:  G  o  Generation of a source listing file with optional machine code rep- )     resentation of the executable source.   ;  o  Support for calls to OpenVMS system service procedures.   !  o  Generation of shareable code.   B  o  Generation of symbol tables for the OpenVMS Symbolic Debugger.  +  o  Generation of Cross Reference Listings.   E  o  Support for providing error diagnostics to the Language-Sensitive G     Editor component and cross-reference information to the Source Code -     Analyzer component of DECset for OpenVMS.   E  Each Fortran compiler provides a multi-phase optimizer that is capa- =  ble of performing optimizations across entire program units.   *  Specific optimizations performed include:    o  Constant folding.   G  o  Optimizations of arithmetic IF, logical IF, and block IF-THEN-ELSE.   ,  o  Global common subexpression elimination.  -  o  In-line expansion of statement functions.   0  o  Removal of invariant expressions from loops.  #                                   3        .  o  Optimization of array addressing in loops.    o  Value propagation.  /  o  Deletion of redundant and unreachable code.   D  The shareable, re-entrant compiler operates under the OpenVMS oper-E  ating system. It globally optimizes source programs while taking ad- E  vantage of the native instruction set and the OpenVMS virtual memory   system.  -  DEC Fortran for OpenVMS VAX Special Features   F  DEC Fortran includes the following enhancements to the ANSI standard:    o  REAL*16 data types.   D  o  Directives to support parallel decomposition of DO-loops on mul-$     tiprocessor OpenVMS VAX systems.  F  o  Language elements that support the VAX extended range and extended4     precision floating point architectural features:  F     -  64-bit G_floating data type, with an 11-bit exponent and 53-bitH        mantissa, which provides a range of 0.56*10**-308 to 0.09*10**308,        and a precision of 15 decimal digits.  F     -  128-bit H_floating data type, with a 15-bit exponent and a 113-N        bit mantissa, which provides a range of 0.84*10**-4932 to 0.59*10**4932,        and a precision of 33 decimal digits.  H  DEC Fortran for OpenVMS VAX supports the following additional features:  D  o  The /ERROR_LIMIT qualifier to control whether compilation termi-<     nates after a specified number of errors has been found.  F  o  Generation of optional diagnostic messages for extensions not sup-<     ported by Digital's ULTRIX and VAXELN operating systems.  )  o  Reporting of uninitialized variables.   E  o  The ability to provide diagnostics for language features not sup- 1     ported by DEC Fortran on Alpha AXP platforms.   #                                   4        O  o  Support for translation of CDD/Repository (refers to VAX CDD, VAX CDD/Plus, 5     and CDD/Repository) records into Fortran records.   3  o  Up to 255 actual arguments in a CALL statement.   1  o  Up to 508 named COMMON blocks per subprogram.   E  o  Support for low-level program design, including the processing of F     pseudocode and the extraction of design information from comments.  E  o  Support for NTT Technical Requirement TR550001, Multivendor Inte- F     gration Architecture (MIA) Version 1.1, Division 2, Part 3-2, Pro-     gramming Language Fortran.  E  DEC Fortran for OpenVMS VAX has additional features that support de- D  veloping applications that take advantage of the VAX vector proces-$  sors or multiprocessor VAX systems.  D  An ASSERT statement provides additional information to the compilerE  about the program. The ASSERT statement can be used in some programs D  to achieve a high degree of vectorization and/or automatic decompo-D  sition. The ASSERT statement can optionally generate code to verifyG  the assertions at run-time, if desired. ASSERT statements can be spec- E  ified in directive form for portability and will be ignored by other .  compilers since they will appear as comments.  H  The INIT_DEP_FWD directive allows vector processing for many loops thatF  would otherwise not qualify due to unknown data dependencies. As thisH  directive may change the meaning of the program, Digital Equipment Cor-F  poration does not warrant execution results conforming to the Fortran&  standard when this directive is used.  E  Vector and multiprocessor features supported by DEC Fortran on Open-   VMS VAX include:   D  o  Directives to support parallel decomposition of DO-loops on mul-#     tiprocessor OpenVMS VAX systems   E  o  Support for automatic generation of vector-processor instructions   F  o  Support for automatic decomposition of programs to improve perfor-3     mance on multiple-processor OpenVMS VAX systems   #                                   5        G  o  The NOVECTOR directive to allow the programmer to control the pres- <     ence and level of vectorization in each nest of DO-loops  E  o  The /MATH_LIBRARY qualifier to support performance optimized vec-      tor math functions  F  o  The /CHECK=ALIGNMENT qualifier to suppress vector alignment excep-     tions at run-time   :  o  Generation of diagnostics for vectorization inhibitors  D     -  Though some vector inhibition diagnostics will display in theE        listing and on the terminal, the VAX Language-Sensitive Editor E        component of the VAX Language-Sensitive Editor/Source Code An- D        alyzer is required to display all the vector inhibition diag-)        nostics generated by the compiler.   D  o  Vectorization of DO loops with both INTEGER*4 and INTEGER*2 loop     control variables   E  o  Vectorization of most intrinsic mathematic functions for operands A     of INTEGER*4, REAL*4, REAL*8, COMPLEX*8, and COMPLEX*16 types   B  o  Automatic transformations for vectorizing difficult constructs  /  o  Multi-level vectorization and decomposition   9  o  Loop summary listing for viewing optimization results   D  DEC Fortran for OpenVMS VAX is capable of performing additional op-
  timizations:   F  o  Optimized vector code generation for solving dense systems of lin-     ear equations      o  Thorough dependence analysis  F  o  Compile-time performance analysis to choose the best vectorization     and/or decomposition method   2  o  Integration of vector and scalar optimizations  G  o  Specially optimized scalar code for routines that process large ar- F     rays which can significantly reduce page faults and improve appli-     cation performance  #                                   6        G  o  Improved generated code for references to dummy arguments and vari-      ables in COMMON   F  o  Improved generated code for operations involving COMPLEX variables  3  o  Improved generated code for intrinsic functions   -  DEC Fortran for OpenVMS AXP Special Features   G  DEC Fortran for OpenVMS AXP includes the following enhancements to the   ANSI standard:   *  o  Support for dynamic memory allocation.  K  o  A set of data types beyond those specified by full language FORTRAN-77:        -  LOGICAL*8       -  INTEGER*8       -  POINTER (CRAY style)  =  o  I/O unit numbers can be any non-negative INTEGER*4 value.   D  o  LIB$ESTABLISH and LIB$REVERT are provided as intrinsic functions:     for compatibility with DEC Fortran exception handling.  D  DEC Fortran for OpenVMS AXP is capable of performing additional op-$  timizations across entire programs:  ;  o  Global allocation of general registers across programs.   "  o  In-line expansion of routines.    o  Loop unrolling.     HARDWARE REQUIREMENTS  D  Processor and/or hardware configurations as specified in the System#  Support Addendum (SSA 25.16.41-x).   #                                   7          SOFTWARE REQUIREMENTS    For Alpha AXP Systems:   ;  For All Systems Using Terminals (No DECwindows Interface):      o  OpenVMS AXP Operating System  )  For All Workstations Running DECwindows:      o  OpenVMS AXP Operating System  5  For All Workstations Running DECwindows Using Motif   $  o  OpenVMS AXP Operating System and  $  o  DECwindows Motif for OpenVMS AXP    For VAX Systems:   ;  For All Systems Using Terminals (No DECwindows Interface):      o  OpenVMS VAX Operating System  "  For VAX Workstations Running VWS:     o  OpenVMS VAX Operating System  $  o  OpenVMS VAX Workstation Software  )  For All Workstations Running DECwindows:   E  o  OpenVMS VAX Operating System (and necessary components of OpenVMS      DECwindows)   5  For All Workstations Running DECwindows Using Motif   $  o  OpenVMS VAX Operating System and  $  o  DECwindows Motif for OpenVMS VAX  E  Refer to the System Support Addendum (SSA 25.16.41-x) for availabil- =  ity and required versions of prerequisite/optional software.   #                                   8          ORDERING INFORMATION   (  DEC Fortran Version 6.0 for OpenVMS VAX    Software Licenses     Personal Use: QL-100AA-2B %     Unlimited System Use: QL-100A*-**   Software Media: QA-100A*-**$  Software Documentation: QA-100AA-GZ'  Software Product Services: QT-100A*-**   (  DEC Fortran Version 6.0 for OpenVMS AXP    Software Licenses     Personal Use: QL-100AA-2B %     Unlimited System Use: QL-MV1A*-** *  Software Media/Documentation: QA-03XAA-H8/  Software Documentation (hardcopy): QA-MV1AA-GZ '  Software Product Services: QT-MV1A*-**   G  *  Denotes variant fields. For additional information on available li- E     censes, services, and media, refer to the appropriate price book.     SOFTWARE LICENSING   E  This software is furnished under the licensing provisions of Digital D  Equipment Corporation's Standard Terms and Conditions. For more in-E  formation about Digital's licensing terms and policies, contact your   local Digital office.  $  License Management Facility Support  D  This layered product supports the OpenVMS License Management Facil-  ity.   D  License units for this product are allocated on an Unlimited SystemH  Use plus Personal Use basis. Each Personal Use license allows one iden-.  tified individual to use the layered product.    #                                   9        F  For more information on the License Management Facility, refer to theE  appropriate Operating System's Software Product Description (SPD) or   documentation.     SOFTWARE PRODUCT SERVICES  F  A variety of service options are available from Digital. For more in-.  formation, contact your local Digital office.    SOFTWARE WARRANTY  H  Warranty for this software product is provided by Digital with the pur-G  chase of a license for the product as defined in the Software Warranty   Addendum of this SPD.         @    Motif is a registered trademark of Open Software Foundation,     Inc.  9    CRAY is a registered trademark of Cray Research, Inc.   @  [TM]The DIGITAL Logo, Alpha AXP, AXP, CDD/Plus, CDD/Repository,@     CI, DEC, DEC Fortran, DECset, DECwindows, Digital, MicroVAX,C     OpenVMS, TK, ULTRIX, VAX, VAXcluster, VAXELN, VAXft, VAXserver, B     VAXstation, and VMS are trademarks of Digital Equipment Corpo-     ration.                         #                                  10 