### PAR_GDR0x

Obtains a scalar value within a given range from a parameter

#### Description:

This routine obtains from a parameter a scalar value that lies within a supplied range of acceptable values. A dynamic default may be defined.

#### Invocation

CALL PAR_GDR0x( PARAM, DEFAUL, VMIN, VMAX, NULL, VALUE, STATUS )

#### Arguments

##### PARAM = CHARACTER $\ast$ ( $\ast$ ) (Given)
The name of the parameter.
##### DEFAUL = ? (Given)
The suggested-default value for the parameter. No default will be suggested when DEFAUL is not within the range of acceptable values defined by VMIN and VMAX.
##### VMIN = ? (Given)
The value immediately above a range wherein the obtained value cannot lie. Thus if VMAX is greater than VMIN, VMIN is the minimum allowed for the obtained value. However, should VMAX be less than VMIN, all values are acceptable except those between VMAX and VMIN exclusive.
##### VMAX = ? (Given)
The value immediately below a range wherein the obtained value cannot lie. Thus if VMAX is greater than VMIN, VMAX is the maximum allowed for the obtained value. However, should VMAX be less than VMIN, all values are acceptable except those between VMAX and VMIN exclusive.
##### NULL = LOGICAL (Given)
NULL controls the behaviour of this routine when the parameter is in the null state. If NULL is .FALSE., this routine returns with STATUS=PAR__NULL. If NULL is .TRUE., the returned VALUE takes the value of DEFAUL and, if the MSG filtering level (see SUN/104) is ‘verbose’, a message informs the user of the value used for the parameter. The routine then returns with STATUS=SAI__OK. This feature is intended for convenient handling of null values. NULL should only be set to .TRUE. when the value of DEFAUL will always give a reasonable value for the parameter.
##### VALUE = ? (Returned)
The value associated with the parameter. If STATUS is returned not equal to SAI__OK, VALUE takes the value of DEFAUL.
##### 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, K, or R respectively as appropriate. The DEFAUL, VMIN, VMAX, and VALUE arguments all must have the corresponding data type.

• If the value violates the constraint, the user is informed of the constraint and prompted for another value.