MA_POP_STACK


     NAME
	  MA_pop_stack - deallocate a stack block

     C SYNOPSIS
	  #include "macdecls.h"

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

     FORTRAN SYNOPSIS
	  #include "mafdecls.h"

	  logical function MA_pop_stack(memhandle)
	      integer	  memhandle

     DESCRIPTION
	  MA_pop_stack() deallocates the stack block corresponding to
	  the handle memhandle (which was returned by MA_push_get() or
	  MA_push_stack() when the block was allocated), which must be
	  at the top of	the stack (i.e., the stack block most recently
	  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 stack
	       The block is not	currently allocated in the stack.
	  memhandle %d (name: '%s') not	top of stack
	       The block is currently allocated	in the stack, but is
	       not at the top of the stack.

	  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_push_get(3), MA_push_stack(3),
	  MA_inquire_avail(3), MA_inquire_stack(3)

     AUTHOR
	  Gregory S. Thomas, Pacific Northwest Laboratory