We have installed the NAG Fortran compiler on Apocrita for use by researchers from the School of Economics and Finance. In this post we look at how to access the compiler, why we may want to use it, and what we have to pay special attention to.
The School of Economics and Finance has a departmental licence for the Fortran compiler from NAG. The compiler, release 6.2, is now available on Apocrita.
Using the compiler
The compiler is available through a module on the cluster:
$ module load nagfor/6.2-6227 $ nagfor -V NAG Fortran Compiler Release 6.2(Chiyoda) Build 6227 Product NPL6A62NA for x86-64 Linux Copyright 1990-2018 The Numerical Algorithms Group Ltd., Oxford, U.K.
Documentation for the compiler is available as a collection of man pages,
man nagfor for the compiler itself and
man nag_modules for
an introduction to the intrinsic modules provided by the compiler.
Further detail on the individual modules is also available as man pages,
man f90_unix, for example. The full compiler manual is also
When developing your Fortran code we recommend that you use as wide
a variety of compilers as possible. The NAG Fortran compiler in particular
has very good diagnostics for detecting violations of the Fortran standard
and other questionable practices (which may include bugs). To enable most
run-time checks use the option
-C when compiling. For even greater
The NAG Fortran compiler we have installed offers very good support for the Fortran 2003 standard and several features from Fortran 2008. However, when compiling your code developed using a different compiler you should be aware of the differences in available features.
Further, as suggested above, the NAG Fortran compiler may appear “fussy” when compiling code. Many extensions to the Fortran standard offered by other compilers may not be accepted by this compiler. Equally, although it is common to use literal constants for type kind parameters, such as in
integer(8) li real(16) x
the NAG Fortran compiler does not use this same numbering scheme by default. If you have written code like this for gfortran or ifort you may see error messages:
Error: KIND value (8) does not specify a valid representation method Error: KIND value (16) does not specify a valid representation method
It is possible to use the compile-time option
-kind=byte to use this
numbering scheme, but we strongly advise against this. With this option
it will also be necessary for all used modules to be similarly compiled.
Other compiler options may be different from those expected from using other compilers, or the behaviour of an option may be distinct: see the compiler’s documentation for details of command-line options.
For advice on porting your code to use the NAG Fortran compiler, please contact the RSE team in ITSR.
Getting access to the compiler
If you wish to use the compiler, and are in SEF, please contact us to be added to the licence group. Further, if you would like packages to be built compatible with the compiler, please complete the application form, mentioning nagfor.
Other compilers available on Apocrita
All users of Apocrita have access to the GCC, Intel and PGI compiler suites installed there. These provide C and C++ compilers in addition to Fortran compilers. Detail of using these compilers can be found on our documentation site.