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                          phhargr...@lbl.gov
Future Technologies Group
Computer and Data Sciences Department     Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900

Reply via email to