**Table of Contents**

A variable's spatiotemporal dimensions are used to locate data values in
time and space. This is accomplished by associating these dimensions with
the relevant set of latitude, longitude, vertical, and time coordinates.
This section presents two methods for making that association: the use of
*coordinate variables*, and the use of
*auxiliary coordinate variables*.

All of a variable's dimensions that are latitude, longitude, vertical,
or time dimensions (see Section 1.2, “Terminology”) must have
corresponding coordinate variables, i.e., one-dimensional variables
with the same name as the dimension (see examples
in Chapter 4, *
Coordinate Types
*). This is the only method of
associating dimensions with coordinates that is supported
by [COARDS].

All of a variable's spatiotemporal dimensions that are not latitude,
longitude, vertical, or time dimensions are required to be associated
with the relevant latitude, longitude, vertical, or time coordinates
via the new `coordinates`

attribute of the variable.
The value of the `coordinates`

attribute is
*a blank separated list of the names of auxiliary coordinate variables*.
There is no restriction on the order in which the auxiliary coordinate
variables appear in the `coordinates`

attribute string.
The dimensions of an auxiliary coordinate variable must be a subset of
the dimensions of the variable with which the coordinate is associated
(an exception is label coordinates (Section 6.1, “Labels”) which
contain a dimension for maximum string length). We recommend that the
name of a multidimensional coordinate variable should not match the name
of any of its dimensions because that precludes supplying an associated
coordinate variable for the dimension. This practice also avoids potential
bugs in applications that determine coordinate variables by only checking
for a name match between a dimension and a variable and not checking that
the variable is one dimensional.

The use of coordinate variables is required whenever they are applicable.
That is, auxiliary coordinate variables may not be used as the only way
to identify latitude and longitude coordinates that could be identified
using coordinate variables. This is both to enhance conformance to COARDS
and to facilitate the use of generic applications that recognize the NUG
convention for coordinate variables. An application that is trying to
find the latitude coordinate of a variable should always look first to
see if any of the variable's dimensions correspond to a latitude
coordinate variable. If the latitude coordinate is not found this way,
then the auxiliary coordinate variables listed by the
`coordinates`

attribute should be checked. Note that it
is permissible, but optional, to list coordinate variables as well as
auxiliary coordinate variables in the `coordinates`

attribute. The `axis`

attribute
is not allowed for auxiliary coordinate variables. Auxiliary coordinate
variables which lie on the horizontal surface can be identified as such
by their dimensions being horizontal, which can in turn be inferred from
their having an axis attribute of `X`

or `Y`

, or from their units in the case of latitude and longitude
(see Chapter 4, *
Coordinate Types
*).

If the coordinate variables for a horizontal grid are not longitude
and latitude, it is recommended that they be supplied
*in addition* to the required coordinates.
For example, the Cartesian coordinates of a map projection should be
supplied as coordinate variables in addition to the required
two-dimensional latitude and longitude variables that are identified
via the `coordinates`

attribute.
The use of the `axis`

attribute with
values `X`

and `Y`

is recommended
for the coordinate variables(see Chapter 4, *
Coordinate Types
*).

It is sometimes not practical to specify the latitude-longitude location of data which is representative of geographic regions with complex boundaries. For this purpose, provision is made in Section 6.1.1, “Geographic Regions” for indicating the region by a standardized name.

When each of a variable's spatiotemporal dimensions is a latitude, longitude, vertical, or time dimension, then each axis is identified by a coordinate variable.

**Example 5.1. Independent coordinate variables**

dimensions: lat = 18 ; lon = 36 ; pres = 15 ; time = 4 ; variables: float xwind(time,pres,lat,lon) ; xwind:long_name = "zonal wind" ; xwind:units = "m/s" ; float lon(lon) ; lon:long_name = "longitude" ; lon:units = "degrees_east" ; float lat(lat) ; lat:long_name = "latitude" ; lat:units = "degrees_north" ; float pres(pres) ; pres:long_name = "pressure" ; pres:units = "hPa" ; double time(time) ; time:long_name = "time" ; time:units = "days since 1990-1-1 0:0:0" ;

`xwind(n,k,j,i)`

is associated with the coordinate values `lon(i)`

, `lat(j)`

, `pres(k)`

, and `time(n)`

.