Fortran Compiler Installation Instructions for OS X

The Mac OS X operating system is a variant of unix (called Darwin, which is a derivative of BSD unix). It is a versatile computing platform suitable both for computational chemistry calculations and for developing and compiling programs.

Although scientific programs use a variety of languages (basic, pascal, c, java, perl, python, ...), a substantial base of scientific code is written in fortran. Most (though not all) computational engines supported by WebMO are written in fortran. This resource concentrates on fortran compilers and the tools needed to support them.

While integrated development environments (IDE's) are useful in supporting program development, this resource concentrates on the command line interface (CLI) using the Terminal application that is supplied with OS X.

The procedures discussed on this page have been designed for Mac OS X 10.5.

SOFTWARE DEVELOPMENT UTILITIES AND c COMPILER

Command line program development often uses unix utilities (cvs, make, ranlib, ...) when developing and compiling a project. These utilities, together with the c compiler for OS X, are available as part of the Xcode Tools that come with OS X. However, they are not installed by default.

  1. Insert Mac OS X Installation DVD. Navigate to the Optional Installs: Xcode Tools folder.
  2. Double-click XcodeTools.mpkg. Follow the prompts, but at Installation Type, click the Customize button.
  3. Uncheck all the components and check only Unix Development Support. In particular, Developer Tools Essentials should be unchecked (saving you 2.5GB of disk space)!
  4. Provide your password for the installation will proceed.
  5. Notes:
    • The latest version of Xcode Tools can be obtained by registering for a free ADC membership and then downloading the latest version of Xcode from Apple (caution: it is > 1GB!).
    • Xcode can be uninstalled by running
      $ sudo /Developer/Library/uninstall-devtools
      as described in the Xcode Tools Uninstaller

g77 COMPILER

g77 is the gnu fortran77 compiler. It was last produced with gnu compiler collection (gcc) 3.4, and has since been supplanted with gfortran which supports fortran95. Because of the free-cost and high quality of the gnu copmpilers, a significant amount of software has been developed for and compiled with the g77 compiler.

A tar file of the final realease of g77 compiled for OS X exists at High Performance Computing for Mac OS X.

  1. Download g77-intel-bin.tar.gz (Intel Mac only) or g77-bin.tar.gz (PowerPC only)
  2. If your browser did not automatically unzip the file, then
    $ gunzip g77-bin-intel.tar.gz
  3. Install the distribution
    $ sudo tar -xvf g77-bin.tar -C /
    which puts everything in /usr/local
  4. Notes:
    • No uninstall script exists, so the install files need to be listed from the tar file and manually deleted. The following command automates the process of deleting all installed files and empty directories:
      $ tar -tf g77-bin.tar | sort -r | (cd /; xargs -p -n 1 rm -d)
      You may wish to replace the "-p" switch with "-t" so that you are not prompted to delete each file.
    • G77 documentation is available at GCC Online Documentation

gfortran COMPILER

gfortran is the new gnu fortran compiler, which attempts to follow the fortran95 standard. As such, it should be backward compatible with fortran77 and fortran90. It also promises to attempt following future fortran standards, such as fortran2003. gfortran replaces the gnu g77 compiler and is included with gnu compiler collection (gcc) 4.0 and higher.

Although Apple XCode Tools includes gcc 4.X, it is not a complete implementation and lacks gfortran. However, various implementations of gfortran have been compiled and are available at GCC Wiki GFortranBinaries, Tools - R (and Fortran) for Mac OS X, or High Performance Computing for Mac OS X. These implementations vary by version, platform supported, and integration with XCode Tools. Important: Install only one implementation of gfortran, as each version would overwrite portions of the others!

f2c TRANSLATOR / f77 COMPILER f2c is a fortran77-to-c source code translator. Because f2c is written in c and its ouput is c, both of which can be compiled natively on unix operating systems, f2c offers a very transportable compiler solution for compiling fortran programs. f2c also offers a means of converting large fortran libraries, such as LAPACK, into c. f2c is still actively maintained and is available at http://www.netlib.org/f2c/.

f77 was the first complete fortran77 compiler and was written in c. The original f77 program is no longer available for current computer architectures. However, f2c is based on the original f77 program, and the f2c distribution contains a f77 wrapper script that combines the f2c translation and c compilation steps. The f77 script also supports many command line options commonly associated with fortran compilers. Since the f77 script calls f2c, which in turn is based upon the original f77 program, the f77 script within the f2c distribution represents the most current implementation of the original f77 program.

  1. Download the installation script install_f2c_osx.csh which is
    #! /bin/csh
    setenv INSTALL /usr/local
    curl "http://netlib.sandia.gov/cgi-bin/netlib/netlibfiles.tar?filename=netlib/f2c" -o "f2c.tar"
    tar -xvf f2c.tar
    gunzip -rf f2c/*
    cd f2c
    mkdir libf2c
    mv libf2c.zip libf2c
    cd libf2c
    unzip libf2c.zip
    cp makefile.u Makefile
    make
    cp f2c.h $INSTALL/include
    cp libf2c.a $INSTALL/lib
    cd ../src
    cp makefile.u Makefile
    make
    cp f2c $INSTALL/bin
    cd ..
    mkdir -p $INSTALL/share/man/man1
    cp f2c.1t $INSTALL/share/man/man1
    cp fc $INSTALL/bin/f77
    chmod +x $INSTALL/bin/f77
    cd ..
    rm -rf f2c
    echo "==================SUMMARY=================="
    echo $0 " has built and installed:"
    find $INSTALL -name '*f2c*' -mmin -5
    find $INSTALL -name '*f77*' -mmin -5
    
  2. Run installation script
    $ chmod +x install_f2c_osx.csh
    $ sudo ./install_f2c_osx.csh
    which will produce the following files:
    /usr/local/bin/f2c
    /usr/local/include/f2c.h
    /usr/local/lib/libf2c.a
    /usr/local/man/man1/f2c.1t
    /usr/local/bin/f77
  3. Translate, compile, link, and run a program
    $ f2c hello.f
    $ gcc -c hello.c
    $ gcc -o hello hello.o -lf2c -lm
    $ ./hello
    Or combine the first three steps into a single command
    $ f77 -o hello hello.f
  4. To uninstall f2c, manually delete the five files produced above
RESOURCES Free Fortran Compilers
GFortranBinaries - GCC Wiki
Tools - R (and Fortran) for Mac OS X
High Performance Computing for Mac OS X
GNU Fortran
FINK: GNU Compiler Collection Version 4.3 (includes gfortran)
The G95 Project
f2c
Commercial Fortran Compilers
Intel Fortran Compiler for OS X
IBM XL Fortran Compiler for Macintosh OS X
Absoft Fortran for OS X
PGI Fortran Workstation
NAG Fortran Compiler
Fortran Resources
Programming on Mac OS X
Fortran Tools and Libraries
Open Directory - Computers: Programming: Languages: Fortran
Help for Fortran and Fortran90 Programming
Fortran Syntax
Fortran Syntax
Fortran 90 for the Fortran 77 Programmer
Summary of Fortran 95 Language
A Summary of Fortran
Fortran 90 Notes
The GNU Fortran Compiler