is a scalar initialization expression of type integer, character, or
logical

low_case_value, high_case_value

are each scalar initialization expressions of type integer, character, or
logical

Rules

The case index, determined by the SELECT CASE statement, is
compared to each case_selector in a CASE statement.
When a match occurs, the stmt_block associated with that
CASE statement is executed. If no match occurs, no
stmt_block is executed. No two case value ranges can
overlap.

There must be only one match. If there is a match, the statement
block associated with the matched case_selector is executed,
completing execution of the case construct. If there is no match,
execution of the case construct is complete.

If the case_construct_name is specified, it must match the name
specified on the SELECT CASE and END SELECT
statements.

DEFAULT is the default case_selector. Only one of
the CASE statements may have DEFAULT as the
case_selector.

Each case value must be of the same data type as the case_expr, as
defined in the SELECT CASE statement. If any typeless
constants or BYTE named constants are encountered in the
case_selectors, they are converted to the data type of the
case_expr.

When the case_expr and the case values are of type character, they
can have different lengths. If you specify the -qctyplss
compiler option, a character constant expression used as the
case_expr remains as type character. The character constant
expression will not be treated as a typeless constant.