PARAM_PRESENT Function
Tests if a parameter was actually present in the call to a procedure or function.
Usage
result = PARAM_PRESENT(parameter)
Input Parameters
parameter — One of the formal parameters as given in the function or procedure definition.
Returned Value
result — A nonzero value (true) if the parameter was present in the call to the current procedure or function. Returns a zero value (false) if the parameter was not present.
Keywords
None.
Discussion
PARAM_PRESENT compliments the KEYWORD_SET and N_ELEMENTS functions. PARAM_PRESENT lets you distinguish between the two cases in which KEYWORD_SET returns FALSE, and the two cases when N_ELEMENTS returns zero (0).
With KEYWORD_SET
The KEYWORD_SET function returns FALSE when:
1. the keyword is set to zero or an undefined variable.
2. the keyword is not used in the call.
PARAM_PRESENT distinguishes between these cases by returning TRUE in case 1 and FALSE in case 2.
With N_ELEMENTS
The N_ELEMENTS function returns zero (0) in two cases when:
3. the keyword or parameter is present but is an undefined variable
4. the keyword or parameter is not present in the call
PARAM_PRESENT distinguishes between these two cases by returning TRUE in case 1 and FALSE in case 2.
Example
The following example demonstrates the expected results when the functions PARAM_PRESENT, KEYWORD_SET, and N_ELEMENTS are used in a procedure.
PRO param_present_ex1, var1, Key=k
; Use PARAM_PRESENT to check the parameter
IF (PARAM_PRESENT(var1)) THEN PRINT, 'Parameter var1 is present.' $
ELSE PRINT, 'Parameter param1 is not present.'
; Use N_ELEMENTS to check the parameter
PRINT, 'Number of elements in var1 = ', STRTRIM(N_ELEMENTS(var1), 2)
IF (N_ELEMENTS(var1) GT 0) THEN PRINT, 'Parameter var1 is present.' $
ELSE PRINT, 'Parameter var1 is not present.'
; Use PARAM_PRESENT to check the keyword
IF (PARAM_PRESENT(k)) THEN PRINT, 'Keyword Key is present' $
ELSE PRINT, 'Keyword Key is not present'
; Use KEYWORD_SET to check the keyword
IF (KEYWORD_SET(k)) THEN PRINT, 'Keyword Key is set' $
ELSE PRINT, 'Keyword Key is NOT set'
END
WAVE> param_present_ex1
; PV-WAVE prints:
; Parameter param1 is not present.
; Number of elements in var1 = 0
; Parameter var1 is not present.
; Keyword Key is not present
; Keyword Key is NOT set
WAVE> param_present_ex1, p
; PV-WAVE prints:
; Parameter var1 is present.
; Number of elements in var1 = 0
; Parameter var1 is not present.
; Keyword Key is not present
; Keyword Key is NOT set
WAVE> p = INDGEN(4)
WAVE> param_present_ex1, p
; PV-WAVE prints:
; Parameter var1 is present.
; Number of elements in var1 = 4
; Parameter var1 is present.
; Keyword Key is not present
; Keyword Key is NOT set
WAVE> param_present_ex1, p, Key=0
; PV-WAVE prints:
; Parameter var1 is present.
; Number of elements in var1 = 4
; Parameter var1 is present.
; Keyword Key is present
; Keyword Key is NOT set
WAVE> param_present_ex1, Key=a
; PV-WAVE prints:
; Parameter param1 is not present.
; Number of elements in var1 = 0
; Parameter var1 is not present.
; Keyword Key is present
; Keyword Key is NOT set
WAVE> a = 10
WAVE> param_present_ex1, Key=a
; PV-WAVE prints:
; Parameter param1 is not present.
; Number of elements in var1 = 0
; Parameter var1 is not present.
; Keyword Key is present
; Keyword Key is set
See Also
KEYWORD_SET Function, N_ELEMENTS, N_PARAMS
For more information, see the PV‑WAVE Programmer’s Guide.