Unidata - To provide the data services, tools, and cyberinfrastructure leadership that advance Earth system science, enhance educational opportunities, and broaden participation. Unidata
         
  advanced  
 

Next: , Previous: NF_INSERT_COMPOUND, Up: Compound Types



5.5.3 Inserting an Array Field into a Compound Type: NF_INSERT_ARRAY_COMPOUND

Insert a named array field into a compound type.

Usage

     INTEGER FUNCTION NF_INSERT_ARRAY_COMPOUND(INTEGER NCID, INTEGER XTYPE,
             CHARACTER*(*) NAME, INTEGER OFFSET, INTEGER FIELD_TYPEID,
             INTEGER NDIMS, INTEGER DIM_SIZES)
NCID
The ID of the file that contains the array type and the compound type.
XTYPE
The typeid for this compound type, as returned by nf_def_compound, or nf_inq_var.
NAME
The name of the new field.
OFFSET
Offset in byte from the beginning of the compound type for this field.
FIELD_TYPEID
The base type of the array to be inserted.
NDIMS
The number of dimensions for the array to be inserted.
DIM_SIZES
An array containing the sizes of each dimension.

Errors

NF_NOERR
No error.
NF_EBADID
Bad group id.
NF_ENAMEINUSE
That name is in use. Field names must be unique within a compound type.
NF_EMAXNAME
Name exceed max length NF_MAX_NAME.
NF_EBADNAME
Name contains illegal characters.
NF_ENOTNC4
Attempting a netCDF-4 operation on a netCDF-3 file. NetCDF-4 operations can only be performed on files defined with a create mode which includes flag NF_NETCDF4. (see NF_OPEN).
NF_ESTRICTNC3
This file was created with the strict netcdf-3 flag, therefore netcdf-4 operations are not allowed. (see NF_OPEN).
NF_EHDFERR
An error was reported by the HDF5 layer.
NF_ENOTINDEFINE
Not in define mode.
NF_ETYPEDEFINED
Attempt to change type that has already been committed. The first time the file leaves define mode, all defined types are committed, and can't be changed. If you wish to add an array to a compound type, you must do so before the compound type is committed.

Example

This example is from nf_test/ftst_types2.F.

     C     Define a compound type.
           retval = nf_def_compound(ncid, cmp_size, type_name,
          &     cmp_typeid)
           if (retval .ne. nf_noerr) call handle_err(retval)
     
     C     Include an array.
           dim_sizes(1) = NX
           dim_sizes(2) = NY
           retval = nf_insert_array_compound(ncid, cmp_typeid, ary_name, 0,
          &     NF_INT, NDIMS, dim_sizes)
           if (retval .ne. nf_noerr) call handle_err(retval)
 
 
  Contact Us     Site Map     Search     Terms and Conditions     Privacy Policy     Participation Policy
 
National Science Foundation (NSF) UCAR Office of Programs University Corporation for Atmospheric Research (UCAR)   Unidata is a member of the UCAR Office of Programs, is managed by the University Corporation for Atmospheric Research, and is sponsored by the National Science Foundation.
P.O. Box 3000     Boulder, CO 80307-3000 USA     Tel: 303-497-8643     Fax: 303-497-8690