VMS Help
FORTRAN, /DESIGN

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

  /[NO]DESIGN[=(option[,...])]    D=/NODESIGN

  Controls whether the compiler analyzes the source code for program
  design information in comment text and Language Sensitive Editor
  (LSE) placeholders.

  If you omit the /DESIGN qualifier entirely, the default is
  /DESIGN=(NOCOMMENTS,NOPLACEHOLDERS) (equivalent to /DESIGN=NONE or
  /NODESIGN).  However, if you specify /DESIGN without any options,
  the default is /DESIGN (COMMENTS,PLACEHOLDERS) (equivalent to
  /DESIGN=ALL).

  In addition, if /ANALYSIS_DATA is also specified, information about
  design information in comments and placeholders is added to the
  analysis data file.

  1 - COMMENTS

  Controls whether the compiler analyzes the text of each comment
  (either a full-line or end-of-line comment) for program design
  information.  Comment text is scanned for tags that are defined in
  the current DEC Language Sensitive Editor environment file.
  Certain tags are predefined by LSE; however, you can add, change,
  or remove tags as desired.  See the DEC Language Sensitive Editor
  documentation for details.

  If you also specify the /ANALYSIS_DATA qualifier, the SCA analysis
  data file includes information about tags found, text of tagged and
  untagged comments, and their locations in the source file.  You can
  then use SCA and LSE commands to retrieve the design information.

  At compile time, the compiler reports any errors detected by
  comment analysis routines.  If LSE and SCA are not installed or if
  a severe error is reported by the comment analysis routines, the
  compilation is aborted.

  Groups of full-line comments are identified by the compiler as
  "comment blocks", including lines that consist of whitespace
  followed by a "!" comment introducer.  Differences in indentation
  of full-line comments are ignored for the purposes of grouping
  comments into blocks.  A comment block ends when a completely blank
  line or a line which is not a full-line comment is detected.

  End-of-line comments, where non-blank text is followed by a "!"
  comment introducer, are treated as self-contained comment blocks.

  Comments from source that is included with the INCLUDE or
  DICTIONARY statements are also analyzed for design information.
  The end of an INCLUDE module or DICTIONARY definition, by itself,
  does not end a comment block.

  Comments beginning with a "D" or "d" in column 1 are not examined
  for program design information.

  2 - PLACEHOLDERS

  Controls whether the compiler accepts DEC Language-Sensitive Editor
  placeholders (in well-defined contexts) as valid program syntax.

  Compaq Fortran 77 recognizes five types of placeholders defined by LSE:

     {required-placeholder}
     {required-list-placeholder}...
     [optional-placeholder]
     [optional-list-placeholder]...
     «pseudocode-placeholder»

  An alternative syntax which uses 7-bit ASCII character set
  delimiters for a pseudocode placeholder is also accepted by Compaq
  Fortran 77:

     <<pseudocode-placeholder>>

  There is no list form of pseudocode placeholder.

  A placeholder must be terminated before the end of the line, and
  the closing delimiter must correspond to the opening delimiter.
  For example, the following placeholder is invalid:

     [invalid-delimiter}

  Any text can appear inside a delimiter except for the closing
  delimiter.  There is no ability to "quote" a closing delimiter in
  order to allow its inclusion as text.  Nesting of delimiters is not
  supported.

  If you also specify the /ANALYSIS_DATA qualifier, information about
  placeholders and their use is included in the SCA analysis data
  file.

  If placeholder analysis is performed on a compilation unit that
  contains placeholders in valid contexts, the compiler does not
  generate an object file.  An object file is generated, however, if
  no placeholders are found in the compilation unit undergoing
  placeholder analysis.

  If LSE placeholders are present in the source file and you do not
  specify the /DESIGN=PLACEHOLDER qualifier, the compiler treats the
  placeholders as invalid syntax and generates an error message.

  Allowed Contexts for Placeholders:

  A placeholder can be used to replace either an entire Fortran
  statement or a part of a statement.  As a replacement for an entire
  statement, there are no restrictions on where a placeholder can
  appear.  Otherwise, as a replacement for a portion of a statement,
  a placeholder is generally treated as an undeclared identifier
  whose implicit type is INTEGER.  This implicit typing is unaffected
  by the IMPLICIT or IMPLICIT NONE statements, but is affected by the
  /[NO]I4 command qualifier or the OPTIONS statement qualifier.

  Each occurrence of a placeholder is considered as a unique instance
  and is unaffected by earlier uses of a syntactically identical
  placeholder.  For example, in the following code sequence, each
  occurrence of "[abc]" is considered to be a never-before-seen
  identifier:

     INTEGER [abc]
     REAL [abc]

  The implicit typing of placeholders as INTEGER allows them to be
  used in most reasonable contexts, but if they are used in contexts
  where an integer identifier would not be allowed, semantic error
  messages are generated.  For example, the following statement is
  invalid because of the type mismatch:

     CHAR__VAR = CHAR__VAR // [placeholder]

  Like any other undeclared variable, placeholders are considered
  scalars and cannot be used in a context that requires the variable
  to be declared as an array.

  Given the above restrictions, placeholders can appear in the
  following contexts:

   o  As a variable name in a type specification, AUTOMATIC, COMMON,
      DATA, DIMENSION, EQUIVALENCE, POINTER, RECORD, SAVE, STATIC, or
      VOLATILE statement, and CPAR$ CONTEXT_SHARED or CPAR$ PRIVATE
      directives.

   o  As the symbolic name in an EXTERNAL or PARAMETER statement.

   o  As an integer expression.

   o  As the target of an assignment statement.

   o  As the name of subroutine in a CALL statement.

   o  As the name of a function in a function reference.

   o  As an integer variable in an ASSIGN or assigned GOTO statement.

   o  As the control variable in a DO statement or implied DO list in
      an I/O statement.

   o  As the lock variable in a CPAR$ LOCKON or CPAR$ LOCKOFF
      directive (the placeholder is treated as LOGICAL*4 in these
      contexts only).

   o  As an integer variable in an I/O statement other than the unit
      or format specifier.

  Placeholders are not allowed in the following contexts:

   o  As the symbolic name in a BLOCK DATA, ENTRY, FUNCTION,
      INTRINSIC, PROCEDURE, or PROGRAM statement.

   o  As formal (dummy) argument names in an ENTRY, FUNCTION, or
      PROCEDURE statement.

   o  As the name of a common block.

   o  As a structure name.

   o  In a NAMELIST statement, either as the group name or as one of
      the variables to be included in the group.

   o  As the unit or format specifier in an I/O statement.

  3 - ALL

  Same interpretation as (COMMENTS,PLACEHOLDERS).

  4 - NONE

  Same interpretation as (NOCOMMENTS,NOPLACEHOLDERS).
  Close     HLB-list     TLB-list     Help  

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