Compaq Fortran 77 Release Notes for OpenVMS VAX Systems
 *HyperReader
  Next     Previous     Contents     Examples     Tables     Close     Help  
  1.3  Compatibility

  Compaq Fortran 77 Version V6.6 is compatible with all VAX
  processors running Version V5.4 or later of the OpenVMS
  operating system.

  The following sections summarizes the compatibility issues,
  if any, between Compaq Fortran 77 Version V6.6 and
  previous versions of Compaq Fortran 77, DEC Fortran,
  VAX FORTRAN and VAX FORTRAN-HPO and versions of
  other DIGITAL layered products.

  1.3.1  Coexistence With Earlier Versions

  The VMSINSTAL version of the Compaq Fortran 77
  installation procedure offers an option of preserving the
  previously installed version of Compaq Fortran 77.  If
  this option is selected, the earlier version is renamed
  to FORTRAN$MAIN-Vnn.EXE where "Vnn" is the
  previous version number with the period removed.  For
  example, Compaq Fortran 77 V6.5 would be renamed

  FORTRAN$MAIN-V65.EXE. To use the saved version of
  the compiler, define the logical name FORTRAN$MAIN to
  point to the desired version.  For example:

  $  DEFINE  FORTRAN$MAIN  FORTRAN$MAIN-V65

  To select the currently installed version, deassign the logical
  name FORTRAN$MAIN or define it as FORTRAN$MAIN.EXE
  (the ".EXE" is required in this case.)  It is not necessary to
  save earlier versions of the compiler message files.

  If earlier versions of VAX FORTRAN and/or VAX FORTRAN-
  HPO were previously installed, installation of Compaq
  Fortran 77 does not replace the compiler and message file
  images used by the earlier versions.

  To use VAX FORTRAN, define the logical name FORTRAN$MAIN
  as follows:

  $  DEFINE  FORTRAN$MAIN  FORTRAN

  To use FORTRAN-HPO, use the following command instead:

  $  DEFINE  FORTRAN$MAIN  FORTRAN-HPO

  In addition to the compiler images SYS$SYSTEM:FORTRAN.EXE
  and/or SYS$SYSTEM:FORTRAN-HPO.EXE, the old
  message files SYS$MESSAGE:FORTERR1.EXE and

  SYS$MESSAGE:FORTERR2.EXE must be present.

  The earlier compilers will ignore new command qualifiers
  and qualifier values.

  The PCSI version of the installation procedure will
  not automatically save a copy of the previous com-
  piler.  If you wish to preserve the older version, copy
  SYS$SYSTEM:FORTRAN$MAIN.EXE before installation.

  1.3.2  Source Compatibility
  Compaq Fortran 77 Version V6.6 accepts all valid Fortran
  language source which was accepted by earlier versions of
  Compaq Fortran 77, VAX FORTRAN and VAX FORTRAN-
  HPO. However, a number of new intrinsic routines have been
  added which may affect programs which have user-supplied
  routines with the same names.  If these names conflict with
  those of user-supplied functions, it may be necessary to add
  an EXTERNAL statement for the user-supplied functions.

  See Sections 2.3.6,2.6.4,2.6.5and  2.8.6 for more details.

  Compaq Fortran 77 Version V6.6 also detects some errors
  in program sources that were not reported in previous ver-
  sions.  This may cause some programs to generate warnings
  or errors when compiled which previously compiled without
  diagnostics.

  Some of the more significant errors that are now detected by
  the compiler are:

  *   The compiler now reports an INVLEXEME error if an
      internal file I/O statement specifies a parenthesized vari-
      able as the internal file specifier.  An internal file specifier
      is required to be acharacter scalar memory reference     or a
      character array name reference   .

  *   The compiler now reports an UNDFUNVAL warning if
      a function's return value is not defined at one or more
      exit points.

  *   The compiler now reports an INVCONST error when it
      finds that the increment expression for a DO loop eval-
      uates to zero.  Previously, the compiler would not always
      report an error for this case.  A zero loop increment would
      cause an infinite loop at run-time.

  *   If a program specifies a USEROPEN routine in an OPEN
      statement and the routine is declared explicitly as some
      type other than INTEGER     *4, the compiler will now
      give a "Name previously used with conflicting data type"
      (INVTYPUSE) error.  If the routine was not explicitly
      given a type, the compiler now assigns it the INTEGER      4
                                                                *
      type, even if an IMPLICIT statement would specify a
      different type.  However, if IMPLICIT NONE is in ef-
      fect, and the type was not specified explicitly, then an

      IMPNONE error will be generated.  Previously, the type
      conflict was not detected nor was a warning generated if
      IMPLICIT NONE was in effect.  USEROPEN routines
      must return an INTEGER      *4 function value.

  *   The compiler now gives an INVRECUSE error when an
      array or aggregate reference is passed as an expression
      in an actual argument list.  Previously, it could generate
      incorrect code or cause the compilation to fail.

  *   The compiler and Run-Time Library now enforce
      the documented restrictions on the ranges of fields in
      FORMAT edit descriptors.  Previously, incorrect results
      could be generated.

  1.3.3  New Math Library Considerations
  Compaq Fortran 77 provides new, revised versions of the
  VMS Math Library shareable images MTHRTL.EXE and

  VMTHRTL.EXE. (The shareable image UVMTHRTL.EXE,
  which is functionally identical to MTHRTL, is also pro-
  vided.)  Due to a significant number of new entry points
  defined in MTHRTL, required by Compaq Fortran 77, the
  global section match ident of that image was required to
  be changed.  While previously linked images will run with
  the new MTHRTL, newly linked images will not run on
  other OpenVMS VAX systems (V6.0 or earlier) which do
  not have the new MTHRTL. In addition, images linked
  against the new MTHRTL which are then translated by the

  DECmigrate product will not run on OpenVMS Alpha sys-
  tems.  The following paragraphs explain how to compile and
  link applications so that they may run on these other systems.

  The new support was included with OpenVMS VAX Version

  6.1.  If you install or reinstall versions of OpenVMS VAX
  prior to version 6.1, you must reinstall the Compaq Fortran
  77 kit.

  The installation procedure preserves the OpenVMS-supplied
  shareable images under the names FORTRAN$MTHRTL-
  VMS, FORTRAN$VMTHRTL-VMS and FORTRAN$UVMTHRTL-

  VMS. To link an image so that it will run on OpenVMS ver-
  sions that lack the enhanced RTL images use the following
  method:

  $  DEFINE/USER  MTHRTL  FORTRAN$MTHRTL-VMS
  $  DEFINE/USER  VMTHRTL  FORTRAN$VMTHRTL-VMS
  $  LINK  program
  %LINK-I-IDMISMCH,  GSMATCH  of  81,00800C  in  shareable  image
     SYS$COMMON:[SYSLIB]MTHRTL-VMS.EXE;1
           differs  from  GSMATCH  of  81,00800D  in  shareable  image
           library
     SYS$COMMON:[SYSLIB]IMAGELIB.OLB;1

  The LINK-I-IDMISMCH informational message can be
  ignored.

  In addition, any Fortran modules should be compiled with
  the command qualifier /MATH_LIBRARY=V5.  This causes
  the compiler to not use any of the new entry points, thus al-
  lowing error-free linking against the old MTHRTL, but the
  associated performance enhancements will be lost.  This qual-
  ifier also allows Fortran object modules to be linked on other
  OpenVMS VAX systems which don't have the updated math
  library.  See sectionSection 2.8.1.4for more details.

  1.3.4  Fortran Run-Time Library Considerations

  Compaq Fortran 77 provides a new version of the
  OpenVMS VAX Fortran Run-Time Library share-
  able image SYS$LIBRARY:FORRTL.EXE and associ-
  ated object modules to support the new non-native data
  in I/O feature.  The VMS-supplied version is saved as
  SYS$LIBRARY:FORTRAN$FORRTL-VMS.EXE.

  The new support is included in OpenVMS VAX Version

  V6.1.  Until that version is installed, you must reinstall the
  Compaq Fortran 77 kit each time you install a new version
  of OpenVMS VAX.

  Unlike the new version of the Math Run-Time Library
  images described above, the new version of FORRTL.EXE
  does not of itself prevent images linked against the new
  FORRTL.EXE from running on older versions of OpenVMS

  VAX as early as V5.0-1.  The only situation in which an
  incompatibility will arise is where the application uses the
  CONVERT= keyword in an OPEN or INQUIRE state-
  ment or does an OPEN in a program unit compiled with
  the /CONVERT command or OPTIONS statement qualifier
  specifying a value other than NATIVE. See     Section 2.8.5 for
  more details.

  Of course, if the application also uses Math library routines,
  the restrictions noted inSection 1.3.3 apply.

  See also Section 1.4.4 for a description of a known problem
  regarding linking against the new FORRTL.EXE.

  1.3.5  Object Compatibility

  When the default /NOPARALLEL command qualifier is used,
  object modules from Compaq Fortran 77 can be freely mixed
  with those from any previous version of Compaq Fortran

  77, VAX FORTRAN, and VAX FORTRAN-HPO. There are
  no known compatibility problems with mixing these object
  modules with those of any other Digital compiler.

  If any FORTRAN module in the application is compiled with

  /PARALLEL, there are no compatibility problems as long as
  all other modules in the application have also been compiled
  by Compaq Fortran 77 using the /PARALLEL qualifier.

  For applications which are created by mixing FORTRAN
  modules compiled /PARALLEL with those from other lan-
  guages, or with FORTRAN modules not compiled with

  /PARALLEL (including modules compiled with versions
  of VAX FORTRAN earlier than V5.0), see the chapter
  on Parallel Processing in the  DEC Fortran User Manual
  for OpenVMS VAX Systems       for detailed information and
  restrictions.

  Next     Previous     Contents     Examples     Tables     Close     Help     ~Off