Lockless Inc


mpif77 - Compiles and links MPI programs written in FORTRAN


This shell script is used to compile and link MPI programs written in FORTRAN. It performs necessary pre-processing and linking of external libraries in order to create a working MPI program. Do not use a normal FORTRAN compiler to compile MPI code as this needed extra processing will be missing.

The shell script adds a few extra options to the command line passed to the compiler. The most important of these are -fpic and -pie, which turn on position-independent code generation. This implementation of MPI loads multiple copies of the program within the same address space. In order for this to work, each copy needs to exist at a different address.

The other options to the compiler turn on threading support, and make sure that the MPI library can hook calls to pthread_create(). The extra hooking is needed so that threads can safely call function pointers referencing code in other programs within the same address space. MPI uses the %gs segment register to maintain references to thread-local variables as %fs-based references will be at differing offsets.

Finally, the shell script includes the argument that links with the MPI library. If you install the library in a non-default location, you may want to alter the LIB variable.

If you use a compiler other than gfortran, edit the F77 variable. You will want to alter the arguments to produce the same effects as those used for gfortran.


The shell script expects the normal arguments passed to the FORTRAN compiler. All arguments are passed through directly to the FORTRAN compiler with no alteration.


To compile a single file foo.f, use:
mpif77 -c foo.f

To make an executable, use:
mpif77 -o foo foo.o

Compilation and linking can be combined i.e. with two source files foo1.f and foo2.f
mpif77 foo1.f foo2.f -o foo


Copyright (C) 2012 Lockless Inc.


mpicc (1) mpicxx (1) mpiexec (1)

About Us Returns Policy Privacy Policy Send us Feedback
Company Info | Product Index | Category Index | Help | Terms of Use
Copyright © Lockless Inc All Rights Reserved.