Dear Daniel,
well, this definitly would be an issue for the [email protected] list.
Your report is definitely important and valid, all functions allowing
MPI_BOTTOM in the fortran interface should be using OMPI_ADDR to convert for
the C-interface....
Aaah, I see George has a similar commit -- possibly, we need to sync.
Please see the code attached, compared r15030, it adapts the macros to use
OMPI_F2C_...
Thanks,
Rainer
On Tuesday 12 June 2007 23:15, Daniel Spångberg wrote:
> One of the users of our computer cluster have reported a problem with his
> simulation code. We have been able to trace this down to a problem with
> the MPI struct when absolute addressing is used for the members in the
> struct, necessating the use of MPI_BOTTOM. The problem occurs with
> MPI_BCAST, but works fine with MPI_SEND and MPI_RECV. I digged down into
> the openmpi code and found out that the problem occurs only in fortran,
> which seems to be because when MPI_BCAST is called, the OMPI_ADDR macro in
> ompi/mpi/f77/constants.h is never evaluated which thus never turns the
> fortran MPI_BOTTOM into a C MPI_BOTTOM. When MPI_SEND and MPI_RECV are
> used the OMPI_ADDR macro is evaluated and no problem occurs.
>
> An example of a problematic code (tested on two processes):
>
> program testme
> implicit none
> include 'mpif.h'
> integer ierr,rank,size
> integer btype(1),blen(1),param_batch
> real param
> integer(kind=mpi_address_kind) :: disp(1)
> integer status(MPI_STATUS_SIZE)
>
> param=0.
>
> call MPI_INIT(ierr)
> call MPI_GET_ADDRESS(param,disp(1),ierr)
> if (ierr.ne.MPI_SUCCESS) write(*,*) 'MPI_GET_ADDRESS FAILED'
> btype(1)=MPI_REAL
> blen(1)=1
> call MPI_COMM_RANK(MPI_COMM_WORLD,rank,ierr)
> call MPI_COMM_SIZE(MPI_COMM_WORLD,size,ierr)
> call MPI_TYPE_CREATE_STRUCT(1,blen,disp,btype,param_batch,ierr)
> if (ierr.ne.MPI_SUCCESS) then
> write(*,*) 'MPI_TYPE_CREATE_STRUCT FAILED'
> endif
> call MPI_TYPE_COMMIT(param_batch,ierr)
> if (ierr.ne.MPI_SUCCESS) write(*,*) 'MPI_TYPE_COMMIT FAILED'
> if (rank.eq.0) param=100.
> c if (rank.eq.0) then
> c call MPI_SEND(MPI_BOTTOM,1,
> c x param_batch,1,0,MPI_COMM_WORLD,ierr)
> c else
> c call MPI_RECV(MPI_BOTTOM,1,
> c x param_batch,0,0,MPI_COMM_WORLD,status,ierr)
> c endif
> call MPI_BCAST(MPI_BOTTOM,1,param_batch,0,MPI_COMM_WORLD,ierr)
> if (ierr.ne.MPI_SUCCESS) write(*,*) 'MPI_BCAST FAILED'
> write(*,*) 'Rank:',rank,'Size:',size,'Param=',param
> call MPI_Finalize(ierr)
>
> end program testme
>
> mpirun -np 2 testme_submitted_to_devel
> [auchentoshan:21021] *** Process received signal ***
> [auchentoshan:21021] Signal: Segmentation fault (11)
> [auchentoshan:21021] Signal code: Address not mapped (1)
> [auchentoshan:21021] Failing at address: 0x7fc04ffd7c
> [auchentoshan:21021] [ 0] /lib64/tls/libpthread.so.0 [0x3d9660c430]
> [auchentoshan:21021] [ 1] /lib64/tls/libc.so.6(memcpy+0x60) [0x3d95571ec0]
> [auchentoshan:21021] [ 2]
> /opt/openmpi-1.2.1-gcc4/lib/libmpi.so.0(ompi_convertor_pack+0x164)
> [0x2a957cf5b4]
> [auchentoshan:21021] [ 3]
> /opt/openmpi-1.2.1-gcc4/lib/openmpi/mca_pml_ob1.so(mca_pml_ob1_send_request
>_start_copy+0x24c) [0x2a982851dc]
> [auchentoshan:21021] [ 4]
> /opt/openmpi-1.2.1-gcc4/lib/openmpi/mca_pml_ob1.so(mca_pml_ob1_isend+0x217)
> [0x2a9827fe77]
> [auchentoshan:21021] [ 5]
> /opt/openmpi-1.2.1-gcc4/lib/openmpi/mca_coll_tuned.so(ompi_coll_tuned_bcast
>_intra_generic+0x354) [0x2a98ac08b4]
> [auchentoshan:21021] [ 6]
> /opt/openmpi-1.2.1-gcc4/lib/openmpi/mca_coll_tuned.so(ompi_coll_tuned_bcast
>_intra_binomial+0xc8) [0x2a98ac0bd8]
> [auchentoshan:21021] [ 7]
> /opt/openmpi-1.2.1-gcc4/lib/libmpi.so.0(PMPI_Bcast+0x15c) [0x2a957d62ac]
> [auchentoshan:21021] [ 8]
> /opt/openmpi-1.2.1-gcc4/lib/libmpi_f77.so.0(pmpi_bcast_+0x5a)
> [0x2a9567e99a]
> [auchentoshan:21021] [ 9] testme_submitted_to_devel(MAIN__+0x1f8)
> [0x401080]
> [auchentoshan:21021] [10] testme_submitted_to_devel(main+0xe) [0x4011be]
> [auchentoshan:21021] [11] /lib64/tls/libc.so.6(__libc_start_main+0xdb)
> [0x3d9551c3fb]
> [auchentoshan:21021] [12] testme_submitted_to_devel [0x400dfa]
> [auchentoshan:21021] *** End of error message ***
> mpirun noticed that job rank 0 with PID 21021 on node auchentoshan exited
> on signal 11 (Segmentation fault).
> 1 additional process aborted (not shown)
>
> The openmpi version we have tested this on includes the latest, 1.2.2
> version as well although the log message above is for version 1.2.1.
> Distribution: Scientific Linux 4.4 (RHEL4 clone). The problem occurs on
> both AMD64 and i386. The problem occurs both when using gcc/gfortran and
> the portland group compilers version 7.0-4. Interconnect GBE.
>
> daniels@auchentoshan:~ > gcc4 --version
> gcc4 (GCC) 4.1.0 20060515 (Red Hat 4.1.0-18)
> Copyright (C) 2006 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions. There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>
> daniels@auchentoshan:~ > gfortran --version
> GNU Fortran 95 (GCC) 4.1.0 20060515 (Red Hat 4.1.0-18)
> Copyright (C) 2006 Free Software Foundation, Inc.
>
> GNU Fortran comes with NO WARRANTY, to the extent permitted by law.
> You may redistribute copies of GNU Fortran
> under the terms of the GNU General Public License.
> For more information about these matters, see the file named COPYING
>
> Working C code which does the same thing:
> #include <stdio.h>
> #include <stdlib.h>
> #include <mpi.h>
>
> int main(int argc, char **argv)
> {
> int rank,size;
> float param=0.;
> MPI_Datatype btype[1],param_batch;
> MPI_Aint disp[1];
> int blen[1];
>
> MPI_Init(&argc,&argv);
> if (MPI_Get_address(¶m,&disp[0])!=MPI_SUCCESS)
> fprintf(stderr,"MPI_Get_address failed.\n");
> btype[0]=MPI_FLOAT;
> blen[0]=1;
> MPI_Comm_rank(MPI_COMM_WORLD,&rank);
> MPI_Comm_size(MPI_COMM_WORLD,&size);
> if (MPI_Type_create_struct(1,blen,disp,btype,¶m_batch)!=MPI_SUCCESS)
> fprintf(stderr,"MPI_Type_Create_Struct failed.\n");
> if (MPI_Type_commit(¶m_batch)!=MPI_SUCCESS)
> fprintf(stderr,"MPI_Type_Commit failed.\n");
> if (rank==0)
> param=100.;
> if (MPI_Bcast(MPI_BOTTOM,1,param_batch,0,MPI_COMM_WORLD)!=MPI_SUCCESS)
> fprintf(stderr,"MPI_Bcast failed.\n");
> printf("Rank:%d, Size:%d, Param=%f\n",rank,size,param);
> MPI_Finalize();
> return 0;
> }
>
>
> Best regards
> Daniel Spångberg
>
> _______________________________________________
> devel mailing list
> [email protected]
> http://www.open-mpi.org/mailman/listinfo.cgi/devel
--
----------------------------------------------------------------
Dipl.-Inf. Rainer Keller http://www.hlrs.de/people/keller
High Performance Computing Tel: ++49 (0)711-685 6 5858
Center Stuttgart (HLRS) Fax: ++49 (0)711-685 6 5832
POSTAL:Nobelstrasse 19 email: [email protected]
ACTUAL:Allmandring 30, R.O.030 AIM:rusraink
70550 Stuttgart
Index: constants.h
===================================================================
--- constants.h (Revision 15017)
+++ constants.h (Arbeitskopie)
@@ -89,7 +89,7 @@
/* Note that the rationale for the types of each of these variables is
discussed in ompi/include/mpif-common.h. Do not change the types
- without also changing ompi/mpi/runtime/ompi_mpi_init.c and
+ without also changing ompi/runtime/ompi_mpi_init.c and
ompi/include/mpif-common.h. */
DECL(int, MPI_FORTRAN_BOTTOM, mpi_fortran_bottom,
@@ -215,7 +215,7 @@
#endif /* weak / specific symbol type */
/* Convert between Fortran and C MPI_BOTTOM */
-#define OMPI_ADDR(addr) (OMPI_IS_FORTRAN_BOTTOM(addr) ? MPI_BOTTOM : (addr))
-#define OMPI_IN_PLACE(addr) (OMPI_IS_FORTRAN_IN_PLACE(addr) ? MPI_IN_PLACE : (addr))
+#define OMPI_F2C_BOTTOM(addr) (OMPI_IS_FORTRAN_BOTTOM(addr) ? MPI_BOTTOM : (addr))
+#define OMPI_F2C_IN_PLACE(addr) (OMPI_IS_FORTRAN_IN_PLACE(addr) ? MPI_IN_PLACE : (addr))
#endif /* OMPI_F77_CONSTANTS_H */
Index: accumulate_f.c
===================================================================
--- accumulate_f.c (Revision 15017)
+++ accumulate_f.c (Arbeitskopie)
@@ -70,7 +70,7 @@
MPI_Win c_win = MPI_Win_f2c(*win);
MPI_Op c_op = MPI_Op_f2c(*op);
- *ierr = OMPI_INT_2_FINT(MPI_Accumulate(OMPI_ADDR(origin_addr),
+ *ierr = OMPI_INT_2_FINT(MPI_Accumulate(OMPI_F2C_BOTTOM(origin_addr),
OMPI_FINT_2_INT(*origin_count),
c_origin_datatype,
OMPI_FINT_2_INT(*target_rank),
Index: allgather_f.c
===================================================================
--- allgather_f.c (Revision 15017)
+++ allgather_f.c (Arbeitskopie)
@@ -69,9 +69,9 @@
c_sendtype = MPI_Type_f2c(*sendtype);
c_recvtype = MPI_Type_f2c(*recvtype);
- if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) {
- sendbuf = MPI_IN_PLACE;
- }
+ sendbuf = OMPI_F2C_IN_PLACE(sendbuf);
+ sendbuf = OMPI_F2C_BOTTOM(sendbuf);
+ recvbuf = OMPI_F2C_BOTTOM(recvbuf);
*ierr = OMPI_INT_2_FINT(MPI_Allgather(sendbuf,
OMPI_FINT_2_INT(*sendcount),
Index: allgatherv_f.c
===================================================================
--- allgatherv_f.c (Revision 15017)
+++ allgatherv_f.c (Arbeitskopie)
@@ -76,9 +76,9 @@
OMPI_ARRAY_FINT_2_INT(recvcounts, size);
OMPI_ARRAY_FINT_2_INT(displs, size);
- if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) {
- sendbuf = MPI_IN_PLACE;
- }
+ sendbuf = OMPI_F2C_IN_PLACE(sendbuf);
+ sendbuf = OMPI_F2C_BOTTOM(sendbuf);
+ recvbuf = OMPI_F2C_BOTTOM(recvbuf);
*ierr = OMPI_INT_2_FINT(MPI_Allgatherv(sendbuf,
OMPI_FINT_2_INT(*sendcount),
Index: allreduce_f.c
===================================================================
--- allreduce_f.c (Revision 15017)
+++ allreduce_f.c (Arbeitskopie)
@@ -70,9 +70,9 @@
c_type = MPI_Type_f2c(*datatype);
c_op = MPI_Op_f2c(*op);
- if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) {
- sendbuf = MPI_IN_PLACE;
- }
+ sendbuf = OMPI_F2C_IN_PLACE(sendbuf);
+ sendbuf = OMPI_F2C_BOTTOM(sendbuf);
+ recvbuf = OMPI_F2C_BOTTOM(recvbuf);
*ierr = OMPI_INT_2_FINT(MPI_Allreduce(sendbuf, recvbuf,
OMPI_FINT_2_INT(*count),
Index: alltoall_f.c
===================================================================
--- alltoall_f.c (Revision 15017)
+++ alltoall_f.c (Arbeitskopie)
@@ -19,6 +19,7 @@
#include "ompi_config.h"
#include "ompi/mpi/f77/bindings.h"
+#include "ompi/mpi/f77/constants.h"
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
#pragma weak PMPI_ALLTOALL = mpi_alltoall_f
@@ -68,10 +69,14 @@
c_sendtype = MPI_Type_f2c(*sendtype);
c_recvtype = MPI_Type_f2c(*recvtype);
+ sendbuf = OMPI_F2C_IN_PLACE(sendbuf);
+ sendbuf = OMPI_F2C_BOTTOM(sendbuf);
+ recvbuf = OMPI_F2C_BOTTOM(recvbuf);
+
*ierr = OMPI_INT_2_FINT(MPI_Alltoall(sendbuf,
- OMPI_FINT_2_INT(*sendcount),
- c_sendtype,
- recvbuf,
- OMPI_FINT_2_INT(*recvcount),
- c_recvtype, c_comm));
+ OMPI_FINT_2_INT(*sendcount),
+ c_sendtype,
+ recvbuf,
+ OMPI_FINT_2_INT(*recvcount),
+ c_recvtype, c_comm));
}
Index: alltoallv_f.c
===================================================================
--- alltoallv_f.c (Revision 15017)
+++ alltoallv_f.c (Arbeitskopie)
@@ -19,6 +19,7 @@
#include "ompi_config.h"
#include "ompi/mpi/f77/bindings.h"
+#include "ompi/mpi/f77/constants.h"
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
#pragma weak PMPI_ALLTOALLV = mpi_alltoallv_f
@@ -80,6 +81,9 @@
OMPI_ARRAY_FINT_2_INT(recvcounts, size);
OMPI_ARRAY_FINT_2_INT(rdispls, size);
+ sendbuf = OMPI_F2C_IN_PLACE(sendbuf);
+ sendbuf = OMPI_F2C_BOTTOM(sendbuf);
+ recvbuf = OMPI_F2C_BOTTOM(recvbuf);
*ierr = OMPI_INT_2_FINT(MPI_Alltoallv(sendbuf,
OMPI_ARRAY_NAME_CONVERT(sendcounts),
Index: alltoallw_f.c
===================================================================
--- alltoallw_f.c (Revision 15017)
+++ alltoallw_f.c (Arbeitskopie)
@@ -19,6 +19,7 @@
#include "ompi_config.h"
#include "ompi/mpi/f77/bindings.h"
+#include "ompi/mpi/f77/constants.h"
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
#pragma weak PMPI_ALLTOALLW = mpi_alltoallw_f
@@ -88,6 +89,10 @@
--size;
}
+ /* Alltoallw does not support MPI_IN_PLACE */
+ sendbuf = OMPI_F2C_BOTTOM(sendbuf);
+ recvbuf = OMPI_F2C_BOTTOM(recvbuf);
+
*ierr = OMPI_INT_2_FINT(MPI_Alltoallw(sendbuf,
OMPI_ARRAY_NAME_CONVERT(sendcounts),
OMPI_ARRAY_NAME_CONVERT(sdispls),
Index: bcast_f.c
===================================================================
--- bcast_f.c (Revision 15017)
+++ bcast_f.c (Arbeitskopie)
@@ -19,6 +19,7 @@
#include "ompi_config.h"
#include "ompi/mpi/f77/bindings.h"
+#include "ompi/mpi/f77/constants.h"
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
#pragma weak PMPI_BCAST = mpi_bcast_f
@@ -66,7 +67,7 @@
c_comm = MPI_Comm_f2c(*comm);
c_type = MPI_Type_f2c(*datatype);
- *ierr = OMPI_INT_2_FINT(MPI_Bcast(buffer,
+ *ierr = OMPI_INT_2_FINT(MPI_Bcast(OMPI_F2C_BOTTOM(buffer),
OMPI_FINT_2_INT(*count),
c_type,
OMPI_FINT_2_INT(*root),
Index: bsend_f.c
===================================================================
--- bsend_f.c (Revision 15017)
+++ bsend_f.c (Arbeitskopie)
@@ -65,7 +65,7 @@
c_comm = MPI_Comm_f2c (*comm);
- *ierr = OMPI_INT_2_FINT(MPI_Bsend(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
+ *ierr = OMPI_INT_2_FINT(MPI_Bsend(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
c_type, OMPI_FINT_2_INT(*dest),
OMPI_FINT_2_INT(*tag), c_comm));
}
Index: bsend_init_f.c
===================================================================
--- bsend_init_f.c (Revision 15017)
+++ bsend_init_f.c (Arbeitskopie)
@@ -66,7 +66,7 @@
c_comm = MPI_Comm_f2c (*comm);
- *ierr = OMPI_INT_2_FINT(MPI_Bsend_init(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
+ *ierr = OMPI_INT_2_FINT(MPI_Bsend_init(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
c_type,
OMPI_FINT_2_INT(*dest),
OMPI_FINT_2_INT(*tag),
Index: exscan_f.c
===================================================================
--- exscan_f.c (Revision 15017)
+++ exscan_f.c (Arbeitskopie)
@@ -19,6 +19,7 @@
#include "ompi_config.h"
#include "ompi/mpi/f77/bindings.h"
+#include "ompi/mpi/f77/constants.h"
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
#pragma weak PMPI_EXSCAN = mpi_exscan_f
@@ -69,6 +70,10 @@
c_type = MPI_Type_f2c(*datatype);
c_op = MPI_Op_f2c(*op);
+ /* MPI_IN_PLACE is not supported */
+ sendbuf = OMPI_F2C_BOTTOM (sendbuf);
+ recvbuf = OMPI_F2C_BOTTOM (recvbuf);
+
*ierr = OMPI_INT_2_FINT(MPI_Exscan(sendbuf, recvbuf,
OMPI_FINT_2_INT(*count),
c_type, c_op, c_comm));
Index: file_iread_at_f.c
===================================================================
--- file_iread_at_f.c (Revision 15017)
+++ file_iread_at_f.c (Arbeitskopie)
@@ -67,7 +67,7 @@
MPI_Request c_request;
*ierr = OMPI_INT_2_FINT(MPI_File_iread_at(c_fh, (MPI_Offset) *offset,
- OMPI_ADDR(buf),
+ OMPI_F2C_BOTTOM(buf),
OMPI_FINT_2_INT(*count),
c_type,
&c_request));
Index: file_iread_f.c
===================================================================
--- file_iread_f.c (Revision 15017)
+++ file_iread_f.c (Arbeitskopie)
@@ -65,7 +65,7 @@
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
MPI_Request c_request;
- *ierr = OMPI_INT_2_FINT(MPI_File_iread(c_fh, OMPI_ADDR(buf),
+ *ierr = OMPI_INT_2_FINT(MPI_File_iread(c_fh, OMPI_F2C_BOTTOM(buf),
OMPI_FINT_2_INT(*count),
c_type, &c_request));
Index: file_iread_shared_f.c
===================================================================
--- file_iread_shared_f.c (Revision 15017)
+++ file_iread_shared_f.c (Arbeitskopie)
@@ -67,7 +67,7 @@
MPI_Request c_request;
*ierr = OMPI_INT_2_FINT(MPI_File_iread_shared(c_fh,
- OMPI_ADDR(buf),
+ OMPI_F2C_BOTTOM(buf),
OMPI_FINT_2_INT(*count),
c_type,
&c_request));
Index: file_iwrite_at_f.c
===================================================================
--- file_iwrite_at_f.c (Revision 15017)
+++ file_iwrite_at_f.c (Arbeitskopie)
@@ -67,7 +67,7 @@
MPI_Request c_request;
*ierr = OMPI_INT_2_FINT(MPI_File_iwrite_at(c_fh, (MPI_Offset) *offset,
- OMPI_ADDR(buf),
+ OMPI_F2C_BOTTOM(buf),
OMPI_FINT_2_INT(*count),
c_type, &c_request));
if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) {
Index: file_iwrite_f.c
===================================================================
--- file_iwrite_f.c (Revision 15017)
+++ file_iwrite_f.c (Arbeitskopie)
@@ -64,7 +64,7 @@
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
MPI_Request c_request;
- *ierr = OMPI_INT_2_FINT(MPI_File_iwrite(c_fh, OMPI_ADDR(buf),
+ *ierr = OMPI_INT_2_FINT(MPI_File_iwrite(c_fh, OMPI_F2C_BOTTOM(buf),
OMPI_FINT_2_INT(*count),
c_type, &c_request));
Index: file_iwrite_shared_f.c
===================================================================
--- file_iwrite_shared_f.c (Revision 15017)
+++ file_iwrite_shared_f.c (Arbeitskopie)
@@ -67,7 +67,7 @@
MPI_Request c_request;
*ierr = OMPI_INT_2_FINT(MPI_File_iwrite_shared(c_fh,
- OMPI_ADDR(buf),
+ OMPI_F2C_BOTTOM(buf),
OMPI_FINT_2_INT(*count),
c_type,
&c_request));
Index: file_read_all_begin_f.c
===================================================================
--- file_read_all_begin_f.c (Revision 15017)
+++ file_read_all_begin_f.c (Arbeitskopie)
@@ -65,7 +65,7 @@
MPI_File c_fh = MPI_File_f2c(*fh);
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
- *ierr = OMPI_INT_2_FINT(MPI_File_read_all_begin(c_fh, OMPI_ADDR(buf),
+ *ierr = OMPI_INT_2_FINT(MPI_File_read_all_begin(c_fh, OMPI_F2C_BOTTOM(buf),
OMPI_FINT_2_INT(*count),
c_type));
}
Index: file_read_all_f.c
===================================================================
--- file_read_all_f.c (Revision 15017)
+++ file_read_all_f.c (Arbeitskopie)
@@ -85,7 +85,7 @@
#endif
}
- *ierr = OMPI_INT_2_FINT(MPI_File_read_all(c_fh, OMPI_ADDR(buf),
+ *ierr = OMPI_INT_2_FINT(MPI_File_read_all(c_fh, OMPI_F2C_BOTTOM(buf),
OMPI_FINT_2_INT(*count),
c_type, c_status));
Index: file_read_at_all_begin_f.c
===================================================================
--- file_read_at_all_begin_f.c (Revision 15017)
+++ file_read_at_all_begin_f.c (Arbeitskopie)
@@ -67,7 +67,7 @@
*ierr = OMPI_FINT_2_INT(MPI_File_read_at_all_begin(c_fh,
(MPI_Offset) *offset,
- OMPI_ADDR(buf),
+ OMPI_F2C_BOTTOM(buf),
OMPI_FINT_2_INT(*count),
c_type));
}
Index: file_read_at_all_f.c
===================================================================
--- file_read_at_all_f.c (Revision 15017)
+++ file_read_at_all_f.c (Arbeitskopie)
@@ -90,7 +90,7 @@
*ierr = OMPI_FINT_2_INT(MPI_File_read_at_all(c_fh,
(MPI_Offset) *offset,
- OMPI_ADDR(buf),
+ OMPI_F2C_BOTTOM(buf),
OMPI_FINT_2_INT(*count),
c_type,
c_status));
Index: file_read_f.c
===================================================================
--- file_read_f.c (Revision 15017)
+++ file_read_f.c (Arbeitskopie)
@@ -86,7 +86,7 @@
#endif
}
- *ierr = OMPI_INT_2_FINT(MPI_File_read(c_fh, OMPI_ADDR(buf),
+ *ierr = OMPI_INT_2_FINT(MPI_File_read(c_fh, OMPI_F2C_BOTTOM(buf),
OMPI_FINT_2_INT(*count),
c_type, c_status));
Index: file_read_ordered_begin_f.c
===================================================================
--- file_read_ordered_begin_f.c (Revision 15017)
+++ file_read_ordered_begin_f.c (Arbeitskopie)
@@ -64,7 +64,7 @@
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, OMPI_ADDR(buf),
+ *ierr = OMPI_INT_2_FINT(MPI_File_read_ordered_begin(c_fh, OMPI_F2C_BOTTOM(buf),
OMPI_FINT_2_INT(*count),
c_type));
}
Index: file_read_ordered_f.c
===================================================================
--- file_read_ordered_f.c (Revision 15017)
+++ file_read_ordered_f.c (Arbeitskopie)
@@ -87,7 +87,7 @@
}
*ierr = OMPI_FINT_2_INT(MPI_File_read_ordered(c_fh,
- OMPI_ADDR(buf),
+ OMPI_F2C_BOTTOM(buf),
OMPI_FINT_2_INT(*count),
c_type,
c_status));
Index: file_read_shared_f.c
===================================================================
--- file_read_shared_f.c (Revision 15017)
+++ file_read_shared_f.c (Arbeitskopie)
@@ -87,7 +87,7 @@
}
*ierr = OMPI_FINT_2_INT(MPI_File_read_shared(c_fh,
- OMPI_ADDR(buf),
+ OMPI_F2C_BOTTOM(buf),
OMPI_FINT_2_INT(*count),
c_type,
c_status));
Index: file_write_all_begin_f.c
===================================================================
--- file_write_all_begin_f.c (Revision 15017)
+++ file_write_all_begin_f.c (Arbeitskopie)
@@ -65,7 +65,7 @@
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, OMPI_ADDR(buf),
+ *ierr = OMPI_INT_2_FINT(MPI_File_write_all_begin(c_fh, OMPI_F2C_BOTTOM(buf),
OMPI_FINT_2_INT(*count),
c_type));
}
Index: file_write_all_f.c
===================================================================
--- file_write_all_f.c (Revision 15017)
+++ file_write_all_f.c (Arbeitskopie)
@@ -85,7 +85,7 @@
#endif
}
- *ierr = OMPI_INT_2_FINT(MPI_File_write_all(c_fh, OMPI_ADDR(buf),
+ *ierr = OMPI_INT_2_FINT(MPI_File_write_all(c_fh, OMPI_F2C_BOTTOM(buf),
OMPI_FINT_2_INT(*count),
c_type, c_status));
Index: file_write_at_all_begin_f.c
===================================================================
--- file_write_at_all_begin_f.c (Revision 15017)
+++ file_write_at_all_begin_f.c (Arbeitskopie)
@@ -67,7 +67,7 @@
*ierr = OMPI_FINT_2_INT(MPI_File_write_at_all_begin(c_fh,
(MPI_Offset) *offset,
- OMPI_ADDR(buf),
+ OMPI_F2C_BOTTOM(buf),
OMPI_FINT_2_INT(*count),
c_type));
}
Index: file_write_at_all_f.c
===================================================================
--- file_write_at_all_f.c (Revision 15017)
+++ file_write_at_all_f.c (Arbeitskopie)
@@ -89,7 +89,7 @@
*ierr = OMPI_FINT_2_INT(MPI_File_write_at_all(c_fh,
(MPI_Offset) *offset,
- OMPI_ADDR(buf),
+ OMPI_F2C_BOTTOM(buf),
OMPI_FINT_2_INT(*count),
c_type,
c_status));
Index: file_write_at_f.c
===================================================================
--- file_write_at_f.c (Revision 15017)
+++ file_write_at_f.c (Arbeitskopie)
@@ -87,7 +87,7 @@
*ierr = OMPI_FINT_2_INT(MPI_File_write_at(c_fh,
(MPI_Offset) *offset,
- OMPI_ADDR(buf),
+ OMPI_F2C_BOTTOM(buf),
OMPI_FINT_2_INT(*count),
c_type, c_status));
Index: file_write_f.c
===================================================================
--- file_write_f.c (Revision 15017)
+++ file_write_f.c (Arbeitskopie)
@@ -85,7 +85,7 @@
#endif
}
- *ierr = OMPI_INT_2_FINT(MPI_File_write(c_fh, OMPI_ADDR(buf),
+ *ierr = OMPI_INT_2_FINT(MPI_File_write(c_fh, OMPI_F2C_BOTTOM(buf),
OMPI_FINT_2_INT(*count),
c_type, c_status));
Index: file_write_ordered_begin_f.c
===================================================================
--- file_write_ordered_begin_f.c (Revision 15017)
+++ file_write_ordered_begin_f.c (Arbeitskopie)
@@ -65,7 +65,7 @@
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, OMPI_ADDR(buf),
+ *ierr = OMPI_INT_2_FINT(MPI_File_write_ordered_begin(c_fh, OMPI_F2C_BOTTOM(buf),
OMPI_FINT_2_INT(*count),
c_type));
}
Index: file_write_ordered_f.c
===================================================================
--- file_write_ordered_f.c (Revision 15017)
+++ file_write_ordered_f.c (Arbeitskopie)
@@ -87,7 +87,7 @@
}
*ierr = OMPI_FINT_2_INT(MPI_File_write_ordered(c_fh,
- OMPI_ADDR(buf),
+ OMPI_F2C_BOTTOM(buf),
OMPI_FINT_2_INT(*count),
c_type,
c_status));
Index: file_write_shared_f.c
===================================================================
--- file_write_shared_f.c (Revision 15017)
+++ file_write_shared_f.c (Arbeitskopie)
@@ -87,7 +87,7 @@
}
*ierr = OMPI_FINT_2_INT(MPI_File_write_shared(c_fh,
- OMPI_ADDR(buf),
+ OMPI_F2C_BOTTOM(buf),
OMPI_FINT_2_INT(*count),
c_type,
c_status));
Index: gather_f.c
===================================================================
--- gather_f.c (Revision 15017)
+++ gather_f.c (Arbeitskopie)
@@ -69,9 +69,9 @@
c_sendtype = MPI_Type_f2c(*sendtype);
c_recvtype = MPI_Type_f2c(*recvtype);
- if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) {
- sendbuf = MPI_IN_PLACE;
- }
+ sendbuf = OMPI_F2C_IN_PLACE(sendbuf);
+ sendbuf = OMPI_F2C_BOTTOM(sendbuf);
+ recvbuf = OMPI_F2C_BOTTOM(recvbuf);
*ierr = OMPI_INT_2_FINT(MPI_Gather(sendbuf, OMPI_FINT_2_INT(*sendcount),
c_sendtype, recvbuf,
Index: gatherv_f.c
===================================================================
--- gatherv_f.c (Revision 15017)
+++ gatherv_f.c (Arbeitskopie)
@@ -77,9 +77,9 @@
OMPI_ARRAY_FINT_2_INT(recvcounts, size);
OMPI_ARRAY_FINT_2_INT(displs, size);
- if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) {
- sendbuf = MPI_IN_PLACE;
- }
+ sendbuf = OMPI_F2C_IN_PLACE(sendbuf);
+ sendbuf = OMPI_F2C_BOTTOM(sendbuf);
+ recvbuf = OMPI_F2C_BOTTOM(recvbuf);
*ierr = OMPI_INT_2_FINT(MPI_Gatherv(sendbuf, OMPI_FINT_2_INT(*sendcount),
c_sendtype, recvbuf,
Index: get_f.c
===================================================================
--- get_f.c (Revision 15017)
+++ get_f.c (Arbeitskopie)
@@ -68,7 +68,7 @@
MPI_Datatype c_target_datatype = MPI_Type_f2c(*target_datatype);
MPI_Win c_win = MPI_Win_f2c(*win);
- *ierr = OMPI_INT_2_FINT(MPI_Get(OMPI_ADDR(origin_addr),
+ *ierr = OMPI_INT_2_FINT(MPI_Get(OMPI_F2C_BOTTOM(origin_addr),
OMPI_FINT_2_INT(*origin_count),
c_origin_datatype,
OMPI_FINT_2_INT(*target_rank),
Index: ibsend_f.c
===================================================================
--- ibsend_f.c (Revision 15017)
+++ ibsend_f.c (Arbeitskopie)
@@ -68,7 +68,7 @@
c_comm = MPI_Comm_f2c (*comm);
- *ierr = OMPI_INT_2_FINT(MPI_Ibsend(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
+ *ierr = OMPI_INT_2_FINT(MPI_Ibsend(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
c_type, OMPI_FINT_2_INT(*dest),
OMPI_FINT_2_INT(*tag),
c_comm, &c_req));
Index: irecv_f.c
===================================================================
--- irecv_f.c (Revision 15017)
+++ irecv_f.c (Arbeitskopie)
@@ -68,7 +68,7 @@
c_comm = MPI_Comm_f2c (*comm);
- *ierr = OMPI_INT_2_FINT(MPI_Irecv(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
+ *ierr = OMPI_INT_2_FINT(MPI_Irecv(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
c_type, OMPI_FINT_2_INT(*source),
OMPI_FINT_2_INT(*tag), c_comm, &c_req));
Index: irsend_f.c
===================================================================
--- irsend_f.c (Revision 15017)
+++ irsend_f.c (Arbeitskopie)
@@ -66,7 +66,7 @@
c_comm = MPI_Comm_f2c (*comm);
- *ierr = OMPI_INT_2_FINT(MPI_Irsend(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
+ *ierr = OMPI_INT_2_FINT(MPI_Irsend(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
c_type, OMPI_FINT_2_INT(*dest),
OMPI_FINT_2_INT(*tag), c_comm,
&c_req));
Index: isend_f.c
===================================================================
--- isend_f.c (Revision 15017)
+++ isend_f.c (Arbeitskopie)
@@ -66,7 +66,7 @@
c_comm = MPI_Comm_f2c (*comm);
- *ierr = OMPI_INT_2_FINT(MPI_Isend(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
+ *ierr = OMPI_INT_2_FINT(MPI_Isend(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
c_type, OMPI_FINT_2_INT(*dest),
OMPI_FINT_2_INT(*tag),
c_comm, &c_req));
Index: issend_f.c
===================================================================
--- issend_f.c (Revision 15017)
+++ issend_f.c (Arbeitskopie)
@@ -66,7 +66,7 @@
c_comm = MPI_Comm_f2c (*comm);
- *ierr = OMPI_INT_2_FINT(MPI_Issend(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
+ *ierr = OMPI_INT_2_FINT(MPI_Issend(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
c_type, OMPI_FINT_2_INT(*dest),
OMPI_FINT_2_INT(*tag),
c_comm, &c_req));
Index: pack_external_f.c
===================================================================
--- pack_external_f.c (Revision 15017)
+++ pack_external_f.c (Arbeitskopie)
@@ -65,7 +65,7 @@
{
MPI_Datatype type = MPI_Type_f2c(*datatype);
- *ierr = OMPI_INT_2_FINT(MPI_Pack_external(datarep, OMPI_ADDR(inbuf),
+ *ierr = OMPI_INT_2_FINT(MPI_Pack_external(datarep, OMPI_F2C_BOTTOM(inbuf),
OMPI_FINT_2_INT(*incount),
type, outbuf,
*outsize,
Index: pack_f.c
===================================================================
--- pack_f.c (Revision 15017)
+++ pack_f.c (Arbeitskopie)
@@ -70,7 +70,7 @@
c_type = MPI_Type_f2c(*datatype);
OMPI_SINGLE_FINT_2_INT(position);
- *ierr = OMPI_INT_2_FINT(MPI_Pack(OMPI_ADDR(inbuf), OMPI_FINT_2_INT(*incount),
+ *ierr = OMPI_INT_2_FINT(MPI_Pack(OMPI_F2C_BOTTOM(inbuf), OMPI_FINT_2_INT(*incount),
c_type, outbuf,
OMPI_FINT_2_INT(*outsize),
OMPI_SINGLE_NAME_CONVERT(position),
Index: put_f.c
===================================================================
--- put_f.c (Revision 15017)
+++ put_f.c (Arbeitskopie)
@@ -68,7 +68,7 @@
MPI_Datatype c_target_datatype = MPI_Type_f2c(*target_datatype);
MPI_Win c_win = MPI_Win_f2c(*win);
- *ierr = OMPI_INT_2_FINT(MPI_Put(OMPI_ADDR(origin_addr),
+ *ierr = OMPI_INT_2_FINT(MPI_Put(OMPI_F2C_BOTTOM(origin_addr),
OMPI_FINT_2_INT(*origin_count),
c_origin_datatype,
OMPI_FINT_2_INT(*target_rank),
Index: recv_f.c
===================================================================
--- recv_f.c (Revision 15017)
+++ recv_f.c (Arbeitskopie)
@@ -87,7 +87,7 @@
}
/* Call the C function */
- *ierr = OMPI_INT_2_FINT(MPI_Recv(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
+ *ierr = OMPI_INT_2_FINT(MPI_Recv(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
c_type, OMPI_FINT_2_INT(*source),
OMPI_FINT_2_INT(*tag), c_comm,
c_status));
Index: recv_init_f.c
===================================================================
--- recv_init_f.c (Revision 15017)
+++ recv_init_f.c (Arbeitskopie)
@@ -68,7 +68,7 @@
c_comm = MPI_Comm_f2c (*comm);
- *ierr = OMPI_INT_2_FINT(MPI_Recv_init(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
+ *ierr = OMPI_INT_2_FINT(MPI_Recv_init(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
c_type, OMPI_FINT_2_INT(*source),
OMPI_INT_2_FINT(*tag), c_comm,
&c_req));
Index: reduce_f.c
===================================================================
--- reduce_f.c (Revision 15017)
+++ reduce_f.c (Arbeitskopie)
@@ -70,9 +70,9 @@
c_op = MPI_Op_f2c(*op);
c_comm = MPI_Comm_f2c(*comm);
- if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) {
- sendbuf = MPI_IN_PLACE;
- }
+ sendbuf = OMPI_F2C_IN_PLACE(sendbuf);
+ sendbuf = OMPI_F2C_BOTTOM(sendbuf);
+ recvbuf = OMPI_F2C_BOTTOM(recvbuf);
*ierr = OMPI_INT_2_FINT(MPI_Reduce(sendbuf, recvbuf,
OMPI_FINT_2_INT(*count),
Index: reduce_scatter_f.c
===================================================================
--- reduce_scatter_f.c (Revision 15017)
+++ reduce_scatter_f.c (Arbeitskopie)
@@ -75,9 +75,9 @@
MPI_Comm_size(c_comm, &size);
OMPI_ARRAY_FINT_2_INT(recvcounts, size);
- if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) {
- sendbuf = MPI_IN_PLACE;
- }
+ sendbuf = OMPI_F2C_IN_PLACE(sendbuf);
+ sendbuf = OMPI_F2C_BOTTOM(sendbuf);
+ recvbuf = OMPI_F2C_BOTTOM(recvbuf);
*ierr = OMPI_INT_2_FINT(MPI_Reduce_scatter(sendbuf, recvbuf,
OMPI_ARRAY_NAME_CONVERT(recvcounts),
Index: rsend_f.c
===================================================================
--- rsend_f.c (Revision 15017)
+++ rsend_f.c (Arbeitskopie)
@@ -66,7 +66,7 @@
c_comm = MPI_Comm_f2c (*comm);
- *ierr = OMPI_INT_2_FINT(MPI_Rsend(OMPI_ADDR(ibuf), OMPI_FINT_2_INT(*count),
+ *ierr = OMPI_INT_2_FINT(MPI_Rsend(OMPI_F2C_BOTTOM(ibuf), OMPI_FINT_2_INT(*count),
c_type, OMPI_FINT_2_INT(*dest),
OMPI_FINT_2_INT(*tag), c_comm));
}
Index: rsend_init_f.c
===================================================================
--- rsend_init_f.c (Revision 15017)
+++ rsend_init_f.c (Arbeitskopie)
@@ -69,7 +69,7 @@
c_comm = MPI_Comm_f2c (*comm);
- *ierr = OMPI_INT_2_FINT(MPI_Rsend_init(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
+ *ierr = OMPI_INT_2_FINT(MPI_Rsend_init(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
c_type, OMPI_FINT_2_INT(*dest),
OMPI_FINT_2_INT(*tag),
c_comm, &c_req));
Index: scan_f.c
===================================================================
--- scan_f.c (Revision 15017)
+++ scan_f.c (Arbeitskopie)
@@ -70,9 +70,9 @@
c_op = MPI_Op_f2c(*op);
c_comm = MPI_Comm_f2c(*comm);
- if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) {
- sendbuf = MPI_IN_PLACE;
- }
+ sendbuf = OMPI_F2C_IN_PLACE(sendbuf);
+ sendbuf = OMPI_F2C_BOTTOM(sendbuf);
+ recvbuf = OMPI_F2C_BOTTOM(recvbuf);
*ierr = OMPI_INT_2_FINT(MPI_Scan(sendbuf, recvbuf,
OMPI_FINT_2_INT(*count),
Index: scatter_f.c
===================================================================
--- scatter_f.c (Revision 15017)
+++ scatter_f.c (Arbeitskopie)
@@ -69,9 +69,9 @@
c_sendtype = MPI_Type_f2c(*sendtype);
c_recvtype = MPI_Type_f2c(*recvtype);
- if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) {
- sendbuf = MPI_IN_PLACE;
- }
+ sendbuf = OMPI_F2C_IN_PLACE(sendbuf);
+ sendbuf = OMPI_F2C_BOTTOM(sendbuf);
+ recvbuf = OMPI_F2C_BOTTOM(recvbuf);
*ierr = OMPI_INT_2_FINT(MPI_Scatter(sendbuf,OMPI_FINT_2_INT(*sendcount),
c_sendtype, recvbuf,
Index: scatterv_f.c
===================================================================
--- scatterv_f.c (Revision 15017)
+++ scatterv_f.c (Arbeitskopie)
@@ -78,9 +78,9 @@
OMPI_ARRAY_FINT_2_INT(sendcounts, size);
OMPI_ARRAY_FINT_2_INT(displs, size);
- if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) {
- sendbuf = MPI_IN_PLACE;
- }
+ sendbuf = OMPI_F2C_IN_PLACE(sendbuf);
+ sendbuf = OMPI_F2C_BOTTOM(sendbuf);
+ recvbuf = OMPI_F2C_BOTTOM(recvbuf);
*ierr = OMPI_INT_2_FINT(MPI_Scatterv(sendbuf,
OMPI_ARRAY_NAME_CONVERT(sendcounts),
Index: send_f.c
===================================================================
--- send_f.c (Revision 15017)
+++ send_f.c (Arbeitskopie)
@@ -64,7 +64,7 @@
MPI_Comm c_comm = MPI_Comm_f2c(*comm);
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
- *ierr = OMPI_INT_2_FINT(MPI_Send(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
+ *ierr = OMPI_INT_2_FINT(MPI_Send(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
c_type, OMPI_FINT_2_INT(*dest),
OMPI_FINT_2_INT(*tag), c_comm));
}
Index: send_init_f.c
===================================================================
--- send_init_f.c (Revision 15017)
+++ send_init_f.c (Arbeitskopie)
@@ -68,7 +68,7 @@
c_comm = MPI_Comm_f2c (*comm);
- *ierr = OMPI_INT_2_FINT(MPI_Send_init(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
+ *ierr = OMPI_INT_2_FINT(MPI_Send_init(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
c_type, OMPI_FINT_2_INT(*dest),
OMPI_FINT_2_INT(*tag),
c_comm, &c_req));
Index: sendrecv_f.c
===================================================================
--- sendrecv_f.c (Revision 15017)
+++ sendrecv_f.c (Arbeitskopie)
@@ -71,11 +71,11 @@
c_comm = MPI_Comm_f2c (*comm);
- *ierr = OMPI_INT_2_FINT(MPI_Sendrecv(OMPI_ADDR(sendbuf), OMPI_FINT_2_INT(*sendcount),
+ *ierr = OMPI_INT_2_FINT(MPI_Sendrecv(OMPI_F2C_BOTTOM(sendbuf), OMPI_FINT_2_INT(*sendcount),
c_sendtype,
OMPI_FINT_2_INT(*dest),
OMPI_FINT_2_INT(*sendtag),
- OMPI_ADDR(recvbuf), *recvcount,
+ OMPI_F2C_BOTTOM(recvbuf), *recvcount,
c_recvtype, OMPI_FINT_2_INT(*source),
OMPI_FINT_2_INT(*recvtag),
c_comm, &c_status));
Index: sendrecv_replace_f.c
===================================================================
--- sendrecv_replace_f.c (Revision 15017)
+++ sendrecv_replace_f.c (Arbeitskopie)
@@ -69,7 +69,7 @@
c_comm = MPI_Comm_f2c (*comm);
- *ierr = OMPI_INT_2_FINT(MPI_Sendrecv_replace(OMPI_ADDR(buf),
+ *ierr = OMPI_INT_2_FINT(MPI_Sendrecv_replace(OMPI_F2C_BOTTOM(buf),
OMPI_FINT_2_INT(*count),
c_type,
OMPI_FINT_2_INT(*dest),
Index: ssend_f.c
===================================================================
--- ssend_f.c (Revision 15017)
+++ ssend_f.c (Arbeitskopie)
@@ -67,7 +67,7 @@
c_comm = MPI_Comm_f2c (*comm);
- *ierr = OMPI_INT_2_FINT(MPI_Ssend(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
+ *ierr = OMPI_INT_2_FINT(MPI_Ssend(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
c_type, OMPI_FINT_2_INT(*dest),
OMPI_FINT_2_INT(*tag), c_comm));
}
Index: ssend_init_f.c
===================================================================
--- ssend_init_f.c (Revision 15017)
+++ ssend_init_f.c (Arbeitskopie)
@@ -68,7 +68,7 @@
c_comm = MPI_Comm_f2c (*comm);
- *ierr = OMPI_INT_2_FINT(MPI_Ssend_init(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
+ *ierr = OMPI_INT_2_FINT(MPI_Ssend_init(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
c_type, OMPI_FINT_2_INT(*dest),
OMPI_FINT_2_INT(*tag),
c_comm, &c_req));
Index: unpack_external_f.c
===================================================================
--- unpack_external_f.c (Revision 15017)
+++ unpack_external_f.c (Arbeitskopie)
@@ -69,7 +69,7 @@
*ierr = OMPI_INT_2_FINT(MPI_Unpack_external(datarep, inbuf,
*insize,
position,
- OMPI_ADDR(outbuf),
+ OMPI_F2C_BOTTOM(outbuf),
OMPI_FINT_2_INT(*outcount),
c_type));
}
Index: unpack_f.c
===================================================================
--- unpack_f.c (Revision 15017)
+++ unpack_f.c (Arbeitskopie)
@@ -72,7 +72,7 @@
*ierr = OMPI_INT_2_FINT(MPI_Unpack(inbuf, OMPI_FINT_2_INT(*insize),
OMPI_SINGLE_NAME_CONVERT(position),
- OMPI_ADDR(outbuf), OMPI_FINT_2_INT(*outcount),
+ OMPI_F2C_BOTTOM(outbuf), OMPI_FINT_2_INT(*outcount),
c_type, c_comm));
if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) {
OMPI_SINGLE_INT_2_FINT(position);