Description:
The supplied group expression is expanded to produce a list of names
which are appended to the end of the group identified by IGRP2.
If the group expression contains any modification elements, then the list of names added to the output
group is based on the group identified by IGRP1. If IGRP1 is invalid (equal to the symbolic constant
GRP__NOID for instance), then any elements with the syntax of a modification element are stored in
the output group as a single literal name.
If the last character read from the group expression (or from a text file if the last element of
the group expression is an indirection element) is equal to the current "
flag"
character
for the group IGRP2 (see routine GRP_SETCC), then argument FLAG is returned set to
true. Otherwise, it is returned set to false. The calling application can use this flag for any
purpose (eg it may use it to indicate that the user wants to give more names). Note, the flag
character itself is not included in the returned group.
Invocation
CALL GRP_GRPEX( GRPEXP,
IGRP1, IGRP2, SIZE, ADDED, FLAG, STATUS )
Arguments
GRPEXP = CHARACTER
(
)
(Given)
A group expression. This should not be longer than GRP__SZGEX. If it is, the
surplus characters will be ignored.
IGRP1 = INTEGER (Given)
A GRP identifier for
the group to be used as the basis for any modification elements which may be contained
within the supplied group expression. This can be set to the symbolic constant GRP__NOID
if modification elements are to be treated as literal names.
IGRP2 = INTEGER (Given)
A GRP identifier for the group to which the new names are to be appended.
SIZE =
INTEGER (Returned)
The number of names in the returned group. It is returned equal to 1 if
an error status exists on entry. If an error occurs during execution of this routine, then
SIZE is returned equal to the size of the group on entry (unless the group has zero size
on entry, in which case it is returned equal to 1).
ADDED = INTEGER (Returned)
The
number of names added to the group by this routine.
FLAG = LOGICAL (Returned)
.TRUE. if the last character in the group expression is equal to the current flag character for
group IGRP2. Note, if this is the case, then the flag character itself is not included in the
returned group. FLAG is returned .FALSE. if the last character is not a flag character. Returned
.FALSE. if an error occurs.
STATUS = INTEGER (Given and Returned)
The global status.