Compaq Fortran 77 Release Notes for OpenVMS VAX Systems
 *HyperReader
  Next     Previous     Contents     Examples     Tables     Close     Help  
  2.7  Overview of Compaq Fortran 77 Version V6.0

  Compaq Fortran 77 Version V6.0 for OpenVMS VAX
  (Compaq Fortran 77) is a new, major release of the
  VAX FORTRAN product.  Its name has been changed
  to reflect the high degree of compatibility between it and

  Digital Fortran on other Digital platforms such as OpenVMS
  Alpha.  It is a compatible superset of both VAX FORTRAN
  Version 5.9 and VAX FORTRAN High-Performance Option
  (FORTRAN-HPO) Version 1.3.

  This section briefly describes the new and changed features
  of Compaq Fortran 77 Version 6.0.  For more details, refer to
  the indicated section of the Release Notes and the Compaq
  Fortran 77 documentation set as listed in   Chapter 3.

  Compaq Fortran 77 offers the following major enhancements
  and changes as compared to VAX FORTRAN-HPO Version

  1.3:

  *   Generation of reentrant (or recursion-capable) code and
      automatic (stack-based) allocation of data (  Section 2.8.9)

  *   The ability to read and write numeric data in non-native
      formats using unformatted I/O (    Section 2.8.5)

  *   An option to generate specially optimized code, which can
      significantly reduce the number of pagefaults and im-
      prove application performance, for loops which traverse
      large arrays ( Section 2.8.11)

  *   Improved generated code for references to dummy
      arguments and variables in COMMON (         Section 2.8.13)

  *   Improved generated code for operations involving

      COMPLEX variables (      Section 2.8.12)

  *   Improved generated code for intrinsic functions (
      Section 2.8.14)

  *   Vectorization of DO loops with INTEGER      *2 loop control
      variables (Section 2.8.16)

  *   Vectorization of additional intrinsic functions (AMOD,
      ATAN2,  ATAND2,  SIGN) and vectorization of

      COMPLEX intrinsic functions (     Section 2.8.14)

  *   Reporting of uninitialized variables ( Section 2.8.15)

  *   Removal of need for /CONTINUATIONS compile com-
      mand qualifier (  Section 2.8.1.2)

  *   Removal of need for /HPO compile command qualifier
      and FORTRAN-HPO Product Authorization Key (PAK) (
      Section 2.8.1.3)

  *   Change in default from /WARNINGS=ALIGNMENT to
      /WARNINGS=NOALIGNMENT (              Section 2.8.1.1)

  *   Support for the definition of the logical name FORT$LIBRARY
      as a search list (Section 2.8.2)

  *   Support for the definition of the logical name FORT$INCLUDE
      to specify a default location for INCLUDE files (
      Section 2.8.3)

  *   An increase of the limit on the number of named
      COMMON blocks from 250 to 508.  (       Section 2.8.20)

  *   The ability to provide diagnostics for language features
      not supported by Digital Fortran on Alpha platforms.  (

      Section 2.8.22)

  *   Support for NTT Technical Requirement TR550001,

      Multivendor Integration Architecture (MIA) Version 1.1,
      Division 2, Part 3-2, Programming Language FORTRAN
      (Section 2.8.21)

  In addition, Compaq Fortran 77 provides the following en-
  hanced features of VAX FORTRAN-HPO Version 1.3 as
  compared to VAX FORTRAN Version 5.9:

  *   Automatic decomposition of DO loops for parallel execu-
      tion on VAX multiprocessor systems (    Section 2.8.7)

  *   Automatic vectorization of DO loops for execution on VAX
      processors that support the VAX Vector Architecture (

      Section 2.8.8)

  *   Inline code expansion of the Basic Linear Algebra

      Subroutines (BLAS) Level 1 and Level 1 Extended (
      Section 2.8.10)

  *   The /WARNINGS=TRUNCATED_SOURCE qualifier
      which enables warnings for source lines which are longer
      than the statement field width (  Section 2.8.1)

  *   The /TERMINAL=STATISTICS qualifier which enables
      informational messages about each compiled program
      unit to be displayed to the terminal ( Section 2.8.1)

  2.7.1  COMMON Block Alignment Compatibility

  The default memory alignment for COMMON blocks is
  quadword alignment; in versions of VAX FORTRAN prior to
  V5.5 it was longword alignment (unless the COMMON block
  contained REAL   *8 or COMPLEX      *16 variables).  (But see
  also Section 2.7.5.2.)

  In most cases, the difference is not visible to a correctly-
  written application.  Only applications which depended on
  there being no more than three bytes of unused space be-
  tween consecutive COMMON blocks will behave differently.

  In some cases, this is due to an error in the program, but
  some applications use a specially named COMMON block
  that is intended to directly follow another one in order to
  determine the total size of the first block.

  If the default of quadword alignment is not acceptable, there
  are two methods of obtaining longword alignment.  The first is
  to use the CDEC$ PSECT directive to explicitly specify long-
  word alignment for each COMMON block declared.  This
  should be done in each program unit where the COMMON
  block is used.  For example:

  CDEC$  PSECT  /MY_COMMON/  ALIGN=2

  To specify blank COMMON, use "//" in the directive.  See
  the DEC Fortran Language Reference Manual         for more
  information on the CDEC$ PSECT directive.

  Another method is to use a linker options file and to specify
  the PSECT_ATTR statement for each COMMON block to
  indicate the alignment.  For example:

  PSECT_ATTR=MY_COMMON,LONG

  To specify blank COMMON, use the PSECT name            $BLANK   .

  See the VMS Linker Utility Manual     for more information on
  linker options files.

  2.7.2  Command Line Compatibility

  The command line definition for Compaq Fortran 77 6.0
  is a compatible superset of that for previous versions of
  VAX FORTRAN and VAX FORTRAN-HPO. Note that the

  /CONTINUATIONS and /HPO qualifiers, which were recog-
  nized by previous versions, are now ignored.  See   Section 2.8.1
  for more details.

  2.7.3  VAX Language-Sensitive Editor Compatibility
  VAX Language-Sensitive Editor Version V3.0 or later must
  be installed on the compiling system if the /DESIGN=COMMENTS
  compile command qualifier is used.

  2.7.4  Compatibility With VAX Common Data Dictionary

  Compaq Fortran 77 supports VAX Common Data Dictionary
  definitions in DMU format.  It supports the CDO format
  available in VAX CDD/Plus V4.0 or later through a compati-
  bility interface.  VAX CDD/Plus audit trails are not generated
  by Compaq Fortran 77.  For more information, refer to the
  DEC Fortran User Manual for OpenVMS VAX Systems            and
  the CDD/Repository documentation.

  2.7.5  Compatibility With VAX DBMS
  The following are known restrictions for applications using
  the VAX DBMS product.

  2.7.5.1  Using /DML and /PARALLEL Compile Command Qualifiers
  Because of the restriction on performing I/O operations
  within a parallel loop (see the chapter on Parallel Processing
  in the DEC Fortran User Manual for OpenVMS VAX
  Systems  ), care must be taken when using parallel loops
  with data base applications.  Applications using the /DML
  qualifier should not use the CPAR$ DO_PARALLEL direc-
  tive for any loop that executes data base operations.  Such use
  will cause unpredictable results due to inconsistent I/O control
  state among the processes executing the loop iterations.

  2.7.5.2  COMMON block longword alignment

  COMMON blocks declared in subroutines compiled with
  /DML qualifier still have the longword alignment attribute.
  That is, the base of a COMMON block is aligned on a long-
  word boundary.

  2.7.5.3  /CONTINUATIONS Qualifier May Be Necessary with /DML
  Although the Digital Fortran compiler no longer requires the

  /CONTINUATIONS qualifier to be used to raise the limit on
  continuation lines above the standard 19, the Fortran DML
  preprocessor, part of the VAX DBMS product and invoked
  with the FORTRAN/DML command, does still require this
  qualifier.  If you are using /DML and have more than 19
  continuation lines, specify /CONTINUATIONS=nn, where
  nn is an integer value between 19 and 99, on the FORTRAN

  /DML command line.  This restriction may be removed in a
  future version of VAX DBMS.

  Next     Previous     Contents     Examples     Tables     Close     Help     ~Off