1! 2! Copyright (C) by Argonne National Laboratory 3! See COPYRIGHT in top-level directory 4! 5! Module mpi_c_interface_types is a helper module used by the modules 6! specifying c interfaces: 7! 8! mpi_c_interface_cdesc - interfaces for MPI functions with a descriptor argument 9! mpi_c_interface_nobuf - interfaces for MPI functions with no choice argument 10! 11! MPICH C interface uses integer for handles and status type. 12! It is not defined in the spec and not intended for end users. 13!-------------------------------------------------------------- 14 15module mpi_c_interface_types 16 17use, intrinsic :: iso_c_binding 18 19implicit none 20 21integer,parameter :: c_Fint = KIND(0) 22 23integer,parameter :: c_Aint = @F08_C_AINT@ 24integer,parameter :: c_Count = @F08_C_COUNT@ 25integer,parameter :: c_Offset = @F08_C_OFFSET@ 26 27!============================================================= 28! Kinds for handle types in C prototypes; should match mpi.h 29!============================================================= 30 31integer,parameter :: c_Datatype = c_int 32integer,parameter :: c_Comm = c_int 33integer,parameter :: c_Group = c_int 34integer,parameter :: c_Win = c_int 35integer,parameter :: c_Op = c_int 36integer,parameter :: c_Info = c_int 37integer,parameter :: c_Errhandler = c_int 38integer,parameter :: c_Request = c_int 39integer,parameter :: c_Message = c_int 40integer,parameter :: c_File = c_intptr_t 41 42!================================================ 43! C struct for STATUS values; should match mpi.h 44!================================================ 45 46! MPI_Status, with name changed to c_Status for internal disambiguation 47! A.1.2 p 676 48 49type, bind(c) :: c_Status 50 integer(c_int) :: count_lo 51 integer(c_int) :: count_hi_and_cancelled 52 integer(c_int) :: MPI_SOURCE 53 integer(c_int) :: MPI_TAG 54 integer(c_int) :: MPI_ERROR 55end type c_Status 56 57end module mpi_c_interface_types 58