OUPART   

Equivalent PK functions:

OUPART ( part, buflen, keylen, key, state, ifail )
==================================================

  Output key and state of part.

Receives:
  KI_tag_part              *part           --- part to output
  KI_int_nchars            *buflen         --- length of key array

Returns:
 <KI_int_nchars>           *keylen         --- length of key
  KI_chr_key                key[keylen]    --- key of part
  KI_cod_enst              *state          --- state of part
  KI_cod_error             *ifail          --- failure indicator

Specific errors:
  KI_buffer_overflow        key too long for array

Description:
  OUPART returns the key (if any) and state of 'part'.

  The state of the part will be one of:

      1) new (ENSTNW) - the part has been created during this session or was
         anonymous and has been changed.

      2) stored (ENSTST) - the part has been transmitted to external storage or
         has been received from the archive and has not been changed.

      3) anonymous (ENSTAN) - the part is an unchanged version of a part
         transmitted as an unkeyed sub-part into the archive.

      4) modified (ENSTMD) - the part is a changed version of a part in
         the archive.

      5) unloaded (ENSTUN) - the part has not been received from the archive
         but is instanced by another part in memory or the part has been
         explicitly unloaded from memory with UNLDPA.

  All stored, modified and unloaded parts have a key. New and anonymous parts
  do not have a key and zero will be returned in 'keylen'.