VMS Help  —  FORTRAN  Statements  Directives  General Directives, PSECT
  cDEC$ PSECT /common-name/ attr [,attr,...]

  Lets you modify several characteristics of a common block.

  Specify the name of a common block, preceded and followed by a
  slash, and one of the following keywords ("attr"):

   o  ALIGN=val or ALIGN=keyword

      Specifies alignment for the common block.

      "val" must be a constant ranging from 0 through 16.

      The specified number is interpreted as a power of 2.  The value
      of the expression is the alignment in bytes.

      "keyword" is one of the following:

            Keyword        Equivalent to "val"
            BYTE               0
            WORD               1
            LONG               2
            QUAD               3
            OCTA               4
            PAGE [see note]    Alpha: 16
                               Intel: 12

        note: Range for Alpha is 0 to 16; for
              Intel, 0 to 12.

      The default is octaword alignment (4).

   o  GBL

      Specifies global scope.  This is the default scope.

   o  LCL

      Specifies local scope.  This keyword is opposite to GBL and
      cannot appear with it.

   o  [NO]MULTILANGUAGE

      Controls whether the compiler pads the size of overlaid psects
      (program sections) to ensure compatibility when the psect is
      shared by code created by other OpenVMS compilers.

      When a psect generated by a Fortran common block is overlaid
      with a psect consisting of a C structure, linker error messages
      can occur.  This is because the sizes of the psects are
      inconsistent; the C structure is padded, but the Fortran common
      block is not.

      Specifying MULTILANGUAGE ensures that VSI Fortran follows a
      consistent psect size allocation scheme that works with HP
      C psects shared across multiple images.  Psects shared in a
      single image do not have a problem.

      The default is NOMULTILANGUAGE.  This is also the default
      behavior of HP Fortran 77 and is sufficient for most
      applications.

      To specify MULTILANGUAGE for all COMMON blocks in a module, use
      compiler option /ALIGN=COMMON=MULTILANGUAGE.  (For more
      information, see the HP Fortran for OpenVMS User Manual.)

   o  [NO]SHR

      Determines whether the contents of a common block can be shared
      by more than one process.  The default is NOSHR.

   o  [NO]WRT

      Determines whether the contents of a common block can be
      modified during program execution.  The default is WRT.

  Global or local scope is significant for an image that has more
  than one cluster.  Program sections with the same name that are
  from different modules in different clusters are placed in separate
  clusters if local scope is in effect.  They are placed in the same
  cluster if global scope is in effect.

  If one program unit changes one or more characteristics of a common
  block, all other units that reference that common block must also
  change those characteristics in the same way.

  Default characteristics apply if you do not modify them with a
  PSECT directive.

  See the "OpenVMS Linker Utility Manual" for detailed information
  about default attributes of common blocks.
Close Help