Compaq Fortran 77 Release Notes for OpenVMS VAX Systems
 *HyperReader
  Next     Previous     Contents     Examples     Tables     Close     Help  
  2.3  New and Changed Features in V6.3

  This section provides highlights of new and changed features
  in Compaq Fortran 77 Version V6.3.

  2.3.1  /ASSUME=SOURCE_INCLUDE Command Line

         Keyword
  The compiler now supports the /ASSUME=[NO]SOURCE_
  INCLUDE command line qualifier keyword.  This controls
  where the compiler looks for INCLUDE files (including text
  libraries) if a complete file specification is not given.  The
  default is NOSOURCE_INCLUDE which causes the com-
  piler to look for INCLUDE files in the user's current default
  device and directory.  If SOURCE_INCLUDE is specified,
  the device and directory of the current source file is used, a
  behavior common on platforms other than OpenVMS.

  For example, assume that DISK1:[JONES]PROG.FOR con-
  tains the following source line:

        INCLUDE  'PROG1.INC'

  and that the user's current default directory is DISK2:[SMITH].

  The compile command

  $  FORTRAN/ASSUME=SOURCE_INCLUDE  DISK1:[JONES]PROG
  will cause the compiler to look for PROG1.INC in
  DISK1:[JONES]. If /ASSUME=NOSOURCE_INCLUDE is
  specified (or the qualifier is omitted, since that is the default),
  the compiler will look for PROG1.INC in DISK2:[SMITH].

  If the logical name FORT$INCLUDE is defined, it overrides
  the setting of [NO]SOURCE_INCLUDE.

  2.3.2  /DEBUG=PARAMETERS=NONE Command Line
         Keyword

  The compiler now accepts a new keyword NONE for the
  /DEBUG=PARAMETERS= compile command qualifier key-
  word.  If NONE is specified, the compiler does not write
  information about PARAMETER constants to the debug
  symbol table.  Other possible values are USED and ALL. Note
  that if /DEBUG=NOSYMBOLS is in effect, no debug symbol
  table information of any type is written.

  2.3.3  /WARNINGS=[NO]INFORMATIONAL Command Line
         Keyword

  The compiler now accepts a new [NO]INFORMATIONAL
  keyword for the /WARNINGS compile command qualifier.  If
  NOINFORMATIONAL is specified, compiler diagnostic mes-
  sages of informational severity are not displayed.  The default
  is INFORMATIONAL, causing informational messages to be
  displayed.  Note that NOGENERAL suppresses both warn-
  ing and informational messages, regardless of the setting of

  [NO]INFORMATIONAL.

  2.3.4  Expanded syntax for Directives

  In previous versions of Digital Fortran, directives were rec-
  ognized only when they began with CDEC$ or CPAR$ in
  column 1.  This syntax is dependent on the Fortran-77 fixed
  source form.  With the introduction of Fortran 90 and its free
  source form, it became desirable to use directives in free-
  form source which does not recognize a C in column 1 as a
  comment.

  Although Compaq Fortran 77 does not support free-form
  source, the compiler now accepts more forms of directives so
  that a source program with directives can be written such
  that it is acceptable in both free-form and fixed-form.

  The syntax of a directive tag is now the following sequence of
  characters:

  1.  One of the following comment introducers:

      *   'C' or 'c' or*' in column 1

      *   '!'  in column 1 or preceded by whitespace only

  2.  'DEC$' or 'PAR$' (case is ignored, PAR$ recognized only
      if /PARALLEL specified)

  3.  A blank or tab character

  The following are examples of valid directives:

  CDEC$  TITLE  'title'
  cdec$    TITLE  'title'
  *DEC$   TITLE  'title'
  !dec$   TITLE  'title'
            !dec$  TITLE  'title'

  The following are examples of invalid directives:

  CDEC$TITLE  'title'    !  No  blank  or  tab  after  $
  ddec$  TITLE  'title'   !  D  comment  introducer  not  allowed
  #dec$  TITLE  'title'   !  #  comment  introducer  not  allowed
        CONTINUE   !DEC$  TITLE  'title'   !  Non-whitespace  before  tag

  Directives cannot be continued.

  To write source code that is acceptable both as fixed-form
  and free-form, follow these rules:

  *   Treat blanks as significant.

  *   Put statement labels in columns 1 through 5.

  *   Start statement field in column 7.

  *   Use only '!'  as a comment introducer.  Place anywhere
      except in column 6.

  *   Use only '&' as a continuation indicator.  Place it both
      in column 73 of the initial line and in column 6 of the
      continuation line.

  *   Do not use /EXTEND_SOURCE.

  2.3.5  Sign Extension of Untyped Bit Constants
  The compiler now properly sign-extends bit constants when
  used in contexts where they are treated as INTEGER       *2 or
  BYTE types.  For example:

      BYTE  X
      PARAMETER  (X  =  X'FF')
      INTEGER*4  I4
      I4  =  X
      TYPE  *,I4

  Previously, the result of the TYPE statement would be to
  display 255, rather than -1.  The compiler was not prop-
  erly honoring the declared data type of the constant X and
  sign-extending when assigning it to an INTEGER        4 value.
                                                       *

  Although not related to this correction of behavior, it should
  be noted that when context requires that a bit constant be
  assigned a data type, the compiler requires that bits to be
  truncated be zero; it does not do a signed conversion to a
  smaller datatype.  For example, given the following:

      INTEGER*2  I2
      I2  =  X'FFFFFFFF'

  the compiler will issue a "Non-zero digits truncated in
  constant" warning for the assignment even though signed
  conversion would be valid.

  2.3.6  AND, OR, XOR, LSHIFT and RSHIFT Intrinsic

         Functions Supported
  The intrinsic generic functions AND, OR, XOR, LSHIFT and
  RSHIFT, previously described in the    DEC Fortran Language

  Reference Manual    as being supported on RISC and Alpha
  platforms only, are now supported for VAX. Except for
  RSHIFT, each of these is equivalent to an existing generic
  intrinsic (IAND, IOR, IEOR, ISHFT) and are provided for
  increased compatibility with other platforms.  RSHIFT is
  equivalent to ISHFT with a negated second argument.

  2.3.7  FORSYSDEF.TLB Modules for Callable Utility
         Routines
  The following new modules for the OpenVMS Callable Utility

  Routines are provided in SYS$LIBRARY:FORSYSDEF.TLB:

      ACLEDIT$ROUTINES - Access Control List Editor

      CLI$ROUTINES - Command Line Interpreter
      CONV$ROUTINES - CONVERT Utility
      DCX$ROUTINES - Data Compression and Expansion
      EDT$ROUTINES - EDT Editor

      FDL$ROUTINES - File Definition Language Editor
      LBR$ROUTINES - Librarian Utility
      MAIL$ROUTINES - MAIL Utility

      PSM$ROUTINES - Print Symbiont Modification
      Routines
      SMB$ROUTINES - Symbiont Routines

      TPU$ROUTINES - TPU Utility

  Next     Previous     Contents     Examples     Tables     Close     Help     ~Off