SHPALLOC(3F)SHPALLOC(3F)


NAME
     SHPALLOC - Allocates a block of memory from the symmetric heap

SYNOPSIS
     POINTER (addr, A(1))
     INTEGER (length, errcode, abort)
     CALL SHPALLOC(addr, length, errcode, abort)

DESCRIPTION
     SHPALLOC allocates a block of memory from the program's symmetric heap
     that is greater than or equal to the size requested.  To maintain
     symmetric heap consistency, all PEs in an program must call SHPALLOC
     with the same value of length; if any processing elements (PEs) are
     missing, the program will hang.

     The SHPALLOC function accepts the following arguments:

     Argument       Description
     addr           First word address of the allocated block (output).
     length         Number of words of memory requested (input).  One word
                    is 32 bits.
     errcode        Error code is 0 if no error was detected; otherwise, it
                    is a negative integer code for the type of error
                    (output).
     abort          Abort code; nonzero requests abort on error; 0 requests
                    an error code (input).

     By using the Fortran POINTER mechanism in the following manner, you
     can use array A to refer to the block allocated by SHPALLOC:

          POINTER (addr, A(1))

NOTES
     The total size of the symmetric heap is determined at job startup.
     One can adjust the size of the heap using the SMA_SYMMETRIC_SIZE
     environment variable.  See the intro_shmem(3) man page for futher
     details.

RETURN VALUES
     Error conditions are as follows:

     Error Code     Condition
           -1       Length is not an integer greater than 0.
           -2       No more memory is available from the system (checked if
                    the request cannot be satisfied from the available
                    blocks on the symmetric heap).

SEE ALSO
     intro_shmem(3), shmalloc(3F), shpclmove(3F), shpdeallc(3F)