Nov 03, 2018 gfortran for macOS. The goal of this repository is to host GNU Fortran packages for macOS. These are simple installers, that will install the GCC compilers (including gfortran) in /usr/local/gfortran. Follow this link to download!
First let me say I’m not a big Fortran user but any blog posts about Fortran always seem to be very popular, and I do get asked regularly about how to compile Fortran applications.
If you have followed the instructions on Cheminformatics on a Mac you already have Xcode, Command Line tools and gfortran installed using Homebrew. Alternatively you can install GCC 8.3 (auto-vectorizing gcc with OpenMP) which includes gfortran (free, open source, GNU Fortran 95 compiler), gcc (GNU C) and g++ (GNU C++) compilers that can perform auto-vectorization (i.e. modify code to take advantage of AltiVec/SSE, automatically) and other sophisticated optimizations like OpenMP. There are detailed instructions here, last updated April 2019 (Mojave).
Portland group also has a commercial fortran compiler as part of their offerings (PGI). Details of compatibility with the latest versions of mac OSX are available here.
The newest update to PGI Fortran, C and C++ compilers & tools for scientists and engineers. Includes Volta support, using CUDA Unified Memory with OpenACC, Open 4.5 CPU support, C++14 lambda and capture support within OpenACC and…. On Intel Haswell CPUs with OpenMP, PGI delivers multicore performance more than 50% faster than the latest GCC compilers. That’s like buying a cluster with 50% more compute nodes. PGI compilers deliver world-class multicore CPU performance and accelerator programming features that can dramatically increase the performance of applications on GPU accelerators. New features include V100 Tensor Core support, full C++17 language support, OpenACC printf(), PCAST directives, LLVM 7.0, Turing support.
There is also a free version of the PGI compiler released April 30, 2019
Absoft Pro Fortran 2019 for MacOSX.
Fully compatible with macOS Mojave, Pro Fortran builds faster code with exclusive Dynamic AP load balancing, SMP analysis, and advanced optimization. The AbsoftTools integrated development environment speeds program development and maintenance. Complete command line development support is also provided. The OS X Fortran compiler supports a full range of project targets including command line programs and GUI based applications. It provides a complete 64 and 32 bit OS X Fortran compiler solution and supports mixed language development by interfacing with Apple’s Xcode C/C++ compile
Pro Fortran for macOS System Requirements
- Intel CPU based system – multi-core suggested for best performance
- macOS Sierra (10.12) through macOS Mojave (10.14)
- OS X Snow Leopard (10.6) through OS X El Capitan (10.11)
- 2 GB RAM – 4 GB recommended for best performance
- 1 GB free disk space for complete installation
Arguably the best fortran compiler for Intel macs are the Intel compilers ifort.
The Intel® Fortran Compiler builds high-performance applications by generating optimized code for Intel® Xeon® Scalable processors and Intel® Core™ processors. Its features allow you to: Boost Single Instruction Multiple Data (SIMD) vectorization and threading capabilities (including for Intel® Advanced Vector Extensions 512 instructions) using the latest OpenMP* parallel programming modelTake advantage of more cores and increased vector register width available in Intel® Xeon® processorsComply with open standards such as Fortran and OpenMPWork with a familiar set of tools on your preferred platform: Windows, Linux, or macOS*
They can build pretty much any fortran code including very old fortran (as far back as fortran 66) and support the latest fortran standards. And in many people’s experience produce the fastest runtime executables. They also integrate directly into Xcode and tend to be the most up to date in terms of compatibility with the apple dev tools. They are also link compatible with both gcc and clang. ifort also includes a fortran version of their MLK library.
They provide redistribute libraries for dynamically linked binaries, but they also support static linking, so in either case binaries can be distributed to people without the compiler installed.They aren't free on Mac (they are free on Linux), but the academic price is relatively inexpensive. Additionally they have a C/C++ compiler suite, but the performance gain over clang is no longer there. They are better than gcc in terms of codgen, however. So if you aren't using MLK there may be no benefit.
NAG Fortran Compiler.
The NAG Fortran Compiler is robust, highly tested, and valued by developers all over the globe for its checking capabilities and detailed error reporting. The NAG Fortran Compiler is available on Linux, Microsoft Windows and Mac OS X. The latest release (6.2) has extensive support for both modern and legacy Fortran features, and also supports parallel programming with OpenMP.
Given the move towards parallel processing it is useful to note that most of the compilers support OpenMP, OpenMP is a specification for a set of compiler directives, library routines, and environment variables that can be used to specify high-level parallelism in Fortran and C/C++ programs.
Compiling Fortran applications on a Mac
If you have Homebrew installed then the easiest way to install gfortran is as part of gcc. I’ve written a page of instructions for setting up a Mac using Homebrew here.
We can check gfortran is installed using, in the Terminal type
and the location
which should be an alias to '/usr/local/Cellar/gcc/4.8.3/bin/gfortran'
An Example
Critic2: A program for real-space analysis of quantum chemical interactions in solids DOI
Download critic2 from: http://gatsby.ucmerced.edu/downloads/critic2/critic2-1.0.tar.gz
Once downloaded:
This compiles and installs:
- critic2, basin2off, off2off, charges.sh executables to /usr/local/bin
- data files to /usr/local/share/critic2
- help files to /usr/local/share/doc/critic2
A couple of Fortran experts have contacted me and suggested I include these flags that are often very useful for developers.
-static-libgcc : includes all necessary system routines in the binary and thus avoids error messages at runtime when some library is missing on the user computer
-mmacosx-version-min=10.1 : generates binaries able to work under several os x versions
-fno-underscoring : supresses the trailing undersore for names of functions and subroutines (but then you must take care about conflicting names)
Jupyter and Fortran
A demonstration of how to use Python, Julia, Fortran and R cooperatively to analyze data, in the same process
More information in this lecture, Project Jupyter: Architecture and Evolution of an Open Platform for Modern Data Science
Useful Fortran Programs
ABINIT is a software suite to calculate the optical, mechanical, vibrational, and other observable properties of materials. Starting from the quantum equations of density functional theory, you can build up to advanced applications with perturbation theories based on DFT, and many-body Green's functions (GW and DMFT) . Compilation/Installation notes are here.
BigDFT a DFT massively parallel electronic structure code (GPL license) using a wavelet basis set. Wavelets form a real space basis set distributed on an adaptive mesh (two levels of resolution in our implementation). GTH or HGH pseudopotentials are used to remove the core electrons. Thanks to our Poisson solver based on a Green function formalism, periodic systems, surfaces and isolated systems can be simulated with the proper boundary conditions. Source code.
Critic2 is a program for the topological analysis of real-space scalar fields in periodic systems
CP2K a quantum chemistry and solid state physics software package that can perform atomistic simulations of solid state, liquid, molecular, periodic, material, crystal, and biological systems.. How to compile on a Mac
DALTON two powerful molecular electronic structure programs, Dalton and lsDalton. Together, the two programs provide an extensive functionality for the calculations of molecular properties at the HF, DFT, MCSCF, and CC levels of theory. Many of these properties are ONLY available in the DALTON2013 suite.
Dacapo is a total energy program based on density functional theory. It uses a plane wave basis for the valence electronic states and describes the core-electron interactions with Vanderbilt ultrasoft pseudo-potentials. Instructions for compiling on Intel Mac
dftd4 is regularly compiled on MacOSX https://travis-ci.org/dftd4/dftd4. A Generally Applicable Atomic-Charge Dependent London Dispersion Correction DOI.
GAMESS General ab-initio quantum chemistry package.
HORTON HORTON is a Helpful Open-source Research TOol for N-fermion systems. Compile and install under MacOSX
Postg is a program that implements the calculation of the dispersion energy and related quantities using the exchange-hole dipole moment model.
Quantum Expresso is an integrated suite of Open-Source computer codes for electronic-structure calculations and materials modeling at the nanoscale. It is based on density-functional theory, plane waves, and pseudopotentials
Illustrate is a small Fortran program for creating non-photorealistic illustrations of molecules, with cartoony colors and outlines, and soft ambient shadows. It is used to create the RCSB Molecule of the month.
Molecular simulation packages from the Mezei lab
Molpro a complete system of ab initio programs for molecular electronic structure calculations
NWChem aims to provide its users with computational chemistry tools that are scalable both in their ability to treat large scientific computational chemistry problems efficiently, and in their use of available parallel computing resources from high-performance parallel supercomputers to conventional workstation clusters
SIESTA is both a method and its computer program implementation, to perform efficient electronic structure calculations and ab initio molecular dynamics simulations of molecules and solids.
TINKER a general package for molecular mechanics and dynamics.
Photran is an IDE and refactoring tool for Fortran based on Eclipse
Useful Resources
Fortran Standard Library, International Fortran Standards, Fortran Proposals This repository contains proposals for the Fortran Standard Committee in the Issues section. The idea for this repository is to act as a public facing discussion tool to collaborate with the user community to gather proposals for the Fortran language and systematically track all discussions for each proposal
Fortran Course run at ETH
Fortran course run by NAG
Fortran 90 Tutorial from Stanford from 1998
CLFORTRAN – Pure Fortran Interface to OpenCL
FTranProjectBuilder Mac's only native Fortran programming environment (IDE)
More details in this video
Simply Fortran includes the GNU Fortran compiler, an advanced development environment including project management, and an integrated debugger for fast and easy installation, updated August 2019
HPC Mac OSX High performance computing on a Mac
gXXforrtran is available on GitHub This package provides a “pgf77” script that emulates the Portland Group’s PGI fortran 77 compiler, instead using the Free Software Foundation’s GNU gfortran compiler instead. This emulation is sufficient to allow packages such as Gaussian03, that would otherwise require a commercial compiler, to be built using open source tools.
CUDA Fortran for Scientists and Engineers shows how high-performance application developers can leverage the power of GPUs using Fortran
Sourcery Institute a variety of resources for Fortran programmers, Sourcery institute tap for Homebrew formulae not in homebrew/homebrew-core, a Coarray Fortran Jupyter notebook kernel, forks of flang and gcc and OpenCoarrays a transport layer for coarray Fortran compilers.
A parallel Fortran framework for neural networks and deep learning.
f90wrap is a tool to automatically generate Python extension modules which interface to Fortran libraries that makes use of derived types. It builds on the capabilities of the popular f2py utility by generating a simpler Fortran 90 interface to the original Fortran code which is then suitable for wrapping with f2py, together with a higher-level Pythonic wrapper that makes the existance of an additional layer transparent to the final user. f90wrap has been used to wrap a number of large software packages of relevance to the condensed matter physics community, including the QUIP molecular dynamics code and the CASTEP density functional theory code.
The full paper is here https://iopscience.iop.org/article/10.1088/1361-648X/ab82d2
Install using PIP
Source code is on GitHub https://github.com/jameskermode/f90wrap.
Updated 5 May 2020
macOS Big Sur takes the most advanced operating system in the world to a whole new level of power and beauty, making your apps look better than ever on an all-new interface. New widget features and the new widget gallery help you deliver more value to your users. Adding intelligence to your apps with machine learning is even simpler and more extensive with new tools, models, training capabilities, and APIs. You can create more powerful Mac versions of your iPad apps with Mac Catalyst. And you can now easily bring your extensions to Safari — and to the App Store.
All-new Interface
macOS Big Sur brings a new design that’s been finely tuned for the powerful features that make a Mac a Mac. Core features, such as the menu bar and Dock, take advantage of the large Mac display, with translucent backings and spacious pull-down menus. The new Control Center, designed just for Mac, provides quick access to controls while keeping the menu bar clutter-free. Notification Center puts recent notifications and powerful new widgets together in a single view for at-a-glance information as you work. And a streamlined new design for apps features full-height sidebars and integrated toolbar buttons.
Widgets
Easily build widgets using the WidgetKit framework and the new widget API for SwiftUI. Widgets now come in multiple sizes, and users can visit the new widget gallery to search, preview sizes, and add them to Notification Center to access important details at a glance.
Safari Extensions
With support for the popular WebExtension API, it’s even easier to bring powerful extensions to Safari. Xcode 12 even includes a porting tool to streamline the process.
The new Extensions category on the Mac App Store showcases Safari extensions, with editorial spotlights and top charts to help users discover and download great extensions from the developer community.
Machine Learning
With macOS Big Sur, creating apps that leverage the power of machine learning is even easier and more extensive with additional tools in Core ML for model deployment, new models and training capabilities in Create ML, more APIs for vision and natural language, and improved resources for training on Mac and converting models to Core ML format.
Mac Catalyst
Create even more powerful Mac versions of your iPad apps. Apps built with Mac Catalyst now take on the new look of macOS Big Sur and help you better define the look and behavior of your apps. You can choose to turn off automatic scaling of iPad controls and layout, allowing you to precisely place every pixel on the screen. Provide full control of your app using just the keyboard, take advantage of the updated Photos picker, access more iOS frameworks, and more.
Fortran Compiler Mac
User privacy on the App Store.
Later this year, the Mac App Store will help users understand apps’ privacy practices. You’ll need to enter your privacy practice details into App Store Connect for display on your product page.
Universal App Quick Start Program
Get your apps ready for Apple Silicon Macs. Create next-generation Universal apps that take full advantage of the capabilities the new architecture has to offer. Get all the tools, resources, support, and even access to prototype hardware you’ll need. You can also watch a collection of videos from WWDC20 to help you get started.
Install Gfortran On Mac
Tools and resources
Mac Os Install Gfortran
Use Xcode 12 beta and these resources to build apps for macOS Big Sur.