|
Packit Service |
c5cf8c |
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
|
|
Packit Service |
c5cf8c |
/*
|
|
Packit Service |
c5cf8c |
*
|
|
Packit Service |
c5cf8c |
* Copyright (C) 1997 University of Chicago.
|
|
Packit Service |
c5cf8c |
* See COPYRIGHT notice in top-level directory.
|
|
Packit Service |
c5cf8c |
*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#ifdef _UNICOS
|
|
Packit Service |
c5cf8c |
#include <fortran.h>
|
|
Packit Service |
c5cf8c |
#endif
|
|
Packit Service |
c5cf8c |
#include "adio.h"
|
|
Packit Service |
c5cf8c |
#include "mpio.h"
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#if defined(MPIO_BUILD_PROFILING) || defined(HAVE_WEAK_SYMBOLS)
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#if defined(HAVE_WEAK_SYMBOLS)
|
|
Packit Service |
c5cf8c |
#if defined(HAVE_PRAGMA_WEAK)
|
|
Packit Service |
c5cf8c |
#if defined(FORTRANCAPS)
|
|
Packit Service |
c5cf8c |
extern FORTRAN_API void FORT_CALL MPI_FILE_DELETE(char *FORT_MIXED_LEN_DECL, MPI_Fint *,
|
|
Packit Service |
c5cf8c |
MPI_Fint * FORT_END_LEN_DECL);
|
|
Packit Service |
c5cf8c |
#pragma weak MPI_FILE_DELETE = PMPI_FILE_DELETE
|
|
Packit Service |
c5cf8c |
#elif defined(FORTRANDOUBLEUNDERSCORE)
|
|
Packit Service |
c5cf8c |
extern FORTRAN_API void FORT_CALL mpi_file_delete__(char *FORT_MIXED_LEN_DECL, MPI_Fint *,
|
|
Packit Service |
c5cf8c |
MPI_Fint * FORT_END_LEN_DECL);
|
|
Packit Service |
c5cf8c |
#pragma weak mpi_file_delete__ = pmpi_file_delete__
|
|
Packit Service |
c5cf8c |
#elif !defined(FORTRANUNDERSCORE)
|
|
Packit Service |
c5cf8c |
extern FORTRAN_API void FORT_CALL mpi_file_delete(char *FORT_MIXED_LEN_DECL, MPI_Fint *,
|
|
Packit Service |
c5cf8c |
MPI_Fint * FORT_END_LEN_DECL);
|
|
Packit Service |
c5cf8c |
#pragma weak mpi_file_delete = pmpi_file_delete
|
|
Packit Service |
c5cf8c |
#else
|
|
Packit Service |
c5cf8c |
extern FORTRAN_API void FORT_CALL mpi_file_delete_(char *FORT_MIXED_LEN_DECL, MPI_Fint *,
|
|
Packit Service |
c5cf8c |
MPI_Fint * FORT_END_LEN_DECL);
|
|
Packit Service |
c5cf8c |
#pragma weak mpi_file_delete_ = pmpi_file_delete_
|
|
Packit Service |
c5cf8c |
#endif
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#elif defined(HAVE_PRAGMA_HP_SEC_DEF)
|
|
Packit Service |
c5cf8c |
#if defined(FORTRANCAPS)
|
|
Packit Service |
c5cf8c |
#pragma _HP_SECONDARY_DEF PMPI_FILE_DELETE MPI_FILE_DELETE
|
|
Packit Service |
c5cf8c |
#elif defined(FORTRANDOUBLEUNDERSCORE)
|
|
Packit Service |
c5cf8c |
#pragma _HP_SECONDARY_DEF pmpi_file_delete__ mpi_file_delete__
|
|
Packit Service |
c5cf8c |
#elif !defined(FORTRANUNDERSCORE)
|
|
Packit Service |
c5cf8c |
#pragma _HP_SECONDARY_DEF pmpi_file_delete mpi_file_delete
|
|
Packit Service |
c5cf8c |
#else
|
|
Packit Service |
c5cf8c |
#pragma _HP_SECONDARY_DEF pmpi_file_delete_ mpi_file_delete_
|
|
Packit Service |
c5cf8c |
#endif
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#elif defined(HAVE_PRAGMA_CRI_DUP)
|
|
Packit Service |
c5cf8c |
#if defined(FORTRANCAPS)
|
|
Packit Service |
c5cf8c |
#pragma _CRI duplicate MPI_FILE_DELETE as PMPI_FILE_DELETE
|
|
Packit Service |
c5cf8c |
#elif defined(FORTRANDOUBLEUNDERSCORE)
|
|
Packit Service |
c5cf8c |
#pragma _CRI duplicate mpi_file_delete__ as pmpi_file_delete__
|
|
Packit Service |
c5cf8c |
#elif !defined(FORTRANUNDERSCORE)
|
|
Packit Service |
c5cf8c |
#pragma _CRI duplicate mpi_file_delete as pmpi_file_delete
|
|
Packit Service |
c5cf8c |
#else
|
|
Packit Service |
c5cf8c |
#pragma _CRI duplicate mpi_file_delete_ as pmpi_file_delete_
|
|
Packit Service |
c5cf8c |
#endif
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/* end of weak pragmas */
|
|
Packit Service |
c5cf8c |
#endif
|
|
Packit Service |
c5cf8c |
/* Include mapping from MPI->PMPI */
|
|
Packit Service |
c5cf8c |
#include "mpioprof.h"
|
|
Packit Service |
c5cf8c |
#endif
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#ifdef FORTRANCAPS
|
|
Packit Service |
c5cf8c |
#define mpi_file_delete_ PMPI_FILE_DELETE
|
|
Packit Service |
c5cf8c |
#elif defined(FORTRANDOUBLEUNDERSCORE)
|
|
Packit Service |
c5cf8c |
#define mpi_file_delete_ pmpi_file_delete__
|
|
Packit Service |
c5cf8c |
#elif !defined(FORTRANUNDERSCORE)
|
|
Packit Service |
c5cf8c |
#if defined(HPUX) || defined(SPPUX)
|
|
Packit Service |
c5cf8c |
#pragma _HP_SECONDARY_DEF pmpi_file_delete pmpi_file_delete_
|
|
Packit Service |
c5cf8c |
#endif
|
|
Packit Service |
c5cf8c |
#define mpi_file_delete_ pmpi_file_delete
|
|
Packit Service |
c5cf8c |
#else
|
|
Packit Service |
c5cf8c |
#if defined(HPUX) || defined(SPPUX)
|
|
Packit Service |
c5cf8c |
#pragma _HP_SECONDARY_DEF pmpi_file_delete_ pmpi_file_delete
|
|
Packit Service |
c5cf8c |
#endif
|
|
Packit Service |
c5cf8c |
#define mpi_file_delete_ pmpi_file_delete_
|
|
Packit Service |
c5cf8c |
#endif
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#else
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#ifdef FORTRANCAPS
|
|
Packit Service |
c5cf8c |
#define mpi_file_delete_ MPI_FILE_DELETE
|
|
Packit Service |
c5cf8c |
#elif defined(FORTRANDOUBLEUNDERSCORE)
|
|
Packit Service |
c5cf8c |
#define mpi_file_delete_ mpi_file_delete__
|
|
Packit Service |
c5cf8c |
#elif !defined(FORTRANUNDERSCORE)
|
|
Packit Service |
c5cf8c |
#if defined(HPUX) || defined(SPPUX)
|
|
Packit Service |
c5cf8c |
#pragma _HP_SECONDARY_DEF mpi_file_delete mpi_file_delete_
|
|
Packit Service |
c5cf8c |
#endif
|
|
Packit Service |
c5cf8c |
#define mpi_file_delete_ mpi_file_delete
|
|
Packit Service |
c5cf8c |
#else
|
|
Packit Service |
c5cf8c |
#if defined(HPUX) || defined(SPPUX)
|
|
Packit Service |
c5cf8c |
#pragma _HP_SECONDARY_DEF mpi_file_delete_ mpi_file_delete
|
|
Packit Service |
c5cf8c |
#endif
|
|
Packit Service |
c5cf8c |
#endif
|
|
Packit Service |
c5cf8c |
#endif
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/* Prototype to keep compiler happy */
|
|
Packit Service |
c5cf8c |
/*
|
|
Packit Service |
c5cf8c |
FORTRAN_API void FORT_CALL mpi_file_delete_(char *filename, MPI_Fint *info, MPI_Fint *ierr, int str_len);
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#ifdef _UNICOS
|
|
Packit Service |
c5cf8c |
void mpi_file_delete_(_fcd filename_fcd, MPI_Fint *info, MPI_Fint *ierr)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
char *filename = _fcdtocp(filename_fcd);
|
|
Packit Service |
c5cf8c |
int str_len = _fcdlen(filename_fcd);
|
|
Packit Service |
c5cf8c |
#else
|
|
Packit Service |
c5cf8c |
FORTRAN_API void FORT_CALL mpi_file_delete_(char *filename, MPI_Fint *info, MPI_Fint *ierr, int str_len)
|
|
Packit Service |
c5cf8c |
*/
|
|
Packit Service |
c5cf8c |
/* Prototype to keep compiler happy */
|
|
Packit Service |
c5cf8c |
FORTRAN_API void FORT_CALL mpi_file_delete_(char *filename FORT_MIXED_LEN_DECL, MPI_Fint * info,
|
|
Packit Service |
c5cf8c |
MPI_Fint * ierr FORT_END_LEN_DECL);
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#ifdef _UNICOS
|
|
Packit Service |
c5cf8c |
void mpi_file_delete_(_fcd filename_fcd, MPI_Fint * info, MPI_Fint * ierr)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
char *filename = _fcdtocp(filename_fcd);
|
|
Packit Service |
c5cf8c |
int str_len = _fcdlen(filename_fcd);
|
|
Packit Service |
c5cf8c |
#else
|
|
Packit Service |
c5cf8c |
FORTRAN_API void FORT_CALL mpi_file_delete_(char *filename FORT_MIXED_LEN(str_len), MPI_Fint * info,
|
|
Packit Service |
c5cf8c |
MPI_Fint * ierr FORT_END_LEN(str_len))
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
#endif
|
|
Packit Service |
c5cf8c |
char *newfname;
|
|
Packit Service |
c5cf8c |
int real_len, i;
|
|
Packit Service |
c5cf8c |
MPI_Info info_c;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
info_c = MPI_Info_f2c(*info);
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/* strip trailing blanks */
|
|
Packit Service |
c5cf8c |
if (filename <= (char *) 0) {
|
|
Packit Service |
c5cf8c |
FPRINTF(stderr, "MPI_File_delete: filename is an invalid address\n");
|
|
Packit Service |
c5cf8c |
MPI_Abort(MPI_COMM_WORLD, 1);
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
for (i = str_len - 1; i >= 0; i--)
|
|
Packit Service |
c5cf8c |
if (filename[i] != ' ')
|
|
Packit Service |
c5cf8c |
break;
|
|
Packit Service |
c5cf8c |
if (i < 0) {
|
|
Packit Service |
c5cf8c |
FPRINTF(stderr, "MPI_File_delete: filename is a blank string\n");
|
|
Packit Service |
c5cf8c |
MPI_Abort(MPI_COMM_WORLD, 1);
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
real_len = i + 1;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
newfname = (char *) ADIOI_Malloc((real_len + 1) * sizeof(char));
|
|
Packit Service |
c5cf8c |
ADIOI_Strncpy(newfname, filename, real_len);
|
|
Packit Service |
c5cf8c |
newfname[real_len] = '\0';
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
*ierr = MPI_File_delete(newfname, info_c);
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
ADIOI_Free(newfname);
|
|
Packit Service |
c5cf8c |
}
|