SHMEM_ADD(3)SHMEM_ADD(3)


NAME
     shmem_short_add, shmem_int_add, shmem_int4_add, shmem_int8_add,
     shmem_long_add, shmem_longlong_add - Performs an atomic add operation
     on a remote data object

SYNOPSIS
     C or C++:

        #include <mpp/shmem.h>

        void shmem_short_add(short *target,short value, int pe);

        void shmem_int_add(int *target, int value, int pe);

        void shmem_long_add(long *target, long value, int pe);

        void shmem_longlong_add(long long *target, long long value, int
        pe);

     Fortran:

        INTEGER pe

        CALL SHMEM_INT4_ADD(target, value, pe)

        CALL SHMEM_INT8_ADD(target, value, pe)

DESCRIPTION
     The shmem_add routine performs an atomic add operation.  It adds value
     to target on Processing Element (PE) pe and atomically increments the
     target without returning the value.  The arguments are as follows:

     target    The remotely accessible integer data object to be updated on
               the remote PE.  If you are using C/C++, the type of target
               should match that implied in the SYNOPSIS section.  If you
               are using the Fortran compiler, it must be of type integer
               with an element size of 4 bytes for SHMEM_INT4_ADD and 8
               bytes for SHMEM_INT8_ADD.

     value     The value to be atomically added to target.  If you are
               using C/C++, the type of value should match that implied in
               the SYNOPSIS section.  If you are using Fortran, it must be
               of type integer with an element size of target.

     pe        An integer that indicates the PE number upon which target is
               to be updated.  If you are using Fortran, it must be a
               default integer value.

NOTES
     The term remotely accessible is defined in intro_shmem(3).

SEE ALSO
     intro_shmem(3), shmem_cache(3)