Obtains a group of strings from the environment including some that are transient KPG1_GTGPT
The user specifies the strings by supplying a GRP group expression for the parameter value. If the
final character in the supplied string is the group "
flag character"
(a minus sign by default), then the
user is re-prompted for another group expression, and the strings specified by the second group
expression are appended to the returned group. This continues until a group expression is supplied
that does not end with the continuation character, or a null value is supplied (which is
annulled).
The group comprises an optional persistent part that will be written as the parameter’
s current
value, and an optional temporary component that only exists for the duration of the current
application. The division is determined by the first appearance within the string supplied of a
delimiter string or character (the DELIM argument). For instance, assume the delimiter is ’
’
. If the supplied value is ’
smooth,box=5filter=gauss’
, the persistent value would be ’
smooth,box=5’
and the temporary
value ’
filter=gauss’
. Supplying merely the temporary value, such as ’
filter=gauss’
would return the existing current value of the parameter as the persistent component, and the
temporary component is as before.
Normally, the "
current value"
for the parameter on exit would be the final group expression. If more
than one group expression was supplied, then this will not represent the entire group. For this
reason, this routine concatenates all the group expressions supplied, and stores the total
group expression as the parameter value before exiting. It also stores the concatenated
persistent components and writes this as the current value. Since a new value is stored for the
parameter, the parameter should not be given an access mode of READ in the interface
file.
If a null value is supplied the first time the parameter value is obtained, then the PAR__NULL status is returned, and SIZE is returned as zero (a valid GRP identifier is still returned however). If a null value is supplied on a subsequent access to the parameter, then the PAR__NULL status is annulled, and the group is returned containing any values obtained earlier.
’
s current
value. The delimiter should not be an alphanumeric character or underscore. ’
s current value,
rather than just the persistent-attribute list a TRUE value generates needed when the task
ends. This routine subverts the parameter system in that it uses an additional component in the parameter file to store the current value. This enables the current value to be accessed regardless of the value for the parameter supplied on the command line that would otherwise replace the previous current value with the full new value including the delimiter and temporary value.
The additional component’
s name is the parameter name (up to 13 characters) followed by CV (for
current value). In practice truncation should not be an issue.
This routine should not be used with multiple parameters in the same task whose new current-value component in the parameter file would be the same. Again in practice this is extremely unlikely.
It has not been proven to work if invoked more than twice for the same parameter, as there are no known occurrences of this in Starlink applications.