4.2 NF90_DEF_DIM
The function NF90_DEF_DIM adds a new dimension to an open netCDF dataset
in define mode. It returns (as an argument) a dimension ID, given the
netCDF ID, the dimension name, and the dimension length. At most one
unlimited length dimension, called the record dimension, may be
defined for each netCDF dataset.
Usage
function nf90_def_dim(ncid, name, len, dimid)
integer, intent( in) :: ncid
character (len = *), intent( in) :: name
integer, intent( in) :: len
integer, intent(out) :: dimid
integer :: nf90_def_dim
ncid- NetCDF ID, from a previous call to NF90_OPEN or NF90_CREATE.
name- Dimension name. Must begin with an alphabetic character, followed by
zero or more alphanumeric characters including the underscore
('_'). Case is significant.
len- Length of dimension; that is, number of values for this dimension as
an index to variables that use it. This should be either a positive
integer or the predefined constant NF90_UNLIMITED.
dimid- Returned dimension ID.
Errors
NF90_DEF_DIM returns the value NF90_NOERR if no errors
occurred. Otherwise, the returned status indicates an error. Possible
causes of errors include:
- The netCDF dataset is not in definition mode.
- The specified dimension name is the name of another existing
dimension.
- The specified length is not greater than zero.
- The specified length is unlimited, but there is already an unlimited
length dimension defined for this netCDF dataset.
- The specified netCDF ID does not refer to an open netCDF dataset.
Example
Here is an example using NF90_DEF_DIM to create a dimension named lat of
length 18 and a unlimited dimension named rec in a new netCDF dataset
named foo.nc:
use netcdf
implicit none
integer :: ncid, status, LatDimID, RecordDimID
...
status = nf90_create("foo.nc", nf90_noclobber, ncid)
if (status /= nf90_noerr) call handle_err(status)
...
status = nf90_def_dim(ncid, "Lat", 18, LatDimID)
if (status /= nf90_noerr) call handle_err(status)
status = nf90_def_dim(ncid, "Record", nf90_unlimited, RecordDimID)
if (status /= nf90_noerr) call handle_err(status)