df7654e8cf
(http://www.open-mpi.org/community/lists/devel/2013/09/12889.php), I renamed all "f77" and "f90" directory/file names to "fortran" (including removing shmemf77 / shmemf90 wrapper compilers and replacing them with "shmemfort"). 2. Fixed several Fortran coding errors. 3. Removed lots of old/stale comments that were clearly the result of copying from the OMPI layer and then not cleaning up afterwards (i.e., the comments were wholly inaccurate in the oshmem layer). 4. Removed both redundant and harmful code from oshmem_config.h.in. 5. Temporarily slave building the oshmem Fortran bindings to --enable-mpi-fortran. This doesn't seem like a good long-term solution, but at least you can now build all Fortran bindings (MPI + oshmem) or not. *** SEE MY NOTE IN config/oshmem_configure_options.m4 FOR WORK THAT STILL NEEDS TO BE DONE! This commit was SVN r29165.
46 строки
1.2 KiB
C
46 строки
1.2 KiB
C
/*
|
|
* Copyright (c) 2013 Mellanox Technologies, Inc.
|
|
* All rights reserved.
|
|
* Copyright (c) 2013 Cisco Systems, Inc. All rights reserved.
|
|
* $COPYRIGHT$
|
|
*
|
|
* Additional copyrights may follow
|
|
*
|
|
* $HEADER$
|
|
*/
|
|
|
|
#include "oshmem_config.h"
|
|
#include "oshmem/shmem/fortran/bindings.h"
|
|
#include "oshmem/include/shmem.h"
|
|
#include "oshmem/shmem/shmem_api_logger.h"
|
|
#include "oshmem/runtime/runtime.h"
|
|
#include "oshmem/mca/atomic/atomic.h"
|
|
#include "ompi/datatype/ompi_datatype.h"
|
|
#include "oshmem/op/op.h"
|
|
#include "stdio.h"
|
|
|
|
OMPI_GENERATE_FORTRAN_BINDINGS (ompi_fortran_integer8_t,
|
|
SHMEM_INT8_FINC,
|
|
shmem_int8_finc_,
|
|
shmem_int8_finc__,
|
|
shmem_int8_finc_f,
|
|
(FORTRAN_POINTER_T target, MPI_Fint *pe),
|
|
(target,pe))
|
|
|
|
ompi_fortran_integer8_t shmem_int8_finc_f(FORTRAN_POINTER_T target, MPI_Fint *pe)
|
|
{
|
|
ompi_fortran_integer8_t out_value = 0;
|
|
ompi_fortran_integer8_t value = 1;
|
|
oshmem_op_t* op = oshmem_op_sum_fint8;
|
|
|
|
MCA_ATOMIC_CALL(fadd(FPTR_2_VOID_PTR(target),
|
|
(void *)&out_value,
|
|
(const void*)&value,
|
|
sizeof(out_value),
|
|
OMPI_FINT_2_INT(*pe),
|
|
op));
|
|
|
|
return out_value;
|
|
}
|
|
|