Grids define the spatial regions over which the grid functions will be defined as well as their storage. A grid declaration can take one of several forms, the longest of which would be something like:

uniform rect[x,z] grid g1 [1:Nx][1:Nz] {xmin:xmax}{zmin:zmax}

The first word can be ` uniform` or ` nonuniform`,
though only the former is
currently defined. Next comes the name of the coordinate system followed
by a list of coordinates on which the grid is defined. The above grid is
two dimensional with coordinates **x** and **z**.
After the coordinate
system comes the reserved word ` grid` followed by the grid name. Next
comes the index region. In this example, the first index starts at 1 and
goes to ` Nx`,
while the second starts at 1 and goes to ` Nz`. ` Nx`
and ` Nz` must be defined elsewhere. The index regions can contain
arbitrary expressions such as ` [A*B+C-2:4*Nx-5/a]`, however, as discussed
in section 2.2, it is best to keep to forms like ` [1:Nx]`
and ` [0:Nx-1]`, where ` Nx` has been declared as a parameter. Finally,
comes the coordinate region which gives the actual spatial ranges of the
coordinates. In the example, we have and
. Coordinate regions must be of the form
` {name1:name2}`, where ` name1` and ` name2`
have been declared as parameters.

Other forms of the grid declaration leave out one or more of the above parts. The minimum allowable declaration is:

uniform rect grid g2

This declaration (along with the example coordinate declaration in section
1.3) declares ` g2` to be a three dimensional grid with
coordinates **x, y** and **z**.
The index region will be
` [0:Nx-1][0:Ny-1][0:Nz-1]` for C output and
` [1:Nx][1:Ny][1:Nz]` for FORTRAN output. The
coordinate region will be
` {xmin:xmax}{ymin:ymax}{zmin:zmax}`

Thu Jun 1 09:34:30 CDT 1995