MA_FREE_HEAP


     NAME
	  MA_free_heap - deallocate a heap block

     C SYNOPSIS
	  #include "macdecls.h"

	  Boolean MA_free_heap(memhandle)
	      Integer	  memhandle;	  /* read-only */

     FORTRAN SYNOPSIS
	  #include "mafdecls.h"

	  logical function MA_free_heap(memhandle)
	      integer	  memhandle

     DESCRIPTION
	  MA_free_heap() deallocates the heap block corresponding to
	  the handle memhandle (which was returned by MA_alloc_get()
	  or MA_allocate_heap()	when the block was allocated).

     DIAGNOSTICS
	  invalid memhandle: %d
	       memhandle is not	a valid	handle.
	  invalid checksum for memhandle %d (name: '%s')
	       The block's computed checksum does not match its	stored
	       checksum. This indicates	that the block has been
	       corrupted by having its internal	state overwritten.
	  invalid guard(s) for memhandle %d (name: '%s')
	       This indicates that the block has been corrupted	by
	       being overwritten at one	or both	ends. The likely cause
	       of this is an application indexing bug.
	  memhandle %d (name: '%s') not	in heap
	       The block is not	currently allocated in the heap.

	  Other	diagnostics are	possible. If seen, they	indicate
	  corruption of	the internal state of MA, caused by bugs in
	  either MA or the application.

     RETURN VALUE
	  C: MA_TRUE upon success, MA_FALSE upon failure.
	  FORTRAN: .true. upon success,	.false.	upon failure.

     SEE ALSO
	  MA(3), MA_alloc_get(3), MA_allocate_heap(3),
	  MA_inquire_avail(3), MA_inquire_heap(3)

     AUTHOR
	  Gregory S. Thomas, Pacific Northwest Laboratory