Create a compound type. Provide an ncid, a name, and a total size (in bytes) of one element of the completed compound type.
After calling this function, fill out the type with repeated calls to NF90_INSERT_COMPOUND (see NF90_INSERT_COMPOUND). Call NF90_INSERT_COMPOUND once for each field you wish to insert into the compound type.
Note that there does not seem to be a fully portable way to read such types into structures in Fortran 90 (and there are no structures in Fortran 77). Dozens of top-notch programmers are swarming over this problem in a sub-basement of Unidata's giant underground bunker in Wyoming.
Fortran users may use character buffers to read and write compound types. User are invited to try classic Fortran features such as the equivilence and the common block statment.
function nf90_def_compound(ncid, size, name, typeid) integer, intent(in) :: ncid integer, intent(in) :: size character (len = *), intent(in) :: name integer, intent(out) :: typeid integer :: nf90_def_compound
NCID
SIZE
NAME
TYPEIDP
NF90_NOERR
NF90_EBADID
NF90_ENAMEINUSE
NF90_EMAXNAME
NF90_EBADNAME
NF90_ENOTNC4
NF90_ESTRICTNC3
NF90_EHDFERR
NF90_EPERM
NF90_ENOTINDEFINE