Dear all,
I was wondering if anyone in here could help me compile a code on a Linux x86_64 system using MPI. I was able to compile and run the code for a single processor using the following compiler's options:
CC = cc
CPP = cpp -traditional
F77 = ifort
FORT_FLAGS = -r8 -O3 -convert big_endian -I$(MKLROOT)/include
LOAD_FLAGS = -r8 -O3 -convert big_endian
The problem starts when I try to compile for MPI. I've changed the options to:
CC = mpicc
CPP = cpp -traditional
F77 = mpif90
FORT_FLAGS = -r8 -O3 -convert big_endian -I$(MKLROOT)/include
LOAD_FLAGS = -r8 -O3 -convert big_endian
The compilation seems to go OK, but now I am getting the following error messages during linking
gsmini.ssib.o: In function `gsmini_':
gsmini.ssib.f:(.text+0x28): undefined reference to `mpdimset_'
gsmini.ssib.f:(.text+0x87c): undefined reference to `mpgf2p_'
gsmini.ssib.f:(.text+0xe6d): undefined reference to `mpgf2p_'
gsmini.ssib.f:(.text+0xf52): undefined reference to `mpgf2p_'
gsmini.ssib.f:(.text+0x1040): undefined reference to `mpgf2p_'
gsmini.ssib.f:(.text+0x112e): undefined reference to `mpgf2p_'
output.ssib.f:(.text+0x183): undefined reference to `mpabort_'
output.ssib.f:(.text+0x381): undefined reference to `mpgp2f_'
output.ssib.f:(.text+0x462): undefined reference to `mpgp2f_'
output.ssib.f:(.text+0x543): undefined reference to `mpgp2f_'
...
What am I missing? Shouldn't the mpif90 wrapper take care of all MPI libraries and options?
This is my first time working on a Linux system. Any suggestion on how to solve this problem will be appreciated.
Thank you for the help.
FerDS