GDL – GNU Data Language - SRON Netherlands Institute for ...

126
DRAFT DRAFT GDL – GNU Data Language a free/libre/open-source implementation of IDL/PV-WAVE * developed by Marc Schellens and The GDL team documentation maintained by Sylwester Arabas and Alain Coulais August 24, 2011 * IDL (Interactive Data Language) and PV-WAVE (Precision Visuals - Workstation Analysis and Visualization Environment) are/were registered trademarks of Research Systems, Inc./ITT Visual Information Solutions and Precision Visuals/Visual Numerics/Rogue Wave Software, respectively

Transcript of GDL – GNU Data Language - SRON Netherlands Institute for ...

DRAFT

DRAFTGDL – GNU Data Language

a free/libre/open-source implementation of IDL/PV-WAVE*

developed by Marc Schellens and The GDL teamdocumentation maintained by Sylwester Arabas and Alain Coulais

August 24, 2011* IDL (Interactive Data Language) and PV-WAVE (Precision Visuals - Workstation Analysis and Visualization Environment)

are/were registered trademarks of Research Systems, Inc./ITT Visual Information Solutions and Precision Visuals/Visual Numerics/Rogue Wave Software, respectively

DRAFT

DRAFTContents

About GDL . . . . . . . . . . . . . . . . . . . . . 7License . . . . . . . . . . . . . . . . . . . . . . . 7Credits . . . . . . . . . . . . . . . . . . . . . . . 7Providing fedback . . . . . . . . . . . . . . . . . . 7Organization of this document . . . . . . . . . . . 8

I. User’s guideChapter 1. Obtaining, installing, and invoking GDL 11Requirements and supported environments . . . . 11Availability of pre-compiled packages . . . . . . . 11Compiling GDL from source . . . . . . . . . . . . 11Installation layout . . . . . . . . . . . . . . . . . . 11Command-line options . . . . . . . . . . . . . . . 11Influential environmental variables . . . . . . . . . 11

Chapter 2. Language reference . . . . . . . . . . . 12Syntax basics . . . . . . . . . . . . . . . . . . . . 12Datatypes . . . . . . . . . . . . . . . . . . . . . . 12Operators . . . . . . . . . . . . . . . . . . . . . . 12Flow control structures . . . . . . . . . . . . . . . 12Variable scoping rules . . . . . . . . . . . . . . . . 14Functions and procedures . . . . . . . . . . . . . . 14Argument passing . . . . . . . . . . . . . . . . . . 14Arrays . . . . . . . . . . . . . . . . . . . . . . . . 15Structures . . . . . . . . . . . . . . . . . . . . . . 15System variables (global) . . . . . . . . . . . . . . 15Heap variables (pointers) . . . . . . . . . . . . . . 15The HELP procedure . . . . . . . . . . . . . . . . 15Object-oriented programming . . . . . . . . . . . 15Handling Overflows, Floating Point Special Values 15Error handling . . . . . . . . . . . . . . . . . . . . 15Compile options . . . . . . . . . . . . . . . . . . . 15

Chapter 3. Interpreter commands and built-indebugging facilities . . . . . . . . . . . . . . . . 17

Chapter 4. Maths . . . . . . . . . . . . . . . . . . 18Basic Scalar, vector and array operations . . . . . 18Basic and special function library . . . . . . . . . 18Linear algebra . . . . . . . . . . . . . . . . . . . . 18Statistics . . . . . . . . . . . . . . . . . . . . . . 18Interpolation . . . . . . . . . . . . . . . . . . . . 18Polynomials . . . . . . . . . . . . . . . . . . . . . 18Geometric calculations . . . . . . . . . . . . . . . 19Bitwise operations . . . . . . . . . . . . . . . . . 19Function fitting . . . . . . . . . . . . . . . . . . . 19Fourier analysis . . . . . . . . . . . . . . . . . . . 19Multidimensional root-finding . . . . . . . . . . . 19Random numbers . . . . . . . . . . . . . . . . . . 19Ordinary differential equations . . . . . . . . . . . 19Wavelet analysis . . . . . . . . . . . . . . . . . . 19Mathematical and physical constants . . . . . . . 19

Chapter 5. Input/output, supported data formats 20Basics – accessing files and io streams . . . . . . . 20ASCII . . . . . . . . . . . . . . . . . . . . . . . . 20CSV . . . . . . . . . . . . . . . . . . . . . . . . . 20Binary data (raw access) . . . . . . . . . . . . . . 20FITS . . . . . . . . . . . . . . . . . . . . . . . . . 20netCDF . . . . . . . . . . . . . . . . . . . . . . . 20HDF4 . . . . . . . . . . . . . . . . . . . . . . . . 20HDF5 . . . . . . . . . . . . . . . . . . . . . . . . 20raster images (TIFF, PNG, JPEG, . . . ) . . . . . . 21DICOM . . . . . . . . . . . . . . . . . . . . . . . 21GRIB . . . . . . . . . . . . . . . . . . . . . . . . 21IDL save files . . . . . . . . . . . . . . . . . . . . 21

Chapter 6. Plotting and mapping . . . . . . . . . 222D plots . . . . . . . . . . . . . . . . . . . . . . . 223D plots . . . . . . . . . . . . . . . . . . . . . . . 22Plotting raster data . . . . . . . . . . . . . . . . . 22Managing multiple windows . . . . . . . . . . . . 22Map projections . . . . . . . . . . . . . . . . . . . 22Output terminals . . . . . . . . . . . . . . . . . . 22Working with colours . . . . . . . . . . . . . . . . 22Fonts, symbols and text formatting . . . . . . . . 23

Misc . . . . . . . . . . . . . . . . . . . . . . . . . 23Chapter 7. Interaction with host OS . . . . . . . . 24

Executing external commands (via shell or not) . . 24Filesystem operations . . . . . . . . . . . . . . . . 24Network operations . . . . . . . . . . . . . . . . . 24Command-line options and environmental variables 24

Chapter 8. Manipulating strings . . . . . . . . . . 25Chapter 9. Representing date & time . . . . . . . 26Chapter 10. Image processing . . . . . . . . . . . 27Chapter 11. Parallel processing . . . . . . . . . . . 28

Built-in features (OpenMP) . . . . . . . . . . . . 28Semaphores and shared memory (library routines) . 28ImageMagick’s features . . . . . . . . . . . . . . . 28MPI and GDL . . . . . . . . . . . . . . . . . . . . 28

Chapter 12. GUI programming (widgets) . . . . . 29Chapter 13. Dynamic loading . . . . . . . . . . . . 30Chapter 14. The Python bridge . . . . . . . . . . 31

calling Python code from GDL . . . . . . . . . . . 31calling GDL code from Python . . . . . . . . . . . 31

Chapter 15. Alphabetical list of library routines . 32ABS() function . . . . . . . . . . . . . . . . . . . 32ACOS() function . . . . . . . . . . . . . . . . . . 32ALOG() function . . . . . . . . . . . . . . . . . . 32ALOG10() function . . . . . . . . . . . . . . . . . 32APPLEMAN procedure . . . . . . . . . . . . . . . 32ARG_PRESENT() function . . . . . . . . . . . . 32ARRAY_EQUAL() function . . . . . . . . . . . . 32ARRAY_INDICES() function . . . . . . . . . . . . 32ASIN() function . . . . . . . . . . . . . . . . . . . 33ASSOC() function . . . . . . . . . . . . . . . . . 33ATAN() function . . . . . . . . . . . . . . . . . . 33AXIS procedure . . . . . . . . . . . . . . . . . . . 33BESELI() function . . . . . . . . . . . . . . . . . 33BESELJ() function . . . . . . . . . . . . . . . . . 33BESELK() function . . . . . . . . . . . . . . . . . 33BESELY() function . . . . . . . . . . . . . . . . . 33BETA() function . . . . . . . . . . . . . . . . . . 33BINDGEN() function . . . . . . . . . . . . . . . . 33

DRAFT

DRAFTContents 3

BROYDEN() function . . . . . . . . . . . . . . . 33BYTARR() function . . . . . . . . . . . . . . . . 33BYTE() function . . . . . . . . . . . . . . . . . . 34BYTEORDER procedure . . . . . . . . . . . . . . 34BYTSCL() function . . . . . . . . . . . . . . . . . 34CALDAT procedure . . . . . . . . . . . . . . . . . 34CALENDAR procedure . . . . . . . . . . . . . . . 34CALL_EXTERNAL() function . . . . . . . . . . . 34CALL_FUNCTION() function . . . . . . . . . . . 36CALL_METHOD procedure . . . . . . . . . . . . 36CALL_METHOD() function . . . . . . . . . . . . 36CALL_PROCEDURE procedure . . . . . . . . . . 36CATCH procedure . . . . . . . . . . . . . . . . . 36CD procedure . . . . . . . . . . . . . . . . . . . . 36CDF_EPOCH procedure . . . . . . . . . . . . . . 36CEIL() function . . . . . . . . . . . . . . . . . . . 37CHECK_MATH() function . . . . . . . . . . . . . 37CINDGEN() function . . . . . . . . . . . . . . . . 37CLOSE procedure . . . . . . . . . . . . . . . . . . 37COMMAND_LINE_ARGS() function . . . . . . . 37COMPLEX() function . . . . . . . . . . . . . . . 37COMPLEXARR() function . . . . . . . . . . . . . 37CONJ() function . . . . . . . . . . . . . . . . . . 37CONTOUR procedure . . . . . . . . . . . . . . . 37CONVERT_COORD() function . . . . . . . . . . 37CONVOL() function . . . . . . . . . . . . . . . . 38CORRELATE() function . . . . . . . . . . . . . . 38COS() function . . . . . . . . . . . . . . . . . . . 38COSH() function . . . . . . . . . . . . . . . . . . 38CPU procedure . . . . . . . . . . . . . . . . . . . 39CREATE_STRUCT() function . . . . . . . . . . . 39CROSSP() function . . . . . . . . . . . . . . . . . 39CURSOR procedure . . . . . . . . . . . . . . . . . 39DBLARR() function . . . . . . . . . . . . . . . . 39DCINDGEN() function . . . . . . . . . . . . . . . 39DCOMPLEX() function . . . . . . . . . . . . . . 39DCOMPLEXARR() function . . . . . . . . . . . . 39DEFSYSV procedure . . . . . . . . . . . . . . . . 39DERIV() function . . . . . . . . . . . . . . . . . . 39DEVICE procedure . . . . . . . . . . . . . . . . . 39DIALOG_MESSAGE() function . . . . . . . . . . 39

DIALOG_PICKFILE() function . . . . . . . . . . 40DINDGEN() function . . . . . . . . . . . . . . . . 40DIST() function . . . . . . . . . . . . . . . . . . . 40DOUBLE() function . . . . . . . . . . . . . . . . 40EOF() function . . . . . . . . . . . . . . . . . . . 40ERASE procedure . . . . . . . . . . . . . . . . . . 40ERF() function . . . . . . . . . . . . . . . . . . . 40ERFC() function . . . . . . . . . . . . . . . . . . 41ERRORF() function . . . . . . . . . . . . . . . . 41ESCAPE_SPECIAL_CHAR() function . . . . . . 41EXECUTE() function . . . . . . . . . . . . . . . . 41EXIT procedure . . . . . . . . . . . . . . . . . . . 41EXP() function . . . . . . . . . . . . . . . . . . . 41EXPAND_PATH() function . . . . . . . . . . . . 41EXPINT() function . . . . . . . . . . . . . . . . . 41FACTORIAL() function . . . . . . . . . . . . . . . 41FFT() function . . . . . . . . . . . . . . . . . . . 42FILEPATH() function . . . . . . . . . . . . . . . . 42FILE_BASENAME() function . . . . . . . . . . . 42FILE_COPY procedure . . . . . . . . . . . . . . . 42FILE_DELETE procedure . . . . . . . . . . . . . 42FILE_DIRNAME() function . . . . . . . . . . . . 43FILE_EXPAND_PATH() function . . . . . . . . . 43FILE_INFO() function . . . . . . . . . . . . . . . 43FILE_LINES() function . . . . . . . . . . . . . . . 43FILE_MKDIR procedure . . . . . . . . . . . . . . 43FILE_SAME() function . . . . . . . . . . . . . . . 43FILE_SEARCH() function . . . . . . . . . . . . . 43FILE_TEST() function . . . . . . . . . . . . . . . 43FILE_WHICH() function . . . . . . . . . . . . . . 43FINDEX() function . . . . . . . . . . . . . . . . . 43FINDFILE() function . . . . . . . . . . . . . . . . 43FINDGEN() function . . . . . . . . . . . . . . . . 44FINITE() function . . . . . . . . . . . . . . . . . 44FIX() function . . . . . . . . . . . . . . . . . . . 44FLOAT() function . . . . . . . . . . . . . . . . . 44FLOOR() function . . . . . . . . . . . . . . . . . 44FLTARR() function . . . . . . . . . . . . . . . . . 44FLUSH procedure . . . . . . . . . . . . . . . . . . 44FREE_LUN procedure . . . . . . . . . . . . . . . 44FSTAT() function . . . . . . . . . . . . . . . . . . 44

GAMMA() function . . . . . . . . . . . . . . . . . 44GAUSSINT() function . . . . . . . . . . . . . . . 44GAUSS_CVF() function . . . . . . . . . . . . . . 44GAUSS_PDF() function . . . . . . . . . . . . . . 44GDL_ERFINV() function . . . . . . . . . . . . . . 45GETENV() function . . . . . . . . . . . . . . . . 45GET_DRIVE_LIST() function . . . . . . . . . . . 45GET_KBRD() function . . . . . . . . . . . . . . . 45GET_LOGIN_INFO() function . . . . . . . . . . 45GET_LUN procedure . . . . . . . . . . . . . . . . 45GET_SCREEN_SIZE() function . . . . . . . . . . 45GRIBAPI_CLONE() function . . . . . . . . . . . 45GRIBAPI_CLOSE_FILE procedure . . . . . . . . 45GRIBAPI_COUNT_IN_FILE() function . . . . . . 45GRIBAPI_GET procedure . . . . . . . . . . . . . 45GRIBAPI_GET_DATA procedure . . . . . . . . . 45GRIBAPI_GET_SIZE() function . . . . . . . . . . 46GRIBAPI_NEW_FROM_FILE() function . . . . . 46GRIBAPI_OPEN_FILE() function . . . . . . . . . 46GRIBAPI_RELEASE procedure . . . . . . . . . . 46GSL_EXP() function . . . . . . . . . . . . . . . . 46H5A_CLOSE procedure . . . . . . . . . . . . . . 46H5A_GET_NAME() function . . . . . . . . . . . 46H5A_GET_NUM_ATTRS() function . . . . . . . 46H5A_GET_SPACE() function . . . . . . . . . . . 46H5A_GET_TYPE() function . . . . . . . . . . . 46H5A_OPEN_IDX() function . . . . . . . . . . . . 46H5A_OPEN_NAME() function . . . . . . . . . . 46H5A_READ() function . . . . . . . . . . . . . . . 46H5D_CLOSE procedure . . . . . . . . . . . . . . 46H5D_GET_SPACE() function . . . . . . . . . . . 47H5D_GET_TYPE() function . . . . . . . . . . . 47H5D_OPEN() function . . . . . . . . . . . . . . . 47H5D_READ() function . . . . . . . . . . . . . . . 47H5F_CLOSE procedure . . . . . . . . . . . . . . 47H5F_IS_HDF5() function . . . . . . . . . . . . . 47H5F_OPEN() function . . . . . . . . . . . . . . . 47H5G_CLOSE procedure . . . . . . . . . . . . . . 47H5G_OPEN() function . . . . . . . . . . . . . . . 47H5S_CLOSE procedure . . . . . . . . . . . . . . 47H5S_GET_SIMPLE_EXTENT_DIMS() function . 47

DRAFT

DRAFT4 Contents

H5T_CLOSE procedure . . . . . . . . . . . . . . 47H5T_GET_SIZE() function . . . . . . . . . . . . 47H5_GET_LIBVERSION() function . . . . . . . . 48HDF_CLOSE procedure . . . . . . . . . . . . . . 48HDF_OPEN() function . . . . . . . . . . . . . . . 48HDF_SD_ADDDATA procedure . . . . . . . . . . 48HDF_SD_ATTRFIND() function . . . . . . . . . 48HDF_SD_ATTRINFO procedure . . . . . . . . . 48HDF_SD_CREATE() function . . . . . . . . . . . 48HDF_SD_DIMGET procedure . . . . . . . . . . . 48HDF_SD_DIMGETID() function . . . . . . . . . 48HDF_SD_END procedure . . . . . . . . . . . . . 48HDF_SD_ENDACCESS procedure . . . . . . . . 48HDF_SD_FILEINFO procedure . . . . . . . . . . 48HDF_SD_GETDATA procedure . . . . . . . . . . 49HDF_SD_GETINFO procedure . . . . . . . . . . 49HDF_SD_NAMETOINDEX() function . . . . . . 49HDF_SD_SELECT() function . . . . . . . . . . . 49HDF_SD_START() function . . . . . . . . . . . 49HDF_VD_ATTACH() function . . . . . . . . . . 49HDF_VD_DETACH procedure . . . . . . . . . . 49HDF_VD_FIND() function . . . . . . . . . . . . 49HDF_VD_GET procedure . . . . . . . . . . . . . 49HDF_VD_READ() function . . . . . . . . . . . . 49HDF_VG_ATTACH() function . . . . . . . . . . 49HDF_VG_DETACH procedure . . . . . . . . . . . 49HDF_VG_GETID() function . . . . . . . . . . . . 49HDF_VG_GETINFO procedure . . . . . . . . . . 49HDF_VG_GETTRS procedure . . . . . . . . . . . 50HEAP_GC procedure . . . . . . . . . . . . . . . . 50HELP procedure . . . . . . . . . . . . . . . . . . 50HELPFORM() function . . . . . . . . . . . . . . . 50HISTOGRAM() function . . . . . . . . . . . . . . 50HIST_2D() function . . . . . . . . . . . . . . . . 50HIST_ND() function . . . . . . . . . . . . . . . . 50IDENTITY() function . . . . . . . . . . . . . . . 51IDL_BASE64() function . . . . . . . . . . . . . . 51IDL_VALIDNAME() function . . . . . . . . . . . 51IGAMMA() function . . . . . . . . . . . . . . . . 51IMAGINARY() function . . . . . . . . . . . . . . 51IMSL_BINOMIALCOEF() function . . . . . . . . 51

IMSL_CONSTANT() function . . . . . . . . . . . 52IMSL_ERF() function . . . . . . . . . . . . . . . 53IMSL_ZEROPOLY() function . . . . . . . . . . . 53IMSL_ZEROSYS() function . . . . . . . . . . . . 54INDGEN() function . . . . . . . . . . . . . . . . . 54INTARR() function . . . . . . . . . . . . . . . . . 54INTERPOL() function . . . . . . . . . . . . . . . 54INTERPOLATE() function . . . . . . . . . . . . . 54INVERT() function . . . . . . . . . . . . . . . . . 54ISHFT() function . . . . . . . . . . . . . . . . . . 54JOURNAL procedure . . . . . . . . . . . . . . . . 54KEYWORD_SET() function . . . . . . . . . . . . 54KURTOSIS() function . . . . . . . . . . . . . . . 54L64INDGEN() function . . . . . . . . . . . . . . . 54LAGUERRE() function . . . . . . . . . . . . . . . 54LAST_ITEM() function . . . . . . . . . . . . . . 54LA_TRIRED procedure . . . . . . . . . . . . . . . 54LEGENDRE() function . . . . . . . . . . . . . . . 55LINDGEN() function . . . . . . . . . . . . . . . . 55LINKIMAGE procedure . . . . . . . . . . . . . . . 55LL_ARC_DISTANCE() function . . . . . . . . . . 55LMGR() function . . . . . . . . . . . . . . . . . . 55LNGAMMA() function . . . . . . . . . . . . . . . 55LOADCT procedure . . . . . . . . . . . . . . . . 55LOADCT_INTERNALGDL procedure . . . . . . . 56LOCALE_GET() function . . . . . . . . . . . . . 56LOGICAL_AND() function . . . . . . . . . . . . . 57LOGICAL_OR() function . . . . . . . . . . . . . . 57LOGICAL_TRUE() function . . . . . . . . . . . . 57LON64ARR() function . . . . . . . . . . . . . . . 57LONARR() function . . . . . . . . . . . . . . . . 57LONG() function . . . . . . . . . . . . . . . . . . 57LONG64() function . . . . . . . . . . . . . . . . . 57LUDC procedure . . . . . . . . . . . . . . . . . . 57MACHAR() function . . . . . . . . . . . . . . . . 57MAGICK_ADDNOISE procedure . . . . . . . . . 57MAGICK_CLOSE procedure . . . . . . . . . . . . 57MAGICK_COLORMAPSIZE() function . . . . . . 57MAGICK_COLUMNS() function . . . . . . . . . . 58MAGICK_CREATE() function . . . . . . . . . . . 58MAGICK_DISPLAY procedure . . . . . . . . . . . 58

MAGICK_EXISTS() function . . . . . . . . . . . 58MAGICK_FLIP procedure . . . . . . . . . . . . . 58MAGICK_INDEXEDCOLOR() function . . . . . . 58MAGICK_INTERLACE procedure . . . . . . . . . 58MAGICK_MAGICK() function . . . . . . . . . . . 58MAGICK_MATTE procedure . . . . . . . . . . . 58MAGICK_OPEN() function . . . . . . . . . . . . 58MAGICK_PING() function . . . . . . . . . . . . . 58MAGICK_QUALITY procedure . . . . . . . . . . 58MAGICK_QUANTIZE procedure . . . . . . . . . 58MAGICK_READ() function . . . . . . . . . . . . 59MAGICK_READCOLORMAPRGB procedure . . . 59MAGICK_READINDEXES() function . . . . . . . 59MAGICK_ROWS() function . . . . . . . . . . . . 59MAGICK_WRITE procedure . . . . . . . . . . . . 59MAGICK_WRITECOLORTABLE procedure . . . . 59MAGICK_WRITEFILE procedure . . . . . . . . . 59MAGICK_WRITEINDEXES procedure . . . . . . 59MAKE_ARRAY() function . . . . . . . . . . . . . 59MAP_CLIP_SET procedure . . . . . . . . . . . . 59MAP_CONTINENTS procedure . . . . . . . . . . 59MAP_PROJ_FORWARD() function . . . . . . . 59MAP_PROJ_INVERSE() function . . . . . . . . 59MATRIX_MULTIPLY() function . . . . . . . . . . 60MAX() function . . . . . . . . . . . . . . . . . . . 60MEAN() function . . . . . . . . . . . . . . . . . . 60MEANABSDEV() function . . . . . . . . . . . . . 60MEDIAN() function . . . . . . . . . . . . . . . . 60MEMORY() function . . . . . . . . . . . . . . . . 60MESSAGE procedure . . . . . . . . . . . . . . . . 60MIN() function . . . . . . . . . . . . . . . . . . . 60MOMENT() function . . . . . . . . . . . . . . . . 60NCDF_ATTCOPY() function . . . . . . . . . . . 60NCDF_ATTDEL procedure . . . . . . . . . . . . 60NCDF_ATTGET procedure . . . . . . . . . . . . 60NCDF_ATTINQ() function . . . . . . . . . . . . 60NCDF_ATTNAME() function . . . . . . . . . . . 60NCDF_ATTPUT procedure . . . . . . . . . . . . 61NCDF_ATTRENAME procedure . . . . . . . . . . 61NCDF_CLOSE procedure . . . . . . . . . . . . . 61NCDF_CONTROL procedure . . . . . . . . . . . 61

DRAFT

DRAFTContents 5

NCDF_CREATE() function . . . . . . . . . . . . 61NCDF_DIMDEF() function . . . . . . . . . . . . 61NCDF_DIMID() function . . . . . . . . . . . . . 61NCDF_DIMINQ procedure . . . . . . . . . . . . . 61NCDF_DIMRENAME procedure . . . . . . . . . . 61NCDF_EXISTS() function . . . . . . . . . . . . . 61NCDF_INQUIRE() function . . . . . . . . . . . . 61NCDF_OPEN() function . . . . . . . . . . . . . . 61NCDF_VARDEF() function . . . . . . . . . . . . 61NCDF_VARGET procedure . . . . . . . . . . . . 62NCDF_VARGET1 procedure . . . . . . . . . . . . 62NCDF_VARID() function . . . . . . . . . . . . . 62NCDF_VARINQ() function . . . . . . . . . . . . 62NCDF_VARPUT procedure . . . . . . . . . . . . 62NCDF_VARRENAME procedure . . . . . . . . . . 62NEWTON() function . . . . . . . . . . . . . . . . 62NORM() function . . . . . . . . . . . . . . . . . . 62N_ELEMENTS() function . . . . . . . . . . . . . 62N_PARAMS() function . . . . . . . . . . . . . . . 62N_TAGS() function . . . . . . . . . . . . . . . . 62OBJARR() function . . . . . . . . . . . . . . . . 62OBJ_CLASS() function . . . . . . . . . . . . . . 63OBJ_DESTROY procedure . . . . . . . . . . . . 63OBJ_ISA() function . . . . . . . . . . . . . . . . 63OBJ_NEW() function . . . . . . . . . . . . . . . 63OBJ_VALID() function . . . . . . . . . . . . . . . 64ON_ERROR procedure . . . . . . . . . . . . . . . 64OPENR procedure . . . . . . . . . . . . . . . . . 64OPENU procedure . . . . . . . . . . . . . . . . . 64OPENW procedure . . . . . . . . . . . . . . . . . 64OPLOT procedure . . . . . . . . . . . . . . . . . 64PARSE_URL() function . . . . . . . . . . . . . . 65PATH_SEP() function . . . . . . . . . . . . . . . 65PLOT procedure . . . . . . . . . . . . . . . . . . 65PLOTERR procedure . . . . . . . . . . . . . . . . 65PLOTS procedure . . . . . . . . . . . . . . . . . 65PM procedure . . . . . . . . . . . . . . . . . . . . 65POINT_LUN procedure . . . . . . . . . . . . . . 66POLY() function . . . . . . . . . . . . . . . . . . 66POLYFILL procedure . . . . . . . . . . . . . . . . 66POLY_2D() function . . . . . . . . . . . . . . . . 66

POLY_AREA() function . . . . . . . . . . . . . . 66POPD procedure . . . . . . . . . . . . . . . . . . 66PREWITT() function . . . . . . . . . . . . . . . . 66PRIMES() function . . . . . . . . . . . . . . . . . 66PRINT procedure . . . . . . . . . . . . . . . . . . 66PRINTD procedure . . . . . . . . . . . . . . . . . 66PRINTF procedure . . . . . . . . . . . . . . . . . 66PRODUCT() function . . . . . . . . . . . . . . . 66PTRARR() function . . . . . . . . . . . . . . . . 66PTR_FREE procedure . . . . . . . . . . . . . . . 67PTR_NEW() function . . . . . . . . . . . . . . . 67PTR_VALID() function . . . . . . . . . . . . . . 67PUSHD procedure . . . . . . . . . . . . . . . . . 67PYTHON procedure . . . . . . . . . . . . . . . . 67PYTHON() function . . . . . . . . . . . . . . . . 67PY_PLOT procedure . . . . . . . . . . . . . . . . 67PY_PRINT procedure . . . . . . . . . . . . . . . 67QUERY_BMP() function . . . . . . . . . . . . . 67QUERY_DICOM() function . . . . . . . . . . . . 68QUERY_GIF() function . . . . . . . . . . . . . . 68QUERY_IMAGE() function . . . . . . . . . . . . 68QUERY_JPEG() function . . . . . . . . . . . . . 68QUERY_PICT() function . . . . . . . . . . . . . 68QUERY_PNG() function . . . . . . . . . . . . . . 68QUERY_PPM() function . . . . . . . . . . . . . 68QUERY_TIFF() function . . . . . . . . . . . . . . 68RADON() function . . . . . . . . . . . . . . . . . 68RANDOMN() function . . . . . . . . . . . . . . . 68RANDOMU() function . . . . . . . . . . . . . . . 68READ procedure . . . . . . . . . . . . . . . . . . 68READF procedure . . . . . . . . . . . . . . . . . 69READS procedure . . . . . . . . . . . . . . . . . 69READU procedure . . . . . . . . . . . . . . . . . 69READ_ASCII() function . . . . . . . . . . . . . . 69READ_BINARY() function . . . . . . . . . . . . 69READ_BMP() function . . . . . . . . . . . . . . 69READ_DICOM() function . . . . . . . . . . . . . 69READ_JPEG procedure . . . . . . . . . . . . . . 69READ_PICT procedure . . . . . . . . . . . . . . 69READ_PNG() function . . . . . . . . . . . . . . . 69READ_TIFF() function . . . . . . . . . . . . . . 69

READ_XWD() function . . . . . . . . . . . . . . 69REAL_PART() function . . . . . . . . . . . . . . 69REBIN() function . . . . . . . . . . . . . . . . . . 70RECALL_COMMANDS() function . . . . . . . . 70REFORM() function . . . . . . . . . . . . . . . . 70REPLICATE() function . . . . . . . . . . . . . . . 70REPLICATE_INPLACE procedure . . . . . . . . . 70RESOLVE_ROUTINE procedure . . . . . . . . . . 70RESTORE procedure . . . . . . . . . . . . . . . . 70RETALL procedure . . . . . . . . . . . . . . . . . 70REVERSE() function . . . . . . . . . . . . . . . . 70RK4() function . . . . . . . . . . . . . . . . . . . 70RK4JMG() function . . . . . . . . . . . . . . . . 70ROBERTS() function . . . . . . . . . . . . . . . . 70ROTATE() function . . . . . . . . . . . . . . . . 70ROUND() function . . . . . . . . . . . . . . . . . 71ROUTINE_INFO() function . . . . . . . . . . . . 71ROUTINE_NAMES() function . . . . . . . . . . . 71RSTRPOS() function . . . . . . . . . . . . . . . . 73SAVE procedure . . . . . . . . . . . . . . . . . . 73SCOPE_VARFETCH() function . . . . . . . . . . 73SEM_CREATE() function . . . . . . . . . . . . . 73SEM_DELETE procedure . . . . . . . . . . . . . 73SEM_LOCK() function . . . . . . . . . . . . . . . 73SEM_RELEASE procedure . . . . . . . . . . . . . 73SETENV procedure . . . . . . . . . . . . . . . . . 73SET_PLOT procedure . . . . . . . . . . . . . . . 73SHIFT() function . . . . . . . . . . . . . . . . . . 73SHOWFONT procedure . . . . . . . . . . . . . . 73SIN() function . . . . . . . . . . . . . . . . . . . 81SINDGEN() function . . . . . . . . . . . . . . . . 81SINH() function . . . . . . . . . . . . . . . . . . . 81SIZE() function . . . . . . . . . . . . . . . . . . . 82SKEWNESS() function . . . . . . . . . . . . . . . 82SKIP_LUN procedure . . . . . . . . . . . . . . . 82SMOOTH() function . . . . . . . . . . . . . . . . 82SOBEL() function . . . . . . . . . . . . . . . . . 82SOCKET procedure . . . . . . . . . . . . . . . . . 82SORT() function . . . . . . . . . . . . . . . . . . 82SPAWN procedure . . . . . . . . . . . . . . . . . 82SPHER_HARM() function . . . . . . . . . . . . . 82

DRAFT

DRAFT6 Contents

SPL_INIT() function . . . . . . . . . . . . . . . . 82SPL_INIT_OLD() function . . . . . . . . . . . . 82SPL_INTERP() function . . . . . . . . . . . . . . 82SPL_INTERP_OLD() function . . . . . . . . . . 82SQRT() function . . . . . . . . . . . . . . . . . . 83STDDEV() function . . . . . . . . . . . . . . . . 83STOP procedure . . . . . . . . . . . . . . . . . . 83STRARR() function . . . . . . . . . . . . . . . . 83STRCMP() function . . . . . . . . . . . . . . . . 83STRCOMPRESS() function . . . . . . . . . . . . 83STREGEX() function . . . . . . . . . . . . . . . . 83STRING() function . . . . . . . . . . . . . . . . . 83STRJOIN() function . . . . . . . . . . . . . . . . 83STRLEN() function . . . . . . . . . . . . . . . . . 84STRLOWCASE() function . . . . . . . . . . . . . 84STRMID() function . . . . . . . . . . . . . . . . . 84STRPOS() function . . . . . . . . . . . . . . . . . 84STRPUT procedure . . . . . . . . . . . . . . . . . 84STRSPLIT() function . . . . . . . . . . . . . . . . 84STRTOK() function . . . . . . . . . . . . . . . . 84STRTRIM() function . . . . . . . . . . . . . . . . 85STRUCT_ASSIGN procedure . . . . . . . . . . . 85STRUPCASE() function . . . . . . . . . . . . . . 85STR_SEP() function . . . . . . . . . . . . . . . . 85SURFACE procedure . . . . . . . . . . . . . . . . 85SVDC procedure . . . . . . . . . . . . . . . . . . 86SWAP_ENDIAN() function . . . . . . . . . . . . 86SWAP_ENDIAN_INPLACE procedure . . . . . . 86SYSTIME() function . . . . . . . . . . . . . . . . 86TAG_NAMES() function . . . . . . . . . . . . . . 86TAN() function . . . . . . . . . . . . . . . . . . . 86TANH() function . . . . . . . . . . . . . . . . . . 86TEMPLATE procedure . . . . . . . . . . . . . . . 86

TEMPLATE_BLANK procedure . . . . . . . . . . 87TEMPORARY() function . . . . . . . . . . . . . 87TETRIS procedure . . . . . . . . . . . . . . . . . 87TOTAL() function . . . . . . . . . . . . . . . . . 87TRACE() function . . . . . . . . . . . . . . . . . 87TRANSPOSE() function . . . . . . . . . . . . . . 87TRIGRID() function . . . . . . . . . . . . . . . . 87TV procedure . . . . . . . . . . . . . . . . . . . . 87TVLCT procedure . . . . . . . . . . . . . . . . . 87TVRD() function . . . . . . . . . . . . . . . . . . 87TVSCL procedure . . . . . . . . . . . . . . . . . . 87T_PDF() function . . . . . . . . . . . . . . . . . 87UINDGEN() function . . . . . . . . . . . . . . . . 87UINT() function . . . . . . . . . . . . . . . . . . 88UINTARR() function . . . . . . . . . . . . . . . . 88UL64INDGEN() function . . . . . . . . . . . . . . 88ULINDGEN() function . . . . . . . . . . . . . . . 88ULON64ARR() function . . . . . . . . . . . . . . 88ULONARR() function . . . . . . . . . . . . . . . 88ULONG() function . . . . . . . . . . . . . . . . . 88ULONG64() function . . . . . . . . . . . . . . . . 88UNIQ() function . . . . . . . . . . . . . . . . . . 88VALUE_LOCATE() function . . . . . . . . . . . . 88VARIANCE() function . . . . . . . . . . . . . . . 88VOIGT() function . . . . . . . . . . . . . . . . . . 88WAIT procedure . . . . . . . . . . . . . . . . . . 88WDELETE procedure . . . . . . . . . . . . . . . . 88WHERE() function . . . . . . . . . . . . . . . . . 89WIDGET_BASE() function . . . . . . . . . . . . 89WIDGET_BUTTON() function . . . . . . . . . . 89WIDGET_CONTROL procedure . . . . . . . . . . 89WIDGET_DROPLIST() function . . . . . . . . . 89WIDGET_EVENT() function . . . . . . . . . . . 89

WIDGET_INFO() function . . . . . . . . . . . . . 89WIDGET_LABEL() function . . . . . . . . . . . . 89WIDGET_TEXT() function . . . . . . . . . . . . 90WINDOW procedure . . . . . . . . . . . . . . . . 90WRITEU procedure . . . . . . . . . . . . . . . . . 90WRITE_BMP procedure . . . . . . . . . . . . . . 90WRITE_JPEG procedure . . . . . . . . . . . . . . 90WRITE_PICT procedure . . . . . . . . . . . . . . 90WRITE_PNG procedure . . . . . . . . . . . . . . 90WSET procedure . . . . . . . . . . . . . . . . . . 90WSHOW procedure . . . . . . . . . . . . . . . . . 90WTN() function . . . . . . . . . . . . . . . . . . 90XYOUTS procedure . . . . . . . . . . . . . . . . 90

II. Developer’s guideChapter 16. General remarks and coding guidelines 92Chapter 17. The library-routine API . . . . . . . . 93Chapter 18. Extending the documentation . . . . 94Chapter 19. Extending the testsuite(testsuite/README) . . . . . . . . . . . . . . . 95

Chapter 20. A short overview of how GDL worksinternally . . . . . . . . . . . . . . . . . . . . . . 96

Chapter 21. How to make use of OpenMP in GDL 97Chapter 22. Notes for packagers . . . . . . . . . . 98

Optional features of PLplot and ImageMagick . . . 98The HDF4-netCDF conflict . . . . . . . . . . . . 98

III. IndicesSubject Index . . . . . . . . . . . . . . . . . . . . . 101Bibliography . . . . . . . . . . . . . . . . . . . . . 126

DRAFT

DRAFTCredits 7

About GDL

GNU Data Language (GDL) is a free/libre/open source incremental compiler compat-ible with IDL and to some extent with PV-WAVE. Together with its library routinesit serves as a tool for data analysis and visualization in such disciplines as astronomy,geosciences and medical imaging.GDL as a language is dynamically-typed, vectorized and has object-oriented program-ming capabilities. GDL library routines handle numerical calculations, data visual-isation, signal/image processing, interaction with host OS and data input/output.GDL supports several data formats such as netCDF, HDF4, HDF5, GRIB, PNG,TIFF, DICOM, etc. Graphical output is handled by X11, PostScript, SVG or z-bufferterminals, the last one allowing output graphics (plots) to be saved in a variety ofraster graphics formats. GDL features integrated debugging facilities. GDL has alsoa Python bridge (Python code can be called from GDL; GDL can be compiled as aPython module).Packaged versions of GDL are available for several Linux and BSD flavours as wellas Mac OS X. The source code compiles as well on other UNIX systems, includingSolaris. GDL source code is available for download from Sourceforge.net at: http://sourceforge.net/projects/gnudatalanguage/.Other open-source numerical data analysis tools similar to GDL include:— GNU Octave: http://www.gnu.org/software/octave/— NCL – NCAR Command Language: http://www.ncl.ucar.edu/— PDL – Perl Data Language: http://pdl.perl.org/— R: http://www.r-project.org/— Scilab: http://www.scilab.org/— SciPy: http://www.scipy.org/— Yorick: http://yorick.sourceforge.net/

License

GDL is a free, libre and open-source software released under the GNU General PublicLicense version 2 Fundation [1]. It basicaly means that any GDL user has the freedomto run, copy, distribute, study, change and improve GDL.

Credits

GDL have been developed by a team of volunteers led by Marc Schellens – theproject’s founder and maintainer. As of 2011 the core team consists additionally ofSylwester Arabas, Alain Coulais and Jeol Gales.Among many good folks who provided patches and valuable feedback (in alphabeticalorder) there are: Médéric Bocquien, Justin Bronn, Pierre Chanial, Christoph Fuchs,Nicolas Galmiche, Greg Huey, Gaurav Khanna, Christopher Lee, Maxime Lenoir, Pe-ter Messmer, Gregory Marchal, Thibaut Mermet, Lea Noreskal, Orion Poplawski,Rene Preusker, Mateusz Turcza, Joanna Woo, H Xu, . . .GDL contains snippets of code borrowed from other free and open-source projectscredited to: Deepak Bandyopadhyay, Sergio Gelato, Lutz Kettner, Craig B. Mark-wardt, Paul Ricchiazzi, Danny Smith, J.D. Smith, Richard Schwartz, Paul Wessel,Bob Withers, . . .Pre-compiled or pre-configured packages of GDL are available for numerous sys-tems thanks to: Juan A. Añel, Axel Beckert, Markus Dittrich, Takeshi Enomoto,Sébastien Fabbro, Orlando Garcia Feal, Gaurav Khanna, Justin Lecher, Sebastien Maret,Lea Noreskal, Orion Poplawski, Marius Schamschula, Gürkan Sengün, Thierry Thomas,. . .GDL is written in C++ using the Terence Parr’s ANTLR language-recognition frame-work. Most of the library routines are implemented as interfaces to open-sourcepackages such as GNU Scientific Library, PLPlot, FFTW, ImageMagick, and manymany more.Last but not least, we would like to acknowledge the designers of IDL and PV-WAVE.Please do report any missing name on the lists above in the same way as any otherbug in GDL (see section below).

Providing fedback

Your comments are welcome! Let us know what you use GDL for. Or if you don’t, whynot. Which functionality are you missing/would appreciate most for comming versions.Please send your bug reports, complaints, suggestions, comments and patches usingthe trackers or forums available at GDL’s project website at SourceForge: http://sourceforge.net/projects/gnudatalanguage/.

DRAFT

DRAFT8 Contents

Organization of this document

This document is divided into two parts:— User’s guide: intended for users developing programs written in GDL,— Developer’s guide: intended for those interested in developing or packaging GDL.Most of GDL functionalities are exemplified with short GDL scripts. For each suchscript there are two listings provided: a source code listing with line numbers to theleft and a log of output below, e.g.:

1 p r i n t , ’ H e l l o wor ld ! ’

H e l l o wor ld !

All scripts are run by invoking gdl script.pro what is equivalent to loading thescript with the @ operator or typing every line of script at the GDL’s interactive modecommand prompt.Often the scripts contain lines beginning with a dollar sign ”$” which is the GDLsyntax for executing shell commands, e.g.

1 $ echo " He l l o wor ld ! "

He l l o wor ld !

If a script involves creation of a plot, the resultant postscript file is displayed belowthe output listing, e.g.:

1 p lo t , wtn ( [ f l t a r r ( 9 ) , 1 , f l t a r r ( 1 0 14 ) ] , 4 , / i n v e r s e )2 xyouts , 480 , . 0 2 , ’ H e l l o wor ld ! ’ , c h a r s i z e=2

While GDL itself reached a beta status of development, the hereby documentation isfar from reaching an alpha status – help is very welcome!

DRAFT

DRAFTPart I

User’s guide

DRAFT

DRAFT

DRAFT

DRAFTChapter 1

Obtaining, installing, and invoking GDL

Requirements and supported environments

Availability of pre-compiled packages

Compiling GDL from source

Compiler requirements

GNU g++ clang Intel C++

Autotools

Cmake

Installation layout

Command-line options

Influential environmental variables

DRAFT

DRAFTChapter 2

Language reference

Syntax basics

IDL_VALIDNAME() TEMPORARY()

Datatypes

ASSOC()BYTE() COMPLEX(), DCOMPLEX() ( CONJ(), ATAN(), IMAGINARY(), REAL_PART())DOUBLE() FIX() FLOAT() LONG() LONG64() UINT() ULONG() ULONG64()SIZE()

Operators

LOGICAL_AND() LOGICAL_OR() LOGICAL_TRUE()SQRT()

Flow control structures

Conditional execution

IF

1 a = 102 i f a gt 5 then p r i n t , ’ a i s g r e a t e r than 5 ’

a i s g r e a t e r than 5

1 a = 102 i f a gt 5 then p r i n t , ’ a > 5 ’ e l s e p r i n t , ’ a <= 5 ’

a > 5

contrary to... cannot be used in interactive mode nor in batch scripts, but only within...

1 $ ca t r ep l ace_wi th_nans . pro2 x = [ 1 . 1 , 2 . 1 , −3.3 , 4 . 1 , −999, 6 ]3 r ep lace_with_nans , x , −9994 p r i n t , x

pro rep lace_with_nans , x , v a lwhr = where ( x eq va l , cnt )i f cnt gt 0 then beg in

x [ whr ] = !VALUES .F_NANmessage , ’ nan count : ’ + s t r t r i m ( cnt , 2 ) , / c o n t i

e n d i fend% Compi led module : REPLACE_WITH_NANS.% REPLACE_WITH_NANS: nan count : 1

1 .10000 2.10000 −3.30000 4.10000 nan 6.00000

DRAFT

DRAFTFlow control structures 13

data type size constants min max casting array allocation index array alloc. freeing

natural numbers incl. zero (unsigned)

8b 1b 0 255 BYTE() BYTARR() BINDGEN()

TEMPORARY()16b 1u 0 65535 UINT() UINTARR() UINDGEN()32b 1ul 0 4·109 ULONG() ULONARR() ULINDGEN()64b 1ull 0 1,8·1019 ULONG64() ULON64ARR() UL64INDGEN()

integer numbers (signed)16b 1 -32768 32767 FIX() INTARR() INDGEN()

TEMPORARY()32b 1l -2·109 2·109 LONG() LONARR() LINDGEN()64b 1ll -9·1018 9·1018 LONG64() LONG64ARR() L64INDGEN()

real numbers 32b 1. -1038 1038 FLOAT() FLTARR() FINDGEN() TEMPORARY()64b 1d -10308 10308 DOUBLE() DBLARR() DINDGEN()

complex numbers 64b complex(1,0) 2x float 2x float COMPLEX() COMPLEXARR() CINDGEN() TEMPORARY()128b dcomplex(1,0) 2x double 2x double DCOMPLEX() DCOMPLEXARR() DCINDGEN()character (byte) strings variable ’one’ – – STRING() STRARR() – TEMPORARY()structures variable {a:1, b:1} – – – REPLICATE() – TEMPORARY()pointers n/a ptr_new(1) – – – PTRARR() – PTR_FREE()objects n/a obj_new(’One’) – – – OBJARR() – OBJ_DESTROY()

CASE

SWITCH

Loops

FOR

FOREACH

FOREACH statement allows to simplify loop constructs when the array index is notused within the loop:

1 tocompare = [ ’ app l e s ’ , ’ o r r age s ’ ]2 f o r e a c h a , tocompare do he lp , a

A STRING = ’ app l e s ’A STRING = ’ o r r age s ’

As with index variables in FOR loops, the lifetime of the ”loop variables” in FOREACHstatements extends beyond the loop execution (see example below). Both BREAKand CONTINUE statements work in FOREACH in the same way as in other loopconstructs:

1 $ ca t example . pro2 example

pro examplel e t t e r s = [ ’ a ’ , ’ b ’ , ’ c ’ , ’ d ’ , ’ e ’ ]f o r e a c h l , l e t t e r s do beg in

i f l eq ’ c ’ then con t i nu ei f l eq ’ d ’ then breakp r i n t , ’ t r y i n g to r e p l a c e ’+ l + ’ w i th ’ ’ x ’ ’ ’l = ’ x ’

end f o r ea chp r i n t , l e t t e r sp r i n t , l

end% Warning : Ass ignment to l oop v a r i a b l e d e t e c t ed .

DRAFT

DRAFT14 Chapter 2. Language reference

% Compi led module : EXAMPLE.t r y i n g to r e p l a c e a wi th ’ x ’t r y i n g to r e p l a c e b wi th ’ x ’a b c d ed

Loop variables in FOREACH statements contain copies of the array elements thusassigning them a value within the loop does not change contents of the array and asa potentially bug-prone situation causes a compiler warning (see example above).

REPEAT

WHILE

Jumps

GOTO

Highly deprecated as it usually make the code difficult to read and prone to errors.Anyhow, the syntax is as follows

1 $ ca t example . pro2 example

pro examplex = 0goto , ax++a : p r i n t , ’ x = ’ , x

end% Compi led module : EXAMPLE.x = 0

As most of the flow control operator described in this section GOTO is usable onlywithin a GDL routine – not within a batch script which is equivalent to a series ofstatements in the interactive mode.

Other

EXECUTE()

Variable scoping rules

Functions and procedures

There may exist a function and a procedure of the same name (e.g. PYTHON()and PYTHON, CALL_METHOD() and CALL_METHOD)EXPAND_PATH(), FILEPATH()CALL_FUNCTION() CALL_PROCEDURE()

Argument passing

N_PARAMS() KEYWORD_SET() ARG_PRESENT() N_ELEMENTS() SIZE()_EXTRA _STRICT_EXTRA _REF_EXTRAwhen by reference, when by value...Keyword name abbreviations are allowed if unambiguous, e.g.:

1 he lp , s t r p o s ( ’ kayak ’ , ’ a ’ , / r e v e r s e_ s e a r c h )2 he lp , s t r p o s ( ’ kayak ’ , ’ a ’ , / r e v e r s e_ s )3 he lp , s t r p o s ( ’ kayak ’ , ’ a ’ , / r e v )4 he lp , s t r p o s ( ’ kayak ’ , ’ a ’ , 2 , / r e v e r s e_ s e a r c h , / r e v e r s e _ o f f s e t )

<Exp r e s s i on> LONG = 3<Exp r e s s i on> LONG = 3% STRPOS: Ambiguous keyword a b b r e v i a t i o n : REV% Execu t i on h a l t e d at : $MAIN$<Exp r e s s i on> LONG = 1

DRAFT

DRAFTObject-oriented programming 15

Arrays

PRINT ( TV) PMN_ELEMENTS() SIZE()REFORM() REBIN() REVERSE() ROTATE() TRANSPOSE()SORT() UNIQ()WHERE() ARRAY_INDICES()ARRAY_EQUAL()MAKE_ARRAY() REPLICATE() REPLICATE_INPLACEBYTARR() COMPLEXARR() DBLARR() DCOMPLEXARR() FLTARR() IN-TARR() LON64ARR() LONARR() OBJARR() PTRARR() STRARR() UIN-TARR() ULON64ARR() ULONARR()BINDGEN() CINDGEN() DCINDGEN() DINDGEN() FINDGEN() INDGEN()L64INDEGEN() LINDEGEN() SINDGEN() UINDGEN() UL64INDGEN() ULIND-GEN()IDENTITY()

Structures

CREATE_STRUCT() N_TAGS() STRUCT_ASSIGN TAG_NAMES()

System variables (global)

DEFSYSV (checking if running GDL)

Heap variables (pointers)

HEAP_GC PTRARR PTR_FREE PTR_NEW() PTR_VALID()

The HELP procedure

HELP

Object-oriented programming

CALL_METHON CALL_METHON() OBJARR()OBJ_CLASS() OBJ_DESTROY OBJ_ISA() OBJ_NEW() OBJ_VALID()

Handling Overflows, Floating Point Special Values

CHECK_MATH() FINITE() MACHAR()

Error handling

MESSAGE CATCH ON_ERROR ON_IOERROR EXECUTE

Compile options

1 $ ca t example . pro2 he lp , 13 example

pro examplecompi le_opt i d l 2he lp , 1

end<Exp r e s s i on> INT = 1% Compi led module : EXAMPLE.<Exp r e s s i on> LONG = 1

1 $cat example . pro2 example

pro examp le_he lpe rcompi l e_opt h iddenp r i n t , ’ example p rocedu r e h e l p e r ’

endpro example

DRAFT

DRAFT16 Chapter 2. Language reference

examp le_he lpe rend% Compi led module : EXAMPLE.example p rocedu r e h e l p e r

DRAFT

DRAFTChapter 3

Interpreter commands and built-in debugging facilities

MESSAGE RETALL STOP .COMPILE .STEP .CONTINUECHECK_MATHJOURNAL RECALL_COMMANDSMEMORY ( TEMPORARY())RESOLVE_ROUTINE ROUTINE_INFO() ROUTINE_NAMES() SCOPE_VARFETCH()

DRAFT

DRAFTChapter 4

MathsBasic Scalar, vector and array operations

TOTAL() SQRT() REVERSE() SHIFT() MAX() MIN() MEAN() NORM()CONVOL() PRODUCT() CROSSP() DERIV() INVERT() MATRIX_MULTIPLY()TRACE() TRANSPOSE() ( ROTATE())UNIQ()?

Basic and special function library

ABS() CEIL() FLOOR() (aka the Gauss’ symbol) ROUND()ALOG() ALOG10() EXP() ( GSL_EXP())ACOS() ASIN() ATAN() COS() COSH() SIN() SINH() TAN() TANH()LL_ARC_DISTANCE()BESELI() BESELJ() BESELK() BESELY()ERF() IMSL_ERF() ERFC() ERRORF() EXPINT()LAGUERRE() LEGENDRE()SPHER_HARM()GAUSSINT() GAUSS_CVF() GAUSS_PDF()T_PDF()FACTORIAL() GAMMA() BETA() IGAMMA() LNGAMMA()PRIMES()VOIGT()

Linear algebra

LA_TRIRED LUDC SVDCIDENTITY() REPLICATE() REPLICATE_INPLACE

Statistics

CORRELATE()HISTOGRAM() HIST_2D() (implemented using HIST_ND())IMSL_BINOMIALCOEF()GAUSSINT() GAUSS_CVF() GAUSS_PDF()T_PDF()KURTOSIS() SKEWNESS() MEAN() MIN() MAX() MEDIAN() MEANABS-DEV() MOMENT() STDDEV() VARIANCE()

Interpolation

INTERPOL() (implemented using FINDEX()) INTERPOLATE()REBIN()DERIV()SPL_INIT() SPL_INTERP()VALUE_LOCATE()

Polynomials

IMSL_ZEROPOLY() POLY()

DRAFT

DRAFTMathematical and physical constants 19

Geometric calculations

POLY_AREA() TRIGRID()

Bitwise operations

ISHFT() BYTEORDER SWAP_ENDIAN() SWAP_ENDIAN_INPLACE

Function fitting

Markwardt [3]

Fourier analysis

FFT() DIST()

Multidimensional root-finding

BROYDEN() IMSL_ZEROPOLY() NEWTON()

Random numbers

RANDOMN() RANDOMU()

Ordinary differential equations

RK4()

Wavelet analysis

WTN()

Mathematical and physical constants

!PI !DPI IDL_CONSTANT()

DRAFT

DRAFTChapter 5

Input/output, supported data formats

Basics – accessing files and io streams

PRINT PM GET_KBRD READBYTEORDER CLOSE EOFREAD WRITEREADF READS READUGET_LUN FREE_LUN POINT_LUN SKIP_LUNOPENR OPENU OPENW

ASCII

PRINTF READF READ_ASCII

CSV

Binary data (raw access)

READ_BINARY()BYTEORDER SWAP_ENDIAN() SWAP_ENDIAN_INPLACE

FITS

Astron

netCDF

NCDF_ATTCOPY() NCDF_ATTDEL NCDF_ATTGET NCDF_ATTINQ() NCDF_ATTNAME()NCDF_ATTPUT NCDF_ATTRENAME NCDF_CLOSE NCDF_CONTROL NCDF_CREATE()NCDF_DIMDEF() NCDF_DIMID() NCDF_DIMINQ NCDF_DIMRENAME NCDF_EXISTS()NCDF_INQUIRE() NCDF_OPEN() NCDF_VARDEF() NCDF_VARGET NCDF_VARGET1NCDF_VARID() NCDF_VARINQ() NCDF_VARPUT NCDF_VARRENAME

HDF4

HDF_CLOSE HDF_OPEN()HDF_SD_ADDDATA HDF_SD_ATTRFIND() HDF_SD_ATTRINFO HDF_SD_CREATE()HDF_SD_DIMGET HDF_SD_DIMGETID() HDF_SD_END HDF_SD_ENDACCESSHDF_SD_FILEINFO HDF_SD_GETDATA HDF_SD_GETINFO HDF_SD_NAMETOINDEX()HDF_SD_SELECT() HDF_SD_START()HDF_VD_ATTACH() HDF_VD_DETACH HDF_VD_FIND() HDF_VD_GETHDF_VD_READ()HDF_VG_ATTACH() HDF_VG_DETACH HDF_VG_GETID() HDF_VG_GETINFOHDF_VG_GETTRS

HDF5

H5A_CLOSE H5A_GET_NAME() H5A_GET_NUM_ATTRS() H5A_GET_SPACE()H5A_GET_TYPE() H5A_OPEN_IDX() H5A_OPEN_NAME() H5A_READ()H5D_CLOSE H5D_GET_SPACE() H5D_GET_TYPE() H5D_OPEN() H5D_READ()H5F_CLOSE H5F_IS_HDF5() H5F_OPEN() H5G_CLOSE H5G_OPEN() H5S_CLOSEH5S_GET_SIMPLE_EXTENT_DIMS() H5T_CLOSE H5T_GET_SIZE() H5_GET_LIBVERSION()

DRAFT

DRAFTIDL save files 21

raster images (TIFF, PNG, JPEG, . . . )

see chapter in Image Processing

DICOM

GRIB

GRIBAPI_CLONE() GRIBAPI_CLOSE_FILE GRIBAPI_COUNT_IN_FILE() GRIB-API_GET GRIBAPI_GET_DATA GRIBAPI_GET_SIZE() GRIBAPI_NEW_FROM_FILE()GRIBAPI_OPEN_FILE() GRIBAPI_RELEASE

IDL save files

RESTORE SAVE

DRAFT

DRAFTChapter 6

Plotting and mapping

2D plots

AXIS CONTOUR OPLOT PLOT PLOTERR PLOTS POLYFILL XYOUTS

3D plots

SURFACE PLOTS

Plotting raster data

BYTSCL() TV() TVLCT() TVRD() TVSCL()

Managing multiple windows

WDELETE WINDOW WSHOW WSET

Map projections

MAP_CONTINENTS MAP_PROJ_FORWARD MAP_PROJ_INVERSELL_ARC_DISTANCE()MAP_CLIP_SET

Output terminals

SET_PLOT DEVICE CURSOR ERASE FLUSH

Working with colours

LOADCT

1 dev i c e , / co l o r , decomposed=02 l o adc t , 13 p lo t , [ 0 , 1 ] , t h i c k=204 op lo t , [ 1 , 0 ] , c o l o r =200 , t h i c k=20

% Compi led module : LOADCT.% LOADCT: Load ing t a b l e BLUE/WHITE

DRAFT

DRAFTFonts, symbols and text formatting 23

1 dev i c e , / co l o r , decomposed=12 p lo t , [ 0 , 1 ] , t h i c k=203 op lo t , [ 1 , 0 ] , c o l o r =’ f f0000 ’ x , t h i c k=20

Fonts, symbols and text formatting

SHOWFONT Harshey fonts [8]

Misc

CONVERT_COORD() GET_SCREEN_SIZE()

DRAFT

DRAFTChapter 7

Interaction with host OSCD POPD PUSHD PRINTD EXIT WAIT

Executing external commands (via shell or not)

SPAWN (while EXECUTE() ...)

Filesystem operations

CD FILE_BASENAME() FILE_COPY FILE_DELETE FILE_DIRNAME() FILE_EXPAND_PATH()( EXPAND_PATH()) FILE_INFO() FILE_LINES() FILE_MKDIR FILE_SAME()FILE_SEARCH() FILE_TEST() FILE_WHICH() FINDFILE() FSTAT() PATH_SEP()

Network operations

SOCKET PARSE_URL()

Command-line options and environmental variables

COMMAND_LINE_ARGS() SETENV GETENV() LOCALE_GET()

DRAFT

DRAFTChapter 8

Manipulating strings

STRCMP() STRCOMPRESS() STREGEX() STRJOIN() STRLEN()STRLOWERCASE() STRUPCASE()STRMID() STRPOS() RSTRPOS() STRPUT() STRSPLIT() STRTOK() STR-TRIM() STR_SEP()READS()STRARR() STRING() SINDGEN()IDL_BASE64() IDL_VALIDANEM() SORT() UNIQ() PARSE_URL()

DRAFT

DRAFTChapter 9

Representing date & time

CALDAT CALENDAR SYSTIME()

DRAFT

DRAFTChapter 10

Image processing

QUERY_BMP() QUERY_DICOM() QUERY_GIF() QUERY_IMAGE() QUERY_JPEG()QUERY_PICT() QUERY_PNG() QUERY_PPM() QUERY_TIFF()READ_BMP() READ_DICOM() READ_JPEG READ_PICT READ_PNG() READ_TIFF()READ_XWD()WRITE_BMP WRITE_JPEG WRITE_PICT WRITE_PNGBYTSCL() CONVOL() MEDIAN() POLY_2D() PREWITT() RADON() ROBERTS()ROTATE() REBIN() SMOOTH() SOBEL()

DRAFT

DRAFTChapter 11

Parallel processing

Built-in features (OpenMP)

CPU

Semaphores and shared memory (library routines)

SEM_CREATE() SEM_DELETE SEM_LOCK() SEM_RELEASE

ImageMagick’s features

MPI and GDL

DRAFT

DRAFTChapter 12

GUI programming (widgets)

DIALOG_MESSAGE() DIALOG_PICKFILE()WIDGET_BASE() WIDGET_BUTTON() WIDGET_CONTROL WIDGET_DROPLIST()WIDGET_EVENT() WIDGET_INFO() WIDGET_LABEL() WIDGET_TEXT()

DRAFT

DRAFTChapter 13

Dynamic loading

CALL_EXTERNAL() LINKIMAGE()

DRAFT

DRAFTChapter 14

The Python bridge

van Rossum and Fred L. Drake [6]

calling Python code from GDL

PYTHON() PYTHON

calling GDL code from Python

DRAFT

DRAFTChapter 15

Alphabetical list of library routines

ABS() functionpositional arguments: 1keywords: none

Returns absolute value of a number passed as the first argument or an array of absolute valuesif argument is an array. For complex arguments the length of the argument in the complexplane is returned (the phase of a complex number may be obtained using ATAN()).

1 p r i n t , abs (−2.2)2 p r i n t , abs ( [ −1 ,1 ,0 ] )3 p r i n t , abs ( . 5 ∗ s q r t (2 ) ∗ complex (1 , 1 ) )

2 .200001 1 0

1.00000

multi-threading: this routine uses GDL thread pool if working on large array, see the...

ACOS() functionpositional arguments: 1keywords: none

multi-threading: this routine uses GDL thread pool if working on large array, see the...

ALOG() functionpositional arguments: 1keywords: none

ALOG10() functionpositional arguments: 1keywords: none

APPLEMAN procedurepositional arguments: 2keywords: RESULT

Mandelbrot set

ARG_PRESENT() functionpositional arguments: 1keywords: none

ARRAY_EQUAL() functionpositional arguments: 2keywords: NO_TYPECONV

ARRAY_INDICES() functionpositional arguments: 2keywords: none

see also: WHERE()

DRAFT

DRAFTASIN() function 33

ASIN() functionpositional arguments: 1keywords: none

multi-threading: this routine uses GDL thread pool if working on large array, see the...

ASSOC() functionpositional arguments: 3keywords: PACKED

ATAN() functionpositional arguments: 2keywords: PHASE

multi-threading: this routine uses GDL thread pool if working on large array, see the...

AXIS procedurepositional arguments: 3keywords: CHARSIZE, CHARTHICK, COLOR, DATA, DEVICE, FONT, NODATA,

NOERASE, NORMAL, SAVE, SUBTITLE, T3D, THICK, TICKLEN, XAXIS,XCHARSIZE, XGRIDSTYLE, XLOG, XMARGIN, XMINOR, XRANGE, XSTYLE,XTHICK, XTICKFORMAT, XTICKINTERVAL, XTICKLEN, XTICKNAME, XTICKS,XTITLE, XTYPE, YAXIS, YCHARSIZE, YGRIDSTYLE, YLOG, YMARGIN, YMI-NOR, YNOZERO, YRANGE, YSTYLE, YTHICK, YTICKFORMAT, YTICKIN-TERVAL, YTICKLEN, YTICKNAME, YTICKS, YTITLE, YTYPE, ZCHARSIZE,ZGRIDSTYLE, ZMARGIN, ZMINOR, ZRANGE, ZSTYLE, ZTHICK, ZTICKFOR-MAT, ZTICKLEN, ZTICKNAME, ZTICKS, ZTITLE, ZVALUE

BESELI() functionpositional arguments: 2keywords: DOUBLE, HELP, ITER

BESELJ() functionpositional arguments: 2keywords: DOUBLE, HELP, ITER

BESELK() functionpositional arguments: 2keywords: DOUBLE, HELP, ITER

BESELY() functionpositional arguments: 2keywords: DOUBLE, HELP, ITER

BETA() functionpositional arguments: 2keywords: DOUBLE

BINDGEN() functionpositional arguments: 8keywords: none

BROYDEN() functionpositional arguments: 2keywords: DOUBLE, ITMAX, TOLF, TOLX

BYTARR() functionpositional arguments: 8keywords: NOZERO

DRAFT

DRAFT34 Chapter 15. Alphabetical list of library routines

BYTE() functionpositional arguments: 10keywords: none

BYTEORDER procedurepositional arguments: any numberkeywords: DTOXDR, FTOXDR, HTONL, HTONS, L64SWAP, LSWAP, NTOHL,

NTOHS, SSWAP, SWAP_IF_BIG_ENDIAN, SWAP_IF_LITTLE_ENDIAN, XDR-TOD, XDRTOF

BYTSCL() functionpositional arguments: 3keywords: MAX, MIN, NAN, TOP

CALDAT procedurepositional arguments: 7keywords: none

CALENDAR procedurepositional arguments: 2keywords: none

An interface to the UNIX cal command. Displays a calendar using the current graphicsdevice (i.e. X, PS, . . . ). The two optional arguments allow to specify a month, or a monthand a year.

1 ca l enda r , 9 , 1983

% Compi led module : CALENDAR.

CALL_EXTERNAL() function

positional arguments: any numberkeywords: ALL_GDL, ALL_VALUE, B_VALUE, D_VALUE, F_VALUE, I_VALUE,

L64_VALUE, L_VALUE, RETURN_TYPE, STRUCT_ALIGN_BYTES, S_VALUE,UI_VALUE, UL64_VALUE, UL_VALUE, UNLOAD, VALUE

Calls a routine from a sharable object library. The first argument should be a string containingthe filename of the sharable object to load (standard library paths are searched). The secondargument should be a string with the name of the routine in the image to ba called. Allsubsequent arguments are passed to the routine.Here is a, hopefully concise, example covering all the steps one could take to write, buildand call a C routine from GDL:

1 $ echo ’ $ ca t l i b e x amp l e . c ’2 $ ca t l i b e x amp l e . c3 $ echo ’ $ ca t CMakeLists . t x t ’4 $ ca t CMakeLists . t x t5 $ echo ’ $ cmake . ’6 $ cmake . | awk ’{ p r i n t ( l e n g t h ( $0)>50? s u b s t r ( $0 , 0 , 5 0 ) " . . . " : $0 )} ’

DRAFT

DRAFTCALL_EXTERNAL() function 35

7 $ echo8 $ echo ’ $ make ’9 $ make

10 $ echo11

12 img = ’ l i b e x amp l e . ’+( !VERSION .OS_NAME eq ’ Darwin ’ ? " d y l i b " : " so ")13 message , ’1 d308 vs . a nex t r e p r e s e n t a b l e doub l e : ’ , / c on t i nu e14 p r i n t , fo rmat = ’(E ) ’ , 1d308 , $15 c a l l _ e x t e r n a l ( img , ’ c_nex t a f t e r ’ , 1d308 , 2d308 , / d_value )16

17 $ make c l e a n

$ ca t l i b e x amp l e . c#i n c l u d e <math . h>doub l e c_n e x t a f t e r ( i n t argc , v o i d ∗ a rgv [ ] ) {

r e t u r n n e x t a f t e r (∗ ( doub l e ∗) a rgv [ 0 ] , ∗( doub l e ∗) a rgv [ 1 ] ) ;}

$ ca t CMakeLists . t x tp r o j e c t ( l i b e x a p l e C)cmake_minimum_required (VERSION 2 . 0 )a dd_ l i b r a r y ( example SHARED l i b e x amp l e . c )s e t _ d i r e c t o r y _ p r o p e r t i e s (PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES

" Make f i l e ; CMakeCache . t x t ; cmak e_ i n s t a l l . cmake ; CMakeFi les " )

$ cmake .−− The C comp i l e r i d e n t i f i c a t i o n i s GNU−− Check ing whether C comp i l e r has − i s y s r o o t−− Check ing whether C comp i l e r has − i s y s r o o t − ye s−− Check ing whether C comp i l e r s uppo r t s OSX dep l oy . . .−− Check ing whether C comp i l e r s uppo r t s OSX dep l oy . . .−− Check f o r work ing C comp i l e r : / u s r / b i n / gcc−− Check f o r work ing C comp i l e r : / u s r / b i n / gcc −− w . . .−− Dete c t i ng C comp i l e r ABI i n f o−− Dete c t i ng C comp i l e r ABI i n f o − done−− Con f i g u r i n g done−− Gene r a t i ng done−− Bu i l d f i l e s have been w r i t t e n to : / Use r s / s l a y o o . . .

$ makeScann ing dependenc i e s o f t a r g e t example

[100%] Bu i l d i n g C ob j e c t CMakeFi les / example . d i r / l i b e x amp l e . oL i n k i n g C sha r ed l i b r a r y l i b e x amp l e . d y l i b[100%] B u i l t t a r g e t example

% $MAIN$ : 1d308 vs . a nex t r e p r e s e n t a b l e doub l e :1 .0000000000000000E+3081.0000000000000002E+308

RETURN_TYPE keyword

Indicates the type of the return value of the called routine, this value will be returned byCALL_EXTERNAL to GDL. The value of the keyword is interpreted in the same way as thetype field of the SIZE() function. Possible values for it are those for numeric types exceptCOMPLEX and DCOMPLEX. The default value is 3 (GDL type LONG, which correspondsto C type int). Alternatively one of the following keywords may be used:

B_VALUE keyword

equivalent to RETURN_TYPE=1 (BYTE)

I_VALUE keyword

equivalent to RETURN_TYPE=2 (INTEGER)

L_VALUE keyword

equivalent to RETURN_TYPE=3 (LONG)This correspodns to the default behaviour.

F_VALUE keyword

equivalent to RETURN_TYPE=4 (FLOAT)

D_VALUE keyword

equivalent to RETURN_TYPE=5 (DOUBLE)

UI_VALUE keyword

equivalent to RETURN_TYPE=12 (UINT)

DRAFT

DRAFT36 Chapter 15. Alphabetical list of library routines

UL_VALUE keyword

equivalent to RETURN_TYPE=13 (ULONG)

L64_VALUE keyword

equivalent to RETURN_TYPE=14 (LONG64)

UL64_VALUE keyword

equivalent to RETURN_TYPE=15 (ULONG64)

S_VALUE keyword

equivalent to RETURN_TYPE=6 (STRING, the called function should return char*)

ALL_VALUE keyword

The default is to pass all parameters by reference. If this keyword is set, all parameters arepassed by value.

UNLOAD keyword

If set (/UNLOAD or UNLOAD=1) the shared object will be unloaded after calling the routine.

STRUCT_ALIGN_BYTES keyword

If set to an integer n, CALL_EXTERNAL assumes that structures in the shared object arealigned at boundaries of n bytes, where n should be a power of 2. If n=0 or if this keywordis not given, the default machine dependent alignment is assumed (normally 4/8 bytes on32/64 bit systems). It should only be necessary to use this keyword if the called sharedobject has been compiled with a different alignment, e.g. with #pragma pack(n)

implementation details: This routine uses the dlopen/dlsym/dlclose calls, and thus is avail-able only on systems that support them. It has been tested on Linux, Apple OS X andSolaris.

see also: LINKIMAGE

disclaimer: CALL_EXTERNAL was implemented in GDL by Christoph Fuchs, who alsowrote the documentation for it which was the base for this entry. Copyright: (C) 2010by Christoph Fuchs. The original file was licensed under GNU GPL v>=2.

CALL_FUNCTION() functionpositional arguments: any numberkeywords: _REF_EXTRA

CALL_METHOD procedurepositional arguments: any numberkeywords: _REF_EXTRA

CALL_METHOD() functionpositional arguments: any numberkeywords: _REF_EXTRA

CALL_PROCEDURE procedurepositional arguments: any numberkeywords: _REF_EXTRA

CATCH procedurepositional arguments: 1keywords: CANCEL

CD procedurepositional arguments: 1keywords: CURRENT

CDF_EPOCH procedurepositional arguments: 8keywords: BREAKDOWN_EPOCH, COMPUTE_EPOCH

DRAFT

DRAFTCEIL() function 37

CEIL() function

positional arguments: 1keywords: L64

multi-threading: this routine uses GDL thread pool if working on large array, see the...

CHECK_MATH() function

positional arguments: 2keywords: MASK, NOCLEAR, PRINT

CINDGEN() function

positional arguments: 8keywords: none

CLOSE procedure

positional arguments: any numberkeywords: ALL, EXIT_STATUS, FILE, FORCE

COMMAND_LINE_ARGS() function

positional arguments: nonekeywords: COUNT

COMPLEX() function

positional arguments: 10keywords: none

multi-threading: this routine uses GDL thread pool if working on large array, see the...

COMPLEXARR() function

positional arguments: 8keywords: NOZERO

CONJ() function

positional arguments: 1keywords: none

multi-threading: this routine uses GDL thread pool if working on large array, see the...

CONTOUR procedure

positional arguments: 3keywords: BACKGROUND, CHARSIZE, CHARTHICK, CLIP, COLOR, C_CHARSIZE,

C_COLORS, C_LINESTYLE, DATA, DEVICE, FILL, FOLLOW, FONT,ISOTROPIC, LEVELS, MAX_VALUE, MIN_VALUE, NLEVELS, NOCLIP, NO-DATA, NOERASE, NORMAL, OVERPLOT, POSITION, SUBTITLE, T3D,THICK, TICKLEN, TITLE, XCHARSIZE, XGRIDSTYLE, XLOG, XMARGIN,XMINOR, XRANGE, XSTYLE, XTHICK, XTICKFORMAT, XTICKLEN, XTICK-NAME, XTICKS, XTICKV, XTICK_GET, XTITLE, XTYPE, YCHARSIZE, YGRID-STYLE, YLOG, YMARGIN, YMINOR, YRANGE, YSTYLE, YTHICK, YTICKFOR-MAT, YTICKLEN, YTICKNAME, YTICKS, YTICKV, YTICK_GET, YTITLE,YTYPE, ZCHARSIZE, ZGRIDSTYLE, ZLOG, ZMARGIN, ZMINOR, ZRANGE,ZSTYLE, ZTHICK, ZTICKFORMAT, ZTICKLEN, ZTICKNAME, ZTICKS, ZTICKV,ZTICK_GET, ZTITLE, ZTYPE, ZVALUE

CONVERT_COORD() function

positional arguments: 3keywords: DATA, DEVICE, DOUBLE, NORMAL, T3D, TO_DATA, TO_DEVICE,

TO_NORMAL

DRAFT

DRAFT38 Chapter 15. Alphabetical list of library routines

CONVOL() function

positional arguments: 3keywords: CENTER, EDGE_TRUNCATE, EDGE_WRAP

CORRELATE() function

positional arguments: 2keywords: COVARIANCE, DOUBLE

When called with two vector arguments x and y it returns the correlation coefficient r definedas:

r = cov(x, y)stdev(x) · stdev(y) (15.1)

where

cov(x, y) = 1N − 1

N−1∑i=0

(x[i] − x) · (y[i] − y) (15.2)

stdev(x) =

√√√√ 1N − 1

N−1∑i=0

[x[i] − x]2 (15.3)

and

x =N−1∑i=0

x[i]N

(15.4)

(N is the length of the longer vector).

1 p r i n t , c o r r e l a t e ( [ −1 ,0 ,1 ] , [ 1 ,0 , −1 ] )

% Compi led module : CORRELATE.% Compi led module : MEAN.

−1.00000

DOUBLE keyword

Forces double-precision calculations and output value type.

1 x = [ 1 , 2 , 3 , 4 , 5 ]2 y = [ 1 . 1 , 1 . 9 , 3 . 1 , 3 . 9 , 5 , 6 , 7 , 8 , 9 ]3 he lp , c o r r e l a t e ( x , y )4 he lp , c o r r e l a t e ( x , y , / doub l e )

% Compi led module : CORRELATE.% Compi led module : MEAN.<Exp r e s s i on> FLOAT = 0.99813<Exp r e s s i on> DOUBLE = 0.9981310

COVARIANCE keyword

If called with the COVARIANCE keyword, the covariance cov(x, y) of the two vectors isreturned instead.

1 x = [−1 , 0 , 1 . ]2 y = [−2 , 0 , 2 . ]3 p r i n t , c o r r e l a t e ( x , y , / c o v a r i a n c e )

% Compi led module : CORRELATE.% Compi led module : MEAN.

2 .00000

COS() functionpositional arguments: 1keywords: none

multi-threading: this routine uses GDL thread pool if working on large array, see the...

COSH() functionpositional arguments: 1keywords: none

multi-threading: this routine uses GDL thread pool if working on large array, see the...

DRAFT

DRAFTCPU procedure 39

CPU procedurepositional arguments: nonekeywords: RESET, RESTORE, TPOOL_MAX_ELTS, TPOOL_MIN_ELTS,

TPOOL_NTHREADS, VECTOR_ENABLE

CREATE_STRUCT() functionpositional arguments: any numberkeywords: NAME

CROSSP() functionpositional arguments: 2keywords: none

CURSOR procedurepositional arguments: 3keywords: CHANGE, DATA, DEVICE, DOWN, NORMAL, NOWAIT, UP, WAIT

DBLARR() functionpositional arguments: 8keywords: NOZERO

DCINDGEN() functionpositional arguments: 8keywords: none

DCOMPLEX() functionpositional arguments: 10keywords: none

DCOMPLEXARR() function

positional arguments: 8keywords: NOZERO

DEFSYSV procedure

positional arguments: 3keywords: EXISTS

DERIV() function

positional arguments: 2keywords: HELP, NO_CHECK, TEST

DEVICE procedure

positional arguments: nonekeywords: CLOSE_FILE, COLOR, DECOMPOSED, FILENAME, GET_DECOMPOSED,

GET_SCREEN_SIZE, GET_VISUAL_DEPTH, INCHES, LANDSCAPE, PORTRAIT,SET_CHARACTER_SIZE, SET_RESOLUTION, WINDOW_STATE, XSIZE, YSIZE,Z_BUFFERING

DIALOG_MESSAGE() function

positional arguments: 1keywords: CANCEL, CENTER, DEFAULT_CANCEL, DEFAULT_NO, DIA-

LOG_PARENT, DISPLAY_NAME, ERROR, HELP, INFORMATION, QUESTION,RESOURCE_NAME, TITLE, ZENITY_NAME, ZENITY_PATH

DRAFT

DRAFT40 Chapter 15. Alphabetical list of library routines

DIALOG_PICKFILE() function

positional arguments: nonekeywords: DEBUG, DEFAULT_EXTENSION, DIALOG_PARENT, DIRECTORY, DIS-

PLAY_NAME, FILE, FILTER, FIX_FILTER, GET_PATH, GROUP, HELP, MUL-TIPLE_FILES, MUST_EXIST, OVERWRITE_PROMPT, PATH, READ, RE-SOURCE_NAME, TEST, TITLE, VERBOSE, WRITE, ZENITY_NAME, ZEN-ITY_PATH

DINDGEN() function

positional arguments: 8keywords: none

DIST() function

positional arguments: 2keywords: none

1 s u r f a c e , d i s t (25)

% Compi led module : DIST .

DOUBLE() functionpositional arguments: 10keywords: none

EOF() functionpositional arguments: 1keywords: none

ERASE procedurepositional arguments: 1keywords: none

ERF() functionpositional arguments: 1keywords: DOUBLE

DRAFT

DRAFTERFC() function 41

ERFC() functionpositional arguments: 1keywords: DOUBLE

ERRORF() functionpositional arguments: 1keywords: DOUBLE

ESCAPE_SPECIAL_CHAR() functionpositional arguments: 1keywords: HELP, LIST_OF_SPECIAL_CHAR, SHOW_LIST, TEST, VERBOSE

EXECUTE() functionpositional arguments: 2keywords: none

Executes the statement passed in the first arguement, returns 1 if no error occured or 0 ifthe execution failed, e.g.

1 s t a t u s = execu t e ( ’ p r i n t , " He l l o wor ld ! " ’ )2 he lp , s t a t u s3 s t a t u s = execu t e ( ’ p r i n t , H e l l o wor ld ! ) ’ )4 he lp , s t a t u s

He l l o wor ld !STATUS INT = 1% Pa r s e r s yn tax e r r o r : unexpected token : HELLOSTATUS INT = 0

EXIT procedurepositional arguments: nonekeywords: NO_CONFIRM, STATUS

STATUS keyword

1 spawn , ’ . . / . . / . . / . . / s r c / gd l −qu i e t −e " e x i t , s t a t u s =44" 1>/dev/ nu l l ’ , $2 e x i t _ s t a t u s=s3 p r i n t , ’ spawned GDL p r o c e s s e x i t e d wi th code ’ , s t r t r i m ( s , 2)

spawned GDL p r o c e s s e x i t e d wi th code 44

EXP() functionpositional arguments: 1keywords: none

1 p r i n t , exp ( [ 0 , 1 , −!VALUES . F_INFINITY ] )2 p r i n t , a l og ( exp ( [ ! PI ] ) )

1 .00000 2.71828 0.000003.14159

multi-threading: this routine uses GDL thread pool if working on large array, see the...

EXPAND_PATH() functionpositional arguments: 1keywords: ALL_DIRS, ARRAY, COUNT

EXPINT() functionpositional arguments: 2keywords: DOUBLE

FACTORIAL() functionpositional arguments: 1keywords: STIRLING, UL64

DRAFT

DRAFT42 Chapter 15. Alphabetical list of library routines

FFT() functionpositional arguments: 2keywords: DIMENSION, DOUBLE, INVERSE, OVERWRITE

F [m] = 1N

∑k

f [k] · e− 2πiN

mk (15.5)

1 $ t a i l s t ddev ∗ . p ro2 x = [ 1 . 3 1 , 2 . 44 , 2 . 51 , 3 . 01 , 2 . 96 , 2 . 50 , 0 . 05 , 3 . 24 , 0 . 1 3 ]3 p r i n t , stddevsum ( x ) , s t d d e v f f t ( x )

==> s t d d e v f f t . pro <==f u n c t i o n s t d d e v f f t , x

r e t u rn , s q r t ( t o t a l ( ( abs ( f f t ( x ) ) ^2 ) [ 1 : −1 ] ) )end

==> stddevsum . pro <==fu n c t i o n stddevsum , x

r e tu rn , s q r t (mean ( x ^2) − mean ( x )^2)end% Compi led module : STDDEVSUM.% Compi led module : MEAN.% Compi led module : STDDEVFFT.

1 .15258 1.15258

multi-threading: this routine uses GDL thread pool if working on large array, see the...

implementation details: FFTW vs. GSL - TODO

FILEPATH() functionpositional arguments: 1keywords: ROOT_DIR, SUBDIRECTORY, TERMINAL, TMP

FILE_BASENAME() functionpositional arguments: 2keywords: FOLD_CASE, HELP

1 p r i n t , f i l e_basename ( ’/ e t c /passwd ’ )

% Compi led module : FILE_BASENAME .% Compi led module : ESCAPE_SPECIAL_CHAR .% Compi led module : STRSPLIT .% Compi led module : UNIQ .passwd

1 p r i n t , f i l e_basename ( ’/ e t c / r e s o l v . conf ’ , ’ . conf ’ )

% Compi led module : FILE_BASENAME .% Compi led module : ESCAPE_SPECIAL_CHAR .% Compi led module : STRSPLIT .% Compi led module : UNIQ .r e s o l v

1 p r i n t , f i l e_basename ( f i l e _ s e a r c h ( ’ . . / . . / . . / . . / s r c / gd l ∗ . g ’ ) )

% Compi led module : FILE_BASENAME .% Compi led module : ESCAPE_SPECIAL_CHAR .% Compi led module : STRSPLIT .% Compi led module : UNIQ .gd l c . g gd l c . i . g gd l c . t r e e . g

see also: FILE_DIRNAME(), PATH_SEP()

FILE_COPY procedurepositional arguments: 2keywords: ALLOW_SAME, HELP, NOEXPAND_PATH, OVERWRITE, QUIET, RE-

CURSIVE, REQUIRE_DIRECTORY, TEST, VERBOSE

FILE_DELETE procedurepositional arguments: 30keywords: ALLOW_NONEXISTENT, HELP, NOEXPAND_PATH, QUIET, RECUR-

SIVE, TEST, VERBOSE

DRAFT

DRAFTFILE_DIRNAME() function 43

FILE_DIRNAME() function

positional arguments: 1keywords: HELP, MARK_DIRECTORY

FILE_EXPAND_PATH() function

positional arguments: 1keywords: none

FILE_INFO() function

positional arguments: 2keywords: NOEXPAND_PATH

FILE_LINES() function

positional arguments: 1keywords: COMPRESS, NOEXPAND_PATH

1 p r i n t , f i l e _ l i n e s ( ’ . . / . . / . . / . . / ChangeLog ’ )

% Compi led module : FILE_LINES .5290

FILE_MKDIR procedure

positional arguments: any numberkeywords: NOEXPAND_PATH

implementation details: Current implementation uses the system() call and executes themkdir using using a shell subprocess

FILE_SAME() functionpositional arguments: 2keywords: NOEXPAND_PATH

FILE_SEARCH() functionpositional arguments: 2keywords: COUNT, EXPAND_ENVIRONMENT, EXPAND_TILDE, FOLD_CASE,

FULLY_QUALIFY_PATH, ISSUE_ACCESS_ERROR, MARK_DIRECTORY,MATCH_ALL_INITIAL_DOT, MATCH_INITIAL_DOT, NOSORT, QUOTE

FILE_TEST() functionpositional arguments: 1keywords: BLOCK_SPECIAL, CHARACTER_SPECIAL, DIRECTORY, EXECUTABLE,

GET_MODE, NAMED_PIPE, NOEXPAND_PATH, READ, REGULAR, SOCKET,SYMLINK, WRITE, ZERO_LENGTH

FILE_WHICH() functionpositional arguments: 2keywords: INCLUDE_CURRENT_DIR

FINDEX() functionpositional arguments: 2keywords: none

FINDFILE() functionpositional arguments: 1keywords: COUNT, HELP, QUIET, SH_LOCATION, SPAWN_OPTIONS, TEST, VER-

BOSE

DRAFT

DRAFT44 Chapter 15. Alphabetical list of library routines

FINDGEN() function

positional arguments: 8keywords: none

FINITE() function

positional arguments: 1keywords: INFINITY, NAN

FIX() function

positional arguments: 10keywords: PRINT, TYPE

FLOAT() function

positional arguments: 10keywords: none

FLOOR() function

positional arguments: 1keywords: L64

multi-threading: this routine uses GDL thread pool if working on large array, see the...

FLTARR() function

positional arguments: 8keywords: NOZERO

FLUSH procedurepositional arguments: any numberkeywords: none

FREE_LUN procedurepositional arguments: any numberkeywords: EXIT_STATUS, FORCE

FSTAT() functionpositional arguments: 1keywords: none

GAMMA() functionpositional arguments: 1keywords: DOUBLE

GAUSSINT() functionpositional arguments: 1keywords: DOUBLE

GAUSS_CVF() functionpositional arguments: 1keywords: none

GAUSS_PDF() functionpositional arguments: 1keywords: none

DRAFT

DRAFTGDL_ERFINV() function 45

GDL_ERFINV() function

positional arguments: 1keywords: DOUBLE

GETENV() function

positional arguments: 1keywords: ENVIRONMENT

GET_DRIVE_LIST() function

positional arguments: nonekeywords: COUNT

GET_KBRD() function

positional arguments: 1keywords: none

GET_LOGIN_INFO() function

positional arguments: nonekeywords: none

Returns a structure with current username and hostname:

1 he lp , g e t_ l o g i n_ i n f o ( ) , / s t r u c t u r e

∗∗ S t r u c t u r e <Anonymous>, 2 tags , data l e n g t h =16:MACHINE_NAME STRING ’ e y r i e . p rac . i g f ’USER_NAME STRING ’ s l ayoo ’

GET_LUN procedurepositional arguments: 1keywords: none

GET_SCREEN_SIZE() functionpositional arguments: 1keywords: RESOLUTION

GRIBAPI_CLONE() functionpositional arguments: 1keywords: none

GRIBAPI_CLOSE_FILE procedurepositional arguments: 1keywords: none

GRIBAPI_COUNT_IN_FILE() functionpositional arguments: 1keywords: none

GRIBAPI_GET procedurepositional arguments: 3keywords: none

GRIBAPI_GET_DATA procedurepositional arguments: 4keywords: none

DRAFT

DRAFT46 Chapter 15. Alphabetical list of library routines

GRIBAPI_GET_SIZE() functionpositional arguments: 2keywords: none

GRIBAPI_NEW_FROM_FILE() functionpositional arguments: 1keywords: none

GRIBAPI_OPEN_FILE() functionpositional arguments: 1keywords: none

GRIBAPI_RELEASE procedurepositional arguments: 1keywords: none

GSL_EXP() functionpositional arguments: 1keywords: none

H5A_CLOSE procedurepositional arguments: 1keywords: none

H5A_GET_NAME() functionpositional arguments: 1keywords: none

H5A_GET_NUM_ATTRS() functionpositional arguments: 1keywords: none

H5A_GET_SPACE() functionpositional arguments: 1keywords: none

H5A_GET_TYPE() functionpositional arguments: 1keywords: none

H5A_OPEN_IDX() functionpositional arguments: 2keywords: none

H5A_OPEN_NAME() functionpositional arguments: 2keywords: none

H5A_READ() functionpositional arguments: 1keywords: none

H5D_CLOSE procedurepositional arguments: 1keywords: none

DRAFT

DRAFTH5D_GET_SPACE() function 47

H5D_GET_SPACE() functionpositional arguments: 1keywords: none

H5D_GET_TYPE() functionpositional arguments: 1keywords: none

H5D_OPEN() functionpositional arguments: 2keywords: none

H5D_READ() functionpositional arguments: 1keywords: none

H5F_CLOSE procedurepositional arguments: 1keywords: none

H5F_IS_HDF5() functionpositional arguments: 1keywords: none

H5F_OPEN() functionpositional arguments: 1keywords: none

H5G_CLOSE procedure

positional arguments: 1keywords: none

H5G_OPEN() function

positional arguments: 2keywords: none

H5S_CLOSE procedure

positional arguments: 1keywords: none

H5S_GET_SIMPLE_EXTENT_DIMS() function

positional arguments: 1keywords: none

H5T_CLOSE procedure

positional arguments: 1keywords: none

H5T_GET_SIZE() function

positional arguments: 1keywords: none

DRAFT

DRAFT48 Chapter 15. Alphabetical list of library routines

H5_GET_LIBVERSION() functionpositional arguments: nonekeywords: none

Returns a string containing the version number of the HDF5 library.

1 he lp , h 5_g e t_ l i b v e r s i o n ( )

<Exp r e s s i on> STRING = ’ 1 . 8 . 6 ’

HDF_CLOSE procedurepositional arguments: 1keywords: none

HDF_OPEN() functionpositional arguments: 2keywords: ALL, CREATE, NUM_DD, RDWR, READ, WRITE

HDF_SD_ADDDATA procedurepositional arguments: 2keywords: COUNT, START, STRIDE

HDF_SD_ATTRFIND() functionpositional arguments: 2keywords: none

HDF_SD_ATTRINFO procedurepositional arguments: 2keywords: COUNT, DATA, HDF_TYPE, NAME, TYPE

HDF_SD_CREATE() function

positional arguments: 3keywords: BYTE, DFNT_CHAR, DFNT_FLOAT32, DFNT_FLOAT64, DFNT_INT16,

DFNT_INT32, DFNT_INT8, DFNT_UINT16, DFNT_UINT32, DFNT_UINT8,DOUBLE, FLOAT, HDF_TYPE, INT, LONG, SHORT, STRING

HDF_SD_DIMGET procedure

positional arguments: 1keywords: COUNT, NAME, NATTR, SCALE

HDF_SD_DIMGETID() function

positional arguments: 2keywords: none

HDF_SD_END procedure

positional arguments: 1keywords: none

HDF_SD_ENDACCESS procedure

positional arguments: 1keywords: none

HDF_SD_FILEINFO procedure

positional arguments: 3keywords: none

DRAFT

DRAFTHDF_SD_GETDATA procedure 49

HDF_SD_GETDATA procedurepositional arguments: 2keywords: COUNT, START, STRIDE

HDF_SD_GETINFO procedurepositional arguments: 1keywords: COORDSYS, DIMS, FORMAT, HDF_TYPE, LABEL, NAME, NATTS,

NDIMS, TYPE, UNIT

HDF_SD_NAMETOINDEX() functionpositional arguments: 2keywords: none

HDF_SD_SELECT() functionpositional arguments: 2keywords: none

HDF_SD_START() functionpositional arguments: 2keywords: CREATE, RDWR, READ

HDF_VD_ATTACH() functionpositional arguments: 2keywords: READ, WRITE

HDF_VD_DETACH procedurepositional arguments: 1keywords: none

HDF_VD_FIND() functionpositional arguments: 2keywords: none

HDF_VD_GET procedurepositional arguments: 1keywords: CLASS, COUNT, NAME, REF, TAG

HDF_VD_READ() functionpositional arguments: 2keywords: FIELDS, FULL_INTERLACE, NO_INTERLACE, NRECORDS

HDF_VG_ATTACH() functionpositional arguments: 2keywords: READ, WRITE

HDF_VG_DETACH procedurepositional arguments: 1keywords: none

HDF_VG_GETID() functionpositional arguments: 2keywords: none

HDF_VG_GETINFO procedurepositional arguments: 1keywords: CLASS, NAME, NENTRIES, REF, TAG

DRAFT

DRAFT50 Chapter 15. Alphabetical list of library routines

HDF_VG_GETTRS procedurepositional arguments: 3keywords: none

HEAP_GC procedurepositional arguments: nonekeywords: OBJ, PTR, VERBOSE

HELP procedurepositional arguments: any numberkeywords: BRIEF, CALLS, FUNCTIONS, INFO, LIB, MEMORY, OUTPUT, PROCE-

DURES, RECALL_COMMANDS, ROUTINES, STRUCTURES

HELPFORM() functionpositional arguments: 2keywords: FULL_STRUCT, SHORTFORM, SINGLE, SIZE, STRUCTURE_NAME,

TAGFORM, WIDTH

HISTOGRAM() functionpositional arguments: 1keywords: BINSIZE, INPUT, LOCATIONS, MAX, MIN, NBINS, OMAX, OMIN,

REVERSE_INDICES

HIST_2D() functionpositional arguments: 2keywords: BIN1, BIN2, MAX1, MAX2, MIN1, MIN2

implementation details: this routine is implemented as a wrapper to the HIST_ND()function

HIST_ND() functionpositional arguments: 2keywords: MAX, MIN, NBINS, REVERSE_INDICES

Performs an N-dimensional histogram, also known as the joint density function of N variables.The first argument is an N×P array representing P data points in N dimensions. The secondargument is optional, and it may be used to specify the size of the bin to use. Either an Npoint vector specifying a separate size for each dimension, or a scalar, which will be used forall dimensions. If BINSIZE is not passed, the NBINS keyword must be set (see below).The function returns the N-Dimensional histogram, an array of size N1×N2×N3×. . .×NDwhere the Ni’s are the number of bins implied by the data, and/or the optional inputs (seebelow).

MIN keyword

The minimum value for the histogram. Either a P point vector specifying a separate minimumfor each dimension, or a scalar, which will be used for all dimensions. If omitted, the naturalminimum within the dataset will be used.

MAX keyword

The maximum value for the histogram. Either a P point vector specifying a separate max-immum for each dimension, or a scalar, which will be used for all dimensions. If omitted,the natural maximum within the dataset will be used.

NBINS keyword

Rather than specifying the binsize, you can pass NBINS, the number of bins in each dimen-sion, which can be a P point vector, or a scalar. If BINSIZE it also passed, NBINS will beignored, otherwise BINSIZE will then be calculated as binsize=(max-min)/nbins.

REVERSE_INDICES keyword

Set to a named variable to receive the reverse indices, for mapping which points occurred ina given bin. Note that this is a 1-dimensional reverse index vector (see HISTOGRAM()).E.g., to find the indices of points which fell in a histogram bin [i,j,k], look up:

ind=[i+nx*(j+ny*k)]ri[ri[ind]:ri[ind+1]-1]

See also ARRAY_INDICES() for converting in the other direction.

DRAFT

DRAFTIDENTITY() function 51

see also: HISTOGRAM(), HIST_2D()

disclaimer: Entry based on J.D. Smith’s documentation for his implementation of HIST_NDwhich was included in GDL unchanged. Copyright (C) 2001-2007, J.D Smith. Thissoftware is provided as is without any warranty whatsoever. Permission to use, copy,modify, and distribute modified or unmodified copies is granted, provided this copyrightand disclaimer are included unchanged.

IDENTITY() functionpositional arguments: 1keywords: DOUBLE

IDL_BASE64() functionpositional arguments: 1keywords: none

disclaimer: the name of this GDL routine includes the IDL_ prefix for compatibility withIDL, it has no ...

IDL_VALIDNAME() functionpositional arguments: 1keywords: none

IGAMMA() functionpositional arguments: 2keywords: DOUBLE

IMAGINARY() functionpositional arguments: 1keywords: none

multi-threading: this routine uses GDL thread pool if working on large array, see the...

IMSL_BINOMIALCOEF() function

positional arguments: 2keywords: DOUBLE

Returns the binomial coefficient defined as:

(n

k

)= n!

k!(n − k)! for 0 ≤ k ≤ n (15.6)

where n and k are the first and second arguments, respectively.The routine can be used for example to construct the Pascal’s trangle:

1 $ ca t p a s c a l . pro2 pasca l , 8

pro pa s ca l , nt r i = r e p l i c a t e ( ’ ’ , 2 ∗ n − 1 , n )f o r i =0, n−1 do f o r j =0, i do t r i [ 2∗ j + (n− i )−1 , i ] = $

s t r i n g ( im s l_b i n om i a l c o e f ( i , j ) , f = ’( I 3 ) ’ )p r i n t , t r i

end% Compi led module : PASCAL .

11 1

1 2 11 3 3 1

1 4 6 4 11 5 10 10 5 1

1 6 15 20 15 6 11 7 21 35 35 21 7 1

DRAFT

DRAFT52 Chapter 15. Alphabetical list of library routines

DOUBLE keyword

Forces double precision:

1 he lp , im s l_b i n om i a l c o e f (1000 , 20)2 he lp , im s l_b i n om i a l c o e f (1000 , 20 , / doub l e )

<Exp r e s s i on> FLOAT = i n f<Exp r e s s i on> DOUBLE = 3.3948281 e+41

implementation details: this routine is a wrapper to the GSL’s gsl_sf_choose() function[2]

disclaimer: the name of this GDL routine includes the IMSL_ prefix for compatibility withIDL, it has no ...

IMSL_CONSTANT() functionpositional arguments: 2keywords: DOUBLE

1 p r i n t , ’ U n i f i e d atomic mass , amu . [ kg ] : ’ , $2 im s l_con s t an t ( ’ amu ’ )3 p r i n t , ’ P r e s s u r e o f 1 s t anda rd atmosphere [ Pa ] : ’ , $4 im s l_con s t an t ( ’ atm ’ )5 p r i n t , ’ −||− ’ , $6 im s l_con s t an t ( ’ S tanda rdPre s su r e ’ )7 p r i n t , ’ A s t r onom i ca l u n i t [m] : ’ , $8 im s l_con s t an t ( ’AU’ )9 p r i n t , " Avogadro ’ s number [1/ mole ] : " , $

10 im s l_con s t an t ( ’ Avogadro ’ )11 p r i n t , ’ Boltzmann con s t an t [ J/K ] : ’ , $12 im s l_con s t an t ( ’ Boltzman ’ )13 p r i n t , ’ Speed o f l i g h t i n vacuum [m/ s ] : ’ , $14 im s l_con s t an t ( ’C ’ )15 p r i n t , ’ −||− ’ , $16 im s l_con s t an t ( ’ Sp e ed l i g h t ’ )17 p r i n t , ’ Base o f the n a t u r a l l o g a r i t hm [ 1 ] : ’ , $18 im s l_con s t an t ( ’E ’ )19 p r i n t , ’ Charge o f the e l e c t r o n [C ] : ’ , $

20 im s l_con s t an t ( ’ E l e c t ronCharge ’ )21 p r i n t , ’Mass o f the e l e c t r o n [ kg ] : ’ , $22 im s l_con s t an t ( ’ E lect ronMass ’ )23 p r i n t , ’The ene rgy o f 1 e l e c t r o n vo l t , eV [ J ] : ’ , $24 im s l_con s t an t ( ’ E l e c t r onVo l t ’ )25 p r i n t , ’ Eu l e r−Mascheron i (gamma) con s t an t [ 1 ] : ’ , $26 im s l_con s t an t ( ’ Eu l e r ’ )27 p r i n t , ’ −||− ’ , $28 im s l_con s t an t ( ’Gamma’ )29 p r i n t , ’ Molar cha rge o f 1 Faraday [C/mole ] : ’ , $30 im s l_con s t an t ( ’ Faraday ’ )31 p r i n t , ’ E l e c t r omagne t i c f i n e s t r u c t u r e con s t an t [ 1 ] : ’ , $32 im s l_con s t an t ( ’ F i n eS t r u c t u r e ’ )33 p r i n t , ’The molar gas con s t an t [ J/mole/K ] : ’ , $34 im s l_con s t an t ( ’ Gas ’ )35 p r i n t , ’The g r a v i t a t i o n a l c on s t an t [N∗m2/kg2 ] : ’ , $36 im s l_con s t an t ( ’ G rav i t y ’ )37 p r i n t , " Planck ’ s c on s t an t d i v i d e d by 2 p i [ J∗ s ] : " , $38 im s l_con s t an t ( ’ Hbar ’ )39 p r i n t , ’The s t anda rd gas volume [m3 / mole ] : ’ , $40 im s l_con s t an t ( ’ Per fectGasVolume ’ )41 p r i n t , ’ P i [ 1 ] : ’ , $42 im s l_con s t an t ( ’ Pi ’ )43 p r i n t , " Planck ’ s c on s t an t [ J∗ s ] : " , $44 im s l_con s t an t ( ’ Planck ’ )45 p r i n t , ’Mass o f the p ro ton [ kg ] : ’ , $46 im s l_con s t an t ( ’ ProtonMass ’ )47 p r i n t , " Rydberg ’ s c on s t an t [1/m] : " , $48 im s l_con s t an t ( ’ Rydberg ’ )49 p r i n t , ’ Standard g r a v i t a t i o n a l acc . on Earth [m/ s2 ] : ’ , $50 im s l_con s t an t ( ’ S tanda rdGrav i t y ’ )51 p r i n t , ’ Ste fan−Boltzmann r a d i a t i o n con s t . [W/K4/m2 ] : ’ , $52 im s l_con s t an t ( ’ StefanBoltzman ’ )53 p r i n t , ’ T r i p l e p o i n t t empe ra tu r e f o r water [K ] : ’ , $54 im s l_con s t an t ( ’ Wate rTr ip l e ’ )

U n i f i e d atomic mass , amu . [ kg ] : 1 .66054 e−27P r e s s u r e o f 1 s t anda rd atmosphere [ Pa ] : 101325.

−||− 101325.As t r onom i ca l u n i t [m] : 1 .49598 e+11Avogadro ’ s number [1/ mole ] : 6 .02214 e+23

DRAFT

DRAFTIMSL_ERF() function 53

Boltzmann con s t an t [ J/K ] : 1 .38065 e−23Speed o f l i g h t i n vacuum [m/ s ] : 2 .99792 e+08

−||− 2.99792 e+08Base o f the n a t u r a l l o g a r i t hm [ 1 ] : 2 .71828Charge o f the e l e c t r o n [C ] : 1 .60218 e−19Mass o f the e l e c t r o n [ kg ] : 9 .10938 e−31The ene rgy o f 1 e l e c t r o n vo l t , eV [ J ] : 1 .60218 e−19Eu le r−Mascheron i (gamma) con s t an t [ 1 ] : 0 .57722

−||− 0.57722Molar cha rge o f 1 Faraday [C/mole ] : 96485.3E l e c t r omagne t i c f i n e s t r u c t u r e con s t an t [ 1 ] : 0 .00730The molar gas con s t an t [ J/mole/K ] : 8 .31447The g r a v i t a t i o n a l c on s t an t [N∗m2/kg2 ] : 6 .67300 e−11Planck ’ s c on s t an t d i v i d e d by 2 p i [ J∗ s ] : 1 .05457 e−34The s t anda rd gas volume [m3 / mole ] : 0 .02271Pi [ 1 ] : 3 .14159Planck ’ s c on s t an t [ J∗ s ] : 6 .62607 e−34Mass o f the p ro ton [ kg ] : 1 .67262 e−27Rydberg ’ s c on s t an t [1/m] : 1 .09737 e+07Standard g r a v i t a t i o n a l acc . on Earth [m/ s2 ] : 9 .80665Ste fan−Boltzmann r a d i a t i o n con s t . [W/K4/m2 ] : 5 .67040 e−08T r i p l e p o i n t t empe ra tu r e f o r water [K ] : 273 .160

implementation details: this routine uses the GSL’s constants catalogue [2], the unit con-version is implemented using the UDUNITS-2 library

disclaimer: the name of this GDL routine includes the IMSL_ prefix for compatibility withIDL, it has no ...

IMSL_ERF() functionpositional arguments: 1keywords: DOUBLE, INVERSE

IMSL_ZEROPOLY() functionpositional arguments: 1keywords: COMPANION, DOUBLE, JENKINS_TRAUB

1 c = [−1 ,2 ,3 ,−4]2 x = −1 + f i n dg en (100) / 403 dev i c e , / co l o r , /decomposed4 p lo t , x , c [ 0 ] + c [ 1 ] ∗ x + c [ 2 ] ∗ x^2 + c [ 3 ] ∗ x ^3 , $5 x t i t l e =’X’ , y t i t l e =’Y’ , t h i c k=36 op lo t , x , r e p l i c a t e (0 , n_elements ( x ) ) , c o l o r =’ f f0000 ’ x7 f o r e a c h z , im s l_ z e r opo l y ( c ) do $8 p l o t s , z , 0 . , psym=6, t h i c k =3, c o l o r = ’0000 f f ’ x

implementation details: this routine is a wrapper to the GSL’s gsl_poly_complex_solve()function [2]

disclaimer: the name of this GDL routine includes the IMSL_ prefix for compatibility withIDL, it has no ...

DRAFT

DRAFT54 Chapter 15. Alphabetical list of library routines

IMSL_ZEROSYS() functionpositional arguments: 2keywords: DOUBLE, ERR_REL, FNORM, ITMAX, JACOBIAN, XGUESS

INDGEN() functionpositional arguments: 8keywords: BYTE, COMPLEX, DCOMPLEX, DOUBLE, FLOAT, L64, LONG, STRING,

TYPE, UINT, UL64, ULONG

INTARR() functionpositional arguments: 8keywords: NOZERO

INTERPOL() functionpositional arguments: 3keywords: LSQUADRATIC, QUADRATIC, SPLINE

INTERPOLATE() functionpositional arguments: 4keywords: CUBIC, GRID, MISSING

INVERT() functionpositional arguments: 2keywords: DOUBLE

ISHFT() functionpositional arguments: 2keywords: _EXTRA

JOURNAL procedurepositional arguments: 1keywords: none

KEYWORD_SET() functionpositional arguments: 1keywords: none

KURTOSIS() functionpositional arguments: 1keywords: DOUBLE, NAN

L64INDGEN() functionpositional arguments: 8keywords: none

LAGUERRE() functionpositional arguments: 3keywords: COEFFICIENTS, DOUBLE

LAST_ITEM() functionpositional arguments: 1keywords: none

LA_TRIRED procedurepositional arguments: 3keywords: DOUBLE, UPPER

DRAFT

DRAFTLEGENDRE() function 55

LEGENDRE() functionpositional arguments: 3keywords: DOUBLE

LINDGEN() functionpositional arguments: 8keywords: none

LINKIMAGE procedurepositional arguments: 4keywords: none

see also: CALL_EXTERNAL()

LL_ARC_DISTANCE() functionpositional arguments: 3keywords: DEGREES

Snyder [eqs. 5-5 and 5-6 in 5]

LMGR() functionpositional arguments: nonekeywords: CLIENTSERVER, DEMO, EMBEDDED, EXPIRE_DATE, FORCE_DEMO,

INSTALL_NUM, LMHOSTID, RUNTIME, SITE_NOTICE, STUDENT, TRIAL,VM

LNGAMMA() functionpositional arguments: 1keywords: DOUBLE

LOADCT procedure

positional arguments: 1keywords: BOTTOM, FILE, GET_NAMES, NCOLORS, SILENT

Loads a colour table that defines the RGB values corresponding to given colour indices (usedwhen a plotting terminal is not set to the decomposed mode). The first argument may beused to chose from one of the 41 predefined colour tables, see example below for a graphicallist of the colour predefined tables.

1 $ ca t l i s t c t . pro2 l i s t c t

pro l i s t c t!X . STYLE=5!Y . STYLE=5!P .MULTI=[0 ,3 ,14 ]!X .MARGIN=[10 ,0 ]!Y .MARGIN=[1 ,0 ]dev i c e , / c o l o rf o r i =0, 40 do beg in

l oadc t , i , / s i l e n tcontour , [ [ i ndgen ( 2 5 5 ) ] , [ i ndgen ( 2 5 5 ) ] ] , n l e v e l s =256 , / f i l lxyouts , −77, . 5 , s t rm id ( i , 2)

end f o rend% Compi led module : LISTCT .% Compi led module : LOADCT.

DRAFT

DRAFT56 Chapter 15. Alphabetical list of library routines

GET_NAMES keyword

When set to a variable, a list of colour table names (string array) is assigned to that variable.

1 l o adc t , get_names=names2 f o r i =0, n_elements ( names)−1 do $3 p r i n t , i , names [ i ] , fo rmat=’(%"%d : %s " ) ’

% Compi led module : LOADCT.0 : B−W LINEAR1 : BLUE/WHITE2 : GRN−RED−BLU−WHT3 : RED TEMPERATURE4 : BLUE/GREEN/RED/YELLOW5 : STD GAMMA− I I6 : PRISM7 : RED−PURPLE8 : GREEN/WHITE LINEAR9 : GRN/WHT EXPONENTIAL10 : GREEN−PINK

11 : BLUE−RED12 : 16 LEVEL13 : RAINBOW14 : STEPS15 : BOW SPECIAL16 : Haze17 : Blue − Pa s t e l − Red18 : P a s t e l s19 : Hue Sat L i g h t n e s s 120 : Hue Sat L i g h t n e s s 221 : Hue Sat Value 122 : Hue Sat Value 223 : Purp le−Red + S t r i p e s24 : Beach25 : Mac S t y l e26 : Eos A27 : Eos B28 : Hardcandy29 : Nature30 : Ocean31 : Peppermint32 : Plasma33 : Blue−Red34 : Rainbow35 : Blue Waves36 : Volcano37 : Waves38 : Rainbow1839 : Rainbow + whi t e40 : Rainbow + b l a ck

LOADCT_INTERNALGDL procedurepositional arguments: 1keywords: GET_NAMES

LOCALE_GET() functionpositional arguments: none

DRAFT

DRAFTLOGICAL_AND() function 57

keywords: none

LOGICAL_AND() function

positional arguments: 2keywords: none

multi-threading: this routine uses GDL thread pool if working on large array, see the...

LOGICAL_OR() function

positional arguments: 2keywords: none

multi-threading: this routine uses GDL thread pool if working on large array, see the...

LOGICAL_TRUE() function

positional arguments: 1keywords: none

multi-threading: this routine uses GDL thread pool if working on large array, see the...

LON64ARR() function

positional arguments: 8keywords: NOZERO

LONARR() function

positional arguments: 8keywords: NOZERO

LONG() functionpositional arguments: 10keywords: none

LONG64() functionpositional arguments: 10keywords: none

LUDC procedurepositional arguments: 3keywords: none

MACHAR() functionpositional arguments: nonekeywords: DOUBLE

MAGICK_ADDNOISE procedurepositional arguments: 1keywords: GAUSSIANNOISE, IMPULSENOISE, LAPLACIANNOISE, MULTIPLICATIVE-

GAUSSIANNOISE, NOISE, POISSONNOISE, UNIFORMNOISE

MAGICK_CLOSE procedurepositional arguments: 1keywords: none

MAGICK_COLORMAPSIZE() functionpositional arguments: 2keywords: none

DRAFT

DRAFT58 Chapter 15. Alphabetical list of library routines

MAGICK_COLUMNS() functionpositional arguments: 1keywords: none

MAGICK_CREATE() functionpositional arguments: 3keywords: none

MAGICK_DISPLAY procedurepositional arguments: 1keywords: none

MAGICK_EXISTS() functionpositional arguments: nonekeywords: none

MAGICK_FLIP procedurepositional arguments: 1keywords: none

MAGICK_INDEXEDCOLOR() functionpositional arguments: 1keywords: none

MAGICK_INTERLACE procedurepositional arguments: 1keywords: LINEINTERLACE, NOINTERLACE, PLANEINTERLACE

MAGICK_MAGICK() function

positional arguments: 2keywords: none

MAGICK_MATTE procedure

positional arguments: 1keywords: none

MAGICK_OPEN() function

positional arguments: 1keywords: none

MAGICK_PING() function

positional arguments: 2keywords: CHANNELS, DIMENSIONS, GAUSSIANNOISE, HAS_PALETTE, IM-

AGE_INDEX, IMPULSENOISE, INFO, LAPLACIANNOISE, MULTIPLICATIVEG-AUSSIANNOISE, NOISE, NUM_IMAGES, PIXEL_TYPE, POISSONNOISE, TYPE,UNIFORMNOISE

MAGICK_QUALITY procedure

positional arguments: 2keywords: none

MAGICK_QUANTIZE procedure

positional arguments: 2keywords: DITHER, GRAYSCALE, TRUECOLOR, YUV

DRAFT

DRAFTMAGICK_READ() function 59

MAGICK_READ() functionpositional arguments: 1keywords: MAP, RGB, SUB_RECT

MAGICK_READCOLORMAPRGB procedurepositional arguments: 4keywords: none

MAGICK_READINDEXES() functionpositional arguments: 1keywords: none

MAGICK_ROWS() functionpositional arguments: 1keywords: none

MAGICK_WRITE procedurepositional arguments: 2keywords: RGB

MAGICK_WRITECOLORTABLE procedurepositional arguments: 4keywords: none

MAGICK_WRITEFILE procedurepositional arguments: 3keywords: none

MAGICK_WRITEINDEXES procedurepositional arguments: 2keywords: none

multi-threading: this routine uses GDL thread pool if working on large array, see the...

MAKE_ARRAY() functionpositional arguments: 8keywords: BYTE, COMPLEX, DCOMPLEX, DIMENSION, DOUBLE, FLOAT, INDEX,

INTEGER, L64, LONG, NOZERO, OBJ, PTR, SIZE, STRING, TYPE, UINT,UL64, ULONG, VALUE

MAP_CLIP_SET procedurepositional arguments: nonekeywords: CLIP_PLANE, CLIP_UV, RESET, SPLIT, TRANSFORM

MAP_CONTINENTS procedurepositional arguments: nonekeywords: COLOR, COUNTRIES, FILL_CONTINENTS, HIRES, RIVERS

Wessel and Smith [7]

MAP_PROJ_FORWARD() functionpositional arguments: 3keywords: CONNECTIVITY, FILL, MAP_STRUCTURE, POLYGONS, POLYLINES,

RADIANS

MAP_PROJ_INVERSE() functionpositional arguments: 3keywords: RADIANS

DRAFT

DRAFT60 Chapter 15. Alphabetical list of library routines

MATRIX_MULTIPLY() functionpositional arguments: 2keywords: ATRANSPOSE, BTRANSPOSE

MAX() functionpositional arguments: 2keywords: DIMENSION, MIN, NAN, SUBSCRIPT_MIN

MEAN() functionpositional arguments: 1keywords: DOUBLE, NAN

MEANABSDEV() functionpositional arguments: 1keywords: DOUBLE, NAN

MEDIAN() functionpositional arguments: 2keywords: DIMENSION, DOUBLE, EVEN

MEMORY() functionpositional arguments: 1keywords: CURRENT, HIGHWATER, L64, NUM_ALLOC, NUM_FREE, STRUCTURE

MESSAGE procedurepositional arguments: 1keywords: CONTINUE, INFORMATIONAL, IOERROR, NONAME, NOPREFIX, NO-

PRINT, RESET, TRACEBACK

MIN() functionpositional arguments: 2keywords: DIMENSION, MAX, NAN, SUBSCRIPT_MAX

MOMENT() functionpositional arguments: 1keywords: DOUBLE, MAXMOMENT, MDEV, NAN, SDEV

NCDF_ATTCOPY() functionpositional arguments: 5keywords: IN_GLOBAL, OUT_GLOBAL

NCDF_ATTDEL procedurepositional arguments: 3keywords: GLOBAL

NCDF_ATTGET procedurepositional arguments: 4keywords: GLOBAL

NCDF_ATTINQ() functionpositional arguments: 3keywords: GLOBAL

NCDF_ATTNAME() functionpositional arguments: 3keywords: GLOBAL

DRAFT

DRAFTNCDF_ATTPUT procedure 61

NCDF_ATTPUT procedurepositional arguments: 4keywords: BYTE, CHAR, DOUBLE, FLOAT, GLOBAL, LENGTH, LONG, SHORT

NCDF_ATTRENAME procedurepositional arguments: 4keywords: GLOBAL

NCDF_CLOSE procedurepositional arguments: 1keywords: none

NCDF_CONTROL procedurepositional arguments: 1keywords: ABORT, ENDEF, FILL, NOFILL, NOVERBOSE, OLDFILL, REDEF, SYNC,

VERBOSE

NCDF_CREATE() functionpositional arguments: 1keywords: CLOBBER, NOCLOBBER

NCDF_DIMDEF() functionpositional arguments: 3keywords: UNLIMITED

NCDF_DIMID() functionpositional arguments: 2keywords: none

NCDF_DIMINQ procedurepositional arguments: 4keywords: none

NCDF_DIMRENAME procedurepositional arguments: 3keywords: none

NCDF_EXISTS() functionpositional arguments: nonekeywords: none

1 p r i n t , ’GDL compi l ed wi th netCDF suppo r t : ’ $2 + ( n c d f_ e x i s t s ( ) ? ’ yes ’ : ’ no ’ )

GDL comp i l ed wi th netCDF suppo r t : y e s

NCDF_INQUIRE() functionpositional arguments: 1keywords: none

NCDF_OPEN() functionpositional arguments: 1keywords: NOWRITE, WRITE

NCDF_VARDEF() functionpositional arguments: 3keywords: BYTE, CHAR, DOUBLE, FLOAT, LONG, SHORT

DRAFT

DRAFT62 Chapter 15. Alphabetical list of library routines

NCDF_VARGET procedure

positional arguments: 3keywords: COUNT, OFFSET, STRIDE

NCDF_VARGET1 procedure

positional arguments: 3keywords: OFFSET

NCDF_VARID() function

positional arguments: 2keywords: none

NCDF_VARINQ() function

positional arguments: 2keywords: none

NCDF_VARPUT procedure

positional arguments: 3keywords: COUNT, OFFSET, STRIDE

NCDF_CONTROL with SYNC to force...

NCDF_VARRENAME procedure

positional arguments: 3keywords: none

NEWTON() function

positional arguments: 2keywords: DOUBLE, HYBRID, ITMAX, TOLF, TOLX

Galassi et al. [2]

NORM() function

positional arguments: 1keywords: DOUBLE

N_ELEMENTS() function

positional arguments: 1keywords: none

N_PARAMS() function

positional arguments: 1keywords: none

N_TAGS() function

positional arguments: 1keywords: DATA_LENGTH, LENGTH

OBJARR() function

positional arguments: 8keywords: NOZERO

DRAFT

DRAFTOBJ_CLASS() function 63

OBJ_CLASS() function

positional arguments: 1keywords: COUNT, SUPERCLASS

Returns the name of the class of an object passed as the first argument.

SUPERCLASS keyword

Returns instead an array of all direct superclasses of the object passed as the first argument.In this case the first argument may be a string defining the object name.

COUNT keyword

Allows to pass a reference to a variable into which the number of direct superclasses will bestored.

1 $ t a i l ∗__def ine . pro2 b o t t l e = obj_new ( ’ beer ’ )3 p r i n t , ’ b o t t l e i s a [ n ] ’ , o b j_ c l a s s ( b o t t l e )4 s p r = ob j_ c l a s s ( ’ beer ’ , / s u p e r c l a s s , count=cnt )5 p r i n t , ’ b ee r has ’ , s t r t r i m ( cnt , 2 ) , ’ d i r e c t s u p e r c l a s s [ e s ] : ’ , s t r j o i n ( spr , ’ , ’ )

==> a l c o h o l i c_d r i n k__de f i n e . pro <==pro a l c o h o l i c_d r i n k__de f i n e

s t r u c t = { a l c o h o l i c_d r i n k , p r oo f : 0 , i n h e r i t s d r i n k }end

==> bee r__de f i ne . pro <==pro bee r__de f i ne

s t r u c t = {beer , i n h e r i t s a l c o h o l i c _ d r i n k }end

==> dr i nk__de f i n e . pro <==pro d r i nk__de f i n e

s t r u c t = { dr i nk , c o l o r : 0}end% Compi led module : BEER__DEFINE .% Compi led module : ALCOHOLIC_DRINK__DEFINE .% Compi led module : DRINK__DEFINE .b o t t l e i s a [ n ] BEER

bee r has 1 d i r e c t s u p e r c l a s s [ e s ] : ALCOHOLIC_DRINK

A list of all known classes is returned if called without any argument:

1 c l a s s e s = ob j_ c l a s s ( )2 he lp , c l a s s e s3 p r i n t , c l a s s e s

CLASSES STRING = Array [ 2 3 ]!PLT !GNUDATALANGUAGE ! AXIS !VERSION !MOUSE !ERROR_STATE !VALUES !MAP !CPU !WARN IDL_SIZE FSTAT64 FSTAT FILE_INFO IDL_MEMORY IDL_MEMORY64 MACHARDMACHAR WIDGET_BUTTON WIDGET_DROPLIST WIDGET_TEXT WIDGET_VERSION !DEVICE

OBJ_DESTROY procedure

positional arguments: any numberkeywords: _REF_EXTRA

OBJ_ISA() function

positional arguments: 2keywords: none

OBJ_NEW() function

positional arguments: any numberkeywords: _REF_EXTRA

Beware that values of object fields may only be initialised in the constructor, and not whiledefining the object structure, i.e.:

1 $ ca t t e s t__de f i n e . pro2 a = obj_new ( ’ t e s t ’ )3 a−>pr intXY

DRAFT

DRAFT64 Chapter 15. Alphabetical list of library routines

pro t e s t : : pr intXYp r i n t , s e l f . x , s e l f . y

endf u n c t i o n t e s t : : i n i t

s e l f . x = 10r e tu rn , 1

endpro t e s t__de f i n e

s t r u c t = { t e s t , x : 5 , y : 5}end% Compi led module : TEST__DEFINE .

10 0

OBJ_VALID() functionpositional arguments: 1keywords: CAST, COUNT

ON_ERROR procedurepositional arguments: 1keywords: none

OPENR procedurepositional arguments: 3keywords: APPEND, BINARY, BLOCK, BUFSIZE, COMPRESS, DELETE, ERROR,

F77_UNFORMATTED, GET_LUN, MORE, NOAUTOMODE, STDIO, STREAM,SWAP_ENDIAN, SWAP_IF_BIG_ENDIAN, SWAP_IF_LITTLE_ENDIAN,VAX_FLOAT, WIDTH, XDR

COMPRESS keyword

1 $ echo "GDL ro ck s ! " > f i l e . t x t2 $ g z i p −f f i l e . t x t3 openr , u , ’ f i l e . t x t . gz ’ , / get_lun , / compress

4 s = ’ ’5 readu , u , s6 f r e e_ lun , u7 p r i n t , s8 $ rm f i l e . t x t . gz

GDL ro ck s !

OPENU procedure

positional arguments: 3keywords: APPEND, BINARY, BLOCK, BUFSIZE, COMPRESS, DELETE, ERROR,

F77_UNFORMATTED, GET_LUN, MORE, NOAUTOMODE, STDIO, STREAM,SWAP_ENDIAN, SWAP_IF_BIG_ENDIAN, SWAP_IF_LITTLE_ENDIAN,VAX_FLOAT, WIDTH, XDR

OPENW procedure

positional arguments: 3keywords: APPEND, BINARY, BLOCK, BUFSIZE, COMPRESS, DELETE, ERROR,

F77_UNFORMATTED, GET_LUN, MORE, NOAUTOMODE, STDIO, STREAM,SWAP_ENDIAN, SWAP_IF_BIG_ENDIAN, SWAP_IF_LITTLE_ENDIAN,VAX_FLOAT, WIDTH, XDR

OPLOT procedure

positional arguments: 2keywords: CLIP, COLOR, LINESTYLE, MAX_VALUE, MIN_VALUE, NOCLIP, NSUM,

POLAR, PSYM, SYMSIZE, T3D, THICK

DRAFT

DRAFTPARSE_URL() function 65

PARSE_URL() function

positional arguments: 1keywords: none

Returns a structure describing components of the URL passed as an argument, e.g.:

1 he lp , p a r s e_u r l ( ’ h t tp : // r oo t : qwerty@kgb . ru :666/? hack ’ ) , / s t r u

∗∗ S t r u c t u r e <Anonymous>, 7 tags , data l e n g t h =56:SCHEME STRING ’ http ’USERNAME STRING ’ root ’PASSWORD STRING ’ qwerty ’HOST STRING ’ kgb . ru ’PORT STRING ’666 ’PATH STRING ’/ ’QUERY STRING ’ hack ’

PATH_SEP() function

positional arguments: nonekeywords: PARENT_DIRECTORY, SEARCH_PATH, TEST

PLOT procedure

positional arguments: 2keywords: BACKGROUND, CHARSIZE, CHARTHICK, CLIP, COLOR, DATA, DE-

VICE, LINESTYLE, MAX_VALUE, MIN_VALUE, NOCLIP, NODATA, NOERASE,NORMAL, POSITION, PSYM, SUBTITLE, SYMSIZE, THICK, TICKLEN, TI-TLE, XCHARSIZE, XLOG, XMARGIN, XMINOR, XRANGE, XSTYLE, XTHICK,XTICKFORMAT, XTICKLEN, XTICKS, XTITLE, XTYPE, YCHARSIZE, YLOG,YMARGIN, YMINOR, YNOZERO, YRANGE, YSTYLE, YTHICK, YTICKFORMAT,YTICKLEN, YTICKS, YTITLE, YTYPE, ZCHARSIZE, ZGRIDSTYLE, ZMARGIN,ZMINOR, ZRANGE, ZSTYLE, ZTHICK, ZTICKFORMAT, ZTICKLEN, ZTICKS,ZTITLE, ZVALUE

PLOTERR procedure

positional arguments: 4keywords: BAR_COLOR, HAT, HELP, LENGTH_OF_HAT, PSYM, TEST, TYPE,

XLOG, XRANGE, YLOG, YRANGE, _EXTRA

PLOTS procedure

positional arguments: 3keywords: CLIP, COLOR, CONTINUE, DATA, DEVICE, LINESTYLE, NOCLIP, NOR-

MAL, PSYM, SYMSIZE, T3D, THICK

PM procedure

positional arguments: any numberkeywords: FORMAT, TITLE

1 a r r = indgen (4 , 4 )2 fmt = ’ (4 I 3 ) ’3 p r i n t , ’PM’4 pm, a r r , fo rmat=fmt5 p r i n t , ’PRINT : ’6 p r i n t , a r r , fo rmat=fmt

PM0 4 8 121 5 9 132 6 10 143 7 11 15

PRINT :0 1 2 34 5 6 78 9 10 11

12 13 14 15

see also: ORDER keyword in TV, TVRD(), ... (TODO: section on # and ## ops.)

DRAFT

DRAFT66 Chapter 15. Alphabetical list of library routines

POINT_LUN procedurepositional arguments: 2keywords: none

POLY() functionpositional arguments: 2keywords: none

POLYFILL procedurepositional arguments: 3keywords: CLIP, COLOR, DATA, DEVICE, LINESTYLE, LINE_FILL, NOCLIP, NOR-

MAL, ORIENTATION, SPACING, THICK

POLY_2D() functionpositional arguments: 6keywords: CUBIC, MISSING

POLY_AREA() functionpositional arguments: 2keywords: DOUBLE, SIGNED

POPD procedurepositional arguments: nonekeywords: none

PREWITT() functionpositional arguments: 1keywords: HELP

PRIMES() function

positional arguments: 1keywords: none

PRINT procedure

positional arguments: any numberkeywords: AM_PM, DAYS_OF_WEEK, FORMAT, MONTH, STDIO_NON_FINITE

PRINTD procedure

positional arguments: nonekeywords: none

PRINTF procedure

positional arguments: any numberkeywords: AM_PM, DAYS_OF_WEEK, FORMAT, MONTH, STDIO_NON_FINITE

PRODUCT() function

positional arguments: 2keywords: CUMULATIVE, INTEGER, NAN, PRESERVE_TYPE

multi-threading: this routine uses GDL thread pool if working on large array, see the...

PTRARR() function

positional arguments: 8keywords: ALLOCATE_HEAP, NOZERO

multi-threading: this routine uses GDL thread pool if working on large array, see the...

DRAFT

DRAFTPTR_FREE procedure 67

PTR_FREE procedure

positional arguments: any numberkeywords: none

PTR_FREE can also be used to deallocate a variable:

1 a = 12 p t r_ f r e e , ptr_new ( a , /no_copy )3 he lp , a

A UNDEFINED = <Undef ined>

see also: PTR_NEW(), PTR_VALID()

PTR_NEW() function

positional arguments: 1keywords: ALLOCATE_HEAP, NO_COPY

PTR_VALID() function

positional arguments: 1keywords: CAST, COUNT

PUSHD procedure

positional arguments: 1keywords: none

PYTHON procedure

positional arguments: any numberkeywords: ARGV

PYTHON() function

positional arguments: any numberkeywords: ARGV, DEFAULTRETURNVALUE

Executes a python function whose name is specified using the second argument, the firstargument defines the package (e.g. numpy). All other argument are passed as positionalarguments to the function.

1 p r i n t , python ( ’ numpy ’ , ’ arange ’ , 4 . )

0 .0000000 1.0000000 2.0000000 3.0000000

PY_PLOT procedure

positional arguments: 2keywords: GRID, TITLE, XLABEL, YLABEL

PY_PRINT procedure

positional arguments: 1keywords: none

QUERY_BMP() function

positional arguments: 2keywords: none

1 $ wget −−qu i e t h t tp : // w i k i p e d i a . org / f a v i c o n . i c o2 $ conv e r t f a v i c o n . i c o f a v i c o n . bmp3 ok = query_bmp ( ’ f a v i c o n . bmp ’ , i n f o )4 i f ok then he lp , i n f o , / s t r u c t u r e e l s e p r i n t , ’ que ry f a i l e d ! ’5 $ rm f a v i c o n .∗

DRAFT

DRAFT68 Chapter 15. Alphabetical list of library routines

% Compi led module : QUERY_BMP.∗∗ S t r u c t u r e <Anonymous>, 7 tags , data l e n g t h =32:

CHANNELS LONG 4DIMENSIONS LONG Array [ 2 ]HAS_PALETTE INT 0IMAGE_INDEX LONG 0NUM_IMAGES LONG 1PIXEL_TYPE INT 1TYPE STRING ’BMP’

QUERY_DICOM() functionpositional arguments: 2keywords: none

QUERY_GIF() functionpositional arguments: 2keywords: none

QUERY_IMAGE() functionpositional arguments: 2keywords: _REF_EXTRA

QUERY_JPEG() functionpositional arguments: 2keywords: none

QUERY_PICT() functionpositional arguments: 2keywords: none

QUERY_PNG() functionpositional arguments: 2keywords: none

QUERY_PPM() functionpositional arguments: 2keywords: none

QUERY_TIFF() functionpositional arguments: 2keywords: IMAGE_INDEX

RADON() functionpositional arguments: 1keywords: BACKPROJECT, DOUBLE, DRHO, DX, DY, GRAY, LINEAR, NRHO,

NTHETA, NX, NY, RHO, RMIN, THETA, XMIN, YMIN

RANDOMN() functionpositional arguments: 8keywords: BINOMIAL, DOUBLE, GAMMA, LONG, NORMAL, POISSON, UNIFORM

RANDOMU() functionpositional arguments: 8keywords: BINOMIAL, DOUBLE, GAMMA, LONG, NORMAL, POISSON, UNIFORM

READ procedurepositional arguments: any numberkeywords: AM_PM, DAYS_OF_WEEK, FORMAT, MONTH, PROMPT

DRAFT

DRAFTREADF procedure 69

READF procedurepositional arguments: any numberkeywords: AM_PM, DAYS_OF_WEEK, FORMAT, MONTH, PROMPT

READS procedurepositional arguments: any numberkeywords: AM_PM, DAYS_OF_WEEK, FORMAT, MONTH

READU procedurepositional arguments: any numberkeywords: TRANSFER_COUNT

READ_ASCII() functionpositional arguments: 1keywords: COMMENT_SYMBOL, COUNT, DATA_START, DELIMITER, HEADER,

MISSING_VALUE, NUM_RECORDS, RECORD_START, TEMPLATE, VERBOSE

READ_BINARY() functionpositional arguments: 1keywords: DATA_DIMS, DATA_START, DATA_TYPE, ENDIAN, TEMPLATE

READ_BMP() functionpositional arguments: 4keywords: RGB

READ_DICOM() functionpositional arguments: 4keywords: IMAGE_INDEX

READ_JPEG procedure

positional arguments: 3keywords: BUFFER, COLORS, DITHER, GRAYSCALE, ORDER, TRUE,

TWO_PASS_QUANTIZE, UNIT

READ_PICT procedure

positional arguments: 5keywords: none

READ_PNG() function

positional arguments: 4keywords: ORDER, TRANSPARENT, VERBOSE

READ_TIFF() function

positional arguments: 4keywords: CHANNELS, GEOTIFF, IMAGE_INDEX, INTERLEAVE, ORIENTATION,

PLANARCONFIG, SUB_RECT, VERBOSE

READ_XWD() function

positional arguments: 4keywords: none

REAL_PART() function

positional arguments: 1keywords: none

DRAFT

DRAFT70 Chapter 15. Alphabetical list of library routines

REBIN() functionpositional arguments: 9keywords: SAMPLE

RECALL_COMMANDS() functionpositional arguments: nonekeywords: none

REFORM() functionpositional arguments: 8keywords: OVERWRITE

REPLICATE() functionpositional arguments: 9keywords: none

REPLICATE_INPLACE procedurepositional arguments: 6keywords: none

RESOLVE_ROUTINE procedurepositional arguments: 1keywords: none

RESTORE procedurepositional arguments: 1keywords: DESCRIPTION, FILENAME, RELAXED_STRUCTURE_ASSIGNMENT, RE-

STORED_OBJECTS, VERBOSE

RETALL procedure

positional arguments: nonekeywords: RETALL

REVERSE() function

positional arguments: 2keywords: OVERWRITE

RK4() function

positional arguments: 5keywords: DOUBLE, ITER

RK4JMG() function

positional arguments: 5keywords: DOUBLE

ROBERTS() function

positional arguments: 1keywords: HELP

ROTATE() function

positional arguments: 2keywords: none

DRAFT

DRAFTROUND() function 71

ROUND() functionpositional arguments: 1keywords: L64

multi-threading: this routine uses GDL thread pool if working on large array, see the...

ROUTINE_INFO() functionpositional arguments: 1keywords: DISABLED, ENABLED, FUNCTIONS, PARAMETERS, SYSTEM

ROUTINE_NAMES() functionpositional arguments: any numberkeywords: ARG_NAME, FETCH, LEVEL, STORE, S_FUNCTIONS, S_PROCEDURES,

VARIABLES

Examines variables and parameters of procedures and the call stack Using ROU-TINE_NAMES a subroutine can interrogate, and in some cases change, the values andnames of variables and parameters in its calling routine, or at the $MAIN$ level.ROUTINE_NAMES uses a notion of the current "call level," which is the numerical stackdepth of the currently executing routine. At each procedure or function call, the call levelbecomes one deeper, and upon each RETURN, the call level becomes one shallower. Thecall stack always begins at the $MAIN$ level. The current call stack can always be printedby executing HELP.When specifying the call level to ROUTINE_NAMES, one can use one of two numberingsystems, depending on whichever is most convenient. In the absolute numbering system,the $MAIN$ level starts at number 1, and becomes deeper with increasing numbers. In therelative numbering system, the current (deepest) call level is number 0, and becomes shal-lower with more negative numbers. Hence, if the deepest level is N, then the correspondenceis thus:VALUE MEANING1 or -N+1 $MAIN$ level2 or -N+2 NEXT deeper level. . . . . .N or 0 DEEPEST (currently executing) level

When called without any keyword ROUTINE_NAMES returns a string array containing alist of currently compiled functions and procedures, e.g.:

1 $ ca t l i b r a r y . pro2 . comp i l e l i b r a r y . pro3 p r i n t , rout ine_names ( )

pro a_procedurep r i n t , ’ H e l l o wor ld ! ’

endf u n c t i o n a_ func t i on

r e tu rn , ’ H e l l o wor ld ! ’end% Compi led module : A_PROCEDURE.% Compi led module : A_FUNCTION.$MAIN$ A_FUNCTION A_PROCEDURE

ROUTINE_NAMES can be invoked in several other ways, which are detailed below togetherwith keyword descriptions.

S_PROCEDURES keyword

The lists of system procedures is returned, as a string array. The list does not cover procedureswritten in GDL itself which are also part of GDL’s routine library (e.g. WRITE_PNG).

1 p r i n t , ( rout ine_names (/ s_pro ) ) [ 0 : 5 ]

AXIS BYTEORDER CALDAT CALL_METHOD CALL_PROCEDURE CATCH

S_FUNCTIONS keyword

The lists of system functions is returned, as a string array. The list does not cover functionswritten in GDL itself which are also part of GDL’s routine library (e.g. READ_PNG()).

1 he lp , rout ine_names (/ s_ f un c t i o n s )

<Exp r e s s i on> STRING = Array [ 2 5 0 ]

DRAFT

DRAFT72 Chapter 15. Alphabetical list of library routines

LEVEL keyword

The call level of the calling routine is returned, e.g.:

1 $ ca t func . pro2 p r i n t , rout ine_names (/ l e v e l ) , func ( )

f u n c t i o n funcr e tu rn , rout ine_names (/ l e v e l )

end% Compi led module : FUNC.

1 2

ARG_NAME keyword

The names of variables passed as positional arguments at call level specified with theARG_NAME keyword are returned, as a string array. Note that the arguments passedare the actual parameters, not strings containing their names. All of the arguments must beparameters that have been passed to the calling procedure. Variables that are unnamed atthe specified call level will return the empty string.

1 $ ca t p rocedu r e . pro2 a1 = 13 a2 = ’2 ’4 a3 = [3 b ]5 procedure , a1 , a2 , a3

pro procedure , arg0 , arg1 , arg2p r i n t , rout ine_names ( arg1 , arg2 , arg_name=0)p r i n t , rout ine_names ( arg1 , arg2 , arg_name=−1)

end% Compi led module : PROCEDURE.ARG1 ARG2A2 A3

VARIABLES keyword

The names of variables at call level specified with the VARIABLES keyword are returned, asa string array, e.g.:

1 $ ca t p roc edu r e . pro2 s t r = ’ He l l o wor ld ! ’3 a r r = [ ’ He l l o ’ , ’ wor ld ’ , ’ ! ’ ]4 i n t = 05 p rocedu r e

pro p rocedu r ep r i n t , rout ine_names ( v a r i a b l e s=−1)

end% Compi led module : PROCEDURE.STR ARR INT

FETCH keyword

The value of a variable which name is passed in the first argument (string) at call level spec-ified with the FETCH keyword is returned. If the value is undefined, then the assignmentwill cause an error. Therefore, the only safe way to retrieve a value is by using a variant ofthe following:

1 i f n_elements ( rout ine_names ( ’ a ’ , f e t c h =0)) gt 0 $2 then v a l u e = rout ine_names ( ’ a ’ , f e t c h =0) $3 e l s e message , ’ a i s not d e f i n e d ! ’

% $MAIN$ : a i s not d e f i n e d !% Execu t i on h a l t e d at : $MAIN$

STORE keyword

The value specified with the second argument is stored into the variable which name is passedin the first argument (string) at the call level specified with the STORE keyword. Note thatthere is no way to cause the named variable to become undefined. The value returned canbe ignored.

1 a = 12 dummy = rout ine_names ( ’ a ’ , 2 , s t o r e =0)3 p r i n t , a

2

DRAFT

DRAFTRSTRPOS() function 73

see also: ROUTINE_INFO(), ARG_PRESENT(), SCOPE_VARFETCH()

disclaimer: Entry based on Craig Markwardt’s documentation for ROUTINE_NAMES:Copyright (C) 2000, Craig Markwardt. This software is provided as is without any war-ranty whatsoever. Permission to use, copy, modify, and distribute modified or unmodifiedcopies is granted, provided this copyright and disclaimer are included unchanged.

RSTRPOS() function

positional arguments: 3keywords: none

SAVE procedure

positional arguments: 30keywords: ALL, APPEND, COMPATIBLE, DATA, ERRMSG, FILENAME, MTIMES,

NAMES, NOCATCH, PASS_METHOD, QUIET, STATUS, TEST, USEUNIT,VARSTATUS, VERBOSE, XDR

SCOPE_VARFETCH() function

positional arguments: 1keywords: LEVEL

SEM_CREATE() function

positional arguments: 1keywords: DESTROY_SEMAPHORE

SEM_DELETE procedure

positional arguments: 1keywords: none

SEM_LOCK() functionpositional arguments: 1keywords: none

SEM_RELEASE procedurepositional arguments: 1keywords: none

SETENV procedurepositional arguments: 1keywords: none

SET_PLOT procedurepositional arguments: 1keywords: COPY, INTERPOLATE

SHIFT() functionpositional arguments: 9keywords: none

SHOWFONT procedurepositional arguments: 2keywords: BASE, BEG, ENCAPSULATED, FIN, TT_FONT

Displays a table of fonts for a give font number (first argument) in the current graphicsterminal, e.g.:

1 showfont , 3 , ’ S imp lex Roman ’

% Compi led module : SHOWFONT.

DRAFT

DRAFT74 Chapter 15. Alphabetical list of library routines

1 showfont , 4 , ’ S imp lex Greek ’

% Compi led module : SHOWFONT.

1 showfont , 5 , ’ Duplex Roman ’

% Compi led module : SHOWFONT.

DRAFT

DRAFTSHOWFONT procedure 75

1 showfont , 6 , ’ Complex Roman ’

% Compi led module : SHOWFONT.

1 showfont , 7 , ’ Complex Greek ’

% Compi led module : SHOWFONT.

DRAFT

DRAFT76 Chapter 15. Alphabetical list of library routines

1 showfont , 8 , ’ Complex I t a l i c ’

% Compi led module : SHOWFONT.

1 showfont , 9 , ’Math and Spe c i a l ’

% Compi led module : SHOWFONT.

DRAFT

DRAFTSHOWFONT procedure 77

1 showfont , 11 , ’ Goth i c Eng l i s h ’

% Compi led module : SHOWFONT.

1 showfont , 12 , ’ S imp lex S c r i p t ’

% Compi led module : SHOWFONT.

DRAFT

DRAFT78 Chapter 15. Alphabetical list of library routines

1 showfont , 13 , ’ Complex S c r i p t ’

% Compi led module : SHOWFONT.

1 showfont , 14 , ’ Goth i c I t a l i a n ’

% Compi led module : SHOWFONT.

DRAFT

DRAFTSHOWFONT procedure 79

1 showfont , 15 , ’ Goth i c German ’

% Compi led module : SHOWFONT.

1 showfont , 16 , ’ C y r i l i c ’

% Compi led module : SHOWFONT.

DRAFT

DRAFT80 Chapter 15. Alphabetical list of library routines

1 showfont , 17 , ’ T r i p l e x Roman ’

% Compi led module : SHOWFONT.

1 showfont , 18 , ’ T r i p l e x I t a l i c ’

% Compi led module : SHOWFONT.

DRAFT

DRAFTSIN() function 81

1 showfont , 20 , ’ M i s c e l l a n eou s ’

% Compi led module : SHOWFONT.

SIN() functionpositional arguments: 1keywords: none

multi-threading: this routine uses GDL thread pool if working on large array, see the...

SINDGEN() functionpositional arguments: 8keywords: none

SINH() functionpositional arguments: 1keywords: none

DRAFT

DRAFT82 Chapter 15. Alphabetical list of library routines

multi-threading: this routine uses GDL thread pool if working on large array, see the...

SIZE() functionpositional arguments: 1keywords: DIMENSIONS, FILE_LUN, L64, N_DIMENSIONS, N_ELEMENTS, STRUC-

TURE, TNAME, TYPE

SKEWNESS() functionpositional arguments: 1keywords: DOUBLE, NAN

SKIP_LUN procedurepositional arguments: 2keywords: EOF, HELP, LINES, TEST, TRANSFER_COUNT

SMOOTH() functionpositional arguments: 2keywords: EDGE_TRUNCATE, HELP, NAN, TEST, VERBOSE

SOBEL() functionpositional arguments: 1keywords: HELP

SOCKET procedurepositional arguments: 3keywords: CONNECT_TIMEOUT, ERROR, GET_LUN, READ_TIMEOUT, STDIO,

SWAP_ENDIAN, SWAP_IF_BIG_ENDIAN, SWAP_IF_LITTLE_ENDIAN, WIDTH,WRITE_TIMEOUT

SORT() functionpositional arguments: 1keywords: L64

SPAWN procedurepositional arguments: 3keywords: COUNT, EXIT_STATUS, NOSHELL, PID, SH, UNIT

SPHER_HARM() functionpositional arguments: 4keywords: DOUBLE

SPL_INIT() functionpositional arguments: 2keywords: DOUBLE, HELP, YP0, YPN_1

SPL_INIT_OLD() functionpositional arguments: 2keywords: DEBUG, DOUBLE, YP0, YPN_1

SPL_INTERP() functionpositional arguments: 4keywords: DOUBLE, HELP

SPL_INTERP_OLD() functionpositional arguments: 4keywords: DOUBLE

DRAFT

DRAFTSQRT() function 83

SQRT() function

positional arguments: 1keywords: none

multi-threading: this routine uses GDL thread pool if working on large array, see the...

STDDEV() function

positional arguments: 1keywords: DOUBLE, NAN

STOP procedure

positional arguments: any numberkeywords: AM_PM, DAYS_OF_WEEK, FORMAT, MONTH, STDIO_NON_FINITE

STRARR() function

positional arguments: 8keywords: NOZERO

STRCMP() function

positional arguments: 3keywords: FOLD_CASE

STRCOMPRESS() function

positional arguments: 1keywords: REMOVE_ALL

multi-threading: this routine uses GDL thread pool if working on large array, see the...

STREGEX() functionpositional arguments: 2keywords: BOOLEAN, EXTRACT, FOLD_CASE, LENGTH, SUBEXPR

STRING() functionpositional arguments: any numberkeywords: AM_PM, DAYS_OF_WEEK, FORMAT, MONTH, PRINT

PRINT keyword

1 he lp , s t r i n g (55b )2 he lp , s t r i n g (55b , / p r i n t )3 he lp , s t r i n g ( f i n d g en ( 2 , 2 ) )4 he lp , s t r i n g ( f i n d g en ( 2 , 2 ) , / p r i n t )5 he lp , s t r i n g ( f i n d g en ( 2 ) , / p r i n t )

<Exp r e s s i on> STRING = ’7 ’<Exp r e s s i on> STRING = ’ 55 ’<Exp r e s s i on> STRING = Array [ 2 , 2 ]<Exp r e s s i on> STRING = Array [ 2 ]<Exp r e s s i on> STRING = ’ 0.00000 1 .00000 ’

STRJOIN() functionpositional arguments: 2keywords: SINGLE

1 a r r = [ ’ a ’ , ’ b ’ , ’ c ’ ]2 s t r = s t r j o i n ( a r r )3 he lp , a r r , s t r

ARR STRING = Array [ 3 ]STR STRING = ’ abc ’

DRAFT

DRAFT84 Chapter 15. Alphabetical list of library routines

1 a r r = [ [ ’ a ’ , ’ b ’ , ’ c ’ ] , [ ’ d ’ , ’ e ’ , ’ f ’ ] ]2 s t r = s t r j o i n ( a r r , ’− ’)3 he lp , a r r , s t r4 p r i n t , s t r [ 0 ]5 p r i n t , s t r [ 1 ]

ARR STRING = Array [ 3 , 2 ]STR STRING = Array [ 2 ]a−b−cd−e−f

SINGLE keyword

1 a r r = [ [ ’ a ’ , ’ b ’ , ’ c ’ ] , [ ’ d ’ , ’ e ’ , ’ f ’ ] ]2 s t r = s t r j o i n ( a r r , ’− ’ , / s i n g l e )3 he lp , a r r , s t r

ARR STRING = Array [ 3 , 2 ]STR STRING = ’ a−b−c−d−e−f ’

STRLEN() function

positional arguments: 1keywords: none

multi-threading: this routine uses GDL thread pool if working on large array, see the...

STRLOWCASE() function

positional arguments: 1keywords: none

multi-threading: this routine uses GDL thread pool if working on large array, see the...

STRMID() function

positional arguments: 3keywords: REVERSE_OFFSET

multi-threading: this routine uses GDL thread pool if working on large array, see the...

STRPOS() function

positional arguments: 3keywords: REVERSE_OFFSET, REVERSE_SEARCH

multi-threading: this routine uses GDL thread pool if working on large array, see the...

STRPUT procedure

positional arguments: 3keywords: none

multi-threading: this routine uses GDL thread pool if working on large array, see the...

STRSPLIT() function

positional arguments: 2keywords: COUNT, ESCAPE, EXTRACT, FOLD_CASE, HELP, LENGTH, PRE-

SERVE_NULL, REGEX, TEST

STRTOK() function

positional arguments: 2keywords: ESCAPE, EXTRACT, LENGTH, PRESERVE_NULL, REGEX

DRAFT

DRAFTSTRTRIM() function 85

STRTRIM() functionpositional arguments: 2keywords: none

multi-threading: this routine uses GDL thread pool if working on large array, see the...

STRUCT_ASSIGN procedurepositional arguments: 2keywords: NOZERO, VERBOSE

STRUPCASE() functionpositional arguments: 1keywords: none

multi-threading: this routine uses GDL thread pool if working on large array, see the...

STR_SEP() functionpositional arguments: 2keywords: ESC, HELP, REMOVE_ALL, TEST, TRIM

. . . STR_SEP separates the string on any of the characters of the 2nd string. . . .

SURFACE procedurepositional arguments: 3keywords: AX, AZ, BACKGROUND, CHARSIZE, CHARTHICK, CLIP, COLOR,

DATA, DEVICE, FONT, LINESTYLE, MAX_VALUE, MIN_VALUE, NO-CLIP, NODATA, NOERASE, NORMAL, POSITION, SUBTITLE, T3D, THICK,TICKLEN, TITLE, XCHARSIZE, XGRIDSTYLE, XLOG, XMARGIN, XMINOR,XRANGE, XSTYLE, XTHICK, XTICKFORMAT, XTICKINTERVAL, XTICKLAY-OUT, XTICKLEN, XTICKNAME, XTICKS, XTICKUNITS, XTICKV, XTICK_GET,XTITLE, XTYPE, YCHARSIZE, YGRIDSTYLE, YLOG, YMARGIN, YMINOR,YRANGE, YSTYLE, YTHICK, YTICKFORMAT, YTICKINTERVAL, YTICKLAY-OUT, YTICKLEN, YTICKNAME, YTICKS, YTICKUNITS, YTICKV, YTICK_GET,

YTITLE, YTYPE, ZCHARSIZE, ZGRIDSTYLE, ZLOG, ZMARGIN, ZMINOR,ZRANGE, ZSTYLE, ZTHICK, ZTICKFORMAT, ZTICKINTERVAL, ZTICKLAY-OUT, ZTICKLEN, ZTICKNAME, ZTICKS, ZTICKUNITS, ZTICKV, ZTICK_GET,ZTITLE, ZTYPE, ZVALUE

AX keyword

1 !P .MULTI = [ 0 , 3 , 3 ]2 d = d i s t (10)3 f o r ax = 0 , 90 , 11 do $4 s u r f a c e , d , ax=ax , t i t l e =’ax=’ + s t r t r i m ( ax , 2 )

% Compi led module : DIST .

DRAFT

DRAFT86 Chapter 15. Alphabetical list of library routines

AZ keyword

1 !P .MULTI = [ 0 , 3 , 3 ]2 d = d i s t (10)3 f o r az = 0 , 90 , 11 do $4 s u r f a c e , d , az=az , t i t l e =’az=’ + s t r t r i m ( az , 2 )

% Compi led module : DIST .

SVDC procedurepositional arguments: 4keywords: COLUMN, DOUBLE, ITMAX

SWAP_ENDIAN() functionpositional arguments: 1

keywords: SWAP_IF_BIG_ENDIAN, SWAP_IF_LITTLE_ENDIAN

SWAP_ENDIAN_INPLACE procedurepositional arguments: 1keywords: SWAP_IF_BIG_ENDIAN, SWAP_IF_LITTLE_ENDIAN

SYSTIME() functionpositional arguments: 2keywords: JULIAN, SECONDS, UTC

TAG_NAMES() functionpositional arguments: 1keywords: STRUCTURE_NAME

TAN() functionpositional arguments: 1keywords: none

multi-threading: this routine uses GDL thread pool if working on large array, see the...

TANH() functionpositional arguments: 1keywords: none

multi-threading: this routine uses GDL thread pool if working on large array, see the...

TEMPLATE procedurepositional arguments: nonekeywords: none

DRAFT

DRAFTTEMPLATE_BLANK procedure 87

TEMPLATE_BLANK procedure

positional arguments: nonekeywords: none

TEMPORARY() function

positional arguments: 1keywords: none

TETRIS procedure

positional arguments: nonekeywords: none

TOTAL() function

positional arguments: 2keywords: CUMULATIVE, DOUBLE, INTEGER, NAN, PRESERVE_TYPE

multi-threading: this routine uses GDL thread pool if working on large array, see the...

TRACE() function

positional arguments: 1keywords: DOUBLE

TRANSPOSE() function

positional arguments: 2keywords: none

TRIGRID() functionpositional arguments: 6keywords: MAP, MAX_VALUE, MISSING, NX, NY

TV procedurepositional arguments: 4keywords: CHANNEL, DEVICE, NORMAL, ORDER, TRUE, XSIZE, YSIZE

TVLCT procedurepositional arguments: 4keywords: GET, HLS, HSV

TVRD() functionpositional arguments: 5keywords: CHANNEL, ORDER, TRUE, WORDS

TVSCL procedurepositional arguments: 3keywords: NAN, _EXTRA

T_PDF() functionpositional arguments: 2keywords: none

UINDGEN() functionpositional arguments: 8keywords: none

DRAFT

DRAFT88 Chapter 15. Alphabetical list of library routines

UINT() functionpositional arguments: 10keywords: none

UINTARR() functionpositional arguments: 8keywords: NOZERO

UL64INDGEN() functionpositional arguments: 8keywords: none

ULINDGEN() functionpositional arguments: 8keywords: none

ULON64ARR() functionpositional arguments: 8keywords: NOZERO

ULONARR() functionpositional arguments: 8keywords: NOZERO

ULONG() functionpositional arguments: 10keywords: none

ULONG64() functionpositional arguments: 10keywords: none

UNIQ() functionpositional arguments: 2keywords: none

VALUE_LOCATE() functionpositional arguments: 2keywords: L64

VARIANCE() functionpositional arguments: 1keywords: DOUBLE, NAN

VOIGT() functionpositional arguments: 2keywords: DOUBLE, ITER

WAIT procedurepositional arguments: 1keywords: none

WDELETE procedurepositional arguments: any numberkeywords: none

DRAFT

DRAFTWHERE() function 89

WHERE() function

positional arguments: 2keywords: COMPLEMENT, NCOMPLEMENT

see also: ARRAY_INDICES()

multi-threading: this routine uses GDL thread pool if working on large array, see the...

WIDGET_BASE() function

positional arguments: 1keywords: ALIGN_BOTTOM, ALIGN_CENTER, ALIGN_LEFT, ALIGN_RIGHT,

ALIGN_TOP, BASE_ALIGN_BOTTOM, BASE_ALIGN_CENTER, BASE_ALIGN_LEFT,BASE_ALIGN_RIGHT, BASE_ALIGN_TOP, COLUMN, CONTEXT_EVENTS,CONTEXT_MENU, DISPLAY_NAME, EVENT_FUNC, EVENT_PRO, EX-CLUSIVE, FLOATING, FRAME, FUNC_GET_VALUE, GRID_LAYOUT,GROUP_LEADER, KBRD_FOCUS_EVENTS, KILL_NOTIFY, MAP, MBAR,MODAL, NONEXCLUSIVE, NOTIFY_REALIZE, NO_COPY, PRO_SET_VALUE,RESOURCE_NAME, RNAME_MBAR, ROW, SCROLL, SCR_XSIZE, SCR_YSIZE,SENSITIVE, SPACE, TITLE, TLB_FRAME_ATTR, TLB_ICONIFY_EVENTS,TLB_KILL_REQUEST_EVENTS, TLB_MOVE_EVENTS, TLB_SIZE_EVENTS,TOOLBAR, TRACKING_EVENTS, UNAME, UNITS, UVALUE, XOFFSET, XPAD,XSIZE, X_SCROLL_SIZE, YOFFSET, YPAD, YSIZE, Y_SCROLL_SIZE

WIDGET_BUTTON() function

positional arguments: 1keywords: ACCELERATOR, ALIGN_CENTER, ALIGN_LEFT, ALIGN_RIGHT,

BITMAP, CHECKED_MENU, DYNAMIC_RESIZE, EVENT_FUNC, EVENT_PRO,FONT, FRAME, FUNC_GET_VALUE, GROUP_LEADER, HELP, KILL_NOTIFY,MENU, NOTIFY_REALIZE, NO_COPY, NO_RELEASE, PRO_SET_VALUE,PUSHBUTTON_EVENTS, SCR_XSIZE, SCR_YSIZE, SENSITIVE, SEPARATOR,TAB_MODE, TOOLTIP, TRACKING_EVENTS, UNAME, UNITS, UVALUE,VALUE, XOFFSET, XSIZE, X_BITMAP_EXTRA, YOFFSET, YSIZE

WIDGET_CONTROL procedurepositional arguments: 1keywords: DESTROY, EVENT_PRO, FUNC_GET_VALUE, GET_UVALUE,

GET_VALUE, MANAGED, MAP, NO_COPY, PRO_SET_VALUE, REAL-IZE, SENSITIVE, SET_BUTTON, SET_DROPLIST_SELECT, SET_UNAME,SET_UVALUE, SET_VALUE, XMANAGER_ACTIVE_COMMAND

WIDGET_DROPLIST() functionpositional arguments: 1keywords: DYNAMIC_RESIZE, EVENT_FUNC, EVENT_PRO, FONT, FRAME,

FUNC_GET_VALUE, GROUP_LEADER, KILL_NOTIFY, NOTIFY_REALIZE,NO_COPY, PRO_SET_VALUE, RESOURCE_NAME, SCR_XSIZE, SCR_YSIZE,SENSITIVE, TAB_MODE, TITLE, TRACKING_EVENTS, UNAME, UNITS,UVALUE, VALUE, XOFFSET, XSIZE, YOFFSET, YSIZE

WIDGET_EVENT() functionpositional arguments: 1keywords: DESTROY, XMANAGER_BLOCK

WIDGET_INFO() functionpositional arguments: 1keywords: CHILD, MANAGED, MODAL, VALID, VERSION, XMANAGER_BLOCK

WIDGET_LABEL() functionpositional arguments: 1keywords: ALL_EVENTS, CONTEXT_EVENTS, EDITABLE, EVENT_FUNC,

EVENT_PRO, FONT, FRAME, FUNC_GET_VALUE, GROUP_LEADER,IGNORE_ACCELERATORS, KBRD_FOCUS_EVENTS, KILL_NOTIFY, NO-TIFY_REALIZE, NO_COPY, NO_NEWLINE, PRO_SET_VALUE, RE-SOURCE_NAME, SCROLL, SCR_XSIZE, SCR_YSIZE, SENSITIVE, TAB_MODE,TRACKING_EVENTS, UNAME, UNITS, UVALUE, VALUE, WRAP, XOFFSET,XSIZE, YOFFSET, YSIZE

DRAFT

DRAFT90 Chapter 15. Alphabetical list of library routines

WIDGET_TEXT() functionpositional arguments: 1keywords: ALL_EVENTS, CONTEXT_EVENTS, EDITABLE, EVENT_FUNC,

EVENT_PRO, FONT, FRAME, FUNC_GET_VALUE, GROUP_LEADER,IGNORE_ACCELERATORS, KBRD_FOCUS_EVENTS, KILL_NOTIFY, NO-TIFY_REALIZE, NO_COPY, NO_NEWLINE, PRO_SET_VALUE, RE-SOURCE_NAME, SCROLL, SCR_XSIZE, SCR_YSIZE, SENSITIVE, TAB_MODE,TRACKING_EVENTS, UNAME, UNITS, UVALUE, VALUE, WRAP, XOFFSET,XSIZE, YOFFSET, YSIZE

WINDOW procedurepositional arguments: 1keywords: COLORS, FREE, PIXMAP, RETAIN, TITLE, XPOS, XSIZE, YPOS, YSIZE

WRITEU procedurepositional arguments: any numberkeywords: TRANSFER_COUNT

WRITE_BMP procedurepositional arguments: 5keywords: FOUR_BIT, HEADER_DEFINE, IHDR, RGB

WRITE_JPEG procedurepositional arguments: 2keywords: ORDER, PROGRESSIVE, QUALITY, TRUE, UNIT

WRITE_PICT procedurepositional arguments: 5keywords: none

WRITE_PNG procedurepositional arguments: 5keywords: ORDER, TRANSPARENT, VERBOSE

WSET procedurepositional arguments: 1keywords: none

WSHOW procedurepositional arguments: 2keywords: none

WTN() functionpositional arguments: 2keywords: COLUMN, DOUBLE, INVERSE, OVERWRITE

XYOUTS procedurepositional arguments: 3keywords: ALIGNMENT, CHARSIZE, CHARTHICK, CLIP, COLOR, DATA, DEVICE,

NOCLIP, NORMAL, ORIENTATION, WIDTH, Z

DRAFT

DRAFTPart II

Developer’s guide

DRAFT

DRAFTChapter 16

General remarks and coding guidelines

... such as the CERN C++ Coding Standard Specification [4] or other similar docu-ments.

DRAFT

DRAFTChapter 17

The library-routine API

TODO: extract it using Doxygen or some similar tool.

DRAFT

DRAFTChapter 18

Extending the documentation

LATEXgdldoc.styNatbib:

DRAFT

DRAFTChapter 19

Extending the testsuite (testsuite/README)

The list of GDL routines to be executed during the make-check run isdefined in the testsuite/Makefile.am file. After adding a new item(filename) to the list, please rerun "automake" being in the rootfolder of the source tree. CMake also uses the list in Makefile.am.

Each test routine is invoked using the GDL "-e" command-line optionby the "try" shell script in the testsuite directory (and in ananalogous manner for the case of CMake/CTest). "make" decideson the status of a test basing on the exit code of this script:- "success" for exit code 0- "ignorable failure" for code 77- "failure" for any other exit code, e.g. 1The "try" script should, in principle, exit with the GDL exit code.Therefore, a failure of a GDL test should be indicated by e.g.:

if ( ...true if test failed... ) beginmessage, ’reason for the failure’, /continueexit, status=1

endif

An ignorable failure can be indicated by e.g.:

if (!XXX_exists()) then beginmessage, ’GDL was built w/o support for XXX - skipping’, /contiexit, status=77

endif

Any GDL error (e.g. parser error or library-routine-triggered error)causing GDL to return to the $MAIN$ level will cause make to assume

_success_! (GDL exits normally in this case). Any GDL error causingGDL to stop execution on an other-than-$MAIN$ level will bring theGDL interpreter prompt.

The name of the file must match the name of the test routine, e.g.testsuite/test_dummy.pro for

pro test_dummy...

end

GDL segfaults, assertion-exits, std::terminate() exits, etc. arehandled as failures by make.

The "try" script always uses the gdl binary in the build tree -not the one installed in the system. The "try" script also setsappropriate env. variables so that the GDL-written library routinesare taken from the source tree as well (e.g. src/pro/mean.pro).

Regardless if the autotools or the CMake/CTest configurationmechanism, the testsuite run is invoked by "make check" (not thedefault CMakes’s "make test").

DRAFT

DRAFTChapter 20

A short overview of how GDL works internally

Programs (*.pro files) or command line input is parsed (GDLLexer.cpp, GDLParser.cppgenerated with ANTLR from gdlc.g). These results in an abstract syntax tree (AST)consisting of ’DNode’ (dnode.hpp). This systax tree is further manipulated (com-piled) with a tree parser (GDLTreeParser.cpp generated with ANTLR from gdlc.tree.g,dcompiler.hpp). Here the AST is splitted into the different functions/procedures andthe DNode(s) are annotated with further information and converted to ProgNode(s).Then these compiled (ProgNode) ASTs are interpreted (GDLInterpreter.cpp generatedwith ANTLR from gdlc.i.g, dinterpreter.cpp).

DRAFT

DRAFTChapter 21

How to make use of OpenMP in GDL

DRAFT

DRAFTChapter 22

Notes for packagers

Optional features of PLplot and ImageMagick

The HDF4-netCDF conflict

DRAFT

DRAFTPart III

Indices

DRAFT

DRAFT

DRAFT

DRAFTSubject Index.COMPILE, 17.CONTINUE, 17.STEP, 17$MAIN$, 71_EXTRA, 14_REF_EXTRA, 14_STRICT_EXTRA, 14_EXTRA keyword

in ISHFT() function, 54in PLOTERR procedure, 65in TVSCL procedure, 87

_REF_EXTRA keywordin CALL_FUNCTION() function, 36in CALL_METHOD procedure, 36in CALL_METHOD() function, 36in CALL_PROCEDURE procedure, 36in OBJ_DESTROY procedure, 63in OBJ_NEW() function, 63in QUERY_IMAGE() function, 68

abbreviated keyword names, 14ABORT keyword

in NCDF_CONTROL procedure, 61ABS() function, 18, 32ACCELERATOR keyword

in WIDGET_BUTTON() function, 89ACOS() function, 18, 32ALIGN_BOTTOM keyword

in WIDGET_BASE() function, 89ALIGN_CENTER keyword

in WIDGET_BASE() function, 89in WIDGET_BUTTON() function, 89

ALIGN_LEFT keywordin WIDGET_BASE() function, 89in WIDGET_BUTTON() function, 89

ALIGN_RIGHT keywordin WIDGET_BASE() function, 89in WIDGET_BUTTON() function, 89

ALIGN_TOP keywordin WIDGET_BASE() function, 89

ALIGNMENT keywordin XYOUTS procedure, 90

ALL_DIRS keywordin EXPAND_PATH() function, 41

ALL_EVENTS keywordin WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

ALL_GDL keywordin CALL_EXTERNAL() function, 34

ALL_VALUE keywordin CALL_EXTERNAL() function, 34

ALL keywordin CLOSE procedure, 37in HDF_OPEN() function, 48in SAVE procedure, 73

ALLOCATE_HEAP keywordin PTR_NEW() function, 67in PTRARR() function, 66

ALLOW_NONEXISTENT keywordin FILE_DELETE procedure, 42

ALLOW_SAME keywordin FILE_COPY procedure, 42

ALOG() function, 18, 32ALOG10() function, 18, 32

AM_PM keywordin PRINT procedure, 66in PRINTF procedure, 66in READ procedure, 68in READF procedure, 69in READS procedure, 69in STOP procedure, 83in STRING() function, 83

APPEND keywordin OPENR procedure, 64in OPENU procedure, 64in OPENW procedure, 64in SAVE procedure, 73

APPLEMAN procedure, 32ARG_NAME keyword

in ROUTINE_NAMES() function, 71ARG_PRESENT() function, 14, 32, 73ARGV keyword

in PYTHON procedure, 67in PYTHON() function, 67

ARRAY_EQUAL() function, 15, 32ARRAY_INDICES() function, 15, 32, 50, 89ARRAY keyword

in EXPAND_PATH() function, 41ASIN() function, 18, 33ASSOC() function, 12, 33ATAN() function, 12, 18, 32, 33ATRANSPOSE keyword

in MATRIX_MULTIPLY() function, 60AX keyword

in SURFACE procedure, 85AXIS procedure, 33

DRAFT

DRAFT102 Subject Index

AXISprocedure, 22AZ keyword

in SURFACE procedure, 85

B_VALUE keywordin CALL_EXTERNAL() function, 34

BACKGROUND keywordin CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

BACKPROJECT keywordin RADON() function, 68

BAR_COLOR keywordin PLOTERR procedure, 65

BASE_ALIGN_BOTTOM keywordin WIDGET_BASE() function, 89

BASE_ALIGN_CENTER keywordin WIDGET_BASE() function, 89

BASE_ALIGN_LEFT keywordin WIDGET_BASE() function, 89

BASE_ALIGN_RIGHT keywordin WIDGET_BASE() function, 89

BASE_ALIGN_TOP keywordin WIDGET_BASE() function, 89

BASE keywordin SHOWFONT procedure, 73

BEG keywordin SHOWFONT procedure, 73

BEGIN, 14in CASE statement, 13in FOR statement, 13in IF/THEN/ELSE statement, 12in SWITCH statement, 13in WHILE statement, 14

BESELI() function, 18, 33BESELJ() function, 18, 33BESELK() function, 18, 33BESELY() function, 18, 33BETA() function, 18, 33BIN1 keyword

in HIST_2D() function, 50

BIN2 keywordin HIST_2D() function, 50

BINARY keywordin OPENR procedure, 64in OPENU procedure, 64in OPENW procedure, 64

BINDGEN() function, 13, 15, 33BINOMIAL keyword

in RANDOMN() function, 68in RANDOMU() function, 68

BINSIZE keywordin HISTOGRAM() function, 50

BITMAP keywordin WIDGET_BUTTON() function, 89

BLOCK_SPECIAL keywordin FILE_TEST() function, 43

BLOCK keywordin OPENR procedure, 64in OPENU procedure, 64in OPENW procedure, 64

BOOLEAN keywordin STREGEX() function, 83

BOTTOM keywordin LOADCT procedure, 55

BREAKin CASE statement, 13in FOR statement, 13in FOREACH statement, 13in REPEAT statement, 14in SWITCH statement, 13in WHILE statement, 14

BREAKDOWN_EPOCH keywordin CDF_EPOCH procedure, 36

BRIEF keywordin HELP procedure, 50

BROYDEN() function, 19, 33BTRANSPOSE keyword

in MATRIX_MULTIPLY() function, 60BUFFER keyword

in READ_JPEG procedure, 69BUFSIZE keyword

in OPENR procedure, 64in OPENU procedure, 64in OPENW procedure, 64

BYTARR() function, 13, 15, 33BYTE() function, 12, 13, 34BYTE keyword

in HDF_SD_CREATE() function, 48in INDGEN() function, 54in MAKE_ARRAY() function, 59in NCDF_ATTPUT procedure, 61in NCDF_VARDEF() function, 61

BYTEORDER procedure, 34BYTEORDERprocedure, 19, 20BYTSCL() function, 22, 27, 34

C_CHARSIZE keywordin CONTOUR procedure, 37

C_COLORS keywordin CONTOUR procedure, 37

C_LINESTYLE keywordin CONTOUR procedure, 37

cal (UNIX), 34CALDAT procedure, 34CALDATprocedure, 26CALENDAR procedure, 34CALENDARprocedure, 26CALL_EXTERNAL() function, 30, 34, 55CALL_FUNCTION() function, 14, 36CALL_METHOD procedure, 36CALL_METHOD() function, 14, 36CALL_METHODprocedure, 14CALL_METHON() function, 15CALL_METHONprocedure, 15CALL_PROCEDURE procedure, 36CALL_PROCEDURE() function, 14CALLS keyword

in HELP procedure, 50CANCEL keyword

in CATCH procedure, 36in DIALOG_MESSAGE() function, 39

CASE, 13

DRAFT

DRAFT 103

CAST keywordin OBJ_VALID() function, 64in PTR_VALID() function, 67

CATCH procedure, 36CATCHprocedure, 15CD procedure, 36CDF_EPOCH procedure, 36CDprocedure, 24CEIL() function, 18, 37CENTER keyword

in CONVOL() function, 38in DIALOG_MESSAGE() function, 39

CHANGE keywordin CURSOR procedure, 39

CHANNEL keywordin TV procedure, 87in TVRD() function, 87

CHANNELS keywordin MAGICK_PING() function, 58in READ_TIFF() function, 69

CHAR keywordin NCDF_ATTPUT procedure, 61in NCDF_VARDEF() function, 61

CHARACTER_SPECIAL keywordin FILE_TEST() function, 43

CHARSIZE keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85in XYOUTS procedure, 90

CHARTHICK keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85in XYOUTS procedure, 90

CHECK_MATH() function, 15, 37CHECK_MATHprocedure, 17CHECKED_MENU keyword

in WIDGET_BUTTON() function, 89

CHILD keywordin WIDGET_INFO() function, 89

CINDGEN() function, 13, 15, 37CLASS keyword

in HDF_VD_GET procedure, 49in HDF_VG_GETINFO procedure, 49

CLIENTSERVER keywordin LMGR() function, 55

CLIP_PLANE keywordin MAP_CLIP_SET procedure, 59

CLIP_UV keywordin MAP_CLIP_SET procedure, 59

CLIP keywordin CONTOUR procedure, 37in OPLOT procedure, 64in PLOT procedure, 65in PLOTS procedure, 65in POLYFILL procedure, 66in SURFACE procedure, 85in XYOUTS procedure, 90

CLOBBER keywordin NCDF_CREATE() function, 61

CLOSE procedure, 37CLOSE_FILE keyword

in DEVICE procedure, 39CLOSEprocedure, 20COEFFICIENTS keyword

in LAGUERRE() function, 54COLOR keyword

in AXIS procedure, 33in CONTOUR procedure, 37in DEVICE procedure, 39in MAP_CONTINENTS procedure, 59in OPLOT procedure, 64in PLOT procedure, 65in PLOTS procedure, 65in POLYFILL procedure, 66in SURFACE procedure, 85in XYOUTS procedure, 90

COLORS keywordin READ_JPEG procedure, 69

in WINDOW procedure, 90COLUMN keyword

in SVDC procedure, 86in WIDGET_BASE() function, 89in WTN() function, 90

COMMAND_LINE_ARGS() function, 24, 37COMMENT_SYMBOL keyword

in READ_ASCII() function, 69COMPANION keyword

in IMSL_ZEROPOLY() function, 53COMPATIBLE keyword

in SAVE procedure, 73COMPLEMENT keyword

in WHERE() function, 89COMPLEX() function, 12, 13, 37COMPLEX keyword

in INDGEN() function, 54in MAKE_ARRAY() function, 59

COMPLEXARR() function, 13, 15, 37COMPRESS keyword

in FILE_LINES() function, 43in OPENR procedure, 64in OPENU procedure, 64in OPENW procedure, 64

COMPUTE_EPOCH keywordin CDF_EPOCH procedure, 36

CONJ() function, 12, 37CONNECT_TIMEOUT keyword

in SOCKET procedure, 82CONNECTIVITY keyword

in MAP_PROJ_FORWARD() function, 59CONTEXT_EVENTS keyword

in WIDGET_BASE() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

CONTEXT_MENU keywordin WIDGET_BASE() function, 89

CONTINUEin CONTINUE statement, 14in FOR statement, 13in FOREACH statement, 13

DRAFT

DRAFT104 Subject Index

in WHILE statement, 14CONTINUE keyword

in MESSAGE procedure, 60in PLOTS procedure, 65

CONTOUR procedure, 37CONTOURprocedure, 22CONVERT_COORD() function, 23, 37CONVOL() function, 18, 27, 38COORDSYS keyword

in HDF_SD_GETINFO procedure, 49COPY keyword

in SET_PLOT procedure, 73CORRELATE() function, 18, 38COS() function, 18, 38COSH() function, 18, 38COUNT keyword

in COMMAND_LINE_ARGS() function, 37in EXPAND_PATH() function, 41in FILE_SEARCH() function, 43in FINDFILE() function, 43in GET_DRIVE_LIST() function, 45in HDF_SD_ADDDATA procedure, 48in HDF_SD_ATTRINFO procedure, 48in HDF_SD_DIMGET procedure, 48in HDF_SD_GETDATA procedure, 49in HDF_VD_GET procedure, 49in NCDF_VARGET procedure, 62in NCDF_VARPUT procedure, 62in OBJ_CLASS() function, 63in OBJ_VALID() function, 64in PTR_VALID() function, 67in READ_ASCII() function, 69in SPAWN procedure, 82in STRSPLIT() function, 84

COUNTRIES keywordin MAP_CONTINENTS procedure, 59

COVARIANCE keywordin CORRELATE() function, 38

CPU procedure, 39CPUprocedure, 28CREATE_STRUCT() function, 15, 39

CREATE keywordin HDF_OPEN() function, 48in HDF_SD_START() function, 49

CROSSP() function, 18, 39CUBIC keyword

in INTERPOLATE() function, 54in POLY_2D() function, 66

CUMULATIVE keywordin PRODUCT() function, 66in TOTAL() function, 87

CURRENT keywordin CD procedure, 36in MEMORY() function, 60

CURSOR procedure, 39CURSORprocedure, 22

D_VALUE keywordin CALL_EXTERNAL() function, 34

DATA_DIMS keywordin READ_BINARY() function, 69

DATA_LENGTH keywordin N_TAGS() function, 62

DATA_START keywordin READ_ASCII() function, 69in READ_BINARY() function, 69

DATA_TYPE keywordin READ_BINARY() function, 69

DATA keywordin AXIS procedure, 33in CONTOUR procedure, 37in CONVERT_COORD() function, 37in CURSOR procedure, 39in HDF_SD_ATTRINFO procedure, 48in PLOT procedure, 65in PLOTS procedure, 65in POLYFILL procedure, 66in SAVE procedure, 73in SURFACE procedure, 85in XYOUTS procedure, 90

DAYS_OF_WEEK keywordin PRINT procedure, 66

in PRINTF procedure, 66in READ procedure, 68in READF procedure, 69in READS procedure, 69in STOP procedure, 83in STRING() function, 83

DBLARR() function, 13, 15, 39DCINDGEN() function, 13, 15, 39DCOMPLEX() function, 12, 13, 39DCOMPLEX keyword

in INDGEN() function, 54in MAKE_ARRAY() function, 59

DCOMPLEXARR() function, 13, 15, 39DEBUG keyword

in DIALOG_PICKFILE() function, 40in SPL_INIT_OLD() function, 82

DECOMPOSED keywordin DEVICE procedure, 39

DEFAULT_CANCEL keywordin DIALOG_MESSAGE() function, 39

DEFAULT_EXTENSION keywordin DIALOG_PICKFILE() function, 40

DEFAULT_NO keywordin DIALOG_MESSAGE() function, 39

DEFAULTRETURNVALUE keywordin PYTHON() function, 67

DEFSYSV procedure, 39DEFSYSVprocedure, 15DEGREES keyword

in LL_ARC_DISTANCE() function, 55DELETE keyword

in OPENR procedure, 64in OPENU procedure, 64in OPENW procedure, 64

DELIMITER keywordin READ_ASCII() function, 69

DEMO keywordin LMGR() function, 55

DERIV() function, 18, 39DESCRIPTION keyword

in RESTORE procedure, 70

DRAFT

DRAFT 105

DESTROY_SEMAPHORE keywordin SEM_CREATE() function, 73

DESTROY keywordin WIDGET_CONTROL procedure, 89in WIDGET_EVENT() function, 89

DEVICE procedure, 39DEVICE keyword

in AXIS procedure, 33in CONTOUR procedure, 37in CONVERT_COORD() function, 37in CURSOR procedure, 39in PLOT procedure, 65in PLOTS procedure, 65in POLYFILL procedure, 66in SURFACE procedure, 85in TV procedure, 87in XYOUTS procedure, 90

DEVICEprocedure, 22DFNT_CHAR keyword

in HDF_SD_CREATE() function, 48DFNT_FLOAT32 keyword

in HDF_SD_CREATE() function, 48DFNT_FLOAT64 keyword

in HDF_SD_CREATE() function, 48DFNT_INT16 keyword

in HDF_SD_CREATE() function, 48DFNT_INT32 keyword

in HDF_SD_CREATE() function, 48DFNT_INT8 keyword

in HDF_SD_CREATE() function, 48DFNT_UINT16 keyword

in HDF_SD_CREATE() function, 48DFNT_UINT32 keyword

in HDF_SD_CREATE() function, 48DFNT_UINT8 keyword

in HDF_SD_CREATE() function, 48DIALOG_MESSAGE() function, 29, 39DIALOG_PARENT keyword

in DIALOG_MESSAGE() function, 39in DIALOG_PICKFILE() function, 40

DIALOG_PICKFILE() function, 29, 40

DIMENSION keywordin FFT() function, 42in MAKE_ARRAY() function, 59in MAX() function, 60in MEDIAN() function, 60in MIN() function, 60

DIMENSIONS keywordin MAGICK_PING() function, 58in SIZE() function, 82

DIMS keywordin HDF_SD_GETINFO procedure, 49

DINDGEN() function, 13, 15, 40DIRECTORY keyword

in DIALOG_PICKFILE() function, 40in FILE_TEST() function, 43

DISABLED keywordin ROUTINE_INFO() function, 71

DISPLAY_NAME keywordin DIALOG_MESSAGE() function, 39in DIALOG_PICKFILE() function, 40in WIDGET_BASE() function, 89

DIST() function, 19, 40DITHER keyword

in MAGICK_QUANTIZE procedure, 58in READ_JPEG procedure, 69

DOin FOR statement, 13in FOREACH statement, 13in WHILE statement, 14

DOUBLE() function, 12, 13, 40DOUBLE keyword

in BESELI() function, 33in BESELJ() function, 33in BESELK() function, 33in BESELY() function, 33in BETA() function, 33in BROYDEN() function, 33in CONVERT_COORD() function, 37in CORRELATE() function, 38in ERF() function, 40in ERFC() function, 41

in ERRORF() function, 41in EXPINT() function, 41in FFT() function, 42in GAMMA() function, 44in GAUSSINT() function, 44in GDL_ERFINV() function, 45in HDF_SD_CREATE() function, 48in IDENTITY() function, 51in IGAMMA() function, 51in IMSL_BINOMIALCOEF() function, 51in IMSL_CONSTANT() function, 52in IMSL_ERF() function, 53in IMSL_ZEROPOLY() function, 53in IMSL_ZEROSYS() function, 54in INDGEN() function, 54in INVERT() function, 54in KURTOSIS() function, 54in LA_TRIRED procedure, 54in LAGUERRE() function, 54in LEGENDRE() function, 55in LNGAMMA() function, 55in MACHAR() function, 57in MAKE_ARRAY() function, 59in MEAN() function, 60in MEANABSDEV() function, 60in MEDIAN() function, 60in MOMENT() function, 60in NCDF_ATTPUT procedure, 61in NCDF_VARDEF() function, 61in NEWTON() function, 62in NORM() function, 62in POLY_AREA() function, 66in RADON() function, 68in RANDOMN() function, 68in RANDOMU() function, 68in RK4() function, 70in RK4JMG() function, 70in SKEWNESS() function, 82in SPHER_HARM() function, 82in SPL_INIT() function, 82in SPL_INIT_OLD() function, 82

DRAFT

DRAFT106 Subject Index

in SPL_INTERP() function, 82in SPL_INTERP_OLD() function, 82in STDDEV() function, 83in SVDC procedure, 86in TOTAL() function, 87in TRACE() function, 87in VARIANCE() function, 88in VOIGT() function, 88in WTN() function, 90

DOWN keywordin CURSOR procedure, 39

DRHO keywordin RADON() function, 68

DTOXDR keywordin BYTEORDER procedure, 34

DX keywordin RADON() function, 68

DY keywordin RADON() function, 68

DYNAMIC_RESIZE keywordin WIDGET_BUTTON() function, 89in WIDGET_DROPLIST() function, 89

EDGE_TRUNCATE keywordin CONVOL() function, 38in SMOOTH() function, 82

EDGE_WRAP keywordin CONVOL() function, 38

EDITABLE keywordin WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

ELSEin CASE statement, 13in IF/THEN/ELSE statement, 12in SWITCH statement, 13

EMBEDDED keywordin LMGR() function, 55

ENABLED keywordin ROUTINE_INFO() function, 71

ENCAPSULATED keywordin SHOWFONT procedure, 73

ENDCASE, 13ENDEF keyword

in NCDF_CONTROL procedure, 61ENDELSE, 12ENDFOR, 13ENDFOREACH, 13ENDIAN keyword

in READ_BINARY() function, 69ENDIF, 12ENDREP, 14ENDSWITCH, 13ENDWHILE, 14ENVIRONMENT keyword

in GETENV() function, 45EOF() function, 40EOF keyword

in SKIP_LUN procedure, 82EOFprocedure, 20ERASE procedure, 40ERASEprocedure, 22ERF() function, 18, 40ERFC() function, 18, 41ERR_REL keyword

in IMSL_ZEROSYS() function, 54ERRMSG keyword

in SAVE procedure, 73ERROR keyword

in DIALOG_MESSAGE() function, 39in OPENR procedure, 64in OPENU procedure, 64in OPENW procedure, 64in SOCKET procedure, 82

ERRORF() function, 18, 41ESC keyword

in STR_SEP() function, 85ESCAPE_SPECIAL_CHAR() function, 41ESCAPE keyword

in STRSPLIT() function, 84in STRTOK() function, 84

EVEN keywordin MEDIAN() function, 60

EVENT_FUNC keywordin WIDGET_BASE() function, 89in WIDGET_BUTTON() function, 89in WIDGET_DROPLIST() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

EVENT_PRO keywordin WIDGET_BASE() function, 89in WIDGET_BUTTON() function, 89in WIDGET_CONTROL procedure, 89in WIDGET_DROPLIST() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

EXCLUSIVE keywordin WIDGET_BASE() function, 89

EXECUTABLE keywordin FILE_TEST() function, 43

EXECUTE() function, 14, 24, 41EXECUTEprocedure, 15EXISTS keyword

in DEFSYSV procedure, 39EXIT procedure, 41EXIT_STATUS keyword

in CLOSE procedure, 37in FREE_LUN procedure, 44in SPAWN procedure, 82

EXITprocedure, 24EXP() function, 18, 41EXPAND_ENVIRONMENT keyword

in FILE_SEARCH() function, 43EXPAND_PATH() function, 14, 24, 41EXPAND_TILDE keyword

in FILE_SEARCH() function, 43EXPINT() function, 18, 41EXPIRE_DATE keyword

in LMGR() function, 55EXTRACT keyword

in STREGEX() function, 83in STRSPLIT() function, 84in STRTOK() function, 84

DRAFT

DRAFT 107

F77_UNFORMATTED keywordin OPENR procedure, 64in OPENU procedure, 64in OPENW procedure, 64

F_VALUE keywordin CALL_EXTERNAL() function, 34

FACTORIAL() function, 18, 41FETCH keyword

in ROUTINE_NAMES() function, 71FFT() function, 19, 42FIELDS keyword

in HDF_VD_READ() function, 49FILE_BASENAME() function, 24, 42FILE_COPY procedure, 42FILE_COPYprocedure, 24FILE_DELETE procedure, 42FILE_DELETEprocedure, 24FILE_DIRNAME() function, 24, 42, 43FILE_EXPAND_PATH() function, 24, 43FILE_INFO() function, 24, 43FILE_LINES() function, 24, 43FILE_LUN keyword

in SIZE() function, 82FILE_MKDIR procedure, 43FILE_MKDIRprocedure, 24FILE_SAME() function, 24, 43FILE_SEARCH() function, 24, 43FILE_TEST() function, 24, 43FILE_WHICH() function, 24, 43FILE keyword

in CLOSE procedure, 37in DIALOG_PICKFILE() function, 40in LOADCT procedure, 55

FILENAME keywordin DEVICE procedure, 39in RESTORE procedure, 70in SAVE procedure, 73

FILEPATH() function, 14, 42FILL_CONTINENTS keyword

in MAP_CONTINENTS procedure, 59FILL keyword

in CONTOUR procedure, 37in MAP_PROJ_FORWARD() function, 59in NCDF_CONTROL procedure, 61

FILTER keywordin DIALOG_PICKFILE() function, 40

FIN keywordin SHOWFONT procedure, 73

FINDEX() function, 18, 43FINDFILE() function, 24, 43FINDGEN() function, 13, 15, 44FINITE() function, 15, 44FIX() function, 12, 13, 44FIX_FILTER keyword

in DIALOG_PICKFILE() function, 40FLOAT() function, 12, 13, 44FLOAT keyword

in HDF_SD_CREATE() function, 48in INDGEN() function, 54in MAKE_ARRAY() function, 59in NCDF_ATTPUT procedure, 61in NCDF_VARDEF() function, 61

FLOATING keywordin WIDGET_BASE() function, 89

FLOOR() function, 18, 44FLTARR() function, 13, 15, 44FLUSH procedure, 44FLUSHprocedure, 22FNORM keyword

in IMSL_ZEROSYS() function, 54FOLD_CASE keyword

in FILE_BASENAME() function, 42in FILE_SEARCH() function, 43in STRCMP() function, 83in STREGEX() function, 83in STRSPLIT() function, 84

FOLLOW keywordin CONTOUR procedure, 37

FONT keywordin AXIS procedure, 33in CONTOUR procedure, 37in SURFACE procedure, 85

in WIDGET_BUTTON() function, 89in WIDGET_DROPLIST() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

FOR, 13FORCE_DEMO keyword

in LMGR() function, 55FORCE keyword

in CLOSE procedure, 37in FREE_LUN procedure, 44

FOREACH, 13FORMAT keyword

in HDF_SD_GETINFO procedure, 49in PM procedure, 65in PRINT procedure, 66in PRINTF procedure, 66in READ procedure, 68in READF procedure, 69in READS procedure, 69in STOP procedure, 83in STRING() function, 83

FOUR_BIT keywordin WRITE_BMP procedure, 90

FRAME keywordin WIDGET_BASE() function, 89in WIDGET_BUTTON() function, 89in WIDGET_DROPLIST() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

FREE_LUN procedure, 44FREE_LUNprocedure, 20FREE keyword

in WINDOW procedure, 90FSTAT() function, 24, 44FTOXDR keyword

in BYTEORDER procedure, 34FULL_INTERLACE keyword

in HDF_VD_READ() function, 49FULL_STRUCT keyword

in HELPFORM() function, 50FULLY_QUALIFY_PATH keyword

DRAFT

DRAFT108 Subject Index

in FILE_SEARCH() function, 43FUNC_GET_VALUE keyword

in WIDGET_BASE() function, 89in WIDGET_BUTTON() function, 89in WIDGET_CONTROL procedure, 89in WIDGET_DROPLIST() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

FUNCTIONS keywordin HELP procedure, 50in ROUTINE_INFO() function, 71

GAMMA() function, 18, 44GAMMA keyword

in RANDOMN() function, 68in RANDOMU() function, 68

Gauss symbol, 18GAUSS_CVF() function, 18, 44GAUSS_PDF() function, 18, 44Gaussian probability function, 18GAUSSIANNOISE keyword

in MAGICK_ADDNOISE procedure, 57in MAGICK_PING() function, 58

GAUSSINT() function, 18, 44GDL_ERFINV() function, 45GEOTIFF keyword

in READ_TIFF() function, 69GET_DECOMPOSED keyword

in DEVICE procedure, 39GET_DRIVE_LIST() function, 45GET_KBRD() function, 45GET_KBRDprocedure, 20GET_LOGIN_INFO() function, 45GET_LUN procedure, 45GET_LUN keyword

in OPENR procedure, 64in OPENU procedure, 64in OPENW procedure, 64in SOCKET procedure, 82

GET_LUNprocedure, 20GET_MODE keyword

in FILE_TEST() function, 43GET_NAMES keyword

in LOADCT procedure, 55in LOADCT_INTERNALGDL procedure, 56

GET_PATH keywordin DIALOG_PICKFILE() function, 40

GET_SCREEN_SIZE() function, 23, 45GET_SCREEN_SIZE keyword

in DEVICE procedure, 39GET_UVALUE keyword

in WIDGET_CONTROL procedure, 89GET_VALUE keyword

in WIDGET_CONTROL procedure, 89GET_VISUAL_DEPTH keyword

in DEVICE procedure, 39GET keyword

in TVLCT procedure, 87GETENV() function, 24, 45GLOBAL keyword

in NCDF_ATTDEL procedure, 60in NCDF_ATTGET procedure, 60in NCDF_ATTINQ() function, 60in NCDF_ATTNAME() function, 60in NCDF_ATTPUT procedure, 61in NCDF_ATTRENAME procedure, 61

GOTO statement, 14GRAY keyword

in RADON() function, 68GRAYSCALE keyword

in MAGICK_QUANTIZE procedure, 58in READ_JPEG procedure, 69

GRIBAPI_CLONE() function, 21, 45GRIBAPI_CLOSE_FILE procedure, 45GRIBAPI_CLOSE_FILEprocedure, 21GRIBAPI_COUNT_IN_FILE() function, 21, 45GRIBAPI_GET procedure, 45GRIBAPI_GET_DATA procedure, 45GRIBAPI_GET_DATAprocedure, 21GRIBAPI_GET_SIZE() function, 21, 46GRIBAPI_GETprocedure, 21GRIBAPI_NEW_FROM_FILE() function, 21, 46

GRIBAPI_OPEN_FILE() function, 21, 46GRIBAPI_RELEASE procedure, 46GRIBAPI_RELEASEprocedure, 21GRID_LAYOUT keyword

in WIDGET_BASE() function, 89GRID keyword

in INTERPOLATE() function, 54in PY_PLOT procedure, 67

GROUP_LEADER keywordin WIDGET_BASE() function, 89in WIDGET_BUTTON() function, 89in WIDGET_DROPLIST() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

GROUP keywordin DIALOG_PICKFILE() function, 40

GSL_EXP() function, 18, 46

H5_GET_LIBVERSION() function, 20, 48H5A_CLOSE procedure, 46H5A_CLOSEprocedure, 20H5A_GET_NAME() function, 20, 46H5A_GET_NUM_ATTRS() function, 20, 46H5A_GET_SPACE() function, 20, 46H5A_GET_TYPE() function, 20, 46H5A_OPEN_IDX() function, 20, 46H5A_OPEN_NAME() function, 20, 46H5A_READ() function, 20, 46H5D_CLOSE procedure, 46H5D_CLOSEprocedure, 20H5D_GET_SPACE() function, 20, 47H5D_GET_TYPE() function, 20, 47H5D_OPEN() function, 20, 47H5D_READ() function, 20, 47H5F_CLOSE procedure, 47H5F_CLOSEprocedure, 20H5F_IS_HDF5() function, 20, 47H5F_OPEN() function, 20, 47H5G_CLOSE procedure, 47H5G_CLOSEprocedure, 20H5G_OPEN() function, 20, 47

DRAFT

DRAFT 109

H5S_CLOSE procedure, 47H5S_CLOSEprocedure, 20H5S_GET_SIMPLE_EXTENT_DIMS() function, 20, 47H5T_CLOSE procedure, 47H5T_CLOSEprocedure, 20H5T_GET_SIZE() function, 20, 47HAS_PALETTE keyword

in MAGICK_PING() function, 58HAT keyword

in PLOTERR procedure, 65HDF_CLOSE procedure, 48HDF_CLOSEprocedure, 20HDF_OPEN() function, 20, 48HDF_SD_ADDDATA procedure, 48HDF_SD_ADDDATAprocedure, 20HDF_SD_ATTRFIND() function, 20, 48HDF_SD_ATTRINFO procedure, 48HDF_SD_ATTRINFOprocedure, 20HDF_SD_CREATE() function, 20, 48HDF_SD_DIMGET procedure, 48HDF_SD_DIMGETID() function, 20, 48HDF_SD_DIMGETprocedure, 20HDF_SD_END procedure, 48HDF_SD_ENDACCESS procedure, 48HDF_SD_ENDACCESSprocedure, 20HDF_SD_ENDprocedure, 20HDF_SD_FILEINFO procedure, 48HDF_SD_FILEINFOprocedure, 20HDF_SD_GETDATA procedure, 49HDF_SD_GETDATAprocedure, 20HDF_SD_GETINFO procedure, 49HDF_SD_GETINFOprocedure, 20HDF_SD_NAMETOINDEX() function, 20, 49HDF_SD_SELECT() function, 20, 49HDF_SD_START() function, 20, 49HDF_TYPE keyword

in HDF_SD_ATTRINFO procedure, 48in HDF_SD_CREATE() function, 48in HDF_SD_GETINFO procedure, 49

HDF_VD_ATTACH() function, 20, 49HDF_VD_DETACH procedure, 49

HDF_VD_DETACHprocedure, 20HDF_VD_FIND() function, 20, 49HDF_VD_GET procedure, 49HDF_VD_GETprocedure, 20HDF_VD_READ() function, 20, 49HDF_VG_ATTACH() function, 20, 49HDF_VG_DETACH procedure, 49HDF_VG_DETACHprocedure, 20HDF_VG_GETID() function, 20, 49HDF_VG_GETINFO procedure, 49HDF_VG_GETINFOprocedure, 20HDF_VG_GETTRS procedure, 50HDF_VG_GETTRSprocedure, 20HEADER_DEFINE keyword

in WRITE_BMP procedure, 90HEADER keyword

in READ_ASCII() function, 69HEAP_GC procedure, 50HEAP_GCprocedure, 15HELP procedure, 50HELP keyword

in BESELI() function, 33in BESELJ() function, 33in BESELK() function, 33in BESELY() function, 33in DERIV() function, 39in DIALOG_MESSAGE() function, 39in DIALOG_PICKFILE() function, 40in ESCAPE_SPECIAL_CHAR() function, 41in FILE_BASENAME() function, 42in FILE_COPY procedure, 42in FILE_DELETE procedure, 42in FILE_DIRNAME() function, 43in FINDFILE() function, 43in PLOTERR procedure, 65in PREWITT() function, 66in ROBERTS() function, 70in SKIP_LUN procedure, 82in SMOOTH() function, 82in SOBEL() function, 82in SPL_INIT() function, 82

in SPL_INTERP() function, 82in STR_SEP() function, 85in STRSPLIT() function, 84in WIDGET_BUTTON() function, 89

HELPFORM() function, 50HELPprocedure, 15, 71HIGHWATER keyword

in MEMORY() function, 60HIRES keyword

in MAP_CONTINENTS procedure, 59HIST_2D() function, 18, 50, 51HIST_ND() function, 18, 50HISTOGRAM() function, 18, 50, 51HLS keyword

in TVLCT procedure, 87HSV keyword

in TVLCT procedure, 87HTONL keyword

in BYTEORDER procedure, 34HTONS keyword

in BYTEORDER procedure, 34HYBRID keyword

in NEWTON() function, 62

I_VALUE keywordin CALL_EXTERNAL() function, 34

IDENTITY() function, 15, 18, 51IDL_BASE64() function, 25, 51IDL_CONSTANT() function, 19IDL_VALIDANEM() function, 25IDL_VALIDNAME() function, 12, 51IF, 12IGAMMA() function, 18, 51IGNORE_ACCELERATORS keyword

in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

IHDR keywordin WRITE_BMP procedure, 90

IMAGE_INDEX keywordin MAGICK_PING() function, 58in QUERY_TIFF() function, 68

DRAFT

DRAFT110 Subject Index

in READ_DICOM() function, 69in READ_TIFF() function, 69

IMAGINARY() function, 12, 51IMPULSENOISE keyword

in MAGICK_ADDNOISE procedure, 57in MAGICK_PING() function, 58

IMSL_BINOMIALCOEF() function, 18, 51IMSL_CONSTANT() function, 52IMSL_ERF() function, 18, 53IMSL_ZEROPOLY() function, 18, 19, 53IMSL_ZEROSYS() function, 54IN_GLOBAL keyword

in NCDF_ATTCOPY() function, 60INCHES keyword

in DEVICE procedure, 39INCLUDE_CURRENT_DIR keyword

in FILE_WHICH() function, 43INDEX keyword

in MAKE_ARRAY() function, 59INDGEN() function, 13, 15, 54INFINITY keyword

in FINITE() function, 44INFO keyword

in HELP procedure, 50in MAGICK_PING() function, 58

INFORMATION keywordin DIALOG_MESSAGE() function, 39

INFORMATIONAL keywordin MESSAGE procedure, 60

INPUT keywordin HISTOGRAM() function, 50

INSTALL_NUM keywordin LMGR() function, 55

INT keywordin HDF_SD_CREATE() function, 48

INTARR() function, 13, 15, 54INTEGER keyword

in MAKE_ARRAY() function, 59in PRODUCT() function, 66in TOTAL() function, 87

INTERLEAVE keyword

in READ_TIFF() function, 69INTERPOL() function, 18, 54INTERPOLATE() function, 18, 54INTERPOLATE keyword

in SET_PLOT procedure, 73INVERSE keyword

in FFT() function, 42in IMSL_ERF() function, 53in WTN() function, 90

INVERT() function, 18, 54IOERROR keyword

in MESSAGE procedure, 60ISHFT() function, 19, 54ISOTROPIC keyword

in CONTOUR procedure, 37ISSUE_ACCESS_ERROR keyword

in FILE_SEARCH() function, 43ITER keyword

in BESELI() function, 33in BESELJ() function, 33in BESELK() function, 33in BESELY() function, 33in RK4() function, 70in VOIGT() function, 88

ITMAX keywordin BROYDEN() function, 33in IMSL_ZEROSYS() function, 54in NEWTON() function, 62in SVDC procedure, 86

JACOBIAN keywordin IMSL_ZEROSYS() function, 54

JENKINS_TRAUB keywordin IMSL_ZEROPOLY() function, 53

joint density function, 50JOURNAL procedure, 54JOURNALprocedure, 17JULIAN keyword

in SYSTIME() function, 86

KBRD_FOCUS_EVENTS keywordin WIDGET_BASE() function, 89

in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

KEYWORD_SET() function, 14, 54KILL_NOTIFY keyword

in WIDGET_BASE() function, 89in WIDGET_BUTTON() function, 89in WIDGET_DROPLIST() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

KURTOSIS() function, 18, 54

L64_VALUE keywordin CALL_EXTERNAL() function, 34

L64 keywordin CEIL() function, 37in FLOOR() function, 44in INDGEN() function, 54in MAKE_ARRAY() function, 59in MEMORY() function, 60in ROUND() function, 71in SIZE() function, 82in SORT() function, 82in VALUE_LOCATE() function, 88

L64INDEGEN() function, 15L64INDGEN() function, 13, 54L64SWAP keyword

in BYTEORDER procedure, 34L_VALUE keyword

in CALL_EXTERNAL() function, 34LA_TRIRED procedure, 54LA_TRIREDprocedure, 18LABEL keyword

in HDF_SD_GETINFO procedure, 49LAGUERRE() function, 18, 54LANDSCAPE keyword

in DEVICE procedure, 39LAPLACIANNOISE keyword

in MAGICK_ADDNOISE procedure, 57in MAGICK_PING() function, 58

LAST_ITEM() function, 54LEGENDRE() function, 18, 55

DRAFT

DRAFT 111

LENGTH_OF_HAT keywordin PLOTERR procedure, 65

LENGTH keywordin N_TAGS() function, 62in NCDF_ATTPUT procedure, 61in STREGEX() function, 83in STRSPLIT() function, 84in STRTOK() function, 84

LEVEL keywordin ROUTINE_NAMES() function, 71in SCOPE_VARFETCH() function, 73

LEVELS keywordin CONTOUR procedure, 37

LIB keywordin HELP procedure, 50

LINDEGEN() function, 15LINDGEN() function, 13, 55LINE_FILL keyword

in POLYFILL procedure, 66LINEAR keyword

in RADON() function, 68LINEINTERLACE keyword

in MAGICK_INTERLACE procedure, 58LINES keyword

in SKIP_LUN procedure, 82LINESTYLE keyword

in OPLOT procedure, 64in PLOT procedure, 65in PLOTS procedure, 65in POLYFILL procedure, 66in SURFACE procedure, 85

LINKIMAGE procedure, 55LINKIMAGE() function, 30LINKIMAGEprocedure, 36LIST_OF_SPECIAL_CHAR keyword

in ESCAPE_SPECIAL_CHAR() function, 41LL_ARC_DISTANCE() function, 18, 22, 55LMGR() function, 55LMHOSTID keyword

in LMGR() function, 55LNGAMMA() function, 18, 55

LOADCT procedure, 55LOADCT_INTERNALGDL procedure, 56LOADCTprocedure, 22LOCALE_GET() function, 24, 57LOCATIONS keyword

in HISTOGRAM() function, 50LOGICAL_AND() function, 12, 57LOGICAL_OR() function, 12, 57LOGICAL_TRUE() function, 12, 57LON64ARR() function, 15, 57LONARR() function, 13, 15, 57LONG() function, 12, 13, 57LONG64() function, 12, 13, 57LONG64ARR() function, 13LONG keyword

in HDF_SD_CREATE() function, 48in INDGEN() function, 54in MAKE_ARRAY() function, 59in NCDF_ATTPUT procedure, 61in NCDF_VARDEF() function, 61in RANDOMN() function, 68in RANDOMU() function, 68

LSQUADRATIC keywordin INTERPOL() function, 54

LSWAP keywordin BYTEORDER procedure, 34

LUDC procedure, 57LUDCprocedure, 18

MACHAR() function, 15, 57MAGICK_ADDNOISE procedure, 57MAGICK_CLOSE procedure, 57MAGICK_COLORMAPSIZE() function, 57MAGICK_COLUMNS() function, 58MAGICK_CREATE() function, 58MAGICK_DISPLAY procedure, 58MAGICK_EXISTS() function, 58MAGICK_FLIP procedure, 58MAGICK_INDEXEDCOLOR() function, 58MAGICK_INTERLACE procedure, 58MAGICK_MAGICK() function, 58

MAGICK_MATTE procedure, 58MAGICK_OPEN() function, 58MAGICK_PING() function, 58MAGICK_QUALITY procedure, 58MAGICK_QUANTIZE procedure, 58MAGICK_READ() function, 59MAGICK_READCOLORMAPRGB procedure, 59MAGICK_READINDEXES() function, 59MAGICK_ROWS() function, 59MAGICK_WRITE procedure, 59MAGICK_WRITECOLORTABLE procedure, 59MAGICK_WRITEFILE procedure, 59MAGICK_WRITEINDEXES procedure, 59MAKE_ARRAY() function, 15, 59MANAGED keyword

in WIDGET_CONTROL procedure, 89in WIDGET_INFO() function, 89

Mandelbrot set, 32MAP_CLIP_SET procedure, 59MAP_CLIP_SETprocedure, 22MAP_CONTINENTS procedure, 59MAP_CONTINENTSprocedure, 22MAP_PROJ_FORWARD() function, 59MAP_PROJ_FORWARDprocedure, 22MAP_PROJ_INVERSE() function, 59MAP_PROJ_INVERSEprocedure, 22MAP_STRUCTURE keyword

in MAP_PROJ_FORWARD() function, 59MAP keyword

in MAGICK_READ() function, 59in TRIGRID() function, 87in WIDGET_BASE() function, 89in WIDGET_CONTROL procedure, 89

MARK_DIRECTORY keywordin FILE_DIRNAME() function, 43in FILE_SEARCH() function, 43

MASK keywordin CHECK_MATH() function, 37

MATCH_ALL_INITIAL_DOT keywordin FILE_SEARCH() function, 43

MATCH_INITIAL_DOT keyword

DRAFT

DRAFT112 Subject Index

in FILE_SEARCH() function, 43MATRIX_MULTIPLY() function, 18, 60MAX() function, 18, 60MAX1 keyword

in HIST_2D() function, 50MAX2 keyword

in HIST_2D() function, 50MAX_VALUE keyword

in CONTOUR procedure, 37in OPLOT procedure, 64in PLOT procedure, 65in SURFACE procedure, 85in TRIGRID() function, 87

MAX keywordin BYTSCL() function, 34in HIST_ND() function, 50in HISTOGRAM() function, 50in MIN() function, 60

MAXMOMENT keywordin MOMENT() function, 60

MBAR keywordin WIDGET_BASE() function, 89

MDEV keywordin MOMENT() function, 60

MEAN() function, 18, 60MEANABSDEV() function, 18, 60MEDIAN() function, 18, 27, 60MEMORY() function, 60MEMORY keyword

in HELP procedure, 50MEMORYprocedure, 17MENU keyword

in WIDGET_BUTTON() function, 89MESSAGE procedure, 60MESSAGEprocedure, 15, 17MIN() function, 18, 60MIN1 keyword

in HIST_2D() function, 50MIN2 keyword

in HIST_2D() function, 50MIN_VALUE keyword

in CONTOUR procedure, 37in OPLOT procedure, 64in PLOT procedure, 65in SURFACE procedure, 85

MIN keywordin BYTSCL() function, 34in HIST_ND() function, 50in HISTOGRAM() function, 50in MAX() function, 60

MISSING_VALUE keywordin READ_ASCII() function, 69

MISSING keywordin INTERPOLATE() function, 54in POLY_2D() function, 66in TRIGRID() function, 87

MODAL keywordin WIDGET_BASE() function, 89in WIDGET_INFO() function, 89

MOMENT() function, 18, 60MONTH keyword

in PRINT procedure, 66in PRINTF procedure, 66in READ procedure, 68in READF procedure, 69in READS procedure, 69in STOP procedure, 83in STRING() function, 83

MORE keywordin OPENR procedure, 64in OPENU procedure, 64in OPENW procedure, 64

MTIMES keywordin SAVE procedure, 73

MULTIPLE_FILES keywordin DIALOG_PICKFILE() function, 40

MULTIPLICATIVEGAUSSIANNOISE keywordin MAGICK_ADDNOISE procedure, 57in MAGICK_PING() function, 58

multithreadingin ABS() function, 32in ACOS() function, 32

in ASIN() function, 33in ATAN() function, 33in CEIL() function, 37in COMPLEX() function, 37in CONJ() function, 37in COS() function, 38in COSH() function, 38in EXP() function, 41in FFT() function, 42in FLOOR() function, 44in IMAGINARY() function, 51in LOGICAL_AND() function, 57in LOGICAL_OR() function, 57in LOGICAL_TRUE() function, 57in MAGICK_WRITEINDEXES procedure, 59in PRODUCT() function, 66in PTRARR() function, 66in ROUND() function, 71in SIN() function, 81in SINH() function, 81in SQRT() function, 83in STRCOMPRESS() function, 83in STRLEN() function, 84in STRLOWCASE() function, 84in STRMID() function, 84in STRPOS() function, 84in STRPUT procedure, 84in STRTRIM() function, 85in STRUPCASE() function, 85in TAN() function, 86in TANH() function, 86in TOTAL() function, 87in WHERE() function, 89

MUST_EXIST keywordin DIALOG_PICKFILE() function, 40

N_DIMENSIONS keywordin SIZE() function, 82

N_ELEMENTS() function, 14, 15, 62N_ELEMENTS keyword

in SIZE() function, 82

DRAFT

DRAFT 113

N_PARAMS() function, 14, 62N_TAGS() function, 15, 62NAME keyword

in CREATE_STRUCT() function, 39in HDF_SD_ATTRINFO procedure, 48in HDF_SD_DIMGET procedure, 48in HDF_SD_GETINFO procedure, 49in HDF_VD_GET procedure, 49in HDF_VG_GETINFO procedure, 49

NAMED_PIPE keywordin FILE_TEST() function, 43

NAMES keywordin SAVE procedure, 73

NAN keywordin BYTSCL() function, 34in FINITE() function, 44in KURTOSIS() function, 54in MAX() function, 60in MEAN() function, 60in MEANABSDEV() function, 60in MIN() function, 60in MOMENT() function, 60in PRODUCT() function, 66in SKEWNESS() function, 82in SMOOTH() function, 82in STDDEV() function, 83in TOTAL() function, 87in TVSCL procedure, 87in VARIANCE() function, 88

NATTR keywordin HDF_SD_DIMGET procedure, 48

NATTS keywordin HDF_SD_GETINFO procedure, 49

NBINS keywordin HIST_ND() function, 50in HISTOGRAM() function, 50

NCDF_ATTCOPY() function, 20, 60NCDF_ATTDEL procedure, 60NCDF_ATTDELprocedure, 20NCDF_ATTGET procedure, 60NCDF_ATTGETprocedure, 20

NCDF_ATTINQ() function, 20, 60NCDF_ATTNAME() function, 20, 60NCDF_ATTPUT procedure, 61NCDF_ATTPUTprocedure, 20NCDF_ATTRENAME procedure, 61NCDF_ATTRENAMEprocedure, 20NCDF_CLOSE procedure, 61NCDF_CLOSEprocedure, 20NCDF_CONTROL procedure, 61NCDF_CONTROLprocedure, 20, 62NCDF_CREATE() function, 20, 61NCDF_DIMDEF() function, 20, 61NCDF_DIMID() function, 20, 61NCDF_DIMINQ procedure, 61NCDF_DIMINQprocedure, 20NCDF_DIMRENAME procedure, 61NCDF_DIMRENAMEprocedure, 20NCDF_EXISTS() function, 20, 61NCDF_INQUIRE() function, 20, 61NCDF_OPEN() function, 20, 61NCDF_VARDEF() function, 20, 61NCDF_VARGET procedure, 62NCDF_VARGET1 procedure, 62NCDF_VARGET1procedure, 20NCDF_VARGETprocedure, 20NCDF_VARID() function, 20, 62NCDF_VARINQ() function, 20, 62NCDF_VARPUT procedure, 62NCDF_VARPUTprocedure, 20NCDF_VARRENAME procedure, 62NCDF_VARRENAMEprocedure, 20NCOLORS keyword

in LOADCT procedure, 55NCOMPLEMENT keyword

in WHERE() function, 89NDIMS keyword

in HDF_SD_GETINFO procedure, 49NENTRIES keyword

in HDF_VG_GETINFO procedure, 49NEWTON() function, 19, 62NLEVELS keyword

in CONTOUR procedure, 37NO_CHECK keyword

in DERIV() function, 39NO_CONFIRM keyword

in EXIT procedure, 41NO_COPY keyword

in PTR_NEW() function, 67in WIDGET_BASE() function, 89in WIDGET_BUTTON() function, 89in WIDGET_CONTROL procedure, 89in WIDGET_DROPLIST() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

NO_INTERLACE keywordin HDF_VD_READ() function, 49

NO_NEWLINE keywordin WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

NO_RELEASE keywordin WIDGET_BUTTON() function, 89

NO_TYPECONV keywordin ARRAY_EQUAL() function, 32

NOAUTOMODE keywordin OPENR procedure, 64in OPENU procedure, 64in OPENW procedure, 64

NOCATCH keywordin SAVE procedure, 73

NOCLEAR keywordin CHECK_MATH() function, 37

NOCLIP keywordin CONTOUR procedure, 37in OPLOT procedure, 64in PLOT procedure, 65in PLOTS procedure, 65in POLYFILL procedure, 66in SURFACE procedure, 85in XYOUTS procedure, 90

NOCLOBBER keywordin NCDF_CREATE() function, 61

NODATA keyword

DRAFT

DRAFT114 Subject Index

in AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

NOERASE keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

NOEXPAND_PATH keywordin FILE_COPY procedure, 42in FILE_DELETE procedure, 42in FILE_INFO() function, 43in FILE_LINES() function, 43in FILE_MKDIR procedure, 43in FILE_SAME() function, 43in FILE_TEST() function, 43

NOFILL keywordin NCDF_CONTROL procedure, 61

NOINTERLACE keywordin MAGICK_INTERLACE procedure, 58

NOISE keywordin MAGICK_ADDNOISE procedure, 57in MAGICK_PING() function, 58

NONAME keywordin MESSAGE procedure, 60

NONEXCLUSIVE keywordin WIDGET_BASE() function, 89

NOPREFIX keywordin MESSAGE procedure, 60

NOPRINT keywordin MESSAGE procedure, 60

NORM() function, 18, 62NORMAL keyword

in AXIS procedure, 33in CONTOUR procedure, 37in CONVERT_COORD() function, 37in CURSOR procedure, 39in PLOT procedure, 65in PLOTS procedure, 65in POLYFILL procedure, 66

in RANDOMN() function, 68in RANDOMU() function, 68in SURFACE procedure, 85in TV procedure, 87in XYOUTS procedure, 90

NOSHELL keywordin SPAWN procedure, 82

NOSORT keywordin FILE_SEARCH() function, 43

NOTIFY_REALIZE keywordin WIDGET_BASE() function, 89in WIDGET_BUTTON() function, 89in WIDGET_DROPLIST() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

NOVERBOSE keywordin NCDF_CONTROL procedure, 61

NOWAIT keywordin CURSOR procedure, 39

NOWRITE keywordin NCDF_OPEN() function, 61

NOZERO keywordin BYTARR() function, 33in COMPLEXARR() function, 37in DBLARR() function, 39in DCOMPLEXARR() function, 39in FLTARR() function, 44in INTARR() function, 54in LON64ARR() function, 57in LONARR() function, 57in MAKE_ARRAY() function, 59in OBJARR() function, 62in PTRARR() function, 66in STRARR() function, 83in STRUCT_ASSIGN procedure, 85in UINTARR() function, 88in ULON64ARR() function, 88in ULONARR() function, 88

NRECORDS keywordin HDF_VD_READ() function, 49

NRHO keyword

in RADON() function, 68NSUM keyword

in OPLOT procedure, 64NTHETA keyword

in RADON() function, 68NTOHL keyword

in BYTEORDER procedure, 34NTOHS keyword

in BYTEORDER procedure, 34NUM_ALLOC keyword

in MEMORY() function, 60NUM_DD keyword

in HDF_OPEN() function, 48NUM_FREE keyword

in MEMORY() function, 60NUM_IMAGES keyword

in MAGICK_PING() function, 58NUM_RECORDS keyword

in READ_ASCII() function, 69NX keyword

in RADON() function, 68in TRIGRID() function, 87

NY keywordin RADON() function, 68in TRIGRID() function, 87

OBJ_CLASS() function, 15, 63OBJ_DESTROY procedure, 63OBJ_DESTROY() function, 13OBJ_DESTROYprocedure, 15OBJ_ISA() function, 15, 63OBJ_NEW() function, 15, 63OBJ_VALID() function, 15, 64OBJ keyword

in HEAP_GC procedure, 50in MAKE_ARRAY() function, 59

OBJARR() function, 13, 15, 62OF

in CASE statement, 13in SWITCH statement, 13

OFFSET keyword

DRAFT

DRAFT 115

in NCDF_VARGET procedure, 62in NCDF_VARGET1 procedure, 62in NCDF_VARPUT procedure, 62

OLDFILL keywordin NCDF_CONTROL procedure, 61

OMAX keywordin HISTOGRAM() function, 50

OMIN keywordin HISTOGRAM() function, 50

ON_ERROR procedure, 64ON_ERRORprocedure, 15ON_IOERRORprocedure, 15OPENR procedure, 64OPENRprocedure, 20OPENU procedure, 64OPENUprocedure, 20OPENW procedure, 64OPENWprocedure, 20OPLOT procedure, 64OPLOTprocedure, 22ORDER keyword

in READ_JPEG procedure, 69in READ_PNG() function, 69in TV procedure, 87in TVRD() function, 87in WRITE_JPEG procedure, 90in WRITE_PNG procedure, 90

ORIENTATION keywordin POLYFILL procedure, 66in READ_TIFF() function, 69in XYOUTS procedure, 90

OUT_GLOBAL keywordin NCDF_ATTCOPY() function, 60

OUTPUT keywordin HELP procedure, 50

OVERPLOT keywordin CONTOUR procedure, 37

OVERWRITE_PROMPT keywordin DIALOG_PICKFILE() function, 40

OVERWRITE keywordin FFT() function, 42

in FILE_COPY procedure, 42in REFORM() function, 70in REVERSE() function, 70in WTN() function, 90

PACKED keywordin ASSOC() function, 33

PARAMETERS keywordin ROUTINE_INFO() function, 71

PARENT_DIRECTORY keywordin PATH_SEP() function, 65

PARSE_URL() function, 24, 25, 65Pascal’s triangle, 51PASS_METHOD keyword

in SAVE procedure, 73PATH_SEP() function, 24, 42, 65PATH keyword

in DIALOG_PICKFILE() function, 40PHASE keyword

in ATAN() function, 33PID keyword

in SPAWN procedure, 82PIXEL_TYPE keyword

in MAGICK_PING() function, 58PIXMAP keyword

in WINDOW procedure, 90PLANARCONFIG keyword

in READ_TIFF() function, 69PLANEINTERLACE keyword

in MAGICK_INTERLACE procedure, 58PLOT procedure, 65PLOTERR procedure, 65PLOTERRprocedure, 22PLOTprocedure, 22PLOTS procedure, 65PLOTSprocedure, 22PM procedure, 65PMprocedure, 15, 20POINT_LUN procedure, 66POINT_LUNprocedure, 20POISSON keyword

in RANDOMN() function, 68in RANDOMU() function, 68

POISSONNOISE keywordin MAGICK_ADDNOISE procedure, 57in MAGICK_PING() function, 58

POLAR keywordin OPLOT procedure, 64

POLY() function, 18, 66POLY_2D() function, 27, 66POLY_AREA() function, 19, 66POLYFILL procedure, 66POLYFILLprocedure, 22POLYGONS keyword

in MAP_PROJ_FORWARD() function, 59POLYLINES keyword

in MAP_PROJ_FORWARD() function, 59POPD procedure, 66POPDprocedure, 24PORTRAIT keyword

in DEVICE procedure, 39POSITION keyword

in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

PRESERVE_NULL keywordin STRSPLIT() function, 84in STRTOK() function, 84

PRESERVE_TYPE keywordin PRODUCT() function, 66in TOTAL() function, 87

PREWITT() function, 27, 66PRIMES() function, 18, 66PRINT procedure, 66PRINT keyword

in CHECK_MATH() function, 37in FIX() function, 44in STRING() function, 83

PRINTD procedure, 66PRINTDprocedure, 24PRINTF procedure, 66PRINTFprocedure, 20

DRAFT

DRAFT116 Subject Index

PRINTprocedure, 15, 20PRO_SET_VALUE keyword

in WIDGET_BASE() function, 89in WIDGET_BUTTON() function, 89in WIDGET_CONTROL procedure, 89in WIDGET_DROPLIST() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

PROCEDURES keywordin HELP procedure, 50

PRODUCT() function, 18, 66PROGRESSIVE keyword

in WRITE_JPEG procedure, 90PROMPT keyword

in READ procedure, 68in READF procedure, 69

PSYM keywordin OPLOT procedure, 64in PLOT procedure, 65in PLOTERR procedure, 65in PLOTS procedure, 65

PTR_FREE procedure, 67PTR_FREE() function, 13PTR_FREEprocedure, 15PTR_NEW() function, 15, 67PTR_VALID() function, 15, 67PTR keyword

in HEAP_GC procedure, 50in MAKE_ARRAY() function, 59

PTRARR() function, 13, 15, 66PTRARRprocedure, 15PUSHBUTTON_EVENTS keyword

in WIDGET_BUTTON() function, 89PUSHD procedure, 67PUSHDprocedure, 24PY_PLOT procedure, 67PY_PRINT procedure, 67PYTHON procedure, 67PYTHON() function, 14, 31, 67PYTHONprocedure, 14, 31

QUADRATIC keywordin INTERPOL() function, 54

QUALITY keywordin WRITE_JPEG procedure, 90

QUERY_BMP() function, 27, 67QUERY_DICOM() function, 27, 68QUERY_GIF() function, 27, 68QUERY_IMAGE() function, 27, 68QUERY_JPEG() function, 27, 68QUERY_PICT() function, 27, 68QUERY_PNG() function, 27, 68QUERY_PPM() function, 27, 68QUERY_TIFF() function, 27, 68QUESTION keyword

in DIALOG_MESSAGE() function, 39QUIET keyword

in FILE_COPY procedure, 42in FILE_DELETE procedure, 42in FINDFILE() function, 43in SAVE procedure, 73

QUOTE keywordin FILE_SEARCH() function, 43

RADIANS keywordin MAP_PROJ_FORWARD() function, 59in MAP_PROJ_INVERSE() function, 59

RADON() function, 27, 68RANDOMN() function, 19, 68RANDOMU() function, 19, 68RDWR keyword

in HDF_OPEN() function, 48in HDF_SD_START() function, 49

READ procedure, 68READ_ASCII() function, 69READ_ASCIIprocedure, 20READ_BINARY() function, 20, 69READ_BMP() function, 27, 69READ_DICOM() function, 27, 69READ_JPEG procedure, 69READ_JPEGprocedure, 27READ_PICT procedure, 69

READ_PICTprocedure, 27READ_PNG() function, 27, 69, 71READ_TIFF() function, 27, 69READ_TIMEOUT keyword

in SOCKET procedure, 82READ_XWD() function, 27, 69READ keyword

in DIALOG_PICKFILE() function, 40in FILE_TEST() function, 43in HDF_OPEN() function, 48in HDF_SD_START() function, 49in HDF_VD_ATTACH() function, 49in HDF_VG_ATTACH() function, 49

READF procedure, 69READFprocedure, 20READprocedure, 20READS procedure, 69READS() function, 25READSprocedure, 20READU procedure, 69READUprocedure, 20REAL_PART() function, 12, 69REALIZE keyword

in WIDGET_CONTROL procedure, 89REBIN() function, 15, 18, 27, 70RECALL_COMMANDS() function, 70RECALL_COMMANDS keyword

in HELP procedure, 50RECALL_COMMANDSprocedure, 17RECORD_START keyword

in READ_ASCII() function, 69RECURSIVE keyword

in FILE_COPY procedure, 42in FILE_DELETE procedure, 42

REDEF keywordin NCDF_CONTROL procedure, 61

REF keywordin HDF_VD_GET procedure, 49in HDF_VG_GETINFO procedure, 49

REFORM() function, 15, 70REGEX keyword

DRAFT

DRAFT 117

in STRSPLIT() function, 84in STRTOK() function, 84

REGULAR keywordin FILE_TEST() function, 43

RELAXED_STRUCTURE_ASSIGNMENT keywordin RESTORE procedure, 70

REMOVE_ALL keywordin STR_SEP() function, 85in STRCOMPRESS() function, 83

REPEAT, 14REPLICATE() function, 13, 15, 18, 70REPLICATE_INPLACE procedure, 70REPLICATE_INPLACEprocedure, 15, 18REQUIRE_DIRECTORY keyword

in FILE_COPY procedure, 42RESET keyword

in CPU procedure, 39in MAP_CLIP_SET procedure, 59in MESSAGE procedure, 60

RESOLUTION keywordin GET_SCREEN_SIZE() function, 45

RESOLVE_ROUTINE procedure, 70RESOLVE_ROUTINEprocedure, 17RESOURCE_NAME keyword

in DIALOG_MESSAGE() function, 39in DIALOG_PICKFILE() function, 40in WIDGET_BASE() function, 89in WIDGET_DROPLIST() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

RESTORE procedure, 70RESTORE keyword

in CPU procedure, 39RESTORED_OBJECTS keyword

in RESTORE procedure, 70RESTOREprocedure, 21RESULT keyword

in APPLEMAN procedure, 32RETAIN keyword

in WINDOW procedure, 90RETALL procedure, 70

RETALL keywordin RETALL procedure, 70

RETALLprocedure, 17RETURN_TYPE keyword

in CALL_EXTERNAL() function, 34REVERSE() function, 15, 18, 70REVERSE_INDICES keyword

in HIST_ND() function, 50in HISTOGRAM() function, 50

REVERSE_OFFSET keywordin STRMID() function, 84in STRPOS() function, 84

REVERSE_SEARCH keywordin STRPOS() function, 84

RGB keywordin MAGICK_READ() function, 59in MAGICK_WRITE procedure, 59in READ_BMP() function, 69in WRITE_BMP procedure, 90

RHO keywordin RADON() function, 68

RIVERS keywordin MAP_CONTINENTS procedure, 59

RK4() function, 19, 70RK4JMG() function, 70RMIN keyword

in RADON() function, 68RNAME_MBAR keyword

in WIDGET_BASE() function, 89ROBERTS() function, 27, 70ROOT_DIR keyword

in FILEPATH() function, 42ROTATE() function, 15, 18, 27, 70ROUND() function, 18, 71ROUTINE_INFO() function, 17, 71, 73ROUTINE_NAMES() function, 17, 71ROUTINES keyword

in HELP procedure, 50ROW keyword

in WIDGET_BASE() function, 89RSTRPOS() function, 25, 73

RUNTIME keywordin LMGR() function, 55

S_FUNCTIONS keywordin ROUTINE_NAMES() function, 71

S_PROCEDURES keywordin ROUTINE_NAMES() function, 71

S_VALUE keywordin CALL_EXTERNAL() function, 34

SAMPLE keywordin REBIN() function, 70

SAVE procedure, 73SAVE keyword

in AXIS procedure, 33SAVEprocedure, 21SCALE keyword

in HDF_SD_DIMGET procedure, 48SCOPE_VARFETCH() function, 17, 73SCR_XSIZE keyword

in WIDGET_BASE() function, 89in WIDGET_BUTTON() function, 89in WIDGET_DROPLIST() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

SCR_YSIZE keywordin WIDGET_BASE() function, 89in WIDGET_BUTTON() function, 89in WIDGET_DROPLIST() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

SCROLL keywordin WIDGET_BASE() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

SDEV keywordin MOMENT() function, 60

SEARCH_PATH keywordin PATH_SEP() function, 65

SECONDS keywordin SYSTIME() function, 86

SEM_CREATE() function, 28, 73

DRAFT

DRAFT118 Subject Index

SEM_DELETE procedure, 73SEM_DELETEprocedure, 28SEM_LOCK() function, 28, 73SEM_RELEASE procedure, 73SEM_RELEASEprocedure, 28SENSITIVE keyword

in WIDGET_BASE() function, 89in WIDGET_BUTTON() function, 89in WIDGET_CONTROL procedure, 89in WIDGET_DROPLIST() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

SEPARATOR keywordin WIDGET_BUTTON() function, 89

SET_BUTTON keywordin WIDGET_CONTROL procedure, 89

SET_CHARACTER_SIZE keywordin DEVICE procedure, 39

SET_DROPLIST_SELECT keywordin WIDGET_CONTROL procedure, 89

SET_PLOT procedure, 73SET_PLOTprocedure, 22SET_RESOLUTION keyword

in DEVICE procedure, 39SET_UNAME keyword

in WIDGET_CONTROL procedure, 89SET_UVALUE keyword

in WIDGET_CONTROL procedure, 89SET_VALUE keyword

in WIDGET_CONTROL procedure, 89SETENV procedure, 73SETENVprocedure, 24SH_LOCATION keyword

in FINDFILE() function, 43SH keyword

in SPAWN procedure, 82SHIFT() function, 18, 73SHORT keyword

in HDF_SD_CREATE() function, 48in NCDF_ATTPUT procedure, 61in NCDF_VARDEF() function, 61

SHORTFORM keywordin HELPFORM() function, 50

SHOW_LIST keywordin ESCAPE_SPECIAL_CHAR() function, 41

SHOWFONT procedure, 73SHOWFONTprocedure, 23SIGNED keyword

in POLY_AREA() function, 66SILENT keyword

in LOADCT procedure, 55SIN() function, 18, 81SINDGEN() function, 15, 25, 81SINGLE keyword

in HELPFORM() function, 50in STRJOIN() function, 83

SINH() function, 18, 81SITE_NOTICE keyword

in LMGR() function, 55SIZE() function, 12, 14, 15, 35, 82SIZE keyword

in HELPFORM() function, 50in MAKE_ARRAY() function, 59

SKEWNESS() function, 18, 82SKIP_LUN procedure, 82SKIP_LUNprocedure, 20SMOOTH() function, 27, 82SOBEL() function, 27, 82SOCKET procedure, 82SOCKET keyword

in FILE_TEST() function, 43SOCKETprocedure, 24SORT() function, 15, 25, 82SPACE keyword

in WIDGET_BASE() function, 89SPACING keyword

in POLYFILL procedure, 66SPAWN procedure, 82SPAWN_OPTIONS keyword

in FINDFILE() function, 43SPAWNprocedure, 24SPHER_HARM() function, 18, 82

SPL_INIT() function, 18, 82SPL_INIT_OLD() function, 82SPL_INTERP() function, 18, 82SPL_INTERP_OLD() function, 82SPLINE keyword

in INTERPOL() function, 54SPLIT keyword

in MAP_CLIP_SET procedure, 59SQRT() function, 12, 18, 83SSWAP keyword

in BYTEORDER procedure, 34START keyword

in HDF_SD_ADDDATA procedure, 48in HDF_SD_GETDATA procedure, 49

STATUS keywordin EXIT procedure, 41in SAVE procedure, 73

STDDEV() function, 18, 83STDIO_NON_FINITE keyword

in PRINT procedure, 66in PRINTF procedure, 66in STOP procedure, 83

STDIO keywordin OPENR procedure, 64in OPENU procedure, 64in OPENW procedure, 64in SOCKET procedure, 82

STIRLING keywordin FACTORIAL() function, 41

STOP procedure, 83STOPprocedure, 17STORE keyword

in ROUTINE_NAMES() function, 71STR_SEP() function, 25, 85STRARR() function, 13, 15, 25, 83STRCMP() function, 25, 83STRCOMPRESS() function, 25, 83STREAM keyword

in OPENR procedure, 64in OPENU procedure, 64in OPENW procedure, 64

DRAFT

DRAFT 119

STREGEX() function, 25, 83STRIDE keyword

in HDF_SD_ADDDATA procedure, 48in HDF_SD_GETDATA procedure, 49in NCDF_VARGET procedure, 62in NCDF_VARPUT procedure, 62

STRING() function, 13, 25, 83STRING keyword

in HDF_SD_CREATE() function, 48in INDGEN() function, 54in MAKE_ARRAY() function, 59

STRJOIN() function, 25, 83STRLEN() function, 25, 84STRLOWCASE() function, 84STRLOWERCASE() function, 25STRMID() function, 25, 84STRPOS() function, 25, 84STRPUT procedure, 84STRPUT() function, 25STRSPLIT() function, 25, 84STRTOK() function, 25, 84STRTRIM() function, 25, 85STRUCT_ALIGN_BYTES keyword

in CALL_EXTERNAL() function, 34STRUCT_ASSIGN procedure, 85STRUCT_ASSIGNprocedure, 15STRUCTURE_NAME keyword

in HELPFORM() function, 50in TAG_NAMES() function, 86

STRUCTURE keywordin MEMORY() function, 60in SIZE() function, 82

STRUCTURES keywordin HELP procedure, 50

STRUPCASE() function, 25, 85STUDENT keyword

in LMGR() function, 55SUB_RECT keyword

in MAGICK_READ() function, 59in READ_TIFF() function, 69

SUBDIRECTORY keyword

in FILEPATH() function, 42SUBEXPR keyword

in STREGEX() function, 83SUBSCRIPT_MAX keyword

in MIN() function, 60SUBSCRIPT_MIN keyword

in MAX() function, 60SUBTITLE keyword

in AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

SUPERCLASS keywordin OBJ_CLASS() function, 63

SURFACE procedure, 85SURFACEprocedure, 22SVDC procedure, 86SVDCprocedure, 18SWAP_ENDIAN() function, 19, 20, 86SWAP_ENDIAN_INPLACE procedure, 86SWAP_ENDIAN_INPLACEprocedure, 19, 20SWAP_ENDIAN keyword

in OPENR procedure, 64in OPENU procedure, 64in OPENW procedure, 64in SOCKET procedure, 82

SWAP_IF_BIG_ENDIAN keywordin BYTEORDER procedure, 34in OPENR procedure, 64in OPENU procedure, 64in OPENW procedure, 64in SOCKET procedure, 82in SWAP_ENDIAN() function, 86in SWAP_ENDIAN_INPLACE procedure, 86

SWAP_IF_LITTLE_ENDIAN keywordin BYTEORDER procedure, 34in OPENR procedure, 64in OPENU procedure, 64in OPENW procedure, 64in SOCKET procedure, 82in SWAP_ENDIAN() function, 86

in SWAP_ENDIAN_INPLACE procedure, 86SWITCH, 13SYMLINK keyword

in FILE_TEST() function, 43SYMSIZE keyword

in OPLOT procedure, 64in PLOT procedure, 65in PLOTS procedure, 65

SYNC keywordin NCDF_CONTROL procedure, 61

SYSTEM keywordin ROUTINE_INFO() function, 71

SYSTIME() function, 26, 86

T3D keywordin AXIS procedure, 33in CONTOUR procedure, 37in CONVERT_COORD() function, 37in OPLOT procedure, 64in PLOTS procedure, 65in SURFACE procedure, 85

T_PDF() function, 18, 87TAB_MODE keyword

in WIDGET_BUTTON() function, 89in WIDGET_DROPLIST() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

TAG_NAMES() function, 15, 86TAG keyword

in HDF_VD_GET procedure, 49in HDF_VG_GETINFO procedure, 49

TAGFORM keywordin HELPFORM() function, 50

TAN() function, 18, 86TANH() function, 18, 86TEMPLATE procedure, 86TEMPLATE_BLANK procedure, 87TEMPLATE keyword

in READ_ASCII() function, 69in READ_BINARY() function, 69

TEMPORARY() function, 12, 13, 17, 87

DRAFT

DRAFT120 Subject Index

TERMINAL keywordin FILEPATH() function, 42

TEST keywordin DERIV() function, 39in DIALOG_PICKFILE() function, 40in ESCAPE_SPECIAL_CHAR() function, 41in FILE_COPY procedure, 42in FILE_DELETE procedure, 42in FINDFILE() function, 43in PATH_SEP() function, 65in PLOTERR procedure, 65in SAVE procedure, 73in SKIP_LUN procedure, 82in SMOOTH() function, 82in STR_SEP() function, 85in STRSPLIT() function, 84

TETRIS procedure, 87THEN, 12THETA keyword

in RADON() function, 68THICK keyword

in AXIS procedure, 33in CONTOUR procedure, 37in OPLOT procedure, 64in PLOT procedure, 65in PLOTS procedure, 65in POLYFILL procedure, 66in SURFACE procedure, 85

TICKLEN keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

TITLE keywordin CONTOUR procedure, 37in DIALOG_MESSAGE() function, 39in DIALOG_PICKFILE() function, 40in PLOT procedure, 65in PM procedure, 65in PY_PLOT procedure, 67in SURFACE procedure, 85

in WIDGET_BASE() function, 89in WIDGET_DROPLIST() function, 89in WINDOW procedure, 90

TLB_FRAME_ATTR keywordin WIDGET_BASE() function, 89

TLB_ICONIFY_EVENTS keywordin WIDGET_BASE() function, 89

TLB_KILL_REQUEST_EVENTS keywordin WIDGET_BASE() function, 89

TLB_MOVE_EVENTS keywordin WIDGET_BASE() function, 89

TLB_SIZE_EVENTS keywordin WIDGET_BASE() function, 89

TMP keywordin FILEPATH() function, 42

TNAME keywordin SIZE() function, 82

TO_DATA keywordin CONVERT_COORD() function, 37

TO_DEVICE keywordin CONVERT_COORD() function, 37

TO_NORMAL keywordin CONVERT_COORD() function, 37

TOLF keywordin BROYDEN() function, 33in NEWTON() function, 62

TOLX keywordin BROYDEN() function, 33in NEWTON() function, 62

TOOLBAR keywordin WIDGET_BASE() function, 89

TOOLTIP keywordin WIDGET_BUTTON() function, 89

TOP keywordin BYTSCL() function, 34

TOTAL() function, 18, 87TPOOL_MAX_ELTS keyword

in CPU procedure, 39TPOOL_MIN_ELTS keyword

in CPU procedure, 39TPOOL_NTHREADS keyword

in CPU procedure, 39TRACE() function, 18, 87TRACEBACK keyword

in MESSAGE procedure, 60TRACKING_EVENTS keyword

in WIDGET_BASE() function, 89in WIDGET_BUTTON() function, 89in WIDGET_DROPLIST() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

TRANSFER_COUNT keywordin READU procedure, 69in SKIP_LUN procedure, 82in WRITEU procedure, 90

TRANSFORM keywordin MAP_CLIP_SET procedure, 59

TRANSPARENT keywordin READ_PNG() function, 69in WRITE_PNG procedure, 90

TRANSPOSE() function, 15, 18, 87TRIAL keyword

in LMGR() function, 55TRIGRID() function, 19, 87TRIM keyword

in STR_SEP() function, 85TRUE keyword

in READ_JPEG procedure, 69in TV procedure, 87in TVRD() function, 87in WRITE_JPEG procedure, 90

TRUECOLOR keywordin MAGICK_QUANTIZE procedure, 58

TT_FONT keywordin SHOWFONT procedure, 73

TV procedure, 87TV() function, 22TVLCT procedure, 87TVLCT() function, 22TVprocedure, 15, 65TVRD() function, 22, 65, 87TVSCL procedure, 87

DRAFT

DRAFT 121

TVSCL() function, 22TWO_PASS_QUANTIZE keyword

in READ_JPEG procedure, 69TYPE keyword

in FIX() function, 44in HDF_SD_ATTRINFO procedure, 48in HDF_SD_GETINFO procedure, 49in INDGEN() function, 54in MAGICK_PING() function, 58in MAKE_ARRAY() function, 59in PLOTERR procedure, 65in SIZE() function, 82

UI_VALUE keywordin CALL_EXTERNAL() function, 34

UINDGEN() function, 13, 15, 87UINT() function, 12, 13, 88UINT keyword

in INDGEN() function, 54in MAKE_ARRAY() function, 59

UINTARR() function, 13, 15, 88UL64_VALUE keyword

in CALL_EXTERNAL() function, 34UL64 keyword

in FACTORIAL() function, 41in INDGEN() function, 54in MAKE_ARRAY() function, 59

UL64INDGEN() function, 13, 15, 88UL_VALUE keyword

in CALL_EXTERNAL() function, 34ULINDGEN() function, 13, 15, 88ULON64ARR() function, 13, 15, 88ULONARR() function, 13, 15, 88ULONG() function, 12, 13, 88ULONG64() function, 12, 13, 88ULONG keyword

in INDGEN() function, 54in MAKE_ARRAY() function, 59

UNAME keywordin WIDGET_BASE() function, 89in WIDGET_BUTTON() function, 89

in WIDGET_DROPLIST() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

UNIFORM keywordin RANDOMN() function, 68in RANDOMU() function, 68

UNIFORMNOISE keywordin MAGICK_ADDNOISE procedure, 57in MAGICK_PING() function, 58

UNIQ() function, 15, 18, 25, 88UNIT keyword

in HDF_SD_GETINFO procedure, 49in READ_JPEG procedure, 69in SPAWN procedure, 82in WRITE_JPEG procedure, 90

UNITS keywordin WIDGET_BASE() function, 89in WIDGET_BUTTON() function, 89in WIDGET_DROPLIST() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

UNLIMITED keywordin NCDF_DIMDEF() function, 61

UNLOAD keywordin CALL_EXTERNAL() function, 34

UNTIL, 14UP keyword

in CURSOR procedure, 39UPPER keyword

in LA_TRIRED procedure, 54USEUNIT keyword

in SAVE procedure, 73UTC keyword

in SYSTIME() function, 86UVALUE keyword

in WIDGET_BASE() function, 89in WIDGET_BUTTON() function, 89in WIDGET_DROPLIST() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

VALID keywordin WIDGET_INFO() function, 89

VALUE_LOCATE() function, 18, 88VALUE keyword

in CALL_EXTERNAL() function, 34in MAKE_ARRAY() function, 59in WIDGET_BUTTON() function, 89in WIDGET_DROPLIST() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

VARIABLES keywordin ROUTINE_NAMES() function, 71

VARIANCE() function, 18, 88VARSTATUS keyword

in SAVE procedure, 73VAX_FLOAT keyword

in OPENR procedure, 64in OPENU procedure, 64in OPENW procedure, 64

VECTOR_ENABLE keywordin CPU procedure, 39

VERBOSE keywordin DIALOG_PICKFILE() function, 40in ESCAPE_SPECIAL_CHAR() function, 41in FILE_COPY procedure, 42in FILE_DELETE procedure, 42in FINDFILE() function, 43in HEAP_GC procedure, 50in NCDF_CONTROL procedure, 61in READ_ASCII() function, 69in READ_PNG() function, 69in READ_TIFF() function, 69in RESTORE procedure, 70in SAVE procedure, 73in SMOOTH() function, 82in STRUCT_ASSIGN procedure, 85in WRITE_PNG procedure, 90

VERSION keywordin WIDGET_INFO() function, 89

VM keywordin LMGR() function, 55

DRAFT

DRAFT122 Subject Index

VOIGT() function, 18, 88

WAIT procedure, 88WAIT keyword

in CURSOR procedure, 39WAITprocedure, 24WDELETE procedure, 88WDELETEprocedure, 22WHERE() function, 15, 32, 89WHILE, 14WIDGET_BASE() function, 29, 89WIDGET_BUTTON() function, 29, 89WIDGET_CONTROL procedure, 89WIDGET_CONTROLprocedure, 29WIDGET_DROPLIST() function, 29, 89WIDGET_EVENT() function, 29, 89WIDGET_INFO() function, 29, 89WIDGET_LABEL() function, 29, 89WIDGET_TEXT() function, 29, 90WIDTH keyword

in HELPFORM() function, 50in OPENR procedure, 64in OPENU procedure, 64in OPENW procedure, 64in SOCKET procedure, 82in XYOUTS procedure, 90

WINDOW procedure, 90WINDOW_STATE keyword

in DEVICE procedure, 39WINDOWprocedure, 22WORDS keyword

in TVRD() function, 87WRAP keyword

in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

WRITE_BMP procedure, 90WRITE_BMPprocedure, 27WRITE_JPEG procedure, 90WRITE_JPEGprocedure, 27WRITE_PICT procedure, 90WRITE_PICTprocedure, 27

WRITE_PNG procedure, 90WRITE_PNGprocedure, 27, 71WRITE_TIMEOUT keyword

in SOCKET procedure, 82WRITE keyword

in DIALOG_PICKFILE() function, 40in FILE_TEST() function, 43in HDF_OPEN() function, 48in HDF_VD_ATTACH() function, 49in HDF_VG_ATTACH() function, 49in NCDF_OPEN() function, 61

WRITEprocedure, 20WRITEU procedure, 90WSET procedure, 90WSETprocedure, 22WSHOW procedure, 90WSHOWprocedure, 22WTN() function, 19, 90

X_BITMAP_EXTRA keywordin WIDGET_BUTTON() function, 89

X_SCROLL_SIZE keywordin WIDGET_BASE() function, 89

XAXIS keywordin AXIS procedure, 33

XCHARSIZE keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

XDR keywordin OPENR procedure, 64in OPENU procedure, 64in OPENW procedure, 64in SAVE procedure, 73

XDRTOD keywordin BYTEORDER procedure, 34

XDRTOF keywordin BYTEORDER procedure, 34

XGRIDSTYLE keywordin AXIS procedure, 33

in CONTOUR procedure, 37in SURFACE procedure, 85

XGUESS keywordin IMSL_ZEROSYS() function, 54

XLABEL keywordin PY_PLOT procedure, 67

XLOG keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in PLOTERR procedure, 65in SURFACE procedure, 85

XMANAGER_ACTIVE_COMMAND keywordin WIDGET_CONTROL procedure, 89

XMANAGER_BLOCK keywordin WIDGET_EVENT() function, 89in WIDGET_INFO() function, 89

XMARGIN keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

XMIN keywordin RADON() function, 68

XMINOR keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

XOFFSET keywordin WIDGET_BASE() function, 89in WIDGET_BUTTON() function, 89in WIDGET_DROPLIST() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

XPAD keywordin WIDGET_BASE() function, 89

XPOS keywordin WINDOW procedure, 90

XRANGE keywordin AXIS procedure, 33

DRAFT

DRAFT 123

in CONTOUR procedure, 37in PLOT procedure, 65in PLOTERR procedure, 65in SURFACE procedure, 85

XSIZE keywordin DEVICE procedure, 39in TV procedure, 87in WIDGET_BASE() function, 89in WIDGET_BUTTON() function, 89in WIDGET_DROPLIST() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90in WINDOW procedure, 90

XSTYLE keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

XTHICK keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

XTICK_GET keywordin CONTOUR procedure, 37in SURFACE procedure, 85

XTICKFORMAT keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

XTICKINTERVAL keywordin AXIS procedure, 33in SURFACE procedure, 85

XTICKLAYOUT keywordin SURFACE procedure, 85

XTICKLEN keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

XTICKNAME keywordin AXIS procedure, 33in CONTOUR procedure, 37in SURFACE procedure, 85

XTICKS keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

XTICKUNITS keywordin SURFACE procedure, 85

XTICKV keywordin CONTOUR procedure, 37in SURFACE procedure, 85

XTITLE keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

XTYPE keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

XYOUTS procedure, 90XYOUTSprocedure, 22

Y_SCROLL_SIZE keywordin WIDGET_BASE() function, 89

YAXIS keywordin AXIS procedure, 33

YCHARSIZE keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

YGRIDSTYLE keywordin AXIS procedure, 33in CONTOUR procedure, 37in SURFACE procedure, 85

YLABEL keyword

in PY_PLOT procedure, 67YLOG keyword

in AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in PLOTERR procedure, 65in SURFACE procedure, 85

YMARGIN keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

YMIN keywordin RADON() function, 68

YMINOR keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

YNOZERO keywordin AXIS procedure, 33in PLOT procedure, 65

YOFFSET keywordin WIDGET_BASE() function, 89in WIDGET_BUTTON() function, 89in WIDGET_DROPLIST() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90

YP0 keywordin SPL_INIT() function, 82in SPL_INIT_OLD() function, 82

YPAD keywordin WIDGET_BASE() function, 89

YPN_1 keywordin SPL_INIT() function, 82in SPL_INIT_OLD() function, 82

YPOS keywordin WINDOW procedure, 90

YRANGE keywordin AXIS procedure, 33in CONTOUR procedure, 37

DRAFT

DRAFT124 Subject Index

in PLOT procedure, 65in PLOTERR procedure, 65in SURFACE procedure, 85

YSIZE keywordin DEVICE procedure, 39in TV procedure, 87in WIDGET_BASE() function, 89in WIDGET_BUTTON() function, 89in WIDGET_DROPLIST() function, 89in WIDGET_LABEL() function, 89in WIDGET_TEXT() function, 90in WINDOW procedure, 90

YSTYLE keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

YTHICK keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

YTICK_GET keywordin CONTOUR procedure, 37in SURFACE procedure, 85

YTICKFORMAT keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

YTICKINTERVAL keywordin AXIS procedure, 33in SURFACE procedure, 85

YTICKLAYOUT keywordin SURFACE procedure, 85

YTICKLEN keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

YTICKNAME keyword

in AXIS procedure, 33in CONTOUR procedure, 37in SURFACE procedure, 85

YTICKS keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

YTICKUNITS keywordin SURFACE procedure, 85

YTICKV keywordin CONTOUR procedure, 37in SURFACE procedure, 85

YTITLE keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

YTYPE keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

YUV keywordin MAGICK_QUANTIZE procedure, 58

Z_BUFFERING keywordin DEVICE procedure, 39

Z keywordin XYOUTS procedure, 90

ZCHARSIZE keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

ZENITY_NAME keywordin DIALOG_MESSAGE() function, 39in DIALOG_PICKFILE() function, 40

ZENITY_PATH keywordin DIALOG_MESSAGE() function, 39in DIALOG_PICKFILE() function, 40

ZERO_LENGTH keywordin FILE_TEST() function, 43

ZGRIDSTYLE keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

ZLOG keywordin CONTOUR procedure, 37in SURFACE procedure, 85

ZMARGIN keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

ZMINOR keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

ZRANGE keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

ZSTYLE keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

ZTHICK keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

ZTICK_GET keywordin CONTOUR procedure, 37in SURFACE procedure, 85

ZTICKFORMAT keywordin AXIS procedure, 33in CONTOUR procedure, 37

DRAFT

DRAFT 125

in PLOT procedure, 65in SURFACE procedure, 85

ZTICKINTERVAL keywordin SURFACE procedure, 85

ZTICKLAYOUT keywordin SURFACE procedure, 85

ZTICKLEN keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

ZTICKNAME keywordin AXIS procedure, 33

in CONTOUR procedure, 37in SURFACE procedure, 85

ZTICKS keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

ZTICKUNITS keywordin SURFACE procedure, 85

ZTICKV keywordin CONTOUR procedure, 37in SURFACE procedure, 85

ZTITLE keyword

in AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

ZTYPE keywordin CONTOUR procedure, 37in SURFACE procedure, 85

ZVALUE keywordin AXIS procedure, 33in CONTOUR procedure, 37in PLOT procedure, 65in SURFACE procedure, 85

DRAFT

DRAFTBibliography

[1] Fundation, F. S.: GNU General Public License, version 2, URL http://www.gnu.org/licenses/old-licenses/gpl-2.0.html, 1991.

[2] Galassi, M., Davies, J., Theiler, J., Gough, B., Jungman, G., Alken, P., Booth, M., andRossi, F.: GNU Scientific Library Reference Manual - Third Edition (v1.12), NetworkTheory Ltd., URL http://www.gnu.org/software/gsl/manual/, 2009. {7}

[3] Markwardt, C.: Non-linear Least-squares Fitting in IDL with MPFIT, in: AstronomicalSociety of the Pacific Conference Series, edited by Bohlender, D., Durand, D., andDowler, P., vol. 411 of Astronomical Society of the Pacific Conference Series, URLhttp://cdsads.u-strasbg.fr/abs/2009ASPC..411..251M, 2009. {19}

[4] Paoli, S.: C++ Coding Standard Specification, Tech. rep., CERN European Labo-ratory for Particle Physics, URL http://pst.web.cern.ch/PST/HandBookWorkBook/Handbook/Programming/CodingStandard/c++standard.pdf, 2000. {92}

[5] Snyder, J.: Map projections–A working manual, Tech. Rep. 1395, U.S. Geological Survey,URL http://pubs.er.usgs.gov/djvu/PP/pp_1395.djvu, 1987. {55}

[6] van Rossum, G. and Fred L. Drake, J.: The Python Language Reference Manual, NetworkTheory Ltd., URL http://docs.python.org/reference/, 2006. {31}

[7] Wessel, P. and Smith, W. H. F.: A global, self-consistent, hierarchical, high-resolutionshoreline database, J. Geophys. Res., 101, 8741–8743, doi:10.1029/96JB00104, 1996.{59}

[8] Wolcott, N. and Hilsenrath, J.: Tables of coordinates for Hershey’s repertory of occidentaltype fonts and graphic symbols. A contribution to computer typesetting techniques., NBSspecial publication 424, National Bureau of Standards, 1975. {23}