More file f77 bindings and a small fix in the spawn bindings
This commit was SVN r2736.
Этот коммит содержится в:
родитель
6704bc9d39
Коммит
c666e04b6e
@ -95,6 +95,8 @@ void mpi_comm_spawn_f(char *command, char *argv, MPI_Fint *maxprocs,
|
||||
if (MPI_ARGV_NULL != c_argv && NULL != c_argv) {
|
||||
ompi_argv_free(c_argv);
|
||||
}
|
||||
OMPI_ARRAY_INT_2_FINT(array_of_errcodes, size);
|
||||
if (!OMPI_IS_FORTRAN_ERRCODES_IGNORE(array_of_errcodes)) {
|
||||
OMPI_ARRAY_INT_2_FINT(array_of_errcodes, size);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -111,7 +111,10 @@ void mpi_comm_spawn_multiple_f(MPI_Fint *count, char *array_commands,
|
||||
c_errs));
|
||||
|
||||
*intercomm = MPI_Comm_c2f(c_new_comm);
|
||||
OMPI_ARRAY_INT_2_FINT(array_errcds, size);
|
||||
|
||||
if (!OMPI_IS_FORTRAN_ERRCODES_IGNORE(array_errcds)) {
|
||||
OMPI_ARRAY_INT_2_FINT(array_errcds, size);
|
||||
}
|
||||
OMPI_ARRAY_FINT_2_INT_CLEANUP(array_maxprocs);
|
||||
|
||||
ompi_argv_free(c_array_commands);
|
||||
|
@ -56,5 +56,4 @@ void mpi_file_read_all_begin_f(MPI_Fint *fh, char *buf,
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_read_all_begin(c_fh, buf,
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type));
|
||||
|
||||
}
|
||||
|
@ -82,6 +82,4 @@ void mpi_file_read_at_all_end_f(MPI_Fint *fh, char *buf,
|
||||
MPI_Status_c2f(c_status, status);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
}
|
||||
|
@ -8,6 +8,9 @@
|
||||
|
||||
#include "mpi.h"
|
||||
#include "mpi/f77/bindings.h"
|
||||
#include "mpi/f77/constants.h"
|
||||
#include "errhandler/errhandler.h"
|
||||
#include "communicator/communicator.h"
|
||||
|
||||
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_FILE_READ_AT_ALL = mpi_file_read_at_all_f
|
||||
@ -46,7 +49,45 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_READ_AT_ALL,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_file_read_at_all_f(MPI_Fint *fh, MPI_Fint *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)
|
||||
void mpi_file_read_at_all_f(MPI_Fint *fh, MPI_Fint *offset,
|
||||
char *buf, MPI_Fint *count,
|
||||
MPI_Fint *datatype, MPI_Fint *status,
|
||||
MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
MPI_Status *c_status;
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
MPI_Status c_status2;
|
||||
#endif
|
||||
|
||||
/* See if we got MPI_STATUS_IGNORE */
|
||||
|
||||
if (OMPI_IS_FORTRAN_STATUS_IGNORE(status)) {
|
||||
c_status = MPI_STATUS_IGNORE;
|
||||
} else {
|
||||
|
||||
/* If sizeof(int) == sizeof(INTEGER), then there's no
|
||||
translation necessary -- let the underlying functions write
|
||||
directly into the Fortran status */
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT == SIZEOF_INT
|
||||
c_status = (MPI_Status *) status;
|
||||
#else
|
||||
c_status = &c_status2;
|
||||
#endif
|
||||
}
|
||||
|
||||
*ierr = OMPI_FINT_2_INT(MPI_File_read_at_all(c_fh,
|
||||
(MPI_Offset) *offset,
|
||||
buf,
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type,
|
||||
c_status));
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
if (MPI_STATUS_IGNORE != c_status) {
|
||||
MPI_Status_c2f(c_status, status);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -8,6 +8,9 @@
|
||||
|
||||
#include "mpi.h"
|
||||
#include "mpi/f77/bindings.h"
|
||||
#include "mpi/f77/constants.h"
|
||||
#include "errhandler/errhandler.h"
|
||||
#include "communicator/communicator.h"
|
||||
|
||||
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_FILE_READ_AT = mpi_file_read_at_f
|
||||
@ -46,7 +49,43 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_READ_AT,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_file_read_at_f(MPI_Fint *fh, MPI_Fint *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)
|
||||
void mpi_file_read_at_f(MPI_Fint *fh, MPI_Fint *offset, char *buf,
|
||||
MPI_Fint *count, MPI_Fint *datatype,
|
||||
MPI_Fint *status, MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
MPI_Status *c_status;
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
MPI_Status c_status2;
|
||||
#endif
|
||||
|
||||
/* See if we got MPI_STATUS_IGNORE */
|
||||
|
||||
if (OMPI_IS_FORTRAN_STATUS_IGNORE(status)) {
|
||||
c_status = MPI_STATUS_IGNORE;
|
||||
} else {
|
||||
|
||||
/* If sizeof(int) == sizeof(INTEGER), then there's no
|
||||
translation necessary -- let the underlying functions write
|
||||
directly into the Fortran status */
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT == SIZEOF_INT
|
||||
c_status = (MPI_Status *) status;
|
||||
#else
|
||||
c_status = &c_status2;
|
||||
#endif
|
||||
}
|
||||
|
||||
*ierr = OMPI_FINT_2_INT(MPI_File_read_at(c_fh,
|
||||
(MPI_Offset) *offset,
|
||||
buf,
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type, c_status));
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
if (MPI_STATUS_IGNORE != c_status) {
|
||||
MPI_Status_c2f(c_status, status);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -8,6 +8,9 @@
|
||||
|
||||
#include "mpi.h"
|
||||
#include "mpi/f77/bindings.h"
|
||||
#include "mpi/f77/constants.h"
|
||||
#include "errhandler/errhandler.h"
|
||||
#include "communicator/communicator.h"
|
||||
|
||||
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_FILE_READ = mpi_file_read_f
|
||||
@ -46,7 +49,40 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_READ,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_file_read_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)
|
||||
void mpi_file_read_f(MPI_Fint *fh, char *buf, MPI_Fint *count,
|
||||
MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
MPI_Status *c_status;
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
MPI_Status c_status2;
|
||||
#endif
|
||||
|
||||
/* See if we got MPI_STATUS_IGNORE */
|
||||
|
||||
if (OMPI_IS_FORTRAN_STATUS_IGNORE(status)) {
|
||||
c_status = MPI_STATUS_IGNORE;
|
||||
} else {
|
||||
|
||||
/* If sizeof(int) == sizeof(INTEGER), then there's no
|
||||
translation necessary -- let the underlying functions write
|
||||
directly into the Fortran status */
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT == SIZEOF_INT
|
||||
c_status = (MPI_Status *) status;
|
||||
#else
|
||||
c_status = &c_status2;
|
||||
#endif
|
||||
}
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_read(c_fh, buf,
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type, c_status));
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
if (MPI_STATUS_IGNORE != c_status) {
|
||||
MPI_Status_c2f(c_status, status);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -46,7 +46,14 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_READ_ORDERED_BEGIN,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_file_read_ordered_begin_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr)
|
||||
void mpi_file_read_ordered_begin_f(MPI_Fint *fh, char *buf, MPI_Fint *count,
|
||||
MPI_Fint *datatype, MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_read_ordered_begin(c_fh, buf,
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type));
|
||||
}
|
||||
|
@ -8,6 +8,9 @@
|
||||
|
||||
#include "mpi.h"
|
||||
#include "mpi/f77/bindings.h"
|
||||
#include "mpi/f77/constants.h"
|
||||
#include "errhandler/errhandler.h"
|
||||
#include "communicator/communicator.h"
|
||||
|
||||
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_FILE_READ_ORDERED_END = mpi_file_read_ordered_end_f
|
||||
@ -46,7 +49,37 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_READ_ORDERED_END,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_file_read_ordered_end_f(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr)
|
||||
void mpi_file_read_ordered_end_f(MPI_Fint *fh, char *buf,
|
||||
MPI_Fint *status, MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Status *c_status;
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
MPI_Status c_status2;
|
||||
#endif
|
||||
|
||||
/* See if we got MPI_STATUS_IGNORE */
|
||||
|
||||
if (OMPI_IS_FORTRAN_STATUS_IGNORE(status)) {
|
||||
c_status = MPI_STATUS_IGNORE;
|
||||
} else {
|
||||
|
||||
/* If sizeof(int) == sizeof(INTEGER), then there's no
|
||||
translation necessary -- let the underlying functions write
|
||||
directly into the Fortran status */
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT == SIZEOF_INT
|
||||
c_status = (MPI_Status *) status;
|
||||
#else
|
||||
c_status = &c_status2;
|
||||
#endif
|
||||
}
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_read_ordered_end(c_fh, buf, c_status));
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
if (MPI_STATUS_IGNORE != c_status) {
|
||||
MPI_Status_c2f(c_status, status);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -8,6 +8,9 @@
|
||||
|
||||
#include "mpi.h"
|
||||
#include "mpi/f77/bindings.h"
|
||||
#include "mpi/f77/constants.h"
|
||||
#include "errhandler/errhandler.h"
|
||||
#include "communicator/communicator.h"
|
||||
|
||||
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_FILE_READ_ORDERED = mpi_file_read_ordered_f
|
||||
@ -46,7 +49,43 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_READ_ORDERED,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_file_read_ordered_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)
|
||||
void mpi_file_read_ordered_f(MPI_Fint *fh, char *buf, MPI_Fint *count,
|
||||
MPI_Fint *datatype, MPI_Fint *status,
|
||||
MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
MPI_Status *c_status;
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
MPI_Status c_status2;
|
||||
#endif
|
||||
|
||||
/* See if we got MPI_STATUS_IGNORE */
|
||||
|
||||
if (OMPI_IS_FORTRAN_STATUS_IGNORE(status)) {
|
||||
c_status = MPI_STATUS_IGNORE;
|
||||
} else {
|
||||
|
||||
/* If sizeof(int) == sizeof(INTEGER), then there's no
|
||||
translation necessary -- let the underlying functions write
|
||||
directly into the Fortran status */
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT == SIZEOF_INT
|
||||
c_status = (MPI_Status *) status;
|
||||
#else
|
||||
c_status = &c_status2;
|
||||
#endif
|
||||
}
|
||||
|
||||
*ierr = OMPI_FINT_2_INT(MPI_File_read_ordered(c_fh,
|
||||
buf,
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type,
|
||||
c_status));
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
if (MPI_STATUS_IGNORE != c_status) {
|
||||
MPI_Status_c2f(c_status, status);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -8,6 +8,9 @@
|
||||
|
||||
#include "mpi.h"
|
||||
#include "mpi/f77/bindings.h"
|
||||
#include "mpi/f77/constants.h"
|
||||
#include "errhandler/errhandler.h"
|
||||
#include "communicator/communicator.h"
|
||||
|
||||
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_FILE_READ_SHARED = mpi_file_read_shared_f
|
||||
@ -46,7 +49,43 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_READ_SHARED,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_file_read_shared_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)
|
||||
void mpi_file_read_shared_f(MPI_Fint *fh, char *buf, MPI_Fint *count,
|
||||
MPI_Fint *datatype, MPI_Fint *status,
|
||||
MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
MPI_Status *c_status;
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
MPI_Status c_status2;
|
||||
#endif
|
||||
|
||||
/* See if we got MPI_STATUS_IGNORE */
|
||||
|
||||
if (OMPI_IS_FORTRAN_STATUS_IGNORE(status)) {
|
||||
c_status = MPI_STATUS_IGNORE;
|
||||
} else {
|
||||
|
||||
/* If sizeof(int) == sizeof(INTEGER), then there's no
|
||||
translation necessary -- let the underlying functions write
|
||||
directly into the Fortran status */
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT == SIZEOF_INT
|
||||
c_status = (MPI_Status *) status;
|
||||
#else
|
||||
c_status = &c_status2;
|
||||
#endif
|
||||
}
|
||||
|
||||
*ierr = OMPI_FINT_2_INT(MPI_File_read_shared(c_fh,
|
||||
buf,
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type,
|
||||
c_status));
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
if (MPI_STATUS_IGNORE != c_status) {
|
||||
MPI_Status_c2f(c_status, status);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -46,7 +46,11 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_SEEK,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_file_seek_f(MPI_Fint *fh, MPI_Fint *offset, MPI_Fint *whence, MPI_Fint *ierr)
|
||||
void mpi_file_seek_f(MPI_Fint *fh, MPI_Fint *offset,
|
||||
MPI_Fint *whence, MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_seek(c_fh, (MPI_Offset) *offset,
|
||||
OMPI_FINT_2_INT(*whence)));
|
||||
}
|
||||
|
@ -46,7 +46,11 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_SEEK_SHARED,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_file_seek_shared_f(MPI_Fint *fh, MPI_Fint *offset, MPI_Fint *whence, MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
void mpi_file_seek_shared_f(MPI_Fint *fh, MPI_Fint *offset,
|
||||
MPI_Fint *whence, MPI_Fint *ierr)
|
||||
{
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_seek(c_fh, (MPI_Offset) *offset,
|
||||
OMPI_FINT_2_INT(*whence)));
|
||||
}
|
||||
|
@ -48,5 +48,8 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_SET_ATOMICITY,
|
||||
|
||||
void mpi_file_set_atomicity_f(MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_set_atomicity(c_fh,
|
||||
OMPI_FINT_2_INT(*flag)));
|
||||
}
|
||||
|
@ -46,7 +46,11 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_SET_ERRHANDLER,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_file_set_errhandler_f(MPI_Fint *file, MPI_Fint *errhandler, MPI_Fint *ierr)
|
||||
void mpi_file_set_errhandler_f(MPI_Fint *fh, MPI_Fint *errhandler,
|
||||
MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Errhandler c_err = MPI_Errhandler_f2c(*errhandler);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_set_errhandler(c_fh, c_err));
|
||||
}
|
||||
|
@ -48,5 +48,8 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_SET_INFO,
|
||||
|
||||
void mpi_file_set_info_f(MPI_Fint *fh, MPI_Fint *info, MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Info c_info = MPI_Info_f2c(*info);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_set_info(c_fh, c_info));
|
||||
}
|
||||
|
@ -48,5 +48,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_SET_SIZE,
|
||||
|
||||
void mpi_file_set_size_f(MPI_Fint *fh, MPI_Fint *size, MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_set_size(c_fh, (MPI_Offset) *size));
|
||||
}
|
||||
|
@ -46,7 +46,16 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_SET_VIEW,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_file_set_view_f(MPI_Fint *fh, MPI_Fint *disp, MPI_Fint *etype, MPI_Fint *filetype, char *datarep, MPI_Fint *info, MPI_Fint *ierr)
|
||||
void mpi_file_set_view_f(MPI_Fint *fh, MPI_Fint *disp,
|
||||
MPI_Fint *etype, MPI_Fint *filetype,
|
||||
char *datarep, MPI_Fint *info, MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Datatype c_etype = MPI_Type_f2c(*etype);
|
||||
MPI_Datatype c_filetype = MPI_Type_f2c(*filetype);
|
||||
MPI_Info c_info = MPI_Info_f2c(*info);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_set_view(c_fh, (MPI_Offset) *disp,
|
||||
c_etype, c_filetype,
|
||||
datarep, c_info));
|
||||
}
|
||||
|
@ -48,5 +48,8 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_SYNC,
|
||||
|
||||
void mpi_file_sync_f(MPI_Fint *fh, MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_sync(c_fh));
|
||||
|
||||
}
|
||||
|
@ -46,7 +46,14 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_WRITE_ALL_BEGIN,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_file_write_all_begin_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr)
|
||||
void mpi_file_write_all_begin_f(MPI_Fint *fh, char *buf,
|
||||
MPI_Fint *count, MPI_Fint *datatype,
|
||||
MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_write_all_begin(c_fh, buf,
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type));
|
||||
}
|
||||
|
@ -8,6 +8,9 @@
|
||||
|
||||
#include "mpi.h"
|
||||
#include "mpi/f77/bindings.h"
|
||||
#include "mpi/f77/constants.h"
|
||||
#include "errhandler/errhandler.h"
|
||||
#include "communicator/communicator.h"
|
||||
|
||||
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_FILE_WRITE_ALL_END = mpi_file_write_all_end_f
|
||||
@ -46,7 +49,37 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_WRITE_ALL_END,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_file_write_all_end_f(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr)
|
||||
void mpi_file_write_all_end_f(MPI_Fint *fh, char *buf, MPI_Fint *status,
|
||||
MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_Status *c_status;
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
MPI_Status c_status2;
|
||||
#endif
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
|
||||
/* See if we got MPI_STATUS_IGNORE */
|
||||
|
||||
if (OMPI_IS_FORTRAN_STATUS_IGNORE(status)) {
|
||||
c_status = MPI_STATUS_IGNORE;
|
||||
} else {
|
||||
|
||||
/* If sizeof(int) == sizeof(INTEGER), then there's no
|
||||
translation necessary -- let the underlying functions write
|
||||
directly into the Fortran status */
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT == SIZEOF_INT
|
||||
c_status = (MPI_Status *) status;
|
||||
#else
|
||||
c_status = &c_status2;
|
||||
#endif
|
||||
}
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_write_all_end(c_fh, buf, c_status));
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
if (MPI_STATUS_IGNORE != c_status) {
|
||||
MPI_Status_c2f(c_status, status);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -8,6 +8,9 @@
|
||||
|
||||
#include "mpi.h"
|
||||
#include "mpi/f77/bindings.h"
|
||||
#include "mpi/f77/constants.h"
|
||||
#include "errhandler/errhandler.h"
|
||||
#include "communicator/communicator.h"
|
||||
|
||||
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_FILE_WRITE_ALL = mpi_file_write_all_f
|
||||
@ -46,7 +49,41 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_WRITE_ALL,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_file_write_all_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)
|
||||
void mpi_file_write_all_f(MPI_Fint *fh, char *buf, MPI_Fint *count,
|
||||
MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
MPI_Status *c_status;
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
MPI_Status c_status2;
|
||||
#endif
|
||||
|
||||
/* See if we got MPI_STATUS_IGNORE */
|
||||
|
||||
if (OMPI_IS_FORTRAN_STATUS_IGNORE(status)) {
|
||||
c_status = MPI_STATUS_IGNORE;
|
||||
} else {
|
||||
|
||||
/* If sizeof(int) == sizeof(INTEGER), then there's no
|
||||
translation necessary -- let the underlying functions write
|
||||
directly into the Fortran status */
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT == SIZEOF_INT
|
||||
c_status = (MPI_Status *) status;
|
||||
#else
|
||||
c_status = &c_status2;
|
||||
#endif
|
||||
}
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_write_all(c_fh, buf,
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type, c_status));
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
if (MPI_STATUS_IGNORE != c_status) {
|
||||
MPI_Status_c2f(c_status, status);
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
|
@ -46,7 +46,16 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_WRITE_AT_ALL_BEGIN,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_file_write_at_all_begin_f(MPI_Fint *fh, MPI_Fint *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr)
|
||||
void mpi_file_write_at_all_begin_f(MPI_Fint *fh, MPI_Fint *offset,
|
||||
char *buf, MPI_Fint *count,
|
||||
MPI_Fint *datatype, MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
|
||||
*ierr = OMPI_FINT_2_INT(MPI_File_write_at_all_begin(c_fh,
|
||||
(MPI_Offset) *offset,
|
||||
buf,
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type));
|
||||
}
|
||||
|
@ -8,6 +8,9 @@
|
||||
|
||||
#include "mpi.h"
|
||||
#include "mpi/f77/bindings.h"
|
||||
#include "mpi/f77/constants.h"
|
||||
#include "errhandler/errhandler.h"
|
||||
#include "communicator/communicator.h"
|
||||
|
||||
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_FILE_WRITE_AT_ALL_END = mpi_file_write_at_all_end_f
|
||||
@ -46,7 +49,37 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_WRITE_AT_ALL_END,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_file_write_at_all_end_f(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr)
|
||||
void mpi_file_write_at_all_end_f(MPI_Fint *fh, char *buf,
|
||||
MPI_Fint *status, MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Status *c_status;
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
MPI_Status c_status2;
|
||||
#endif
|
||||
|
||||
/* See if we got MPI_STATUS_IGNORE */
|
||||
|
||||
if (OMPI_IS_FORTRAN_STATUS_IGNORE(status)) {
|
||||
c_status = MPI_STATUS_IGNORE;
|
||||
} else {
|
||||
|
||||
/* If sizeof(int) == sizeof(INTEGER), then there's no
|
||||
translation necessary -- let the underlying functions write
|
||||
directly into the Fortran status */
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT == SIZEOF_INT
|
||||
c_status = (MPI_Status *) status;
|
||||
#else
|
||||
c_status = &c_status2;
|
||||
#endif
|
||||
}
|
||||
|
||||
*ierr = OMPI_FINT_2_INT(MPI_File_write_at_all_end(c_fh, buf, c_status));
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
if (MPI_STATUS_IGNORE != c_status) {
|
||||
MPI_Status_c2f(c_status, status);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -8,6 +8,9 @@
|
||||
|
||||
#include "mpi.h"
|
||||
#include "mpi/f77/bindings.h"
|
||||
#include "mpi/f77/constants.h"
|
||||
#include "errhandler/errhandler.h"
|
||||
#include "communicator/communicator.h"
|
||||
|
||||
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_FILE_WRITE_AT_ALL = mpi_file_write_at_all_f
|
||||
@ -46,7 +49,45 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_WRITE_AT_ALL,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_file_write_at_all_f(MPI_Fint *fh, MPI_Fint *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)
|
||||
void mpi_file_write_at_all_f(MPI_Fint *fh, MPI_Fint *offset,
|
||||
char *buf, MPI_Fint *count,
|
||||
MPI_Fint *datatype, MPI_Fint *status,
|
||||
MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
MPI_Status *c_status;
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
MPI_Status c_status2;
|
||||
#endif
|
||||
|
||||
/* See if we got MPI_STATUS_IGNORE */
|
||||
|
||||
if (OMPI_IS_FORTRAN_STATUS_IGNORE(status)) {
|
||||
c_status = MPI_STATUS_IGNORE;
|
||||
} else {
|
||||
|
||||
/* If sizeof(int) == sizeof(INTEGER), then there's no
|
||||
translation necessary -- let the underlying functions write
|
||||
directly into the Fortran status */
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT == SIZEOF_INT
|
||||
c_status = (MPI_Status *) status;
|
||||
#else
|
||||
c_status = &c_status2;
|
||||
#endif
|
||||
}
|
||||
|
||||
*ierr = OMPI_FINT_2_INT(MPI_File_write_at_all(c_fh,
|
||||
(MPI_Offset) *offset,
|
||||
buf,
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type,
|
||||
c_status));
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
if (MPI_STATUS_IGNORE != c_status) {
|
||||
MPI_Status_c2f(c_status, status);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -8,6 +8,9 @@
|
||||
|
||||
#include "mpi.h"
|
||||
#include "mpi/f77/bindings.h"
|
||||
#include "mpi/f77/constants.h"
|
||||
#include "errhandler/errhandler.h"
|
||||
#include "communicator/communicator.h"
|
||||
|
||||
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_FILE_WRITE_AT = mpi_file_write_at_f
|
||||
@ -46,7 +49,43 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_WRITE_AT,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_file_write_at_f(MPI_Fint *fh, MPI_Fint *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)
|
||||
void mpi_file_write_at_f(MPI_Fint *fh, MPI_Fint *offset,
|
||||
char *buf, MPI_Fint *count,
|
||||
MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
MPI_Status *c_status;
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
MPI_Status c_status2;
|
||||
#endif
|
||||
|
||||
/* See if we got MPI_STATUS_IGNORE */
|
||||
|
||||
if (OMPI_IS_FORTRAN_STATUS_IGNORE(status)) {
|
||||
c_status = MPI_STATUS_IGNORE;
|
||||
} else {
|
||||
|
||||
/* If sizeof(int) == sizeof(INTEGER), then there's no
|
||||
translation necessary -- let the underlying functions write
|
||||
directly into the Fortran status */
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT == SIZEOF_INT
|
||||
c_status = (MPI_Status *) status;
|
||||
#else
|
||||
c_status = &c_status2;
|
||||
#endif
|
||||
}
|
||||
|
||||
*ierr = OMPI_FINT_2_INT(MPI_File_write_at(c_fh,
|
||||
(MPI_Offset) *offset,
|
||||
buf,
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type, c_status));
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
if (MPI_STATUS_IGNORE != c_status) {
|
||||
MPI_Status_c2f(c_status, status);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -8,6 +8,9 @@
|
||||
|
||||
#include "mpi.h"
|
||||
#include "mpi/f77/bindings.h"
|
||||
#include "mpi/f77/constants.h"
|
||||
#include "errhandler/errhandler.h"
|
||||
#include "communicator/communicator.h"
|
||||
|
||||
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_FILE_WRITE = mpi_file_write_f
|
||||
@ -46,7 +49,40 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_WRITE,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_file_write_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)
|
||||
void mpi_file_write_f(MPI_Fint *fh, char *buf, MPI_Fint *count,
|
||||
MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
MPI_Status *c_status;
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
MPI_Status c_status2;
|
||||
#endif
|
||||
|
||||
/* See if we got MPI_STATUS_IGNORE */
|
||||
|
||||
if (OMPI_IS_FORTRAN_STATUS_IGNORE(status)) {
|
||||
c_status = MPI_STATUS_IGNORE;
|
||||
} else {
|
||||
|
||||
/* If sizeof(int) == sizeof(INTEGER), then there's no
|
||||
translation necessary -- let the underlying functions write
|
||||
directly into the Fortran status */
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT == SIZEOF_INT
|
||||
c_status = (MPI_Status *) status;
|
||||
#else
|
||||
c_status = &c_status2;
|
||||
#endif
|
||||
}
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_write(c_fh, buf,
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type, c_status));
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
if (MPI_STATUS_IGNORE != c_status) {
|
||||
MPI_Status_c2f(c_status, status);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -46,7 +46,15 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_WRITE_ORDERED_BEGIN,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_file_write_ordered_begin_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr)
|
||||
void mpi_file_write_ordered_begin_f(MPI_Fint *fh, char *buf,
|
||||
MPI_Fint *count, MPI_Fint *datatype,
|
||||
MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_write_ordered_begin(c_fh, buf,
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type));
|
||||
}
|
||||
|
@ -8,6 +8,9 @@
|
||||
|
||||
#include "mpi.h"
|
||||
#include "mpi/f77/bindings.h"
|
||||
#include "mpi/f77/constants.h"
|
||||
#include "errhandler/errhandler.h"
|
||||
#include "communicator/communicator.h"
|
||||
|
||||
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_FILE_WRITE_ORDERED_END = mpi_file_write_ordered_end_f
|
||||
@ -46,7 +49,37 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_WRITE_ORDERED_END,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_file_write_ordered_end_f(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr)
|
||||
void mpi_file_write_ordered_end_f(MPI_Fint *fh, char *buf,
|
||||
MPI_Fint *status, MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Status *c_status;
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
MPI_Status c_status2;
|
||||
#endif
|
||||
|
||||
/* See if we got MPI_STATUS_IGNORE */
|
||||
|
||||
if (OMPI_IS_FORTRAN_STATUS_IGNORE(status)) {
|
||||
c_status = MPI_STATUS_IGNORE;
|
||||
} else {
|
||||
|
||||
/* If sizeof(int) == sizeof(INTEGER), then there's no
|
||||
translation necessary -- let the underlying functions write
|
||||
directly into the Fortran status */
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT == SIZEOF_INT
|
||||
c_status = (MPI_Status *) status;
|
||||
#else
|
||||
c_status = &c_status2;
|
||||
#endif
|
||||
}
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_write_ordered_end(c_fh, buf, c_status));
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
if (MPI_STATUS_IGNORE != c_status) {
|
||||
MPI_Status_c2f(c_status, status);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -8,6 +8,9 @@
|
||||
|
||||
#include "mpi.h"
|
||||
#include "mpi/f77/bindings.h"
|
||||
#include "mpi/f77/constants.h"
|
||||
#include "errhandler/errhandler.h"
|
||||
#include "communicator/communicator.h"
|
||||
|
||||
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_FILE_WRITE_ORDERED = mpi_file_write_ordered_f
|
||||
@ -46,7 +49,43 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_WRITE_ORDERED,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_file_write_ordered_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)
|
||||
void mpi_file_write_ordered_f(MPI_Fint *fh, char *buf, MPI_Fint *count,
|
||||
MPI_Fint *datatype, MPI_Fint *status,
|
||||
MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
MPI_Status *c_status;
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
MPI_Status c_status2;
|
||||
#endif
|
||||
|
||||
/* See if we got MPI_STATUS_IGNORE */
|
||||
|
||||
if (OMPI_IS_FORTRAN_STATUS_IGNORE(status)) {
|
||||
c_status = MPI_STATUS_IGNORE;
|
||||
} else {
|
||||
|
||||
/* If sizeof(int) == sizeof(INTEGER), then there's no
|
||||
translation necessary -- let the underlying functions write
|
||||
directly into the Fortran status */
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT == SIZEOF_INT
|
||||
c_status = (MPI_Status *) status;
|
||||
#else
|
||||
c_status = &c_status2;
|
||||
#endif
|
||||
}
|
||||
|
||||
*ierr = OMPI_FINT_2_INT(MPI_File_write_ordered(c_fh,
|
||||
buf,
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type,
|
||||
c_status));
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
if (MPI_STATUS_IGNORE != c_status) {
|
||||
MPI_Status_c2f(c_status, status);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -8,6 +8,9 @@
|
||||
|
||||
#include "mpi.h"
|
||||
#include "mpi/f77/bindings.h"
|
||||
#include "mpi/f77/constants.h"
|
||||
#include "errhandler/errhandler.h"
|
||||
#include "communicator/communicator.h"
|
||||
|
||||
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_FILE_WRITE_SHARED = mpi_file_write_shared_f
|
||||
@ -46,7 +49,43 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_WRITE_SHARED,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_file_write_shared_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)
|
||||
void mpi_file_write_shared_f(MPI_Fint *fh, char *buf, MPI_Fint *count,
|
||||
MPI_Fint *datatype, MPI_Fint *status,
|
||||
MPI_Fint *ierr)
|
||||
{
|
||||
/* This function not yet implemented */
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
MPI_Status *c_status;
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
MPI_Status c_status2;
|
||||
#endif
|
||||
|
||||
/* See if we got MPI_STATUS_IGNORE */
|
||||
|
||||
if (OMPI_IS_FORTRAN_STATUS_IGNORE(status)) {
|
||||
c_status = MPI_STATUS_IGNORE;
|
||||
} else {
|
||||
|
||||
/* If sizeof(int) == sizeof(INTEGER), then there's no
|
||||
translation necessary -- let the underlying functions write
|
||||
directly into the Fortran status */
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT == SIZEOF_INT
|
||||
c_status = (MPI_Status *) status;
|
||||
#else
|
||||
c_status = &c_status2;
|
||||
#endif
|
||||
}
|
||||
|
||||
*ierr = OMPI_FINT_2_INT(MPI_File_write_shared(c_fh,
|
||||
buf,
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type,
|
||||
c_status));
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
if (MPI_STATUS_IGNORE != c_status) {
|
||||
MPI_Status_c2f(c_status, status);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user