code: def inq_compound_field(self, name, index):
          
          typename = create_string_buffer(name)
          index = c_int(index + 1)
          fieldname = create_string_buffer(MAXSTRLEN)
          fieldtype = create_string_buffer(MAXSTRLEN)
          rank = c_int()
          arraytype = ndpointer(dtype='int32',
                                ndim=1,
                                shape=(MAXDIMS, ),
                                flags='F')
          shape = np.empty((MAXDIMS, ), dtype='int32', order='F')
          self.library.inq_compound_field.argtypes = [c_char_p,
                                                      POINTER(c_int),
                                                      c_char_p,
                                                      c_char_p,
                                                      POINTER(c_int),
                                                      arraytype]
          self.library.inq_compound_field.restype = None
          self.library.inq_compound_field(typename,
                                          byref(index),
                                          fieldname,
                                          fieldtype,
                                          byref(rank),
                                          shape)
          return (fieldname.value,
                  fieldtype.value,
                  rank.value,
                  tuple(shape[:rank.value]))
docs: Lookup the type,rank and shape of a compound field