Yes, I am from RWTH Aachen, doing Hybrid Parallelization of some code on HPC.

These are the outputs from the command line:

$ mpif90 --showme
gfortran -I/opt/MPI/openmpi-1.5.3/linux/gcc/include -fexceptions -pthread -I/opt/MPI/openmpi-1.5.3/linux/gcc/lib -I/opt/MPI/openmpi-1.5.3/linux/gcc/lib -Wl,-rpath,/opt/MPI/openmpi-1.5.3/linux/gcc/lib -I/opt/MPI/openmpi-1.5.3/linux/gcc/lib -L/opt/MPI/openmpi-1.5.3/linux/gcc/lib -lmpi_f90 -lmpi_f77 -lmpi -ldl -Wl,--export-dynamic -lnsl -lutil -lm -ldl

$ mpif77 --showme
gfortran -I/opt/MPI/openmpi-1.5.3/linux/gcc/include -fexceptions -pthread -I/opt/MPI/openmpi-1.5.3/linux/gcc/lib -Wl,-rpath,/opt/MPI/openmpi-1.5.3/linux/gcc/lib -I/opt/MPI/openmpi-1.5.3/linux/gcc/lib -L/opt/MPI/openmpi-1.5.3/linux/gcc/lib -lmpi_f77 -lmpi -ldl -Wl,--export-dynamic -lnsl -lutil -lm -ldl

About the make file, I pass all of these parameters as FFLAGS!!! It is a lot, I know. :D

gfortran -c -I./ -Isolve/ -Inonlinear/ -Iforward/ -Isimul/ -Isimul/gs/ -Isimul/sgsim/ -Ig_taf/ -Iad_taf/ -Iinverse/ -Iinverse/g_taf/ -Iinverse/ad_taf/ -Initsol/ -Iprops/bas/ -Iuser/none/ -m64 -fno-second-underscore -march=k8 -O3 -ffast-math -funroll-all-loops -fprefetch-loop-arrays -mno-ieee-fp -DG95 -DCLopt -fdefault-integer-8 -frepack-arrays -ftree-vectorize -funit-at-a-time -fopenmp -DPROPS_bas -DSIMUL_sgsim -DUSER_none -DfOMP -DQDDOT -Dhead_base -DSTBAY -DstdFW -Dsetg_taf -DnoHDF -I/opt/MPI/openmpi-1.5.3/linux/gcc/include -fexceptions -pthread -I/opt/MPI/openmpi-1.5.3/linux/gcc/lib -I/opt/MPI/openmpi-1.5.3/linux/gcc/lib -Wl,-rpath,/opt/MPI/openmpi-1.5.3/linux/gcc/lib -I/opt/MPI/openmpi-1.5.3/linux/gcc/lib -L/opt/MPI/openmpi-1.5.3/linux/gcc/lib -lmpi_f90 -lmpi_f77 -lmpi -ldl -Wl,--export-dynamic -lnsl -lutil -lm -ldl -x f95-cpp-input simul/simul_wrapper.f90 -o simul/simul_wrapper.o -I/opt/MPI/openmpi-1.5.3/linux/gcc/include -fexceptions -pthread -I/opt/MPI/openmpi-1.5.3/linux/gcc/lib -I/opt/MPI/openmpi-1.5.3/linux/gcc/lib

RWTH Aachen

From: "Iliev, Hristo" <iliev@rz.rwth-aachen.de>
To: Mohamad Ali Rostami <ma.rostami@yahoo.com>; Open MPI Users <users@open-mpi.org>
Sent: Wednesday, June 27, 2012 2:59 PM
Subject: RE: [OMPI users] MPI Problem

Could you please compare the output from “mpif77/mpif90 -showme” when executed from the command line and from inside the Makefile? Could you also check that the argument to MPI_INIT is a normal INTEGER and is not getting some funny KIND or preprocessor treatment?
Hristo Iliev, Ph.D. -- High Performance Computing
RWTH Aachen University, Center for Computing and Communication
From: users-bounces@open-mpi.org [mailto:users-bounces@open-mpi.org] On Behalf Of Mohamad Ali Rostami
Sent: Wednesday, June 27, 2012 9:36 AM
To: Jeff Squyres
Cc: Open MPI Users
Subject: Re: [OMPI users] MPI Problem
Something strange,
By adding all the libraries which I found from mpif90/mpif77 --showme,
Fortran 77 version worked finally,
but Fortran 90 version still has the problem.
Error: There is no specific subroutine for the generic 'mpi_init' at (1)
any idea??

From: Jeff Squyres <jsquyres@cisco.com>
To: Mohamad Ali Rostami <ma.rostami@yahoo.com>
Cc: Open MPI Users <users@open-mpi.org>
Sent: Monday, June 25, 2012 10:22 PM
Subject: Re: [OMPI users] MPI Problem

On Jun 25, 2012, at 3:59 PM, Mohamad Ali Rostami wrote:

> >    mpif90 my_application.f90 -o my_application
> Yes, as I told you out of make file, it works.
> The problem is something strange in the make file.

I'm sorry; I must have mis-parsed your issue, then.  So just to make sure I understand:

shell$ mpif90 my_application.f90 -o my_application

Works fine, but:

shell$ make
...something that eventually invokes "mpif90 my_application.f90 -o my_application"

doesn't work.  Right?

If you're invoking the exact same command in both cases (interactive shell and makefile), the *usual* cause of this kind of problem is that the "mpif90" in your Makefile is picking up a different mpif90 than the one that is picked up by your shell.  Meaning: your PATH has been reset in the sub-process where "make" is executed, and so when make forks off "mpif90", it finds a different one than the one you execute interactively in the shell.

Check what your path is and/or exactly which mpif90 is getting invoked by your Makefile.

Jeff Squyres
For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/