Extensive Fortran support: parallel programming with coarrays and OpenMP
The NAG Fortran Compiler provides significant support for Fortran 2018 (atomic operations, events and tasks, plus other smaller features), almost all Fortran 2008, complete coverage of Fortran 2003, and all OpenMP 3.1. All platforms include supporting tools for software development: source file polishers, dependency generator for module and include files, call-graph generator, interface builder and a precision unifier.
Available on Linux, Windows and macOS, including Apple Silicon Macs. If you prefer using an IDE on Windows or Apple Mac, we recommend using the NAG Fortran Builder.

Latest functionality
- Parallel execution of coarray programs on shared-memory machines;
- Half precision floating-point conforming to the IEEE arithmetic standard, including full support for all exceptions and rounding modes;
- Submodules, a Fortran 2008 feature for breaking large modules into separately-compilable files;
- Teams, a Fortran 2018 coarray feature for structuring parallel execution;
- Events, a Fortran 2018 coarray feature for lightweight single-sided synchronisation;
- Atomic operations, a Fortran 2018 coarray feature for updating atomic variables without synchronisation.
"The NAG Compiler is often my best tool when debugging complex Fortran code. One of my favourite sets of compiler flags is -g -O0 -C=all -mtrace -gline -ieee=stop. The excellent memory tracing and array bound checks, in combination with the analysis of floating point arithmetic, e.g. division by zero or floating point overflow, and reliable tracebacks to the line of code where an issue occurs, makes my life much easier. I love the NAG Compiler for its efficiency in finding sources of errors, verifying implementations, and assuring excellent code quality."
Judith Rommel, Researcher, University of Cambridge
Release 7.0 Documentation
Release Information
Compiler Documentation
Modules
- f90_gc
- f90_iostat
- f90_kind
- f90_preconn_io
- f90_stat
- f90_unix
- f90_unix_dir
- f90_unix_dirent
- f90_unix_env
- f90_unix_errno
- f90_unix_file
- f90_unix_io
- f90_unix_proc
- ieee_arithmetic
- ieee_exceptions
- ieee_features
- iso_c_binding
- iso_fortran_env