VMS Help
FORTRAN, /ASSUME

 *Conan The Librarian (sorry for the slow response - running on an old VAX)

  /ASSUME=(option[,...])         D=/ASSUME=(ACCU,NOBYTERECL,NODUMM)

  Specifies what the compiler can assume about program behavior
  without affecting correct results when it optimizes code.

  1 - ACCURACY_SENSITIVE

  Controls whether code transformations that affect the results of
  floating-point operations are allowed.  These changes can affect
  the correctness of the program's results.

  If you specify NOACCURACY_SENSITIVE, the compiler is free to
  reorder floating-point operations, based on algebraic identities
  (inverses, associativity, and distribution).  This allows the
  compiler to generate optimized forms of sum reductions (such as dot
  products) and to move divide operations outside loops, improving
  performance.

  The default, ACCURACY_SENSITIVE, directs the compiler to use only
  naive scalar rules for calculations.  This setting can prevent some
  optimizations.

  2 - BYTERECL

  Controls the unit value for the RECL= keyword in an OPEN or
  INQUIRE statement for unformatted files.

  If BYTERECL is specified, the RECL value is in units of bytes;
  if NOBYTERECL is specified, the RECL value is in units of
  four-byte longwords.  NOBYTERECL is the default and is compatible
  with the default used by Compaq's Fortran products.  NOBYTERECL
  may be used to provide compatibility with non-Compaq platforms.

  To run an application which uses /ASSUME=BYTERECL, OpenVMS VAX V7.0
  or installation of a compatible Run-Time Library is required.  For
  more information, see the Compaq Fortran 77 Release Notes.

  3 - DUMMY_ALIASES

  Controls whether dummy (formal) arguments that share memory
  locations with other dummy arguments or COMMON block variables
  affect program results.

  This option is provided because many important opportunities for
  optimizing are lost when the compiler is forced to assume that this
  type of memory sharing occurs in a source program.

  If DUMMY_ALIASES is specified, program semantics require frequent
  recomputations on expressions involving dummy arguments or COMMON
  block variables.  It assures correct results but inhibits some
  vectorization and some scalar optimizations, thus slowing
  performance.

  With the default, NODUMMY_ALIASES, program semantics allow
  optimizations on expressions involving dummy arguments and COMMON
  block variables.  It results in higher performance but can cause
  programs to fail if they depend on such aliases.  It should only be
  used for source programs that strictly obey FORTRAN-77 rules for
  overlapping memory references in dummy arguments.

  If you compile a program containing dummy aliasing with
  NODUMMY_ALIASES in effect, the run-time behavior of the program
  will be unpredictable.  The run-time behavior will depend on the
  exact optimizations that are performed.  In some cases, normal
  results will occur; however, in other cases, results will differ
  because the values used in computations involving the offending
  aliases will differ.

  4 - ALL

  Same interpretation as /ASSUME=(ACCURACY_SENSITIVE,BYTERECL,
  DUMMY_ALIASES).

  5 - NONE

  Same interpretation as
  /ASSUME=(NOACCURACY_SENSITIVE,NOBYTERECL,NODUMMY_ALIASES).
  Close     HLB-list     TLB-list     Help  

[legal] [privacy] [GNU] [policy] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.