idlwave: Routine Definitions
A.1 Routine Definitions
=======================
Routines which can be used in an IDL program can be defined in several
places:
1. _Builtin routines_ are defined inside IDL itself. The source code
of such routines is not available, but instead are learned about
through the IDL documentation.
2. Routines which are _part of the current program_, are defined in a
file explicitly compiled by the user. This file may or may not be
located on the IDL search path.
3. _Library routines_ are defined in files located on IDL’s search
path. When a library routine is called for the first time, IDL
will find the source file and compile it dynamically. A special
sub-category of library routines are the _system routines_
distributed with IDL, and usually available in the ‘lib’
subdirectory of the IDL distribution.
4. External routines written in other languages (like Fortran or C)
can be called with ‘CALL_EXTERNAL’, linked into IDL via
‘LINKIMAGE’, or included as dynamically loaded modules (DLMs).
Currently IDLWAVE cannot provide routine info and completion for
such external routines, except by querying the Shell for calling
information (DLMs only).