Your company here — click to reach over 10,000 unique daily visitors

gdl - Man Page

GNU Data Language incremental compiler


gdl [--help] [-h] [--version] [-v] [-V] [[-]-quiet] [-q] [ -arg  value  ] [ -args ...  ] [ -e statement ] [ -pref=/path/to/preferenceFile ] [ batch_file ...  ]


gdl is an incremental compiler for the GNU Data Language (GDL).  GDL is being developed with the aim of providing an open-source drop-in replacement for Interactive Data Language (IDL) (RSI then ITTVIS then Exelis and now Harris Geospatial Solutions, Inc.). It is also partially compatible with Visual Numerics (VN) PV-WAVE. IDL and PV-WAVE are registered trademarks of L3Harris and VN, respectively. GDL and its library routines are designed as a tool for numerical data analysis and visualisation.  GDL is dynamically typed, vectorized and has object-oriented programming capabilities.  The library routines handle numerical calculations, data visualisation, signal/image processing, file input/output (incl. graphical and scientific data formats such as TIFF, PNG, netCDF, HDF etc) and interaction with host OS.

For a list of resources on GDL/IDL/PV-WAVE syntax and library routines, see references in GDL v1.0 JOSS paper: https://doi.org/10.21105/joss.04633

GDL mailing list is maintained at: https://sympa.obspm.fr/wws/info/gdl-announces

A vast part of GDL library routines is implemented using open-source libraries including GSL, plPlot, and optionally: readline, FFTW, Eigen3, ImageMagick, netCDF, HDF4, HDF5, PROJ, UDUNITS-2, libps and others.


--help (or -h)

Show summary of options

--version (or -v, -V)

Show version of program

--quiet (or -quiet, -q)

Suppress welcome messages

-arg value

Tells COMMAND_LINE_ARGS() to report the following argument (may be specified more than once)

-args ...

Tells COMMAND_LINE_ARGS() to report all following arguments

-e statement

Execute given statement and exit (last occurrence taken into account only, executed after startup file, may not be specified together with batch files)


(only partially working now) setting using external text file few variables including default preferences (e.g. X11 Windows Size)

--fakerelease version

setting !VERSION.RELEASE to that value. !VERSION.RELEASE is often tested by procedures to decide whether some function or option should be used. It is sometimes possible to use this option to fool a procedure that request a specific value of !VERSION.RELEASE (e.g. atv.pro)


signals that all used procedures will adhere with modern IDL,  where "()" are for functions and "[]" are for arrays. This speeds up (sometimes terribly) compilation but choke on every use of "()" with arrays. Conversion of procedures to modern IDL can be done with D. Landsman's idlv4_to_v5 procedure. Use environment variable "GDL_IS_FUSSY" to set up permanently this feature.

Incidentally "being fussy" can help find all places in a procedure  that need to be corrected to have it in the modern IDL format.


Supresses some messages (mainly "Compiled Module XXX" .)


inverse of fussy above. Sets the traditional (default) compiling option where "()"  can be used both with functions and arrays. Needed to counteract temporarily the effect of the environment variable "GDL_IS_FUSSY".


switch to a mode where the number of threads is adaptive (experimental). Should enable better perfs on many core machines.


Tells GDL to use WxWidgets graphics instead of X11 or Windows. (nicer plots). Also enabled by setting the environment variable GDL_USE_WX to a non-null value.


Tells GDL no to use WxWidgets graphics, even if env. var. "GDL_USE_WX" is set.


Tells GDL not to use double precision SIMD oriented Fast Mersenne Twister(dSFMT) for random values. Also disabled by setting the environment variable GDL_NO_DSFMT to a non-null value.

With dSFMT, although the Mersenne Twister algorithm is the same as in modern IDL, the values are computed in parallel (hence a speed gain) but the output order is not the same as IDL. Also, the seed is different. Theses differences should not be a problem as it is discouraged to interfere with seed values.

The -demo, -em, -novm, -queue, -rt, -ulicense and -vm options are ignored for compatibility with IDL.

A list of batch files to be executed before entering the interactive

mode (but after executing a startup file, if specified) may be given when not using the -e option.



Library routines implemented in GDL. $DATADIR is specified during compilation and usually translates to /usr/share, /usr/local/share or alike. GDL includes this directory in its search path unless GDL_PATH or IDL_PATH env. variables are set (see below).


A file used for storing the history of commands issued in the interactive mode (if GDL compiled within ReadLine)


The following environment variables have special meaning to gdl. The GDL_* variant, if defined, takes precedence over any corresponding IDL_* variant.


The GDL command (script) search path.


A file of commands to be executed on startup.


A directory in which temporary files may be created.


Variables influencing shell invocations from within GDL (SPAWN procedure and the $ interpreter command).  Value of HOME determines as well the location of the GDL history-file.


Determines search path when spawning child processes using the SPAWN procedure with the /NOSHELL keyword set.


Influences behaviour of PYTHON procedure and PYTHON() function (available if GDL is compiled with support for calling Python code)


A message to be sent out using MPI_Send before initialization of the interpreter (available if GDL is compiled with support for MPI)


Tell GDL how to connect to the X server


Override the default location of PLplot dynamic drivers.


The locale-related settings accessible via LOCALE_GET() (GDL always uses the C locale internally)


Sets the preference for the default height of a Windows(tm) graphic window


if set to true (1) this will prevent the use of the GDL_GR_WIN_HEIGHT and GDL_GR_WIN_WIDTH preferences and the default dimensions of graphic windows will be 1/4 of the screen dimensions


Sets the preference for the default width of a Windows(tm) graphic window


Sets the preference for the default height of an X11 graphic window


if set to true (1) this will prevent the use of the GDL_GR_X_HEIGHT and GDL_GR_X_WIDTH preferences and the default dimensions of graphic windows will be 1/4 of the screen dimensions


Sets the preference for the default width of an X11 graphic window


can be set to [0,1,2] which will select, respectively, the back-ends 0,1 or 2 of plplot's old wxWidgets driver (plplot versions < 5.10). Back-end 2 has anti-aliasing enabled.


If not automatically found, tells GDL where the maps files (coasts rivers, etc, used by MAPS_CONTINENTS) are located.  These are in Shapefile format and newer versions can possibly be present on naturalearthdata.com


Please report bugs, comments, patches or feature requests at https://github.com/gnudatalanguage/gdl/


The primary author of GDL is Marc Schellens <m_schellens@users.sourceforge.net>.  A list of contributors is available in the AUTHORS file shipped with GDL, and on the project website (see above).

The original version of this manual page was written by Sergio Gelato <Sergio.Gelato@astro.su.se>.  It is currently a part of the GDL package, and is maintained by the GDL Team.

See Also

netcdf(3), hdf(1), gsl(3), eigen3, plplot, fftw


2024-03-19 The GDL Team