You can use numeric variables for an argument that requires
a short, int, long, or double data type, as well as for pointers to
those types. Numeric variables are converted to the required type
automatically. If the conversion fails, then the function is not called
and the output to the function is set to missing. If pointers to these
types are requested, the address of the converted value is passed.
On return from the call, the value is converted back to a double type
and stored in the SAS variable. SAS scalar variables cannot be passed
as arguments that require two or more levels of indirection. For example,
a SAS variable cannot be passed as an argument that requires a cast
to a “long **” type.