Back to home page

MITgcm

 
 

    


File indexing completed on 2023-05-28 05:10:53 UTC

view on githubraw file Latest commit b4daa243 on 2023-05-28 03:53:22 UTC
b4daa24319 Shre*0001 /*
                0002 ##########################################################
                0003 # This file is part of the AdjoinableMPI library         #
                0004 # released under the MIT License.                        #
                0005 # The full COPYRIGHT notice can be found in the top      #
                0006 # level directory of the AdjoinableMPI distribution.     #
                0007 ########################################################## 
                0008 */
                0009 #ifndef _AMPI_TAPE_SUPPORT_H_
                0010 #define _AMPI_TAPE_SUPPORT_H_
                0011 
                0012 #include <mpi.h>
                0013 #if defined(__cplusplus)
                0014 extern "C" {
                0015 #endif
                0016 
                0017 #include "ampi/userIF/request.h"
                0018 
                0019 /**
                0020  * \file 
                0021  * \brief interface to a reusable tape to read and write in particular the opaque MPI types
                0022  */ 
                0023 
                0024 void TAPE_AMPI_init();
                0025 void TAPE_AMPI_resetBottom();
                0026 void TAPE_AMPI_resetTop();
                0027 
                0028 void TAPE_AMPI_push_int(int an_int);
                0029 void TAPE_AMPI_pop_int(int *an_int);
                0030 void TAPE_AMPI_read_int(int* an_int);
                0031 
                0032 void TAPE_AMPI_push_MPI_Aint(MPI_Aint an_MPI_Aint);
                0033 void TAPE_AMPI_pop_MPI_Aint(MPI_Aint *an_MPI_Aint);
                0034 void TAPE_AMPI_read_MPI_Aint(MPI_Aint* an_MPI_Aint);
                0035 
                0036 void TAPE_AMPI_push_ptr(void *ptr);
                0037 void TAPE_AMPI_pop_ptr(void **ptr);
                0038 void TAPE_AMPI_read_ptr(void **ptr);
                0039 
                0040 void TAPE_AMPI_push_MPI_Datatype(MPI_Datatype an_MPI_Datatype);
                0041 void TAPE_AMPI_pop_MPI_Datatype(MPI_Datatype *an_MPI_Datatype);
                0042 void TAPE_AMPI_read_MPI_Datatype(MPI_Datatype* an_MPI_Datatype);
                0043 
                0044 void TAPE_AMPI_push_MPI_Comm(MPI_Comm an_MPI_Comm);
                0045 void TAPE_AMPI_pop_MPI_Comm(MPI_Comm *an_MPI_Comm);
                0046 void TAPE_AMPI_read_MPI_Comm(MPI_Comm* an_MPI_Comm);
                0047 
                0048 void TAPE_AMPI_push_MPI_Request(MPI_Request an_MPI_Request);
                0049 void TAPE_AMPI_pop_MPI_Request(MPI_Request *an_MPI_Request);
                0050 void TAPE_AMPI_read_MPI_Request(MPI_Request* an_MPI_Request);
                0051 
                0052 void TAPE_AMPI_push_MPI_Op(MPI_Op an_MPI_Op);
                0053 void TAPE_AMPI_pop_MPI_Op(MPI_Op *an_MPI_Op);
                0054 void TAPE_AMPI_read_MPI_Op(MPI_Op* an_MPI_Op);
                0055 
                0056 void TAPE_AMPI_push_double(double a_double);
                0057 void TAPE_AMPI_pop_double(double *a_double);
                0058 void TAPE_AMPI_read_double(double* a_double);
                0059 
                0060 void TAPE_AMPI_push_MPI_Win(MPI_Win an_MPI_Win);
                0061 void TAPE_AMPI_pop_MPI_Win(MPI_Win *an_MPI_Win);
                0062 void TAPE_AMPI_read_MPI_Win(MPI_Win* an_MPI_Win);
                0063 
                0064 #if defined(__cplusplus)
                0065 }
                0066 #endif
                0067 
                0068 #endif
                0069