void shmem_get16(void *dest, const void *source, size_t nelems, int pe) { SHMEM_ERR_CHECK_INITIALIZED(); shmem_internal_get(dest, source, 2 * nelems, pe); shmem_internal_get_wait(); }
void shmemx_getmem_ct(shmemx_ct_t ct, void *target, const void *source, size_t len, int pe) { SHMEM_ERR_CHECK_INITIALIZED(); shmem_internal_get_ct(ct, target, source, len, pe); shmem_internal_get_wait(); }
void FC_SHMEM_GETMEM(void *target, void *source, fortran_integer_t *len, fortran_integer_t *pe) { SHMEM_ERR_CHECK_INITIALIZED(); shmem_internal_get(target, source, *len, *pe); shmem_internal_get_wait(); }
void shmem_int_get(int *target, const int *source, size_t len, int pe) { SHMEM_ERR_CHECK_INITIALIZED(); shmem_internal_get(target, source, sizeof(int) * len, pe); shmem_internal_get_wait(); }
void shmem_longlong_get(long long *target, const long long *source, size_t len, int pe) { SHMEM_ERR_CHECK_INITIALIZED(); shmem_internal_get(target, source, sizeof(long long) * len, pe); shmem_internal_get_wait(); }
void shmem_double_get(double *target, const double *source, size_t len, int pe) { SHMEM_ERR_CHECK_INITIALIZED(); shmem_internal_get(target, source, sizeof(double) * len, pe); shmem_internal_get_wait(); }
void shmem_char_get(char *target, const char *source, size_t len, int pe) { SHMEM_ERR_CHECK_INITIALIZED(); shmem_internal_get(target, source, sizeof(char) * len, pe); shmem_internal_get_wait(); }
void FC_SHMEM_REAL_GET(void *target, void *source, fortran_integer_t *len, fortran_integer_t *pe) { SHMEM_ERR_CHECK_INITIALIZED(); shmem_internal_get(target, source, SIZEOF_FORTRAN_REAL * *len, *pe); shmem_internal_get_wait(); }
void shmem_getmem(void *target, const void *source, size_t len, int pe) { SHMEM_ERR_CHECK_INITIALIZED(); shmem_internal_get(target, source, len, pe); shmem_internal_get_wait(); }
double shmem_double_g(const double *addr, int pe) { double tmp = 0.0; SHMEM_ERR_CHECK_INITIALIZED(); shmem_internal_get(&tmp, addr, sizeof(tmp), pe); shmem_internal_get_wait(); return tmp; }
long long shmem_longlong_g(const long long *addr, int pe) { long long tmp = 0; SHMEM_ERR_CHECK_INITIALIZED(); shmem_internal_get(&tmp, addr, sizeof(tmp), pe); shmem_internal_get_wait(); return tmp; }
int shmem_int_g(const int *addr, int pe) { int tmp = 0; SHMEM_ERR_CHECK_INITIALIZED(); shmem_internal_get(&tmp, addr, sizeof(tmp), pe); shmem_internal_get_wait(); return tmp; }
char shmem_char_g(const char *addr, int pe) { char tmp = 0; SHMEM_ERR_CHECK_INITIALIZED(); shmem_internal_get(&tmp, addr, sizeof(tmp), pe); shmem_internal_get_wait(); return tmp; }
void shmem_longlong_iget(long long *target, const long long *source, ptrdiff_t tst, ptrdiff_t sst, size_t len, int pe) { SHMEM_ERR_CHECK_INITIALIZED(); for ( ; len > 0 ; --len ) { shmem_internal_get(target, source, sizeof(long long), pe); target += tst; source += sst; } shmem_internal_get_wait(); }
void shmem_iget64(void *target, const void *source, ptrdiff_t tst, ptrdiff_t sst, size_t len, int pe) { SHMEM_ERR_CHECK_INITIALIZED(); for ( ; len > 0 ; --len ) { shmem_internal_get(target, source, sizeof(uint64_t), pe); target = (uint64_t*)target + tst; source = (uint64_t*)source + sst; } shmem_internal_get_wait(); }
int64_t FC_SHMEM_INT8_FINC(int64_t *target, fortran_integer_t *pe) { int64_t oldval, tmp = 1; SHMEM_ERR_CHECK_INITIALIZED(); shmem_internal_fetch_atomic(target, &tmp, &oldval, 8, *pe, SHM_INTERNAL_SUM, SHM_INTERNAL_INT64); shmem_internal_get_wait(); return oldval; }
float FC_SHMEM_REAL4_SWAP(float *target, float *value, fortran_integer_t *pe) { float newval; SHMEM_ERR_CHECK_INITIALIZED(); shmem_internal_swap(target, value, &newval, 4, *pe, SHM_INTERNAL_FLOAT); shmem_internal_get_wait(); return newval; }
int64_t FC_SHMEM_INT8_SWAP(int64_t *target, int64_t *value, fortran_integer_t *pe) { int64_t newval; SHMEM_ERR_CHECK_INITIALIZED(); shmem_internal_swap(target, value, &newval, 8, *pe, SHM_INTERNAL_INT64); shmem_internal_get_wait(); return newval; }
fortran_integer_t FC_SHMEM_SWAP(fortran_integer_t *target, fortran_integer_t *value, fortran_integer_t *pe) { fortran_integer_t newval; SHMEM_ERR_CHECK_INITIALIZED(); shmem_internal_swap(target, value, &newval, SIZEOF_FORTRAN_INTEGER, *pe, DTYPE_FORTRAN_INTEGER); shmem_internal_get_wait(); return newval; }
int32_t FC_SHMEM_INT4_FADD(int32_t *target, int32_t *value, fortran_integer_t *pe) { int32_t oldval; SHMEM_ERR_CHECK_INITIALIZED(); shmem_internal_fetch_atomic(target, value, &oldval, 4, *pe, SHM_INTERNAL_SUM, SHM_INTERNAL_INT32); shmem_internal_get_wait(); return oldval; }
double FC_SHMEM_REAL8_SWAP(double *target, double *value, fortran_integer_t *pe) { double newval; SHMEM_ERR_CHECK_INITIALIZED(); shmem_internal_swap(target, value, &newval, 8, *pe, SHM_INTERNAL_DOUBLE); shmem_internal_get_wait(); return newval; }
int32_t FC_SHMEM_INT4_CSWAP(int32_t *target, int32_t *cond, int32_t *value, fortran_integer_t *pe) { int32_t newval; SHMEM_ERR_CHECK_INITIALIZED(); shmem_internal_cswap(target, value, &newval, cond, 4, *pe, SHM_INTERNAL_INT32); shmem_internal_get_wait(); return newval; }
void FC_SHMEM_COMPLEX_IGET(void *targetp, void *sourcep, fortran_integer_t *tst, fortran_integer_t *sst, fortran_integer_t *lenp, fortran_integer_t *pe) { fortran_integer_t len = *lenp; char *target = (char*) targetp; char *source = (char*) sourcep; SHMEM_ERR_CHECK_INITIALIZED(); for ( ; len > 0 ; --len ) { shmem_internal_get(target, source, SIZEOF_FORTRAN_COMPLEX, *pe); target += (*tst * SIZEOF_FORTRAN_COMPLEX); source += (*sst * SIZEOF_FORTRAN_COMPLEX); } shmem_internal_get_wait(); }