module mpeu_mpif !$$$ subprogram documentation block ! . . . . ! subprogram: module mpeu_mpif ! prgmmr: j guo <jguo@nasa.gov> ! org: NASA/GSFC, Global Modeling and Assimilation Office, 900.3 ! date: 2010-03-22 ! ! abstract: a portable interface to include "mpif.h" for MPI. ! ! program history log: ! 2010-03-22 j guo - added this document block ! ! input argument list: see Fortran 90 style document below ! ! output argument list: see Fortran 90 style document below ! ! attributes: ! language: Fortran 90 and/or above ! machine: ! !$$$ end subprogram documentation block ! module interface: implicit none private ! except public :: MPI_INTEGER1 public :: MPI_INTEGER2 public :: MPI_INTEGER4 public :: MPI_INTEGER8 public :: MPI_INTEGER public :: MPI_REAL public :: MPI_DOUBLE_PRECISION public :: MPI_LOGICAL public :: MPI_CHARACTER public :: MPI_2INTEGER public :: MPI_2REAL public :: MPI_2DOUBLE_PRECISION public :: MPI_REAL4 public :: MPI_REAL8 public :: MPI_REAL16 public :: MPI_COMM_WORLD public :: MPI_COMM_NULL public :: MPI_REQUEST_NULL public :: MPI_SUM public :: MPI_PROD public :: MPI_MIN public :: MPI_MAX public :: MPI_MINLOC public :: MPI_MAXLOC public :: MPI_MAX_ERROR_STRING public :: MPI_STATUS_SIZE public :: MPI_ERROR !#if !defined(sysLinux) public :: MPI_OFFSET_KIND public :: MPI_INFO_NULL public :: MPI_MODE_RDONLY public :: MPI_MODE_RDWR public :: MPI_SEEK_SET !#endif public :: MPI_BYTE #ifdef MPICH_ public :: MPIPRIV ! the common block name #endif !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ! NASA/GSFC, Data Assimilation Office, Code 910.3, GEOS/DAS ! !----------------------------------------------------------------------- !BOP ! ! !MODULE: mpeu_mpif - a portable interface to the MPI "mpif.h" COMMONs. ! ! !DESCRIPTION: ! ! The purpose of \verb"mpeu_mpif" module is to provide a portable ! interface of \verb"mpif.h" with different MPI implementation. ! By combining module \verb"mpeu_mpif" and \verb"mpeu_mpif90", it may be ! possible to build a Fortran 90 MPI binding module graduately. ! ! Although it is possible to use \verb'include "mpif.h"' directly ! in individual modules, it has several problems: ! \begin{itemize} ! \item It may conflict with either the source code of a {\sl fixed} ! format or the code of a {\sl free} format; ! \item It does not provide the protection and the safety of using ! these variables as what a \verb"MODULE" would provide. ! \end{itemize} ! ! More information may be found in the module \verb"mpeu_mpif90". ! ! !INTERFACE: #include "mpif.h" ! !REVISION HISTORY: ! 01Apr98 - Jing Guo <guo@thunder> - initial prototype/prolog/code ! 16Feb05 - Todling - added a number of vars needed by GSI ! 18Mar05 - Todling - added a few more mpi vars used by GSI ! 20Mar05 - Todling - see no reason for sysLinux ifdef (commented out) ! 18Feb09 - Jing Guo <Jing.Guo@nasa.gov> ! - Copied from GMAO_mpeu/m_mpif.F here to avoid the ! dependency of GSI_GridComp/ on GMAO_mpeu. ! - Renamed to mpeu_mpif to avoid possible name conflict ! with GMAO_mpeu/. ! 23Feb09 - Jing Guo <Jing.Guo@nasa.gov> ! - Renamed to *.F90, by assuming the system mpif.h is ! compatible with free-format Fortran. !EOP !_______________________________________________________________________ character(len=*),parameter :: myname='mpeu_mpif' end module mpeu_mpif !.