# 18.2.116. shmem_long_fetch

shmem_int4_fetch(3), shmem_int8_fetch(3), shmem_int_fetch(3), shmem_long_fetch(3), shmem_longlong_fetch(3) shmem_double_fetch(3) shmem_float_fetch(3) - Atomically fetches the value of a remote data object

## 18.2.116.1. SYNOPSIS

C or C++:

    #include <mpp/shmem.h>

    int shmem_int_fetch(int *target, int pe)

    long shmem_long_fetch(long *target, int pe)

    long long shmem_longlong_fetch(long long *target, int pe)

    double shmem_double_fetch(long long *target, int pe)

    float  shmem_float_fetch(float *target, int pe)

Fortran:

    INCLUDE "mpp/shmem.fh"

    INTEGER pe

    INTEGER(KIND=4) SHMEM_INT4_FETCH, ires, target
    ires = SHMEM_INT4_FETCH(target, pe)

    INTEGER(KIND=8) SHMEM_INT8_FETCH, ires, target
    ires = SHMEM_INT8_FETCH(target, pe)

    REAL(KIND=4) SHMEM_INT4_FETCH, ires, target
    ires = SHMEM_REAL4_FETCH(target, pe)

    REAL(KIND=8) SHMEM_INT8_FETCH, ires, target
    ires = SHMEM_REAL8_FETCH(target, pe)

## 18.2.116.2. DESCRIPTION

The shmem_fetch functions perform an atomic fetch operation. They return the contents of the target as an atomic operation.

The arguments are as follows:

target

  The remotely accessible data object to be fetched from the remote PE.

pe

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

## 18.2.116.3. RETURN VALUES

The contents at the target address on the remote PE. The data type of the return value is the same as the the type of the remote data object.

See also

intro_shmem(3)