Description:
This routine obtains from a parameter up to a given number of values. Each value must
be within its own range of acceptable values supplied to the routine.
This routine is particularly useful for obtaining values that apply to
$n$dimensional
array where each value is constrained by the size or bounds of the array, and where the number of values need
not equal $n$.
For example, the size of a smoothing kernel could be defined by one value that applies to all
dimensions, or as individual sizes along each dimension.
Invocation
CALL PAR_GRMVx( PARAM,
MAXVAL, VMIN, VMAX, VALUES, ACTVAL, STATUS )
Arguments
PARAM = CHARACTER
$\ast $ (
$\ast $ )
(Given)
The name of the parameter.
MAXVAL = INTEGER (Given)
The maximum number of
values required. A PAR__ERROR status is returned when the number of values requested is less than
one.
VMIN( MAXVAL ) = ? (Given)
The values immediately above a range wherein each
obtained value cannot lie. Thus if VMAX is greater than VMIN, VMIN is the minimum
allowed for the corresponding obtained value. However, should VMAX be less than VMIN,
all values are acceptable except those between VMAX and VMIN exclusive.
VMAX(
MAXVAL ) = ? (Given)
The values immediately below a range wherein each obtained value
cannot lie. Thus if VMAX is greater than VMIN, VMAX is the maximum allowed for the
corresponding obtained value. However, should VMAX be less than VMIN, all values are
acceptable except those between VMAX and VMIN exclusive.
VALUES( MAXVAL ) = ?
(Returned)
The values associated with the parameter. They will only be valid if STATUS
is not set to an error value.
ACTVAL = INTEGER (Returned)
The actual number of
values obtained.
STATUS = INTEGER (Given and Returned)
The global status.
Notes:

There is a routine for each of the data types double precision, integer, and real: replace "x"
in the
routine name by D, I, or R respectively as appropriate. The VMIN, VMAX, and VALUES arguments
must have the corresponding data type.

Should too many values be obtained, the parameter system will repeat the get in order to obtain a
permitted number of values.

If any of the values violates the constraints, the user is informed of the constraints and
prompted for another vector of values. This is not achieved through the MIN/MAX system.