NCL Home > Documentation

Glossary of NCL and HLU terms

Definitions that are specific to a particular part of the package are prefaced accordingly. For example, definitions that apply only to NCL are prefaced with NCL: .

A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z


adjustable array
An array that is a dummy argument in a Fortran subroutine or function whose dimensionality is determined at runtime. The dimensionality of an adjustable array is supplied in the argument list in which the dummy array name appears, or by values in a COMMON block.


A sequence of two or more images that, when displayed in a rapid sequence, provide the illusion of continuous motion.

A viewable object whose location and usually size are set relative to the viewport or data coordinate space of a base plot. There are three kinds of annotations: intrinsic annotations, embedded annotations, and external annotations.

annotation functions
The functions used to add and remove annotations to and from plot objects. Specifically, these functions are NhlAddAnnotation and NhlRemoveAnnotation for the C and Fortran interfaces.

annotation plot
An annotation that is a plot object and not simply a viewable object. An annotation plot is a subordinate base plot.

The American National Standards Institute, an independent non-profit organization that creates and publishes U.S. national standards (such as Fortran, C, CGM, and so forth) taking input from all sectors of the technical community and the public at large. ANSI also works in collaboration with other standards organizations such as ISO (the International Standards Organization) and IEEE (the Institute of Electrical and Electronics Engineers).

Application Programming Interface.

A program written in C, Fortran, or NCL that utilizes any of the functionality of NCAR Graphics.

application class
Refers specifically to the class App. Objects that are instances of this class are used to keep track of resource databases. Every application must create at least one App object (this will be done automatically for you if you use NhlOpen).

Application Programming Interface
The programming interfaces (C, Fortran, and NCL) to the NCAR Graphics package. These interfaces provide access to the support functions defined in the classes as well as provide additional useful functionality.

application resource file
A resource file that is specific to a particular application. There are two application-specific resource files: a system application-specific resource file and a user application-specific resource file. The user can specify what directories the application-specific resource files are in. By default, the user application-specific resource file is in the local current directory and the system application-specific resource file is in the directory specified by the setting of the environment variable NCARG_SYSAPPRES. Resources defined in the user application-specific resource file will override resources defined in the system application resource file.

area fill pattern
A pattern to use for filling a polygonal area. The patterns are selected by using an integer fill index into a table of patterns.

arithmetic operator
An operator that applies to variables having a numeric data type. Examples are "+" (addition) and "*" (multiplication).

Stands for "American Standard Code for Information Interchange." This is an ANSI Standard specifying a set of 128 characters with their associated coded integer representations.

ASCII file
NCL: A data file that contains integers or floating point data values in ASCII format.

aspect ratio
Specifies the height-to-width ratio of a plot. This term is also applied to characters. For example, characters with an aspect ratio of 2.0 are twice as tall as they are wide.

associative operator
A binary operator that obeys the law of associativity: i.e. a binary operator "R" such that (aRb)Rc = aR(bRc) for all legal operands a, b, and c.

NCL: A singly-dimensioned datum of any type that is assigned to a variable using the ' @ ' operator. An attribute of a variable contains descriptive information about the variable.


background color
The color that will be used as a background color for the entire viewable surface of a physical workstation when plots are drawn on it.

base plot
A plot object responsible for setting the viewport of zero or more plot members relative to its own viewport. There are two kinds of base plot: primary base plots and subordinate base plots. At creation, any plot object is a primary base plot. A plot object ceases to be a base plot when added to another plot object as an overlay. When added as an annotation a plot object becomes a subordinate base plot. A plot object must be a primary base plot for users to draw it or change its workstation.

binary file
A file whose contents are to be interpreted as a sequence of bits, rather than characters. There are different flavors of binary files. A "flat" binary file is a sequence of bits with no ancillary information about the file contents. This type of file is created and read by C programs. Fortran creates and reads flat binary files only when in direct-access mode. All records are the same size in a flat binary file. By default, Fortran creates another type of binary file which can contain variable-length records. This is called a sequential-access binary file. In a sequential-access binary file, record length information is embedded prior to each record.

block statement
A statement that requires one or more individual statements bracketed by delimiters indicating the beginning and end of the block. Examples of block statements are: do-end do, if-then-end if, setvalues-end setvalues.

bounding box
For View class objects, the bounding box for such objects is the smallest rectangle in NDC space that contains all of the marks that would appear on an output workstation if the object were drawn.

built-in function or procedure
A built-in function or procedure in NCL is one that is built into the code for NCL, and hence you don't need to load any NCL scripts to use it. Examples of built-in functions include fspan and addfile. Examples of procedures include system and delete. An example of a function that is not considered a built-in function is gsn_open_wks.


From the wikipedia entry: a software library used to provide a vector-based graphics, device independent API for software developers. In NCL V5.2.0, new cairo workstations were added to provide PNG, TIFF, and alternate PS and PDF output.

cartesian grid
A cartesian grid is the simplest form of a structured grid. It simply consists of square cells arranged uniformly in a matrix. The grid cells are evenly spaced in all directions, and for every column there is the same number of rows and vice versa.

See also rectilinear and curvilinear grids.

CCM history tape format
A proprietary data format used by atmospheric climate simulation models developed at NCAR. (CCM stands for Community Climate Model.)

C function prototype
A C function declaration that declares a function's return type, how many arguments the function takes, and the types of the arguments.

Computer Graphics Metafile.

A relationship that holds between objects. If "A" and "B" are objects, then B is a child of A provided that when B was created, A was specified as being its parent (either in the fourth argument of an NhlCreate call, or in a NCL create expression), or B was made a child of A by using the NhlChangeWorkstation function. If B is a child of A, then the following conditions apply:
    1. B inherits the resource database of A. If viewable, B will display to the same workstation as A; if A is a workstation, then B will draw to A.
    2. Destroying A will destroy B.
    3. Resources can be specified in resource files as: {App obj name} . {parent of A} . {Name of A} . {Name of B} . {resource of B} : {value}.
child/parent hierarchy
The tree structure determined by the child/parent relationship existing among all current objects in an application. A child can have only a single parent, but a parent may have many children. The child/parent hierarchy should not be confused with the class hierarchy. See also class hierarchy.

A template for defining objects that specifies variables, and procedures that operate on those variables. In the context of the NCAR HLU library, the class variables are called resources and the class procedures are called support functions. Objects are members, or instances, of a class formed by assigning specific values to the variables in the class.

class hierarchy
Each class, except the base class, is derived from some other class. The tree structure determined by the derived-class/superclass relationships among all of the classes is called the class hierarchy. The class hierarchy should not be confused with the child/parent hierarchy.

color index
An integer value that represents an index into the current workstation color map. Index 0 represents the background color and 1 the foreground color. Values are limited from 0 to 255, since a workstation color map cannot have more than 256 colors. The use of named colors is recommended over indexed color. See also gsn_draw_colormap.

color map
Same as color table.

color table
A table that associates integer values (called color indices) with RGB color values. In NCL, color tables contain up to a maximum of 256 colors (including the background and foreground colors). There are several predefined color tables, or you can define your own. See also gsn_draw_colormap.

NCL: Same as an NCL statement.

comment line
A line in an NCL code beginning with a semi-colon (;). A line in an NCL resource file beginning with an exclamation point (!). Comment lines contain descriptive information about the code.

composite class
A class that combines the resources of other classes with its own. A composite class inherits resources and functions from its superclass and it shares the resources from its composite members by the process of resource forwarding. If the composite class members have support functions, these functions do not apply to the composite class.

composite class member
A class used as part of the functionality of a composite class.

composite class resource
A resource available to a composite class by way of resource forwarding from a member class of the composite class.

Computer Graphics Metafile
A graphics metafile is a file that contains encoded vector graphics elements such as lines, colors, dash patterns, markers, and so forth. The Computer Graphics Metafile (CGM) is a precisely-defined formatting for a graphics metafile as defined and standardized by ANSI. NCL produces a version of the CGM that is called a conforming private encoding that can easily be converted to and from standard CGM by using the filters ncgm2cgm and cgm2ncgm. The NCAR private encoding is also called NCAR CGM, or NCGM.

contour plot
A plot of 2D data containing contour lines (lines marking points of equal elevation) to indicate surface shape. Contour plots may have color fill between contour lines and may have label bars and annotations.

coordinate addressing
A way of indexing array elements by specifying coordinate values rather than the normal integer array indices. Coordinate addressing is effected by using coordinate variables.

coordinate subscripts
Coordinate subscripts use the coordinate variables associated with a variable to determine which indexes are used in the selection. When specifying a coordinate subscript, braces '{' and '}' indicate the start and end values of the coordinate variable that will be used to select the indexes.

coordinate variable
Another word for coordinate variable.

coordinate variable
NCL: A value associated with a named dimension of a variable or file variable that contains numerical coordinate information for each index of the dimension. Coordinate variables must be singly-dimensioned values. Warnings are produced if the array of values assigned is not monotonically increasing or decreasing.

The NCGM interpreter distributed with NCL.

curvilinear grid
A curvilinear grid is one which cannot be uniquely accessed by a pair of one-dimensional coordinate arrays. These grids require a pair of two-dimensional arrays to describe grid point locations.

See also cartesian and rectilinear grids.


dash pattern
A pattern (such as "solid", "dotted", and so forth) to use as a line style when lines are plotted using the NhlDraw function. Dash patterns are selected by using an integer index into a table of dash patterns.

data classes
Any of the classes that are used to provide user input data to any of the objects that utilize such data. These classes are the CoordArrays class, the CoordArrTable class, and the ScalarField class.

data conversion
The process of converting data stored in one format to another format, such as converting data stored as integers to data stored as floating point numbers. Some objects, such as ScalarField, perform automatic data conversions.

data coordinate space
The coordinate space that is appropriate to input data. Transformations can be effected between data coordinate space and NDC (see Normalized Device Coordinates).

data specific resource
A resource of a particular class, such as the XyPlot class, that can be used to modify the attributes of data supplied via a DataSpec object. Data specific resources can be used to control attributes such as curve colors, dash patterns, marker sizes, marker colors, and so forth.

data transformation
A process that transforms data from one coordinate space to another, such as transforming data in logarithmic space to data in linear space.

data type
A data type is a representation of data that defines a size and valid range for numerical data or provides a reference to a file or HLU graphical object.

decision statement
A language construct allowing for conditional program execution based on the truth or falsity of an expression. The basic decision statement in NCL is if.

degenerate dimension
An array is said to have degenerate dimensions if any of its dimension sizes are equal to 1. For example, if you have a 3-dimensional array dimensioned 1000 x 1 x 60, then the middle dimension is called a degenerate dimension. These dimensions are sometimes referred to as singleton dimensions.

derived class
See subclass.

Distributed Ocean Data. Now referred to as OPeNDAP.

drawable object
See viewable object.

draw function
Specifically, either the NhlDraw function of the C or Fortran interfaces, or the draw function of NCL, that is invoked to plot a View object.


embedded annotation
An annotation that may be incorporated as part of the functionality of subclasses of the Transform class. It is managed internally by the controlling PlotManager.

Encapsulated PostScript
Encapsulated PostScript (EPS) is a subset of regular PostScript. The restrictions placed on EPS files are for making it an appropriate format for importing into applications that import PostScript.

Encapsulated PostScript Interchange Format
Encapsulated PostScript Interchange Format (EPSI) files are Encapsulated PostScript files that have a "preview bitmap" that represents the PostScript image contained in the file. The bitmap (and it is a bitmap and not a color map) can be used by an importing application to quickly display a picture of the imported file.

[Note: this definition was taken straight from Wikipedia]
Endianness generally refers to sequencing methods used in a one-dimensional system (such as writing or computer memory). The two main types of endianness are known as big-endian and little-endian. Systems which exhibit aspects of both conventions are often described as middle-endian. When specifically talking about bytes in computing, endianness is also referred to as byte order.

In NCL version 5.2.0, new data types were added: int64 (aka long long), uint64 (unsigned long long), ulong (unsigned long), uint (unsigned int), and ushort (unsigned short). These data types are collectively known as enumeric types. They are part of the super-numeric type called snumeric, which includes both numeric and enumeric.

For more information, see the NCL data types overview section in the Reference Manual.

see Encapsulated PostScript

see Encapsulated PostScript Interchange Format

error class
A class that is used to configure the error reporting module of the HLU library. For any application, there is precisely one error object created, and it is created automatically for you. The error class defines several resources for controlling error reporting.

NCL: Any sequence of NCL operators and operands that results in the computation of a value. In particular, any literal value is an expression and any variable is an expression. Also, arrays are expressions as well as functions. Operators applied to expressions are expressions.

external annotation
An annotation consisting of an arbitrary user-created viewable object added to a plot object. The user controls the location and size relative to the base plot by manipulating the resources of a user-accessible AnnoManager object.


NCL: A data file residing external to NCL in one of NCL's supported data formats.

file name suffix
A suffix appended to a file name to indicate its type. NCL recognizes the following supported suffixes: ".nc" for netCDF, ".hdf" for HDF, ".h5" for HDF5, ".he" ".he2" for HDF-EOS, ".he5" for HDF-EOS5, ".grb" ".grib" ".grb2" ".grib2" for GRIB, ".shp" for shapefile, and ".ccm" for CCM History Tape. The obsolete suffix ".cdf" for a netCDF file is also recognized.

file variable
NCL: A variable, created by the NCL addfile function, that contains a reference to a file.

fill value
NCL: Same as missing value.

fixed grid
A fixed grid is a type of a rectilinear grid where each grid point can be uniquely accessed by one-dimensional, monotonically increasing or decreasing arrays (i.e. the coordinates are orthogonal). In cartesian coordinates, these may refer to the "x" and "y" coordinates, while on the globe these are longitude and latitude arrays. The grid spacing may be different in the latitude (y) and longitude (x) coordinates, but it is constant.

The special case where the grid spacing is the same in the latitude/longitude directions is called an "equally spaced" grid. Pole points may or may not be present. Some examples include: 1x1, 2x5, and 2.5x2.5 degree grids.

fixed offset grid
A fixed-offset grid is analogous to the fixed grid, but refers to the special case where the latitude/longitude grids are offset for the traditional Greenwich Meridian or poles.

A file that contains detailed information used to plot characters. Fontcaps have a human-readable ASCII form and a binary form that is readable by ctrans.

foreground color
The color associated with color index 1. This is used as the default color in drawing viewable objects.

Fortran 90 interface block
A sequence of Fortran 90 statements (bracketed by special delimiting statements) used to describe a procedure interface. The statements in the interface block contain a declaration for the procedure and declarations for the dummy arguments and no executable statements.

HLU: Any member of the NCL functions or the HLU API.
NCL: An identifier with a list of parameters separated by commas and enclosed in parentheses. Functions return values when called. A function is defined by NCL source unlike the NCL intrinsic function.


Gaussian grid
A Gaussian grid is a type of a rectilinear grid one where each grid point can be uniquely accessed by one-dimensional latitude and longitude arrays (i.e. the coordinates are orthogonal). The longitudes are equally spaced while the latitudes are unequally spaced according to the Gaussian quadrature. There are no grid points at the poles. See also rectilinear and curvilinear grids.

A file format used for the storage and on-line retrieval of bitmapped graphical data. GIF stands for "Graphical Interchange Format"; it was created by the CompuServe Corporation in 1987.

A file that contains detailed information used to define the capabilities of a specific plotting device. Graphcaps have a human-readable ASCII form or a binary form that is readable by ctrans.

graphical object
NCL: An NCL value of type graphic. A graphical object is an identifier for an HLU object.

Graphical User Interface
A non-programmatic, graphical, interface to the functionality of NCAR Graphics. Such an interface is sometimes referred to as a "point-and-click" interface, since that is how the interaction is accomplished.

GRIB (GRIdded Binary) is a data format used for the storage of historical and forecasted weather data. The format is standardized by the World Meteorological Organization (WMO). There are two versions: GRIB1 and GRIB2. NCL supports both versions.

Acronym for "Getting Started Using NCL."

GSUN scripts
NCL scripts that provide an "easy" interface to the graphics capabilities of NCL. Some examples are gsn_xy and gsn_csm_contour_map.

Graphical User Interface.


See HDF4.

HDF4 (also known as HDF) is a library and multi-object file format for storing and managing data between machines. There are two versions of HDF technologies that are completely different: HDF4 and HDF5. HDF4 is the first HDF format.

HDF5 (Hierarchical Data Format) is a data model, library, and file format for storing and managing data. It supports an unlimited variety of datatypes, and is designed for flexible and efficient I/O and for high volume and complex data.

HDF-EOS (Hierarchical Data Format - Earth Observing System) is a self-describing file format for transfer of various types of data between different machines based upon HDF. HDF-EOS is a standard format to store data collected from EOS satellites: Terra, Aqua and Aura. Two versions of HDF-EOS libraries are developed: HDF-EOS2 based on HDF4 and HDF-EOS5 based on HDF5.

High Level Utilities
Objects, like XyPlot objects, Contour objects, TextItem objects, and so forth, that can be created and manipulated by a set of library functions, callable from either a C program, a Fortran program, the NCAR Command Language, or a GUI. High Level Utilities are also referred to as HLUs and are to be distinguished from the Low Level Utilities, or LLUs.

HLU resource string
A character string identifying a particular resource of a class. These are the resources listed in the descriptions of the classes.

High Level Utilities.

Acronym for Hue/Saturation/Value. An additive color system based on the attributes of color (hue), percentage of white (saturation), and value (brightness or intensity).


NCL: The name of a variable, function, or procedure.

immediate mode
A mode used by certain API functions that produces immediate drawing without invoking a draw function.

indexed color
See color index.

When specific values are assigned to all the resources defined in a class, the result is an instance of that class. Any instance of any class is called an object. Default values exist for all resources; before creating an object, users may override any default value.

instance hierarchy
Same as child/parent hierarchy.

A class is said to inherit resources or support functions from its superclasses, since those functions and resources are available to the subclass. See superclass, and composite class.

A program that transforms statements into machine code a statement at a time. The ncl executable is an interpreter of the NCL language.

intrinsic annotation
An annotation available as composite class member of the PlotManager class. Intrinsic annotations are available to any class of plot object and include TickMark, Title, LabelBar, and Legend annotations. The PlotManager manages these annotations internally.

intrinsic function
NCL: An identifier with a list of parameters, the parameters being separated by commas enclosed and in parentheses. Intrinsic functions return values when called. An intrinsic function is not defined by NCL source; it is a C or Fortran routine that has been added to the NCL function set. Intrinsic functions often perform operations that NCL source does not support.

irregular rectangular coordinate space
A 2-dimensional rectangular grid that has unequal spacing along the X and/or Y axes.

The International Standards Organization that publishes international standards. (see ANSI).

intrinsic procedure
NCL: An identifier with a list of parameters, the parameters being separated by commas enclosed in parentheses. An intrinsic procedure is not defined by NCL source; it is a C or Fortran routine that has been added to the NCL procedure set. Intrinsic procedures often perform operations that NCL source does not support.



NCL: A word reserved by NCL that not allowed to be used as a variable or function name.


label bar
A specialized label consisting of a bar of filled rectangular areas that are labeled to correspond with areas from an adjoining plot. Label bars can be filled with black-and-white patterns, with color, or with both. Label bars are commonly used with contour plots and with other types of plots where area pattern fills or color are used to differentiate values in the plot.

See portrait

lazy evaluation
NCL: The process whereby relational expressions are assigned a value as soon as it is possible to do so, without necessarily evaluating all of the components in the expression. For example, the expression (1 .lt. 3) .or. (2 .lt. 1) can be assigned the value True immediately after evaluating (1 .lt. 3) without having to evaluate (2 .lt. 1).

A specialized annotation that formats a series of lines or markers of varying styles along with adjoining explanatory labels. Legends are designed to serve as "keys" for an associated plot.

literal array
NCL: An array of values specified using literal values, these values being separated by commas and enclosed in ' (/ ' and ' /) ' .

literal value
NCL: A single scalar value expressed by its actual string value (i.e. not referenced by a variable). For example, 1, 1.414 and "string" are literal values.

Low Level Utilities.

local resources,
Resources defined in a particular class that are not inherited from another class.

logical operator
A operator that returns a true value or a false value depending on the truth or falsity of its operands. The logical operators in NCL are: .and., .or., .xor., .not..

loop statement
A language construct that allows for code repetition with incremental values set for a variable or variables. The looping statements in NCL are: do and do while.

Low Level Utilities
Traditional NCAR Graphics as it existed before the HLUs or NCL were developed. It is a package of about 500 graphics routines. User entries have both C and Fortran interfaces.


machine-independent data format
Same as Network-transparent data format.

See polymarker.

member class
One of the class components of a composite class.

NCL: Information used to describe data, such as dimension names, variable attributes, valid ranges, and so forth.

A file containing encoded graphical elements. Metafiles are used for storing and transporting graphics images. In the context of NCL and NCAR Graphics "metafile" is generally synonymous with NCGM.

missing value
NCL: A special value for a variable or array element indicating that no legal data has been specified for that quantity. See the section on missing data in the evaluation of expressions in the NCL Language documentation details on how these missing values are handled.

A sequence of numeric values is monotone (or monotonic) if either: each element in the sequence is larger than (or equal to) its predecessor, or each element in the sequence is smaller than (or equal to) its predecessor. A sequence is monotonically increasing if each element in the sequence is larger than its predecessor; a sequence is monotonically decreasing if each element in the sequence is smaller than its predecessor. A sequence is monotonically non-decreasing if each element in the sequence is larger than, or equal to, its predecessor. A sequence is monotonically non-increasing if each element in the sequence is smaller than, or equal to, its predecessor.


named color
A string representing a predefined color. Named colors can be used with just about any graphical resource that defines the color of a plot attribute (like a line color or a polygon fill color). This method is preferred over the use of indexed color.

named dimension
NCL: A dimension of a variable or file variable that has been assigned a name using the '!' operator.

NaN stands for "not a number". It usually represents undefined or unrepresentable numeric values, for example, from a divide by zero operation. NCL cannot handle NaN values. They must be converted to missing values before you can do any calculations or plotting. See the functions isnan_ieee and replace_ieeenan.

native grid
A native grid is a data on lat/lon grid that's projected to a particular map projection, for example, a Lambert Conformal map. If you have data on a native grid and you know the exact parameters of the map projection, then NCL can plot the data without needing the latitude/longitude arrays.

NCAR Command Language
A language written for the purpose of interactive data manipulation and display. NCL has a command line interface and will accept netCDF-3, netCDF-4, HDF4, HDF-EOS, HDF5, HDF-EOS5, GRIB1, GRIB2, shapefile, or ASCII input files. NCL also provides an easy interface to the HLUs.

NCAR Computer Graphics Metafile
The NCAR private binary encoding of a Computer Graphics Metafile.

NCAR Computer Graphics Metafile.

NCAR Command Language.

NCL resource list
NCL: An NCL resource list is a list of HLU resource strings followed by a " : " followed by a valid NCL expression.

Normalized Device Coordinates. A coordinate system that describes positions on a virtual plotting device. The lower left corner corresponds to (0,0), and the upper right corner corresponds to (1,1). NDC space will be mapped onto the largest square which will fit on an actual plotting device. PostScript output is centered on the page by default, but options exist for positioning PostScript output anywhere on the page. See the PSWorkstation for details.

Refers to the interpreter that interprets NCL statements.

NetCDF (network Common Data Form) is an interface for scientific data access and a library that provides an implementation of the interface. There are different kinds of NetCDF files: classic, 64-bit offset, netCDF-4 classic, and netCDF-4. See the NetCDF FAQ for more information.

netCDF 64-bit offset
In 2004, the 64-bit offset format variant was added. Nearly identical to the netCDF classic format, it allows users to create and access far larger datasets than were possible with the original format. (A 64-bit platform is not required to write or read 64-bit offset netCDF files.)

netCDF classic
The classic format was the only format for netCDF data created between 1989 and 2004. As of netCDF version 4.2.x, it is still the default format for new netCDF data files, and the form in which most netCDF data is stored. Some users think of this as "netCDF-3".

netCDF-4 classic
At the same time that the netCDF-4 format was as introduced, the "netCDF-4 classic" format was added for users who needed the performance benefits of the new format (such as compression) without the complexity of a new programming interface or enhanced data model.

In 2008, the netCDF-4 format was added to support per-variable compression, multiple unlimited dimensions, more complex data types, and better performance, by layering an enhanced netCDF access interface on top of the HDF5 format.

network-transparent data format
A format for encoding data that removes any machine dependencies that might be involved in encoding the data. Typical examples of such data formats are netCDF and HDF.

Any data type that represents a numerical value. The numeric data types are: double, float, int64 (aka long long), uint64 (unsigned long long), long, ulong (unsigned long), integer, uint (unsigned int), short, ushort (unsigned short), and byte.

In NCL version 5.2.0, new data types were added: int64 (aka long long), uint64 (unsigned long long), ulong (unsigned long), uint (unsigned int), and ushort (unsigned short). These data types are collectively known as enumeric types.

To keep NCL backwards-compatible, we kept the name numeric to refer to data types double, float, long, integer, short, and byte, but created a new name snumeric (super-numeric) to represent both numeric and enumeric.

For more information, see the NCL data types overview section in the Reference Manual.

numeric data type
A data type for numeric quantities. In NCL the numeric data types are: double, float, int64, uint64, long, ulong, integer, uint, short, ushort, and byte.

non-numeric data type
A data type for non-numeric quantities. In NCL the non-numeric data types are: string, character, graphic, file, and logical.


An object is created from a class by assigning specific values for the class resources. See class and instance.

OPeNDAP, an acronym for "Open-source Project for a Network Data Access Protocol", is a data transport architecture and protocol widely used by earth scientists that simplifies all aspects of scientific data networking, allowing simple access to remote data. Visit for more information.

output primitive
Procedures and functions for producing graphics output at the lowest level. GSUN procedures/functions exist for drawing lines (gsn_polyline, gsn_polyline_ndc, gsn_add_polyline), text (gsn_text, gsn_text_ndc, gsn_add_text), filled areas (gsn_polygon, gsn_polygon_ndc, gsn_add_polygon), and markers (gsn_polymarker, gsn_polymarker_ndc, gsn_add_polymarker).

A transform overlaid on a base plot using the add overlay function. The base plot sets the viewport of the overlay to match its own and transforms the coordinate data of the overlay into its own coordinate space. Only that portion of the overlay's coordinate space that intersects the coordinate space of the managing plot will be visible in the plot output. If the overlay is a plot object, it gives up its base plot status. The base plot to which the overlay is added assumes responsibility for managing the overlay's plot members.

overlay functions
The functions used to add and remove overlays to and from plot objects. Specifically, these functions are NhlAddOverlay and NhlRemoveOverlay for the C and Fortran interfaces.

overlay plot
An overlay created from a plot object rather than from a simple transform.

overlay sequence
The ordering of the transforms in a plot or subplot that contains overlays. The base plot is always first, followed by each overlay in an order that may be manipulated through the overlay functions. The overlay sequence determines the basic drawing order of the plot. The base plot is drawn first; each succeeding overlay is drawn on top of the preceding transforms. Annotations are not affected by the overlay sequence; they always drawn after all the transforms.


A relationship that exists between objects. If A and B are objects, then A is a parent of B if and only if B is a child of A. See child for more information.

An acronym for Portable Document Format, a file format created by Adobe Systems, Inc. It uses the PostScript printer description language and is highly portable across computer platforms. PDF documents are created with Adobe Acrobat or other programs and can be viewed with Adobe Acrobat Reader and other PDF reader programs.

Depending on context, the word plot may be used to mean:
  1. A plot object.
  2. A primary base plot and all its plot members.
  3. The output resulting from drawing a primary base plot and all its plot members.
  4. The output resulting from drawing any arbitrary collection of viewable objects.

NCL: The plot_class in NCL is the same as the HLU class pointer used in the HLU API to specify what type of object to create. The NCL plot_class identifier is spelled the same as the HLU class pointer.

plot member
A viewable object managed by a base plot. If the base plot is a subordinate base plot then the object is indirectly a plot member of the complete plot managed by the primary base plot. Drawing the primary base plot causes all its plot members to be drawn. A plot member is either an overlay or an annotation. Although an annotation can be any arbitrary view , an overlay must be a view belonging to the Transform class. A plot member must belong to the same Workstation as its base plot and cannot be drawn independently. A view cannot belong as a plot member to more than one base plot at a time.

plot object
A Transform object instantiated with an active PlotManager. In general, unless otherwise restricted by their specific class, plot objects have the ability both to manage other viewable objects as plot members and to be managed as plot members themselves. A plot object that manages plot members is called a base plot. If the managing plot object is itself managed as a plot member, it is a subordinate base plot. If it manages itself (i.e. is not a plot member) it is a primary base plot. At creation, all plot objects are primary base plots.

An array of coordinates specifying positions where certain specified symmetric symbols (markers) such as circles, dots, and so forth will be plotted.

portrait mode
(Definition taken from Wikipedia) Portrait mode and landscape mode refer to the orientation of text (and pictures) on a printed page. (The paper must be a rectangle, however in practice square sheets are hardly ever used.) In portrait mode the text is printed on the paper such that the reader will turn the long side of the paper vertical and the short side horizontal. In landscape mode on the other hand, the long side is horizontal, and the short side vertical (like most landscape paintings).

A general-purpose programming language that contains a rich set of graphics operators. PostScript is produced by many popular word processing and graphics packages and can be displayed on a wide variety of printers, plotters, and workstation screens.

primary base plot
A self-managing plot object. A base plot that directly manages any number of plot members, consisting of overlays and annotations, but is not itself a plot member. At creation all plot objects are primary base plots. A plot object must be a primary base plot for the user to draw it or change its workstation.

primitive (see output primitive)

NCL: An identifier with a list of parameters, these parameters being separated by commas and enclosed in parentheses. Procedures do not return values when called.

see PostScript



rectilinear grid
A rectilinear grid is very similar to a cartesian grid in that it is a basic rectangular matrix arrangement of data. The one difference is that the uniform spacing restriction is lifted. Rectilinear grids are usually represented by one-dimensional coordinate variables.

See also cartesian, gaussian, and curvilinear grids.

relational operator
A operator that returns a true value or false value depending on a relation between its operands. The relational operators in NCL are: .le., .lt., .ge., .gt., .ne., .eq..

A variable defined as part of the definition of a class. Resource values in objects can be set by using a NhlCreate function or a NhlSetValues function. Resource values can be retrieved using a NhlGetValues function.

resource file
A file that can be used to set values for resources. There are four different resource files. See system resource file and user resource file.

resource forwarding
A technique that makes the resources of member classes available to a composite class.

Stands for the red, green, blue color space where colors are specified as triplets of floating point numbers between 0.0 and 1.0 inclusive. The triplet gives the percentage intensities for the red, green, and blue components of a color. The triplet <1,.0.,0.> would indicate a full percentage of red, and no green or blue percentage, for example.

Stands for the red, green, blue, alpha color space where colors are specified as quadruplets of floating point numbers between 0.0 and 1.0 inclusive. The first three values of the quadruplet gives the percentage intensities for the red, green, and blue components of a color. The fourth value gives the percentage of opaqueness of that color. An opacity value of 1.0 means the color is fully opaque, and a value of 0.0 means it is fully transparent. The quaddruplet <1,.0.,0.,0.5> would indicate the color red at half opacity. The usage of RGBA colors was introduced in NCL V6.1.0.


NCL: A single element of data of any type is referred to as a scalar value.

NCL: A single element value of the logical data type with no missing values.

NCL: The range or area within a program in which an identifier is meaningful.

A file containing a sequence of program statements that can be submitted to an interpreter for execution.

self-describing data format
A format for encoding data that can contain information that describes the data being encoded. Typical examples of such data formats are netCDF, HDF, and HDF5.

The number of dimensions of an array. The statement a = new( (/ 2, 3, 5 /), float) would create an array a of shape 3 (i.e. a has three dimensions).

A shapefile is a popular geospatial data format for geographic information systems software. It is developed and regulated by Esri as a (mostly) open specification for data interoperability among ESRI and other software products. A "shapefile" commonly refers to a collection of files with ".shp", ".shx", ".prj", ".dbf", and other extensions on a common prefix name (e.g., "lakes.*"). NCL

simple overlay
An overlay created from a simple transform.

simple transform
A transform object created without an active PlotManager. Unlike a plot object, a simple transform cannot manage any plot members, either as annotations or as overlays. Therefore, the only elements that appear when a simple transform is drawn are those implemented within the object itself. However, unless restricted by its particular class, a simple transform may itself become an annotation or an overlay of a base plot. Since a plot object has all the capabilities of a simple transform and none of the limitations, the main reason for creating a simple transform would be to conserve system resources when PlotManager capabilities are not required.

singleton dimension
See degenerate dimension.

The number of elements in array dimensions. The statement a = new( (/ 2, 3, 5 /), float) would create an array a that has a first dimension of size 2, a second dimension of size 3, and a third dimension of size 5.

In NCL version 5.2.0, a new data type called snumeric was added, which is short for super-numeric. This type includes includes both numeric and enumeric types. snumeric types include double, float, int64 (aka long long), uint64 (unsigned long long), long, ulong (unsigned long), integer, uint (unsigned int), short, ushort (unsigned short), and byte.

For more information, see the NCL data types overview section in the Reference Manual.

A non-comment line of code (or a line of code prior to any commenting). A line of NCL code contains all continuations resulting from use of the "\" symbol.

To cover an area with small dots.

The path an idealized particle would follow if introduced into a wind or fluid flow. For example (as an approximation to the ideal), the path a speck of dust would take in a wind.

Streamline plot
A plot representing a vector field using streamlines, based upon 2-dimensional data. It may also contain tick marks and titles.

The increment indicator in a subscript specifier. Using m:n:i as a subscript means to take the individual subscript values starting with m and ending with n in strides of i. The stride must always be an integer and should be thought of as a skip indicator rather than an additive increment value, since coordinate subscripts may not always be integers. A stride of 2 means to take every second value after the first, a stride of 3 means take every third value, and so forth.

NCL: A single language construct within NCL that performs a specific task.

statement list
NCL: A sequence of statements separated by a carriage returns (\n).

structured grid
Structured grids are the exact opposite of unstructured meshes. A structured grid gets its name from the nature of having a structure implicitly defined by the arrangement of the data. A structured grid has a basic rectangular matrix structure that makes storage and use easy as integer offsets (Typically named i, j, and k) can be used to access individual data points. Data points are arranged into rectangular or cubic structures by simply connecting them to their neighboring i, j, and k cells. Three types of structured grids include cartesian, rectilinear, and curvilinear grids.

A class B is a subclass of A if B has in it all of the resources and support functions of A (B may have additional resources and support functions as well). If B is a class derived from A, then B is said to inherit its resources and support functions from A. If B is derived from A, then it is also said that B is a subclass of A.

subordinate base plot
A plot member that is an annotation plot. A subordinate base plot sets the viewport of the plot members it controls, while its own viewport is set by the base plot that controls it. Unlike a primary base plot, the user cannot directly draw or change the workstation of a subordinate base plot. A subordinate base plot and the plot members it manages are known collectively as a subplot.

The portion of a plot that is managed by a subordinate base plot.

A class A is a superclass of class B if A is on the same branch of the class hierarchy tree and A is higher on that branch.

superclass resource
A resource that one class inherits from a superclass.

supported data format
Any of the formats that can be read by the NCL addfile function. The supported formats are: netCDF, HDF, HDF-EOS, HDF5, HDF-EOS5, GRIB (1 and 2), shapefile, and CCM History Tape. You do not have to know the details of these formats in order to use them with NCL.

support function
A function defined as part of a class definition.

system resource file
There are four files where resources can be set - two of these files are system resource files and the other two are user resource files. The name of one of the system resource files is specified by the setting of the environment variable NCARG_SYSRESFILE; the other system resource file is specified in an application-specific manner. See application resource file.


text function codes
Special characters embedded in a text string, usually starting and ending with the tilde ("~") character. Text function codes provide the capability for selecting various fonts, doing superscripts and subscripts, taking complete control of the positioning of characters relative to one another, and last but not least, "zooming" characters in either width or height, or both.

tick marks
Marks along an axis of a plot that are perpendicular to the axis and serve to divide the axis (or parts of the axis) into equal or logarithmetically spaced parts.

A Transform object.

Transform class
The Transform class is a subclass of the View class that supports transformations from data coordinate space into the NDC space occupied by the Transform class instance's viewport. Transform subclasses may include the PlotManager class as a composite class member. The Transform class provides a resource for activating or deactivating the PlotManager when a Transform instance is created. In addition, the Transform class provides support functions for converting between data coordinate space and NDC space, for drawing immediate mode graphics primitives, and for adding and removing overlays and annotations from plot objects.

Transform object
An object that is an instance of the Transform class. Transform objects become plot objects when created with an active PlotManager instance. A Transform object created without an active PlotManager is called a simple transform.


unstructured grid
See unstructured mesh.

unstructured mesh
Unstructured meshes are the exact opposite of structured grids, where the connectivity between points must be explicitly defined for every set of points. This makes them significantly more difficult and complex, and the nice relationships between neighboring cells or edges is no longer automatic and must be constructed manually. However, they are much more flexible in their ability to define complex shapes because they have no constraints on their arrangement.

Unstructured meshes are typically defined as points and cells. Cells are collections of points to define basic 2D or 3D primitives such as triangles, cubes, and tetrahedra.

user resource file
There are four files where resources can be set - two of these files are user resource files and the other two are system resource files. The name of one of the user resource files is specified by the setting of the environment variable NCARG_USRRESFILE; the other user resource file is specified in an application-specific manner. See application resource file.


NCL: A name that can contain a singly-dimensioned or multi-dimensioned data array, dimension names, coordinate variables, attributes, and so forth.

Vector plot
A plot representing a vector field by drawing glyphs that represent magnitude and direction at grid points based on 2-dimensional data. It may also contain tick marks, titles, and/or a label bar. Three glyph styles are available: a basic line-drawn arrow, a filled arrow with an option edge, and a standard wind barb.

A viewable object.

viewable object
An object that is an instance of the View class.

View class
An object can be drawn only if it is an instance of the View class. The View class provides resources for sizing and positioning objects on an output device (workstation). The View class also provides a support function for determining the bounding box of a given object in the class. A View class object must have a Workstation class parent.

View object
A viewable object.

For View objects, the viewport is a rectangular subregion of NDC space that specifies where the View object will be placed when drawn. The precise meaning of the viewport depends on the View object. For example, for XyPlot objects, the viewport specifies where the grid containing the curves will be placed, and the labeling (if any) will be drawn outside of the viewport. On the other hand, for TextItem objects, the viewport will be a rectangle surrounding the text string.

visualization block
NCL: A group of NCL resources specified in either an NCL create, setvalues, or getvalues statement. Visualization blocks are used to create, modify, or inquire about the values of resources of objects.


Used in NCL and HLU terminology to mean a valid output device such as an X Window System display, a PostScript file, a PDF files, or an NCGM.

workstation class
A class that provides interfaces to specific output devices.

wrapit interface block
A sequence of Fortran 77 statements that specify a procedure and its arguments, similar to C function prototypes and Fortran 90 interface blocks. Wrapit interface blocks are used by wrapit77, a program for generating wrappers.

wrapper function
A C function that provides an interface between NCL and an existing Fortran or C subroutine or function. The wrapper intercepts an NCL function or procedure, does the appropriate argument checks and conversions, then calls the existing code.


XY plot
A plot containing curves made up of X/Y coordinate pairs. It may also contain tick marks, titles, and/or a legend.