Explicit declaration
An explicit declaration is the appearance of an identifier (a name) in a DECLARE statement, as a label prefix, or in a parameter list.
A name is explicitly declared if it appears as follows:
- In a DECLARE statement
The DECLARE statement explicitly declares attributes of names.
- As an entry constant
Labels of PROCEDURE and ENTRY statements constitute declarations of the entry constants within the containing procedure.
- As a label constant
A label constant explicitly declares a label.
- As a format constant
A label on a FORMAT statement constitutes an explicit declaration of the label.
- Naming an internal entry constant, a label constant, or a format constant in a DECLARE statement is invalid.
- The bounds, if any, for a label or format constant are determined by the smallest and largest values that are specified in any use of it as a label in the source code.
The scope of an explicit declaration of a name is the block containing the declaration. This includes all contained blocks, except those blocks (and any blocks contained within them) to which another explicit declaration of the same name is internal. In the following diagram, the lines indicate the scope of the declaration of the names.

B and B' indicate the two distinct
uses of the name B; C and C' indicate
the two uses of the name C.