root/oshmem/shmem/fortran/shmem_put_nb_f.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. SHMEM_GENERATE_WEAK_BINDINGS
  2. SHMEM_GENERATE_FORTRAN_BINDINGS_SUB
  3. SHMEM_GENERATE_FORTRAN_BINDINGS_SUB
  4. SHMEM_GENERATE_FORTRAN_BINDINGS_SUB
  5. SHMEM_GENERATE_FORTRAN_BINDINGS_SUB
  6. SHMEM_GENERATE_FORTRAN_BINDINGS_SUB
  7. SHMEM_GENERATE_FORTRAN_BINDINGS_SUB
  8. SHMEM_GENERATE_FORTRAN_BINDINGS_SUB
  9. SHMEM_GENERATE_FORTRAN_BINDINGS_SUB
  10. SHMEM_GENERATE_FORTRAN_BINDINGS_SUB
  11. SHMEM_GENERATE_FORTRAN_BINDINGS_SUB
  12. SHMEM_GENERATE_FORTRAN_BINDINGS_SUB

   1 /*
   2  * Copyright (c) 2016      Mellanox Technologies, Inc.
   3  *                         All rights reserved.
   4  * $COPYRIGHT$
   5  *
   6  * Additional copyrights may follow
   7  *
   8  * $HEADER$
   9  */
  10 
  11 #include "oshmem_config.h"
  12 #include "oshmem/shmem/fortran/bindings.h"
  13 #include "oshmem/include/shmem.h"
  14 #include "oshmem/shmem/shmem_api_logger.h"
  15 #include "oshmem/runtime/runtime.h"
  16 #include "oshmem/mca/spml/spml.h"
  17 #include "ompi/datatype/ompi_datatype.h"
  18 #include "stdio.h"
  19 
  20 #if OSHMEM_PROFILING
  21 #include "oshmem/shmem/fortran/profile/pbindings.h"
  22 
  23 SHMEM_GENERATE_WEAK_BINDINGS(SHMEM_PUTMEM_NBI, shmem_putmem_nbi)
  24 
  25 SHMEM_GENERATE_WEAK_BINDINGS(SHMEM_CHARACTER_PUT_NBI, shmem_character_put_nbi)
  26 SHMEM_GENERATE_WEAK_BINDINGS(SHMEM_COMPLEX_PUT_NBI, shmem_complex_put_nbi)
  27 SHMEM_GENERATE_WEAK_BINDINGS(SHMEM_DOUBLE_PUT_NBI, shmem_double_put_nbi)
  28 SHMEM_GENERATE_WEAK_BINDINGS(SHMEM_INTEGER_PUT_NBI, shmem_integer_put_nbi)
  29 SHMEM_GENERATE_WEAK_BINDINGS(SHMEM_LOGICAL_PUT_NBI, shmem_logical_put_nbi)
  30 SHMEM_GENERATE_WEAK_BINDINGS(SHMEM_REAL_PUT_NBI, shmem_real_put_nbi)
  31 
  32 SHMEM_GENERATE_WEAK_BINDINGS(SHMEM_PUT4_NBI, shmem_put4_nbi)
  33 SHMEM_GENERATE_WEAK_BINDINGS(SHMEM_PUT8_NBI, shmem_put8_nbi)
  34 SHMEM_GENERATE_WEAK_BINDINGS(SHMEM_PUT32_NBI, shmem_put32_nbi)
  35 SHMEM_GENERATE_WEAK_BINDINGS(SHMEM_PUT64_NBI, shmem_put64_nbi)
  36 SHMEM_GENERATE_WEAK_BINDINGS(SHMEM_PUT128_NBI, shmem_put128_nbi)
  37 
  38 #include "oshmem/shmem/fortran/profile/defines.h"
  39 #endif
  40 
  41 SHMEM_GENERATE_FORTRAN_BINDINGS_SUB (void,
  42         SHMEM_PUTMEM_NBI,
  43         shmem_putmem_nbi_,
  44         shmem_putmem_nbi__,
  45         shmem_putmem_nbi_f,
  46         (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe),
  47         (target,source,length,pe) )
  48 
  49 void shmem_putmem_nbi_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe)
  50 {
  51     MCA_SPML_CALL(put_nb(oshmem_ctx_default, FPTR_2_VOID_PTR(target),
  52         OMPI_FINT_2_INT(*length),
  53         FPTR_2_VOID_PTR(source),
  54         OMPI_FINT_2_INT(*pe), NULL));
  55 }
  56 
  57 SHMEM_GENERATE_FORTRAN_BINDINGS_SUB (void,
  58         SHMEM_CHARACTER_PUT_NBI,
  59         shmem_character_put_nbi_,
  60         shmem_character_put_nbi__,
  61         shmem_character_put_nbi_f,
  62         (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe),
  63         (target,source,length,pe) )
  64 
  65 void shmem_character_put_nbi_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe)
  66 {
  67     size_t character_type_size = 0;
  68     ompi_datatype_type_size(&ompi_mpi_character.dt, &character_type_size);
  69 
  70     MCA_SPML_CALL(put_nb(oshmem_ctx_default, FPTR_2_VOID_PTR(target),
  71         OMPI_FINT_2_INT(*length) * character_type_size,
  72         FPTR_2_VOID_PTR(source),
  73         OMPI_FINT_2_INT(*pe), NULL));
  74 }
  75 
  76 SHMEM_GENERATE_FORTRAN_BINDINGS_SUB (void,
  77         SHMEM_COMPLEX_PUT_NBI,
  78         shmem_complex_put_nbi_,
  79         shmem_complex_put_nbi__,
  80         shmem_complex_put_nbi_f,
  81         (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe),
  82         (target,source,length,pe) )
  83 
  84 void shmem_complex_put_nbi_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe)
  85 {
  86     size_t complex_type_size = 0;
  87     ompi_datatype_type_size(&ompi_mpi_cplex.dt, &complex_type_size);
  88 
  89     MCA_SPML_CALL(put_nb(oshmem_ctx_default, FPTR_2_VOID_PTR(target),
  90         OMPI_FINT_2_INT(*length) * complex_type_size,
  91         FPTR_2_VOID_PTR(source),
  92         OMPI_FINT_2_INT(*pe), NULL));
  93 }
  94 
  95 SHMEM_GENERATE_FORTRAN_BINDINGS_SUB (void,
  96         SHMEM_DOUBLE_PUT_NBI,
  97         shmem_double_put_nbi_,
  98         shmem_double_put_nbi__,
  99         shmem_double_put_nbi_f,
 100         (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe),
 101         (target,source,length,pe) )
 102 
 103 void shmem_double_put_nbi_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe)
 104 {
 105     size_t double_precision_type_size = 0;
 106     ompi_datatype_type_size(&ompi_mpi_dblprec.dt, &double_precision_type_size);
 107 
 108     MCA_SPML_CALL(put_nb(oshmem_ctx_default, FPTR_2_VOID_PTR(target),
 109         OMPI_FINT_2_INT(*length) * double_precision_type_size,
 110         FPTR_2_VOID_PTR(source),
 111         OMPI_FINT_2_INT(*pe), NULL));
 112 }
 113 
 114 SHMEM_GENERATE_FORTRAN_BINDINGS_SUB (void,
 115         SHMEM_INTEGER_PUT_NBI,
 116         shmem_integer_put_nbi_,
 117         shmem_integer_put_nbi__,
 118         shmem_integer_put_nbi_f,
 119         (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe),
 120         (target,source,length,pe) )
 121 
 122 void shmem_integer_put_nbi_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe)
 123 {
 124     size_t integer_type_size = 0;
 125     ompi_datatype_type_size(&ompi_mpi_integer.dt, &integer_type_size);
 126 
 127     MCA_SPML_CALL(put_nb(oshmem_ctx_default, FPTR_2_VOID_PTR(target),
 128         OMPI_FINT_2_INT(*length) * integer_type_size,
 129         FPTR_2_VOID_PTR(source),
 130         OMPI_FINT_2_INT(*pe), NULL));
 131 }
 132 
 133 SHMEM_GENERATE_FORTRAN_BINDINGS_SUB (void,
 134         SHMEM_LOGICAL_PUT_NBI,
 135         shmem_logical_put_nbi_,
 136         shmem_logical_put_nbi__,
 137         shmem_logical_put_nbi_f,
 138         (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe),
 139         (target,source,length,pe) )
 140 
 141 void shmem_logical_put_nbi_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe)
 142 {
 143     size_t logical_type_size = 0;
 144     ompi_datatype_type_size(&ompi_mpi_logical.dt, &logical_type_size);
 145 
 146     MCA_SPML_CALL(put_nb(oshmem_ctx_default, FPTR_2_VOID_PTR(target),
 147         OMPI_FINT_2_INT(*length) * logical_type_size,
 148         FPTR_2_VOID_PTR(source),
 149         OMPI_FINT_2_INT(*pe), NULL));
 150 }
 151 
 152 SHMEM_GENERATE_FORTRAN_BINDINGS_SUB (void,
 153         SHMEM_REAL_PUT_NBI,
 154         shmem_real_put_nbi_,
 155         shmem_real_put_nbi__,
 156         shmem_real_put_nbi_f,
 157         (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe),
 158         (target,source,length,pe) )
 159 
 160 void shmem_real_put_nbi_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe)
 161 {
 162     size_t real_type_size = 0;
 163     ompi_datatype_type_size(&ompi_mpi_real.dt, &real_type_size);
 164 
 165     MCA_SPML_CALL(put_nb(oshmem_ctx_default, FPTR_2_VOID_PTR(target),
 166         OMPI_FINT_2_INT(*length) * real_type_size,
 167         FPTR_2_VOID_PTR(source),
 168         OMPI_FINT_2_INT(*pe), NULL));
 169 }
 170 
 171 SHMEM_GENERATE_FORTRAN_BINDINGS_SUB (void,
 172         SHMEM_PUT4_NBI,
 173         shmem_put4_nbi_,
 174         shmem_put4_nbi__,
 175         shmem_put4_nbi_f,
 176         (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe),
 177         (target,source,length,pe) )
 178 
 179 void shmem_put4_nbi_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe)
 180 {
 181     MCA_SPML_CALL(put_nb(oshmem_ctx_default, FPTR_2_VOID_PTR(target),
 182         OMPI_FINT_2_INT(*length) * 4,
 183         FPTR_2_VOID_PTR(source),
 184         OMPI_FINT_2_INT(*pe), NULL));
 185 }
 186 
 187 SHMEM_GENERATE_FORTRAN_BINDINGS_SUB (void,
 188         SHMEM_PUT8_NBI,
 189         shmem_put8_nbi_,
 190         shmem_put8_nbi__,
 191         shmem_put8_nbi_f,
 192         (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe),
 193         (target,source,length,pe) )
 194 
 195 void shmem_put8_nbi_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe)
 196 {
 197     MCA_SPML_CALL(put_nb(oshmem_ctx_default, FPTR_2_VOID_PTR(target),
 198         OMPI_FINT_2_INT(*length) * 8,
 199         FPTR_2_VOID_PTR(source),
 200         OMPI_FINT_2_INT(*pe), NULL));
 201 }
 202 
 203 SHMEM_GENERATE_FORTRAN_BINDINGS_SUB (void,
 204         SHMEM_PUT32_NBI,
 205         shmem_put32_nbi_,
 206         shmem_put32_nbi__,
 207         shmem_put32_nbi_f,
 208         (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe),
 209         (target,source,length,pe) )
 210 
 211 void shmem_put32_nbi_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe)
 212 {
 213     MCA_SPML_CALL(put_nb(oshmem_ctx_default, FPTR_2_VOID_PTR(target),
 214         OMPI_FINT_2_INT(*length) * 4,
 215         FPTR_2_VOID_PTR(source),
 216         OMPI_FINT_2_INT(*pe), NULL));
 217 }
 218 
 219 SHMEM_GENERATE_FORTRAN_BINDINGS_SUB (void,
 220         SHMEM_PUT64_NBI,
 221         shmem_put64_nbi_,
 222         shmem_put64_nbi__,
 223         shmem_put64_nbi_f,
 224         (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe),
 225         (target,source,length,pe) )
 226 
 227 void shmem_put64_nbi_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe)
 228 {
 229     MCA_SPML_CALL(put_nb(oshmem_ctx_default, FPTR_2_VOID_PTR(target),
 230         OMPI_FINT_2_INT(*length) * 8,
 231         FPTR_2_VOID_PTR(source),
 232         OMPI_FINT_2_INT(*pe), NULL));
 233 }
 234 
 235 SHMEM_GENERATE_FORTRAN_BINDINGS_SUB (void,
 236         SHMEM_PUT128_NBI,
 237         shmem_put128_nbi_,
 238         shmem_put128_nbi__,
 239         shmem_put128_nbi_f,
 240         (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe),
 241         (target,source,length,pe) )
 242 
 243 void shmem_put128_nbi_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *length, MPI_Fint *pe)
 244 {
 245     MCA_SPML_CALL(put_nb(oshmem_ctx_default, FPTR_2_VOID_PTR(target),
 246         OMPI_FINT_2_INT(*length) * 16,
 247         FPTR_2_VOID_PTR(source),
 248         OMPI_FINT_2_INT(*pe), NULL));
 249 }

/* [<][>][^][v][top][bottom][index][help] */