コード例 #1
0
void mpi_file_read_all_end_f(MPI_Fint *fh, char *buf, MPI_Fint *status,
			     MPI_Fint *ierr)
{
    MPI_Status *c_status;
#if OMPI_SIZEOF_FORTRAN_INTEGER != 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_INTEGER == SIZEOF_INT
        c_status = (MPI_Status *) status;
#else
        c_status = &c_status2;
#endif
    }
    
    *ierr = OMPI_INT_2_FINT(MPI_File_read_all_end(c_fh, buf, c_status));

#if OMPI_SIZEOF_FORTRAN_INTEGER != SIZEOF_INT
    if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr) &&
        MPI_STATUS_IGNORE != c_status) {
        MPI_Status_c2f(c_status, status);
    }
#endif
}
コード例 #2
0
ファイル: read_allef.c プロジェクト: carsten-clauss/MP-MPICH
void FORTRAN_API mpi_file_read_all_end_(MPI_Fint *fh,void *buf,MPI_Status *status, int *ierr )
{
    MPI_File fh_c;
    
    fh_c = MPI_File_f2c(*fh);

    *ierr = MPI_File_read_all_end(fh_c,buf,status);
}
コード例 #3
0
ファイル: mpi_File.c プロジェクト: urids/XSCALAMPI
JNIEXPORT void JNICALL Java_mpi_File_readAllEnd(
        JNIEnv *env, jobject jthis, jlong fh, jobject buf, jlongArray stat)
{
    MPI_Status status;
    void *ptr = (*env)->GetDirectBufferAddress(env, buf);
    int rc = MPI_File_read_all_end((MPI_File)fh, ptr, &status);
    ompi_java_exceptionCheck(env, rc);
    ompi_java_status_set(env, stat, &status);
}
コード例 #4
0
ファイル: file_read_all_end_f.c プロジェクト: IanYXXL/A1
void ompi_file_read_all_end_f(MPI_Fint *fh, char *buf, MPI_Fint *status,
                              MPI_Fint *ierr)
{
    int c_ierr;
    OMPI_FORTRAN_STATUS_DECLARATION(c_status,c_status2)
    MPI_File c_fh = MPI_File_f2c(*fh);

    OMPI_FORTRAN_STATUS_SET_POINTER(c_status,c_status2,status)

    c_ierr = MPI_File_read_all_end(c_fh, buf, c_status);
    if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr);

    OMPI_FORTRAN_STATUS_RETURN(c_status,c_status2,status,c_ierr)
}