1
1

Updates to the README and wrapper compiler man pages for Fortran.

Thanks to Paul Hargrove for spotting these issues.

cmr=v1.7.4:reviewer=rhc:subject=Fortran README+man page updates

This commit was SVN r30414.
Этот коммит содержится в:
Jeff Squyres 2014-01-24 21:00:00 +00:00
родитель e3cb4b4a5b
Коммит 98d67add3c
3 изменённых файлов: 70 добавлений и 38 удалений

36
README
Просмотреть файл

@ -306,6 +306,18 @@ Compiler Notes
******************************************************************** ********************************************************************
******************************************************************** ********************************************************************
As a direct result, it is STRONGLY recommended that you specify a
Fortran compiler that uses file suffixes to determine Fortran code
layout (e.g., free form vs. fixed). For example, with some versions
of the IBM XLF compiler, it is preferable to use FC=xlf instead of
FC=xlf90, because xlf will automatically determine the difference
between free form and fixed Fortran source code.
However, many Fortran compiler allow specifying additional
command-line arguments to indicate which Fortran dialect to use.
For example, if FC=xlf90, you may need to use "mpifort --qfixed ..."
to compile fixed format Fortran source files.
You can use either ompi_info or oshmem_info to see with which Fortran You can use either ompi_info or oshmem_info to see with which Fortran
compiler Open MPI was configured and compiled. compiler Open MPI was configured and compiled.
@ -346,12 +358,13 @@ Compiler Notes
- The mpi_f08 module is new and has been tested with the Intel - The mpi_f08 module is new and has been tested with the Intel
Fortran compiler. Other modern Fortran compilers may also work Fortran compiler. Other modern Fortran compilers may also work
(but are, as yet, currently untested). It is expected that this (but are, as yet, only lightly tested). It is expected that this
support will mature over time. support will mature over time.
As of v4.9, the GNU Fortran compiler (gfortran) is *not* supported As of this release, the GNU Fortran compiler (gfortran) is *not*
with the mpi_f08 module (gfortran lacks some necessary modern supported with the mpi_f08 module. It is likely that a future
Fortran features, sorry). release of Open MPI will provide an mpi_f08 module that will be
compatible with gfortran >= v4.9.
- All Fortran compilers support the mpif.h/shmem.fh-based bindings. - All Fortran compilers support the mpif.h/shmem.fh-based bindings.
@ -368,17 +381,10 @@ Compiler Notes
Specifically, all MPI subroutines with no "choice" buffers are Specifically, all MPI subroutines with no "choice" buffers are
prototyped and will receive strong parameter type checking at prototyped and will receive strong parameter type checking at
run-time (e.g., MPI_INIT, MPI_COMM_RANK, etc.). run-time (e.g., MPI_INIT, MPI_COMM_RANK, etc.). Per guidance from
the MPI-3 specification, all MPI subroutines with "choice" buffers
MPI subroutines with one choice buffer (e.g., MPI_SEND) are are specifically *not* included in the "mpi" module, and their
prototyped for all intrinsic Fortran types for scalars and ranks 1 parameters will not be checked at compile time.
through 4 (the --with-gfortran-max-array-dim configure switch can
be used to increase the max array rank supported to up to 7).
MPI subroutines with two choice buffers (e.g., MPI_GATHER) are
*not* prototyped. These subroutines can still be called in MPI
applications; they just will not receive strong parameter type
checking.
General Run-Time Support Notes General Run-Time Support Notes

Просмотреть файл

@ -97,15 +97,46 @@ ORTE
.TP .TP
OMPI OMPI
\fImpicc\fR, \fImpic++\fR, \fImpicxx\fR, \fImpiCC\fR (only on systems with \fImpicc\fR, \fImpic++\fR, \fImpicxx\fR, \fImpiCC\fR (only on systems with
case-senstive file systems), \fImpif77\fR, and \fImpif90\fR. Note case-senstive file systems), and \fImpifort\fR (and its legacy/deprecated
names \fImpif77\fR and \fImpif90\fR). Note
that \fImpic++\fR, \fImpicxx\fR, and \fImpiCC\fR all invoke the same that \fImpic++\fR, \fImpicxx\fR, and \fImpiCC\fR all invoke the same
underlying C++ compiler with the same options. All are provided as underlying C++ compiler with the same options. All are provided as
compatibility with other MPI implementations. compatibility with other MPI implementations.
. .
.
.SS Fortran Notes
.PP .PP
The Fortran wrapper compilers for MPI (\fImpif77\fR and \fImpif90\fR) The Fortran wrapper compiler for MPI (\fImpifort\fR, and its
will be inoperative and will return an error on use if Fortran 77 / legacy/deprecated names \fImpif77\fR and \fImpif90\fR) can compile and
Fortran 90 support was not built into the MPI layer. link MPI applications that use any/all of the MPI Fortran bindings:
.IR mpif.h ,
the
.I mpi
module, and the
.I mpi_f08
module (assuming Open MPI was installed with support for each of these
Fortran bindings). Specifically: it is no longer necessary to use
different wrapper compilers for applications that use
.I mpif.h
vs. applications that use the
.I mpi
module -- just use
.I mpifort
for all Fortran MPI applications.
.
.PP
Note, however, that the Fortran compiler may require additional
command-line options to enforce a specific Fortran dialect. For
example, in some versions of the IBM XLF compiler, if xlf90 is the
underlying Fortran compiler,
.IR -qfixed
may be necessary to compile fixed-format Fortran source files.
.
.PP
Finally, note that
.I mpifort
will be inoperative and will return an error on use if Fortran support
was not built into the MP Ilayer.
. .
. .
.SS Overview .SS Overview
@ -226,18 +257,9 @@ C++ compiler flags
. .
. .
.TP .TP
F77
Fortran 77 compiler
.
.TP
FFLAGS
Fortran 77 compiler flags
.
.
.TP
FC FC
Fortran 90 compiler Fortran compiler
. .
.TP .TP
FCFLAGS FCFLAGS
Fortran 90 compiler flags Fortran compiler flags

Просмотреть файл

@ -14,17 +14,23 @@ invoked as the back-end by the Open MPI wrapper commands such as:
.BR mpicc , .BR mpicc ,
.BR mpiCC , .BR mpiCC ,
.BR mpic++ , .BR mpic++ ,
.BR mpif77 ,
and and
.BR mpif90 . .BR mpifort
(and its legacy/deprecated names
.BR mpif77
and
.BR mpif90 ).
.PP .PP
Some Open MPI installations may have additional wrapper commands, Some Open MPI installations may have additional wrapper commands,
and/or have renamed the wrapper compilers listed above to avoid and/or have renamed the wrapper compilers listed above to avoid
executable name conflicts with other MPI implementations. Hence, you executable name conflicts with other MPI implementations. Hence, you
may also have wrapper compilers installed including the following may also have wrapper compilers installed including the following
names: names:
.BR mpif90.openmpi , .BR mpifort.openmpi
.BR mpif77.openmpi , (and the legacy/deprecated names
.BR mpif90.openmpi
and
.BR mpif77.openmpi ),
.BR mpicxx.openmpi , .BR mpicxx.openmpi ,
.BR mpiCC.openmpi , .BR mpiCC.openmpi ,
.BR mpicc.openmpi , .BR mpicc.openmpi ,
@ -45,10 +51,8 @@ installation:
.BR mpicc (1), .BR mpicc (1),
.BR mpiCC (1), .BR mpiCC (1),
.BR mpic++ (1), .BR mpic++ (1),
.BR mpif77 (1), .BR mpifort (1),
.BR mpif90 (1), .BR mpifort.openmpi (1),
.BR mpif90.openmpi (1),
.BR mpif77.openmpi (1),
.BR mpicxx.openmpi (1), .BR mpicxx.openmpi (1),
.BR mpiCC.openmpi (1), .BR mpiCC.openmpi (1),
.BR mpicc.openmpi (1), .BR mpicc.openmpi (1),