Markwardt IDL Page

What's New

Programs
   Curve Fitting
   Fitting Tutorial
   Introspection
   Save Files
   Array/Set
   Printing
   Graphics
   Mathematics
   Ephemeris/Timing
   Input/Output
   Miscellaneous
   Full Listing
   Documentation

Google

Markwardt IDL Pages
Entire Web

Craig's techie blog.

Home Page of Craig Markwardt



 


IDL Introspection Programs





FILE_COMPILE - Compile an arbitrary procedure or function

FILE_COMPILE compiles a file containing an IDL procedure or function stored on disk. This is basically a convenience routine which works around the difficulties of using RESOLVE_ROUTINE and catches error conditions. After compilation the user may call the procedure or function.

If compilation is successful, then ERROR is set to 0. If the compilation fails, then, ERROR is set to a non-zero error code, and ERRMSG is set to a descriptive error message.
Nov 10 20122 kb file_compile.pro  


HELPFORM - Generate a descriptive string in IDL HELP format

The HELPFORM function converts and IDL data value into a representation very similar to the format produced by the built-in command HELP. Programmers can thus present data types and values to users in a format they are familiar with. The benefit is that the output of HELPFORM is a string that can be outputted or reformatted. This capability is not available in all versions of IDL.

Jan 21 20099 kb helpform.pro  

INPUTFORM - Convert a value to an input expression

The INPUTFORM function converts an IDL data value into its string representation, suitable for execution at the IDL command line or with EXECUTE(). This is similar to the "InForm" output representation of Mathematica, which formats output so that it can be entered again on the command line. INPUTFORM() is a specialized form of STRING().

Such behavior might useful in several circumstances:

  • for printing values meant to be "pasted" back into the command line by the user;
  • for constructing command arguments to be EXECUTE()'d;
  • for saving values in ASCII format for later execution.

However, it should be noted that the IDL parser is not perfect. While IDL has many data types, not all expressions are representable as a textual string. For example, the value of objects cannot be represented. [ Pointers, however, can be represented. ] INPUTFORM() therefore provides several feedback mechanisms to predict and handle failure cases.

Nov 18 201022 kb inputform.pro  

TAGSIZE - Compute type information for tags in a structure

The TAGSIZE function determines the types and sizes of each tag in a structure. This is not as easy as it may seem, because IDL makes it very, *very* difficult to find out the true dimensions of a tag element.

Briefly, IDL surreptitiously discards trailing dimensions of size one. Thus, in doing any heavy duty work with structures you will find that you lose some crucial dimensions, which you can't normally regain. TAGSIZE attempts to work around all of these limitations to present the true dimensions of all tag elements in a structure.

Feb 08 20018 kb tagsize.pro  

ROUTINE_NAMES - Unofficial documentation for this IDL function

ROUTINE_NAMES obtains information about routines, and their variables and keywords. Using these functions, a subroutine can interrogate, and in some cases change, the values and names of variables and parameters in its calling routine, or at the $MAIN$ level. Some functionality of ROUTINE_NAMES is also in the IDL system function ROUTINE_INFO, and other functionality is exclusive to ROUTINE_NAMES.

ROUTINE_NAMES has been designated as "OBSOLETE" by RSI, although it will probably not disappear soon since their own software appears to use it. Most of the functionality appears to be undocumented, so this is my attempt to document it.

The following .PRO file contains documentation only. It is harmless to install in your path since the official built-in version will take precedence.

Mar 25 20015 kb routine_names.pro  

SAVE_DIAG - Inspect and diagnose an IDL SAVE file

Withdrawn in favor of the CMSVLIB library.


ARG_PRESENT - Simulate the ARG_PRESENT() function in all IDL versions

ARG_PRESENT and CMARG_PRESENT are considered withdrawn. They apparently do not work under IDL version 4 the way that I expected them to, or thought that I had tested them to do. If you really want either of these functions, see the full listing.


Copyright © 1997-2010 Craig B. Markwardt
Last Modified on 2013-08-14 10:55:27 by Craig Markwardt