Converted from .HLP to .HTML by HLPTOHTML.

fortran .HLP


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 VAX Language Sensitive Editor environment file. Certain tags are predefined by LSE; however, you can add, change, or remove tags as desired. See the VAX 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.


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

DEC Fortran 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 DEC Fortran:


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:


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.


Same interpretation as (COMMENTS,PLACEHOLDERS).


Same interpretation as (NOCOMMENTS,NOPLACEHOLDERS).