#include <stdlib.h> #include "parlib.h" #ifdef FORTRANUNDERSCORE void p_transpose_init_ ( ndims, dim_source, lblks_source, dim_dest, lblks_dest, stride, blklen, overlap, datatype, comm, period, transp, ierr ) #elif defined(FORTRANDOUBLEUNDERSCORE) void p_transpose_init__ ( ndims, dim_source, lblks_source, dim_dest, lblks_dest, stride, blklen, overlap, datatype, comm, period, transp, ierr ) #else void p_transpose_init ( ndims, dim_source, lblks_source, dim_dest, lblks_dest, stride, blklen, overlap, datatype, comm, period, transp, ierr ) #endif MPI_Fint *ndims, *dim_source, *lblks_source, *dim_dest, *lblks_dest; MPI_Fint *stride, *blklen, *overlap, *datatype, *comm, *period; MPI_Fint **transp, *ierr; { *transp = (MPI_Fint *) malloc ( sizeof(Transposition) ); *ierr = P_Transpose_init ( *ndims, *dim_source, lblks_source, *dim_dest, lblks_dest, stride, blklen, overlap, MPI_Type_f2c(*datatype), MPI_Comm_f2c(*comm), *period, (Transposition *) *transp ); } #ifdef FORTRANUNDERSCORE void p_transpose_start_ ( arr_source, arr_dest, transp, ierr ) #elif defined(FORTRANDOUBLEUNDERSCORE) void p_transpose_start__ ( arr_source, arr_dest, transp, ierr ) #else void p_transpose_start ( arr_source, arr_dest, transp, ierr ) #endif void *arr_source, *arr_dest; MPI_Fint **transp, *ierr; { *ierr = P_Transpose_start ( arr_source, arr_dest, (Transposition *) *transp ); } #ifdef FORTRANUNDERSCORE void p_transpose_end_ ( transp, ierr ) #elif defined(FORTRANDOUBLEUNDERSCORE) void p_transpose_end__ ( transp, ierr ) #else void p_transpose_end ( transp, ierr ) #endif MPI_Fint **transp, *ierr; { *ierr = P_Transpose_end ( (Transposition *) *transp ); } #ifdef FORTRANUNDERSCORE void p_transpose_free_ ( transp, ierr ) #elif defined(FORTRANDOUBLEUNDERSCORE) void p_transpose_free__ ( transp, ierr ) #else void p_transpose_free ( transp, ierr ) #endif MPI_Fint **transp, *ierr; { *ierr = P_Transpose_free ( (Transposition *) *transp ); free ( *transp ); } #ifdef FORTRANUNDERSCORE void p_transpose_ ( ndims, arr_source, dim_source, lblks_source, arr_dest, dim_dest, lblks_dest, stride, blklen, overlap, datatype, comm, period, ierr ) #elif defined(FORTRANDOUBLEUNDERSCORE) void p_transpose__ ( ndims, arr_source, dim_source, lblks_source, arr_dest, dim_dest, lblks_dest, stride, blklen, overlap, datatype, comm, period, ierr ) #else void p_transpose ( ndims, arr_source, dim_source, lblks_source, arr_dest, dim_dest, lblks_dest, stride, blklen, overlap, datatype, comm, period, ierr ) #endif void *arr_source, *arr_dest; MPI_Fint *ndims, *dim_source, *lblks_source, *dim_dest, *lblks_dest; MPI_Fint *stride, *blklen, *overlap, *datatype, *comm, *period; MPI_Fint *ierr; { *ierr = P_Transpose ( *ndims, arr_source, *dim_source, lblks_source, arr_dest, *dim_dest, lblks_dest, stride, blklen, overlap, MPI_Type_f2c(*datatype), MPI_Comm_f2c(*comm), *period ); }