The CDF distribution includes a set of IDL functions/procedures that allow access to the CDF library (hereafter referred to as the CDF/IDL interface). The functions/procedures are used in the same manner as the Standard and Internal Interfaces are used in programs written in C. CDFs can be both read and written/modified.
NOTE: There is, however, one difference when using the Internal Interface (CDFlib). The current CDF must be selected each time CDFlib is called. This is because of how IDL does the dynamic mapping to the CDF library at run-time. Failure to select the current CDF may result in IDL crashing.
Research Systems, Inc. (the developers of IDL) have also implemented an interface to CDF that is part of the IDL product. It differs from the interface provided with the CDF distribution in that it is intended more for the non-programmer (and is functionally similar to other interfaces they provide). Which interface you choose to use will depend on your personal preferences.
CDF's interface relies on IDL's support of dynamic linking. IDL in turn relies on the operating system being used to support dynamic linking in a reasonable way. Currently, only the VAX (VMS), DEC Alpha (OpenVMS & OSF/1), Sun (SunOS & SOLARIS), HP (HP-UX), and IBM RS6000 (AIX) support dynamic linking in a way that makes it possible to use CDF's interface to IDL. Because IDL's CDF interface is built into the IDL executable, it does not rely on dynamic linking and is therefore available on every machine on which IDL is supported.