I have tried the 1.8.8, 1.10.2rc3 and nightly master tarballs with the NAG Fortran compiler. Both versions 6.0 and 5.3 are unable to build and/or link Open MPI's Fortran bindings (MPI and SHMEM) w/o some extra work. A google search turned up a blog entry dealing with the exact issues I encountered:
http://baradi09.blogspot.com/2014/08/compiling-openmpi-with-nag-fortran.html It suggests the following + Adding FCFLAGS="-mismatch" to disable some type checking. + Building only static libs to avoid issues with libtool and nagfor (see http://www.open-mpi.org/community/lists/devel/2011/07/9497.php) + Patching the *fort*-wrapper.data files (same problem as with libtool) Together those are sufficient to get 1.10.2rc3 built with both 6.0 and 5.3 version of NAG Fortran. However, the patching of the *fort*-wrapper.data files is necessary but not sufficient to fix the linking problems: $ mpifort -g ring_mpifh.f -o ring_mpifh NAG Fortran Compiler Release 6.0(Hibiya) Build 1028 Warning: ring_mpifh.f, line 80: Unused external reference MPI_WTICK Warning: ring_mpifh.f, line 80: Unused external reference MPI_WTIME Warning: ring_mpifh.f, line 80: Unused external reference PMPI_WTICK Warning: ring_mpifh.f, line 80: Unused external reference PMPI_WTIME Obsolescent: ring_mpifh.f, line 10: Fixed source form [NAG Fortran Compiler normal termination, 5 warnings] /sandbox/hargrove/OMPI/openmpi-1.10.2rc3-linux-x86_64-nagfor-6/INST/lib/libmpi.a(ompi_mpi_init.o): In function `ompi_warn_fork': /sandbox/hargrove/OMPI/openmpi-1.10.2rc3-linux-x86_64-nagfor-6/openmpi-1.10.2rc3/ompi/runtime/ompi_mpi_init.c:193: undefined reference to `pthread_atfork' /sandbox/hargrove/OMPI/openmpi-1.10.2rc3-linux-x86_64-nagfor-6/INST/lib/libopen-pal.a(lt1-malloc.o): In function `ptmalloc_init': /sandbox/hargrove/OMPI/openmpi-1.10.2rc3-linux-x86_64-nagfor-6/openmpi-1.10.2rc3/opal/mca/memory/linux/arena.c:387: undefined reference to `pthread_atfork' I needed to manually append "-lpthreads" to libs_static in the *fort*-wrapper.data files to resolve that problem. I suspect configure should have taken care of that, based on the following: checking if Fortran compiler and POSIX threads work as is... no [...C++ checks...] checking if Fortran compiler and POSIX threads work with -Kthread... no checking if Fortran compiler and POSIX threads work with -kthread... no checking if Fortran compiler and POSIX threads work with -pthread... no checking if Fortran compiler and POSIX threads work with -pthreads... no checking if Fortran compiler and POSIX threads work with -mt... no checking if Fortran compiler and POSIX threads work with -mthreads... no checking if Fortran compiler and POSIX threads work with -lpthreads... no checking if Fortran compiler and POSIX threads work with -llthread... no checking if Fortran compiler and POSIX threads work with -lpthread... yes If there is no interest in support for the NAG Fortran compiler, just say so and I'll drop the subject. However, if you want more info or need me to test possible fixes, let me know. -Paul -- Paul H. Hargrove phhargr...@lbl.gov Computer Languages & Systems Software (CLaSS) Group Computer Science Department Tel: +1-510-495-2352 Lawrence Berkeley National Laboratory Fax: +1-510-486-6900