3 ! Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
4 ! University Research and Technology
5 ! Corporation. All rights reserved.
6 ! Copyright (c) 2004-2005 The University of Tennessee and The University
7 ! of Tennessee Research Foundation. All rights
9 ! Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
10 ! University of Stuttgart. All rights reserved.
11 ! Copyright (c) 2004-2005 The Regents of the University of California.
12 ! All rights reserved.
13 ! Copyright (c) 2006-2007 Cisco Systems, Inc. All rights reserved.
16 ! Additional copyrights may follow
20 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
21 ! WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
22 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
24 ! Do ***not*** copy
this file to the directory where your Fortran
25 ! fortran application is compiled unless it is absolutely necessary! Most
26 ! modern Fortran compilers now support the -I command line
flag, which
27 ! tells the compiler where to find .h files (specifically,
this one). For
30 ! shell$ mpif77 foo.f -o foo -I$OMPI_HOME/include
32 ! will probably
do the trick (assuming that you have set OMPI_HOME
35 ! That being said, OMPI
's "mpif77" wrapper compiler should
36 ! automatically include the -I option for you. The following command
37 ! should be equivalent to the command listed above:
39 ! shell$ mpif77 foo.f -o foo
41 ! You should not copy this file to your local directory because it is
42 ! possible that this file will be changed between versions of Open MPI.
43 ! Indeed, this mpif.h is incompatible with the mpif.f of other
44 ! implementations of MPI. Using this mpif.h with other implementations
45 ! of MPI, or with other versions of Open MPI will result in undefined
46 ! behavior (to include incorrect results, segmentation faults,
47 ! unexplainable "hanging" in your application, etc.). Always use the
48 ! -I command line option instead (or let mpif77 do it for you).
50 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
51 ! WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
52 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
55 ! Include the back-end file that has the bulk of the MPI Fortran
59 include 'mpif-common.h
'
62 ! These "external" statements are specific to the MPI F77 interface
63 ! (and are toxic to the MPI F90 interface), and are therefore in the
64 ! MPI F77-specific header file (i.e., this one).
66 external MPI_NULL_COPY_FN, MPI_NULL_DELETE_FN
67 external MPI_COMM_NULL_COPY_FN, MPI_COMM_NULL_DELETE_FN
68 external MPI_TYPE_NULL_COPY_FN, MPI_TYPE_NULL_DELETE_FN
69 external MPI_DUP_FN, MPI_COMM_DUP_FN, MPI_TYPE_DUP_FN
70 external MPI_WIN_NULL_COPY_FN
71 external MPI_WIN_NULL_DELETE_FN
72 external MPI_WIN_DUP_FN
73 ! Note that MPI_CONVERSION_FN_NULL is a "constant" (it is only ever
74 ! checked for comparison; it is never invoked), but it is passed as
75 ! a function pointer (to MPI_REGISTER_DATAREP) and therefore must be
76 ! the same size/type. It is therefore external'ed here, and not
77 ! defined with an integer value in mpif-common.h.
78 external MPI_CONVERSION_FN_NULL
81 !
double precision functions
83 external MPI_WTIME, MPI_WTICK , PMPI_WTICK, PMPI_WTIME
84 double precision MPI_WTIME, MPI_WTICK , PMPI_WTICK, PMPI_WTIME