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.
48 строки
1.5 KiB
C
48 строки
1.5 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/spml/spml.h"
|
|
#include "ompi/datatype/ompi_datatype.h"
|
|
#include "stdio.h"
|
|
|
|
OMPI_GENERATE_FORTRAN_BINDINGS (void,
|
|
SHMEM_COMPLEX_IGET,
|
|
shmem_complex_iget_,
|
|
shmem_complex_iget__,
|
|
shmem_complex_iget_f,
|
|
(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *tst, MPI_Fint *sst, MPI_Fint *len, MPI_Fint *pe),
|
|
(target,source,tst,sst,len,pe) )
|
|
|
|
void shmem_complex_iget_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *tst, MPI_Fint *sst, MPI_Fint *len, MPI_Fint *pe)
|
|
{
|
|
int i;
|
|
int length = OMPI_FINT_2_INT(*len);
|
|
int tst_c = OMPI_FINT_2_INT(*tst);
|
|
int sst_c = OMPI_FINT_2_INT(*sst);
|
|
|
|
size_t complex_type_size = 0;
|
|
ompi_datatype_type_size(&ompi_mpi_cplex.dt, &complex_type_size);
|
|
|
|
for (i=0; i<length; i++)
|
|
{
|
|
MCA_SPML_CALL(get((uint8_t *)FPTR_2_VOID_PTR(source) + i * sst_c * complex_type_size,
|
|
complex_type_size,
|
|
(uint8_t *)FPTR_2_VOID_PTR(target) + i * tst_c * complex_type_size,
|
|
OMPI_FINT_2_INT(*pe)));
|
|
}
|
|
}
|
|
|