29 #ifdef AMPI_FORTRANCOMPATIBLE
34 #ifdef AMPI_FORTRANCOMPATIBLE
35 adtool_ampi_fortransetuptypes_(&adouble, &areal);
46 MPI_Comm commC = MPI_Comm_f2c( *commF ) ;
47 *err_code = MPI_Comm_rank(commC, rank);
59 MPI_Datatype
datatype = MPI_Type_f2c(*datatypeF) ;
61 MPI_Comm commC = MPI_Comm_f2c( *commF ) ;
62 *err_code =
AMPI_Recv(buf, *count, datatype,
63 *src, *tag, pairedWith, commC,
75 MPI_Datatype
datatype = MPI_Type_f2c(*datatypeF) ;
77 MPI_Comm commC = MPI_Comm_f2c(*commF) ;
78 *err_code =
AMPI_Send(buf, *count, datatype,
79 *dest, *tag, pairedWith, commC);
91 MPI_Datatype
datatype = MPI_Type_f2c(*datatypeF) ;
92 MPI_Request request = MPI_Request_f2c(*requestF);
94 MPI_Comm commC = MPI_Comm_f2c( *commF ) ;
96 *source, *tag, pairedWith, commC,
98 *requestF = MPI_Request_c2f(request);
110 MPI_Datatype
datatype = MPI_Type_f2c(*datatypeF) ;
111 MPI_Request request = MPI_Request_f2c(*requestF);
113 MPI_Comm commC = MPI_Comm_f2c( *commF ) ;
115 *dest, *tag, pairedWith, commC,
117 *requestF = MPI_Request_c2f(request);
120 void ampi_wait_( MPI_Fint *requestF, MPI_Fint *statusF,
int* err_code) {
122 request = MPI_Request_f2c( *requestF );
123 if( statusF == MPI_F_STATUS_IGNORE ) {
124 *err_code =
AMPI_Wait( &request, MPI_STATUS_IGNORE );
126 else if( statusF == MPI_F_STATUSES_IGNORE ) {
127 *err_code =
AMPI_Wait( &request, MPI_STATUSES_IGNORE );
131 MPI_Status_f2c( statusF, &status );
132 *err_code =
AMPI_Wait( &request, &status );
133 MPI_Status_c2f( &status, statusF ) ;