The following is an issue found when testing with xlf-14.1, which is
already known to have problems with the F08 stuff. So, I've configured
with "FC=xlf90 --enable-mpi-fortran=usempi".
The problem is that mpifort is now a wrapper around xlf90 and thus is
assuming F90 free-form input, independent of the file suffix. This results
in errors building fixed-form (f77) codes:
$ mpifort hello_mpifh.f
"hello_mpifh.f", line 1.1: 1515-019 (S) Syntax is incorrect.
"hello_mpifh.f", line 2.3: 1515-019 (S) Syntax is incorrect.
"hello_mpifh.f", line 3.27: 1515-019 (S) Syntax is incorrect.
"hello_mpifh.f", line 4.27: 1515-019 (S) Syntax is incorrect.
"hello_mpifh.f", line 5.3: 1515-019 (S) Syntax is incorrect.
"hello_mpifh.f", line 6.3: 1515-019 (S) Syntax is incorrect.
"hello_mpifh.f", line 7.1: 1515-019 (S) Syntax is incorrect.
"hello_mpifh.f", line 8.3: 1515-019 (S) Syntax is incorrect.
"hello_mpifh.f", line 9.1: 1515-019 (S) Syntax is incorrect.
"hello_mpifh.f", 1515-002 (S) END card is missing. One is assumed.
** _main === End of Compilation 1 ===
"hello_mpifh.f", line 22.19: 1515-019 (S) Syntax is incorrect.
** main === End of Compilation 2 ===
1501-511 Compilation failed for file hello_mpifh.f.
This can, fortunately, be worked around with "-qfixed":
$ mpifort -qfixed hello_mpifh.f
** main === End of Compilation 1 ===
1501-510 Compilation successful for file hello_mpifh.f.
I *think* that I should have configured with FC=xlf (rather than xlf90)
then it will determine language-level and format based on file suffix. I
can (without re-configuring) confirm that xlf honors the extension by
setting OMPI_FC=xlf:
{hargrove@vestalac1 examples}$ OMPI_FC=xlf mpifort hello_mpifh.f
** main === End of Compilation 1 ===
1501-510 Compilation successful for file hello_mpifh.f.
{hargrove@vestalac1 examples}$ OMPI_FC=xlf mpifort hello_usempi.f90
** main === End of Compilation 1 ===
1501-510 Compilation successful for file hello_usempi.f90.
The term "fortran compiler" in Open MPI's README is not (as far as I could
see) clearly defined as "a fortran compiler which honors file suffixes to
determine language dialect"
My FC=xlf90 setting is "historical" from the testing scripts I've used
since the 1.5 and 1.6 series.
ADDITIONALLY, the Open MPI manpages STILL say FC is to be a fortran90
compiler and F77 is to be an fortran77 compiler. It looks like others
might encounter the same problem I describe above just by reading the
documentation too closely.
I will follow up with specifics on what appears to be out-of-date in the
manpages.
-Paul
--
Paul H. Hargrove [email protected]
Future Technologies Group
Computer and Data Sciences Department Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory Fax: +1-510-486-6900