Exemple #1
0
FORTRAN_API void FORT_CALL mpi_file_set_size_(MPI_Fint * fh, MPI_Offset * size, MPI_Fint * ierr)
{
    MPI_File fh_c;

    fh_c = MPI_File_f2c(*fh);
    *ierr = MPI_File_set_size(fh_c, *size);
}
void mpi_file_get_view_(MPI_Fint *fh,MPI_Offset *disp,MPI_Fint *etype,
   MPI_Fint *filetype,char *datarep, MPI_Fint *ierr, int str_len )
{
    MPI_File fh_c;
    MPI_Datatype etype_c, filetype_c;
    int i, tmpreplen;
    char *tmprep;

    if (datarep <= (char *) 0) {
        FPRINTF(stderr, "MPI_File_get_view: datarep is an invalid address\n");
        MPI_Abort(MPI_COMM_WORLD, 1);
    }

    tmprep = (char *) ADIOI_Malloc((MPI_MAX_DATAREP_STRING+1) * sizeof(char));
    fh_c = MPI_File_f2c(*fh);
    *ierr = MPI_File_get_view(fh_c, disp, &etype_c, &filetype_c, tmprep);

    tmpreplen = strlen(tmprep);
    if (tmpreplen <= str_len) {
        ADIOI_Strncpy(datarep, tmprep, tmpreplen);

        /* blank pad the remaining space */
        for (i=tmpreplen; i<str_len; i++) datarep[i] = ' ';
    }
    else {
        /* not enough space */
        ADIOI_Strncpy(datarep, tmprep, str_len);
        /* this should be flagged as an error. */
        *ierr = MPI_ERR_UNKNOWN;
    }
    
    *etype = MPI_Type_c2f(etype_c);
    *filetype = MPI_Type_c2f(filetype_c);
    ADIOI_Free(tmprep);
}
FORT_DLL_SPEC void FORT_CALL mpi_file_iread_shared_ ( MPI_Fint *v1, void*v2, MPI_Fint *v3, MPI_Fint *v4, MPIO_Request*v5, MPI_Fint *ierr ){
#ifdef MPI_MODE_RDONLY
    if (v2 == MPIR_F_MPI_BOTTOM) v2 = MPI_BOTTOM;
    *ierr = MPI_File_iread_shared( MPI_File_f2c(*v1), v2, (int)*v3, (MPI_Datatype)(*v4), v5 );
#else
*ierr = MPI_ERR_INTERN;
#endif
}
FORT_DLL_SPEC void FORT_CALL mpi_file_write_at_all_begin_ ( MPI_Fint *v1, MPI_Offset *v2, void*v3, MPI_Fint *v4, MPI_Fint *v5, MPI_Fint *ierr ){
#ifdef MPI_MODE_RDONLY
    if (v3 == MPIR_F_MPI_BOTTOM) v3 = MPI_BOTTOM;
    *ierr = MPI_File_write_at_all_begin( MPI_File_f2c(*v1), (MPI_Offset)*v2, v3, (int)*v4, (MPI_Datatype)(*v5) );
#else
*ierr = MPI_ERR_INTERN;
#endif
}
void mpi_file_set_errhandler_f(MPI_Fint *fh, MPI_Fint *errhandler,
			       MPI_Fint *ierr)
{
    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));
}
Exemple #6
0
FORTRAN_API void FORT_CALL mpi_file_write_at_all_end_(MPI_Fint *fh,void *buf,MPI_Status *status, MPI_Fint *ierr )
{
    MPI_File fh_c;

    fh_c = MPI_File_f2c(*fh);

    *ierr = MPI_File_write_at_all_end(fh_c,buf,status);
}
FORTRAN_API void FORT_CALL mpi_file_close_(MPI_Fint *fh, MPI_Fint *ierr )
{
    MPI_File fh_c;

    fh_c = MPI_File_f2c(*fh);
    *ierr = MPI_File_close(&fh_c);
    *fh = MPI_File_c2f(fh_c);
}
FORT_DLL_SPEC void FORT_CALL mpi_file_read_ordered_begin_ ( MPI_Fint *v1, void*v2, MPI_Fint *v3, MPI_Fint *v4, MPI_Fint *ierr ){
#ifdef MPI_MODE_RDONLY
    if (v2 == MPIR_F_MPI_BOTTOM) v2 = MPI_BOTTOM;
    *ierr = MPI_File_read_ordered_begin( MPI_File_f2c(*v1), v2, (int)*v3, (MPI_Datatype)(*v4) );
#else
*ierr = MPI_ERR_INTERN;
#endif
}
Exemple #9
0
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);
}
void ompi_file_preallocate_f(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr)
{
    int c_ierr;
    MPI_File c_fh = MPI_File_f2c(*fh);

    c_ierr = MPI_File_preallocate(c_fh, (MPI_Offset) *size);
    if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr);
}
Exemple #11
0
FORTRAN_API void FORT_CALL mpi_file_read_ordered_end_(MPI_Fint *fh,void *buf,MPI_Status *status, MPI_Fint *ierr )
{
    MPI_File fh_c;

    fh_c = MPI_File_f2c(*fh);

    *ierr = MPI_File_read_ordered_end(fh_c,buf,status);
}
Exemple #12
0
void FORTRAN_API mpi_file_read_(MPI_Fint *fh,void *buf,int *count,
                  MPI_Datatype *datatype,MPI_Status *status, int *ierr )
{
    MPI_File fh_c;
    
    fh_c = MPI_File_f2c(*fh);
    *ierr = MPI_File_read(fh_c,buf,*count,*datatype,status);
}
Exemple #13
0
FORTRAN_API void FORT_CALL mpi_file_read_at_(MPI_Fint *fh,MPI_Offset *offset,void *buf,
      MPI_Fint *count,MPI_Fint *datatype,MPI_Status *status, MPI_Fint *ierr )
{
    MPI_File fh_c;
    
    fh_c = MPI_File_f2c(*fh);
    *ierr = MPI_File_read_at(fh_c,*offset,buf,*count,(MPI_Datatype)*datatype,status);
}
Exemple #14
0
FORTRAN_API void FORT_CALL mpi_file_read_shared_(MPI_Fint *fh,void *buf,MPI_Fint *count,
                  MPI_Fint *datatype,MPI_Status *status, MPI_Fint *ierr )
{
    MPI_File fh_c;
    
    fh_c = MPI_File_f2c(*fh);
    *ierr = MPI_File_read_shared(fh_c,buf,*count,(MPI_Datatype)*datatype,status);
}
Exemple #15
0
void FORTRAN_API mpi_file_read_at_all_begin_(MPI_Fint *fh,MPI_Offset *offset,void *buf,
                         int *count,MPI_Datatype *datatype, int *ierr )
{
    MPI_File fh_c;
    
    fh_c = MPI_File_f2c(*fh);
    *ierr = MPI_File_read_at_all_begin(fh_c,*offset,buf,*count,*datatype);
}
void FORTRAN_API mpi_file_write_at_all_(MPI_Fint *fh,MPI_Offset *offset,void *buf,
                          int *count,MPI_Datatype *datatype,
                          MPI_Status *status, int *ierr )
{
    MPI_File fh_c;
    
    fh_c = MPI_File_f2c(*fh);
    *ierr = MPI_File_write_at_all(fh_c,*offset,buf,*count,*datatype,status);
}
Exemple #17
0
FORTRAN_API void FORT_CALL mpi_file_write_ordered_(MPI_Fint * fh, void *buf, MPI_Fint * count,
                                                   MPI_Fint * datatype, MPI_Status * status,
                                                   MPI_Fint * ierr)
{
    MPI_File fh_c;

    fh_c = MPI_File_f2c(*fh);
    *ierr = MPI_File_write_ordered(fh_c, buf, *count, *datatype, status);
}
FORT_DLL_SPEC void FORT_CALL mpi_file_get_atomicity_ ( MPI_Fint *v1, MPI_Fint *v2, MPI_Fint *ierr ){
#ifdef MPI_MODE_RDONLY
    int l2;
    *ierr = MPI_File_get_atomicity( MPI_File_f2c(*v1), &l2 );
    *v2 = MPIR_TO_FLOG(l2);
#else
*ierr = MPI_ERR_INTERN;
#endif
}
Exemple #19
0
FORT_DLL_SPEC void FORT_CALL mpi_file_close_ ( MPI_Fint *v1, MPI_Fint *ierr ) {
#ifdef MPI_MODE_RDONLY
    MPI_File l1 = MPI_File_f2c(*v1);
    *ierr = MPI_File_close( &l1 );
    *v1 = MPI_File_c2f(l1);
#else
    *ierr = MPI_ERR_INTERN;
#endif
}
void mpi_file_get_group_(MPI_Fint *fh, MPI_Fint *group, MPI_Fint *ierr )
{
    MPI_File fh_c;
    MPI_Group group_c;

    fh_c = MPI_File_f2c(*fh);
    *ierr = MPI_File_get_group(fh_c, &group_c);
    *group = MPI_Group_c2f(group_c);
}
Exemple #21
0
void mpi_file_write_all_begin_(MPI_Fint *fh,void *buf,int *count,
                       MPI_Fint *datatype, int *ierr ){
    MPI_File fh_c;
    MPI_Datatype datatype_c;
    
    fh_c = MPI_File_f2c(*fh);
    datatype_c = MPI_Type_f2c(*datatype);

    *ierr = MPI_File_write_all_begin(fh_c,buf,*count,datatype_c);
}
Exemple #22
0
void FORTRAN_API mpi_file_iwrite_shared_(MPI_Fint *fh,void *buf,int *count,
                    MPI_Datatype *datatype,MPI_Fint *request, int *ierr )
{
    MPI_File fh_c;
    MPIO_Request req_c;
    
    fh_c = MPI_File_f2c(*fh);
    *ierr = MPI_File_iwrite_shared(fh_c,buf,*count,*datatype,&req_c);
    *request = MPIO_Request_c2f(req_c);
}
void mpi_file_read_ordered_begin_f(MPI_Fint *fh, char *buf, MPI_Fint *count, 
				   MPI_Fint *datatype, MPI_Fint *ierr)
{
   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_F2C_BOTTOM(buf), 
                                                       OMPI_FINT_2_INT(*count),
                                                       c_type));
}
Exemple #24
0
FORTRAN_API void FORT_CALL mpi_file_iread_(MPI_Fint *fh,void *buf,MPI_Fint *count,
                   MPI_Datatype *datatype,MPI_Fint *request, MPI_Fint *ierr )
{
    MPI_File fh_c;
    MPIO_Request req_c;

    fh_c = MPI_File_f2c(*fh);
    *ierr = MPI_File_iread(fh_c,buf,*count,*datatype,&req_c);
    *request = MPIO_Request_c2f(req_c);
}
Exemple #25
0
void mpi_file_write_all_(MPI_Fint *fh,void *buf,int *count,
                       MPI_Fint *datatype,MPI_Status *status, int *ierr ){
    MPI_File fh_c;
    MPI_Datatype datatype_c;
    
    fh_c = MPI_File_f2c(*fh);
    datatype_c = MPI_Type_f2c(*datatype);

    *ierr = MPI_File_write_all(fh_c,buf,*count,datatype_c,status);
}
Exemple #26
0
void ompi_file_seek_f(MPI_Fint *fh, MPI_Offset *offset,
		     MPI_Fint *whence, MPI_Fint *ierr)
{
    int c_ierr;
    MPI_File c_fh = MPI_File_f2c(*fh);

    c_ierr = MPI_File_seek(c_fh, (MPI_Offset) *offset,
                           OMPI_FINT_2_INT(*whence));
    if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr);
}
Exemple #27
0
FORTRAN_API void FORT_CALL mpi_file_get_type_extent_(MPI_Fint * fh, MPI_Datatype * datatype,
                                                     MPI_Fint * extent, MPI_Fint * ierr)
{
    MPI_File fh_c;
    MPI_Aint extent_c;

    fh_c = MPI_File_f2c(*fh);
    *ierr = MPI_File_get_type_extent(fh_c, *datatype, &extent_c);
    *(MPI_Aint *) extent = extent_c;    /* Have to assume it's really an MPI_Aint? */
}
Exemple #28
0
FORTRAN_API void FORT_CALL mpi_file_set_info_(MPI_Fint *fh, MPI_Fint *info, int *ierr )
{
    MPI_File fh_c;
    MPI_Info info_c;
    
    fh_c = MPI_File_f2c(*fh);
    info_c = MPI_Info_f2c(*info);

    *ierr = MPI_File_set_info(fh_c, info_c);
}
Exemple #29
0
FORTRAN_API void FORT_CALL mpi_file_set_errhandler_(MPI_Fint *fh, MPI_Fint *err_handler, MPI_Fint *ierr)
{
    MPI_File fh_c;
    MPI_Errhandler err_handler_c;
    
    fh_c = MPI_File_f2c(*fh);
    err_handler_c = MPI_Errhandler_f2c(*err_handler);

    *ierr = MPI_File_set_errhandler(fh_c,err_handler_c);
}
Exemple #30
0
void mpi_file_get_group_f(MPI_Fint *fh, MPI_Fint *group, MPI_Fint *ierr)
{
    MPI_File c_fh = MPI_File_f2c(*fh);
    MPI_Group c_grp;

    *ierr = OMPI_INT_2_FINT(MPI_File_get_group(c_fh, &c_grp));
    if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) {
        *group = MPI_Group_c2f(c_grp);
    }
}