m_mpif.F90 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2. ! NASA/GSFC, Data Assimilation Office, Code 910.3, GEOS/DAS !
  3. !-----------------------------------------------------------------------
  4. ! CVS m_mpif.F90,v 1.2 2004-04-21 22:54:48 jacob Exp
  5. ! CVS MCT_2_8_0
  6. !-----------------------------------------------------------------------
  7. !BOP
  8. !
  9. ! !MODULE: m_mpif - a portable interface to the MPI "mpif.h" COMMONs.
  10. !
  11. ! !DESCRIPTION:
  12. !
  13. ! The purpose of \verb"m_mpif" module is to provide a portable
  14. ! interface of \verb"mpif.h" with different MPI implementation.
  15. ! By combining module \verb"m_mpif" and \verb"m_mpif90", it may be
  16. ! possible to build a Fortran 90 MPI binding module graduately.
  17. !
  18. ! Although it is possible to use \verb'include "mpif.h"' directly
  19. ! in individual modules, it has several problems:
  20. ! \begin{itemize}
  21. ! \item It may conflict with either the source code of a {\sl fixed}
  22. ! format or the code of a {\sl free} format;
  23. ! \item It does not provide the protection and the safety of using
  24. ! these variables as what a \verb"MODULE" would provide.
  25. ! \end{itemize}
  26. !
  27. ! More information may be found in the module \verb"m_mpif90".
  28. !
  29. ! !INTERFACE:
  30. module m_mpif
  31. implicit none
  32. private ! except
  33. public :: MPI_INTEGER
  34. public :: MPI_REAL
  35. public :: MPI_DOUBLE_PRECISION
  36. public :: MPI_LOGICAL
  37. public :: MPI_CHARACTER
  38. public :: MPI_REAL4
  39. public :: MPI_REAL8
  40. public :: MPI_COMM_WORLD
  41. public :: MPI_COMM_NULL
  42. public :: MPI_SUM
  43. public :: MPI_PROD
  44. public :: MPI_MIN
  45. public :: MPI_MAX
  46. public :: MPI_MAX_ERROR_STRING
  47. public :: MPI_STATUS_SIZE
  48. public :: MPI_ANY_SOURCE
  49. #ifdef MPICH_
  50. public :: MPIPRIV ! the common block name
  51. #endif
  52. include "mpif.h"
  53. ! !REVISION HISTORY:
  54. ! 01Apr98 - Jing Guo <guo@thunder> - initial prototype/prolog/code
  55. !EOP
  56. !_______________________________________________________________________
  57. character(len=*),parameter :: myname='MCT(MPEU)::m_mpif'
  58. end module m_mpif
  59. !.