SHMEM\_LONG\_IGET(3) Open MPI SHMEM\_LONG\_IGET(3)

[shmem\_complex\_iget(3)](/man/enterprise-packages/openmpi-cuda-13.2/shmem_complex_iget.3), shmem\_double\_iget &lt;#shmem-double-iget&gt;(3), shmem\_float\_iget &lt;#shmem-float-iget&gt;(3), [shmem\_iget4(3)](/man/enterprise-packages/openmpi-cuda-13.2/shmem_iget4.3), [shmem\_iget8(3)](/man/enterprise-packages/openmpi-cuda-13.2/shmem_iget8.3), shmem\_iget32 &lt;#shmem-iget32&gt;(3), shmem\_iget64 &lt;#shmem-iget64&gt;(3), shmem\_iget128 &lt;#shmem-iget128&gt;(3), shmem\_int\_iget &lt;#shmem-int-iget&gt;(3), [shmem\_integer\_iget(3)](/man/enterprise-packages/openmpi-cuda-13.2/shmem_integer_iget.3), [shmem\_logical\_iget(3)](/man/enterprise-packages/openmpi-cuda-13.2/shmem_logical_iget.3), [shmem\_long\_iget(3)](/man/enterprise-packages/openmpi-cuda-13.2/shmem_long_iget.3), shmem\_longdouble\_iget &lt;#shmem-longdouble-iget&gt;(3), shmem\_longlong\_iget &lt;#shmem-longlong-iget&gt;(3), [shmem\_real\_iget(3)](/man/enterprise-packages/openmpi-cuda-13.2/shmem_real_iget.3), shmem\_short\_iget &lt;#shmem-short-iget&gt;(3) - Transfers strided data from a specified processing element (PE)

# [SYNOPSIS](#SYNOPSIS)

C or C++:

```
#include <mpp/shmem.h>
void shmem_iget32(void *target, const void *source,


  ptrdiff_t tst, ptrdiff_t sst, size_t len, int pe)
void shmem_iget64(void *target, const void *source,


  ptrdiff_t tst, ptrdiff_t sst, size_t len, int pe)
void shmem_iget128(void *target, const void *source,


  ptrdiff_t tst, ptrdiff_t sst, size_t len, int pe)
void shmem_int_iget(int *target, const int *source,


  ptrdiff_t tst, ptrdiff_t sst, size_t len, int pe)
void shmem_double_iget(double *target, const double *source,


  ptrdiff_t tst, ptrdiff_t sst, size_t len, int pe)
void shmem_float_iget(float *target, const float *source,


  ptrdiff_t tst, ptrdiff_t sst, size_t len, int pe)
void shmem_long_iget(long *target, const long *source,


  ptrdiff_t tst, ptrdiff_t sst, size_t len, int pe)
void shmem_longdouble_iget(long double *target,


  const long double *source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe)
void shmem_longlong_iget(long long *target,


  const long long *source, ptrdiff_t tst, ptrdiff_t sst, size_t len, int pe)
void shmem_short_iget(short *target,


  const short *source, ptrdiff_t tst, ptrdiff_t sst, size_t len, int pe)
```

Fortran:

```
INCLUDE "mpp/shmem.fh"
INTEGER tst, sst, len, pe
CALL SHMEM_COMPLEX_IGET(target, source, tst, sst, len,
& pe)
CALL SHMEM_DOUBLE_IGET(target, source, tst, sst, len,
& pe)
CALL SHMEM_IGET4(target, source, tst, sst, len, pe)
CALL SHMEM_IGET8(target, source, tst, sst, len, pe)
CALL SHMEM_IGET32(target, source, tst, sst, len, pe)
CALL SHMEM_IGET64(target, source, tst, sst, len, pe)
CALL SHMEM_IGET128(target, source, tst, sst, len, pe)
CALL SHMEM_INTEGER_IGET(target, source, tst, sst, len,
& pe)
CALL SHMEM_LOGICAL_IGET(target, source, tst, sst, len,
& pe)
CALL SHMEM_REAL_IGET(target, source, tst, sst, len, pe)
```

# [DESCRIPTION](#DESCRIPTION)

The strided get routines retrieve array data available at address source on remote PE (pe). The elements of the **source** array are separated by a stride **sst**. Once the data is received, it is stored at the local memory address **target**, separated by stride **tst**. The routines return when the data has been copied into the local **target** array.

The arguments are as follows:

[**target**](#target)

Array to be updated on the local PE.

[**source**](#source)

Array containing the data to be copied on the remote PE.

[**tst**](#tst)

The stride between consecutive elements of the target array. The stride is scaled by the element size of the target array. A value of 1 indicates contiguous data. tst must be of type integer. If you are calling from Fortran, it must be a default integer value.

[**sst**](#sst)

The stride between consecutive elements of the source array. The stride is scaled by the element size of the source array. A value of 1 indicates contiguous data. sst must be of type integer. If you are calling from Fortran, it must be a default integer value.

[**len**](#len)

Number of elements in the target and source arrays. len must be of type integer. If you are using Fortran, it must be a constant, variable, or array element of default integer type.

[**pe**](#pe)

PE number of the remote PE. pe must be of type integer. If you are using Fortran, it must be a constant, variable, or array element of default integer type.

The target and source data objects must conform to typing constraints, which are as follows:

[**shmem\_iget32 &lt;#shmem-iget32&gt;, shmem\_iget4: Any noncharacter type that has a storage size**](#shmem_iget32)

equal to 32 bits.

[**shmem\_iget64 &lt;#shmem-iget64&gt;, shmem\_iget8: Any noncharacter type that has a storage size**](#shmem_iget64)

equal to 64 bits.

[**shmem\_iget128 &lt;#shmem-iget128&gt;: Any noncharacter type that has a storage size equal to**](#shmem_iget128)

128 bits.

shmem\_short\_iget &lt;#shmem-short-iget&gt;: Elements of type short.

shmem\_int\_iget &lt;#shmem-int-iget&gt;: Elements of type int.

shmem\_long\_iget: Elements of type long.

shmem\_longlong\_iget &lt;#shmem-longlong-iget&gt;: Elements of type long long.

shmem\_float\_iget &lt;#shmem-float-iget&gt;: Elements of type float.

shmem\_double\_iget &lt;#shmem-double-iget&gt;: Elements of type double.

shmem\_longdouble\_iget &lt;#shmem-longdouble-iget&gt;: Elements of type long double.

**SHMEM\_COMPLEX\_IGET**: Elements of type complex of default size.

**SHMEM\_DOUBLE\_IGET**: (Fortran) Elements of type double precision.

**SHMEM\_INTEGER\_IGET**: Elements of type integer.

**SHMEM\_LOGICAL\_IGET**: Elements of type logical.

**SHMEM\_REAL\_IGET**: Elements of type real.

shmem\_longdouble\_iget &lt;#shmem-longdouble-iget&gt;: Elements of type long double.

**SHMEM\_COMPLEX\_IGET**: Elements of type complex of default size.

**SHMEM\_DOUBLE\_IGET**: (Fortran) Elements of type double precision.

**SHMEM\_INTEGER\_IGET**: Elements of type integer.

**SHMEM\_LOGICAL\_IGET**: Elements of type logical.

**SHMEM\_REAL\_IGET**: Elements of type real.

If you are using Fortran, data types must be of default size. For example, a real variable must be declared as REAL, REAL\*4, or REAL(KIND=4).

# [NOTES](#NOTES)

See [*intro\_shmem*(3)](/man/enterprise-packages/openmpi-cuda-13.2/intro_shmem.3) for a definition of the term remotely accessible.

# [EXAMPLES](#EXAMPLES)

The following simple example uses shmem\_logical\_iget in a Fortran program. Compile this example with the -lsma compiler option.

```
PROGRAM STRIDELOGICAL


  LOGICAL SOURCE(10), TARGET(5)


  SAVE SOURCE ! SAVE MAKES IT REMOTELY ACCESSIBLE


  DATA SOURCE /.T.,.F.,.T.,.F.,.T.,.F.,.T.,.F.,.T.,.F./


  DATA TARGET / 5*.F. /


  CALL START_PES(2)


  IF (MY_PE() .EQ. 0) THEN


    CALL SHMEM_LOGICAL_IGET(TARGET, SOURCE, 1, 2, 5, 1)


    PRINT*,'TARGET AFTER SHMEM_LOGICAL_IGET:',TARGET


  ENDIF


  CALL SHMEM_BARRIER_ALL
END
```

**See also:**

[*intro\_shmem*(3)](/man/enterprise-packages/openmpi-cuda-13.2/intro_shmem.3) [*shmem\_get*(3)](/man/enterprise-packages/openmpi-cuda-13.2/shmem_get.3) [*shmem\_quiet*(3)](/man/enterprise-packages/openmpi-cuda-13.2/shmem_quiet.3)

# [Copyright](#Copyright)

2003-2026, The Open MPI Community

September 11, 2026

---

Document: shmem_long_iget(3) from openmpi-cuda-13.2 5.0.11-r0 (Chainguard OS)
Source: https://github.com/open-mpi/ompi
