A:
You may have a system on which C and Fortran compilers are incompatible (for
example, using gcc and the vendor's Fortran compiler). If you do not
plan to use Fortran, the easiest fix is to rebuild with the -nof77
option to configure.
You should also look into making your C compiler compatible with your Fortran compiler. Because this is very dependent on the specific system and compilers that you are using, you may need to find a local expert who can help you.
The easiest but ugliest possibility is use f2c to convert Fortran to C, then use the C compiler to compile everything. If you take this route, remember that every Fortran routine has to be compiled using f2c and the C compiler.
Alternatively, you can use various options (check the man pages for your compilers) to see what libraries that add when they link. Add those libraries to the link line for the other compiler. If you find a workable set of libraries, edit the appropriate scripts (e.g., mpicc) to include the necessary libraries. Mpich attempts to find all the libaries that you need but is not always successful.
cc -o pgm pgm.o -L/usr/local/mpich/lib/hpux/ch_p4 -lmpich -lm /bin/ld: Unsatisfied symbols: sigrelse (code) sigset (code) sighold (code) *** Error code 1
Linking: foo.o(.data+0x0): undefined reference to `pmpi_wtime_'
The mpich configure attempts to determine if pmpi_wtime and pmpi_wtick can be declared in mpif.h and removes them if there is a problem. If this happens and you use pmpi_wtime or pmpi_wtick in your program, you will need to declare them as functions returning double precision values.