/sys$common/syshlp/helplib.hlb
FORTRAN, Statements, Directive Statements, OPTIONS and ENDOPTIONS

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

  CDEC$ OPTIONS

  The OPTIONS directive controls whether the Compaq Fortran compiler
  naturally aligns fields in records and data items in common blocks
  for performance reasons, or whether the compiler packs those fields
  and data items together on arbitrary byte boundaries.  The OPTIONS
  directive takes the following form:

  CDEC$ OPTIONS /[NO]ALIGN[=p] /[NO]WARNINGS=[NO]ALIGNMENT
         .
         .
         .
  CDEC$ END OPTIONS

  p  Is a specifier with one of the following forms:

     [class =] rule
     (class = rule,...)
     ALL
     NONE

     class  Is one of the following keywords:

            COMMONS    (for common blocks)
            RECORDS    (for records)
            STRUCTURES (a synonym for RECORDS)

     rule   Is one of the following keywords:

            PACKED -   Packs fields in records or data
                       items in common blocks on arbitrary
                       byte boundaries.

            NATURAL -  Naturally aligns fields in records
                       and data items in common blocks on
                       up to 64-bit boundaries (inconsistent
                       with the FORTRAN-77 standard).

                       If you specify NATURAL, the compiler will
                       naturally align all data in a common
                       block, including REAL*8, and
                       all COMPLEX data.

            STANDARD - Naturally aligns data items in common
                       blocks on up to 32-bit boundaries (con-
                       sistent with the FORTRAN-77 standard).

                       Note that this keyword only applies to
                       common blocks; therefore, you can specify
                       /ALIGN=COMMONS=STANDARD, but you cannot
                       specify /ALIGN=STANDARD.

     ALL    Is the same as /ALIGN, /ALIGN=NATURAL, and
            /ALIGN=(RECORDS=NATURAL,COMMONS=NATURAL).

     NONE   Is the same as /NOALIGN, /ALIGN=PACKED, and
            /ALIGN=(RECORDS=PACKED,COMMONS=PACKED)

  CDEC$ OPTIONS (and accompanying CDEC$ END OPTIONS) directives must
  come after OPTIONS, SUBROUTINE, FUNCTION, and BLOCK DATA statements
  (if any) in the program unit, and before statement functions or the
  executable part of the program unit.

  For performance reasons, Compaq Fortran always aligns local data items
  on natural boundaries.  However, EQUIVALENCE, COMMON, RECORD, and
  STRUCTURE data declaration statements can force misaligned data.
  You can use the OPTIONS directive to control the alignment of
  fields associated with COMMON and RECORD statements.  By default,
  you do not receive compiler messages when misaligned data is
  encountered.

  To request aligned data in a record structure, specify
  /ALIGN=RECORDS=NATURAL, or consider placing source data declarations
  for the record so that the data is naturally aligned.

                                 NOTE

          Misaligned data significantly increases the time it
          takes  to  execute  a  program.   As  the number of
          misaligned fields encountered  increases,  so  does
          the  time  needed  to  complete  program execution.
          Specifying  CDEC$  OPTIONS/ALIGN  (or  the   /ALIGN
          compiler option) minimizes misaligned data.

  To request aligned, data in common blocks, specify
  /ALIGN=COMMONS=STANDARD (for data items up to 32 bits in length) or
  /ALIGN=COMMONS=NATURAL (for data items up to 64 bits in length), or
  place source data declarations within the common block in
  descending size order, so that each data field is naturally
  aligned.

  The OPTIONS directive supersedes the /ALIGN compiler option.

  OPTIONS directives must be balanced and can be nested up to 100
  levels, for example:

     CDEC$ OPTIONS /ALIGN=PACKED         ! Group A
        declarations
     CDEC$ OPTIONS /ALIGN=RECO=NATU         ! Group B
        more declarations
     CDEC$ END OPTIONS                      ! End of Group B
        still more declarations
     CDEC$ END OPTIONS                   ! End of Group A

  Note that common blocks within Group B will be PACKED.  The CDEC$
  OPTION specification for Group B only applies to RECORDS, so
  COMMONS retains the previous setting (in this case, from the Group
  A specification).

  For more information on alignment and data sizes, see your user
  manual.

  The /WARNINGS qualifier may be specified to control whether or not
  alignment warnings are given for STRUCTURE and COMMON declarations
  within the scope of this CDEC$ OPTIONS directive.  Warnings are given
  only if /WARNINGS=ALIGNMENT was also specified on the command line;
  use the directive qualifier to disable alignment warnings for selected
  declarations.

  For COMMON blocks, all declarations and directives naming the COMMON
  block must have the same setting for /WARNINGS=ALIGNMENT.  For example:

     CDEC$ OPTIONS /WARN=ALIGNMENT
           COMMON /CMN/ X
     CDEC$ END OPTIONS
     CDEC$ OPTIONS /WARN=NOALIGNMENT
           SAVE /CMN/
     CDEC$ END OPTIONS

  will result in a warning message from the compiler.  The initial state
  is taken from the value of /WARNINGS=ALIGNMENT on the command line.
  Close     HLB-list     TLB-list     Help  

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