MA_GET_INDEX(3)

NAME
MA_get_index - get the base index for a block

C SYNOPSIS
#include "macdecls.h"
Boolean MA_get_index(memhandle, index)
    Integer     memhandle;      /* read-only */
    Integer     *index;         /* write-only */

FORTRAN SYNOPSIS
#include "mafdecls.fh"
logical function MA_get_index(memhandle, index)
    integer     memhandle
    integer     index

DESCRIPTION
MA_get_index() returns in index the base index for the type-specific data array that is appropriate for the block corresponding to the handle memhandle (which was returned by MA_allocate_heap() or MA_push_stack() when the block was allocated).

USAGE
The following FORTRAN code illustrates the use of MA_get_index() by allocating a block of 5 integers on the heap and then storing values into the integers.
#include "mafdecls.fh"
    logical ok
    integer mhandle
    integer index
    integer i
    ok = MA_allocate_heap(MT_INT, 5, 'heap int block', mhandle)
    if (ok) then
        ok = MA_get_index(mhandle, index)
        if (ok) then
            do 10 i = 0, 4
                int_mb(index + i) = 0
10          continue
        endif
    endif

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 or stack
The block is not currently allocated in the heap or 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.

NOTES
Type-specific data arrays are not yet available in C, so employ pointers instead of indices by using MA_get_pointer() instead of MA_get_index().

FILES
Include files: /msrc/proj/hpctools/ma/release/current/include
Library:       /msrc/proj/hpctools/ma/release/current/lib/platform/libma.a
Man pages:     /msrc/proj/hpctools/ma/release/current/man/man3
Source code:   /msrc/proj/hpctools/ma/release/current/tar/marelease.tar

SEE ALSO
MA(3), MA_alloc_get(3), MA_allocate_heap(3), MA_get_pointer(3), MA_push_get(3), MA_push_stack(3)

AUTHOR
Gregory S. Thomas, Pacific Northwest National Laboratory