Fortran Resources
Fortran Resources
Fortran Resources
September 2, 2019
1 The original basis for this document was Mike Metcalf’s Fortran Information File. The
next input came from people on comp-fortran-90. Details of how to subscribe or browse this
list can be found in this document. If you have any corrections, additions, suggestions etc
to make please contact us and we will endeavor to include your comments in later versions.
Thanks to all the people who have contributed.
2
Revision history
The most recent version can be found at
https://www.fortranplus.co.uk/fortran-information/
and the files section of the comp-fortran-90 list.
https://www.jiscmail.ac.uk/cgi-bin/webadmin?A0=comp-fortran-90
• September 2019. Spell checked the document using the TeXnicCenter spelling
tool. Updated the Fortran 2003 compiler conformance table with information
from Arm and NEC.
• August 2019. Updated the history section to have the publication dates of all
ISO Fortran standards. Updated the Fortran 2003 compiler conformance table.
Added ISBNs to several books and added initials to several of the authors.
Updated the compilers section.
• June 2019. Added ISBNs to several of the books. Added links to the ACM,
IEEE and British Library in the on line resources chapter.
• January 2019. Split the chapter that had Fortran historic information and
other material into a Fortran history chapter and other links chapter. Added
additional historic material.
• December 2018. Added 2 new books that were published in 2018, and 3 new
books due to be published in 2019.
• October 2018. Added an entry for Flang. Added details of PGI Community
Edition under free compilers. Added details of Flang under free compilers.
Updated the Oracle entry. Corrected compiler conformance details for some
of the compilers. Moved Pathscale to no longer available. Corrected an entry
in the book section. Added details of a new book. Added details of a new
course from Sorcery Inc, Writing Fortran 2018 Today: Object-Oriented Parallel
Programming. Made typesetting changes due to changes with Adobe Acrobat
pdf format.
• April 2018, added an entry in the compiler section for SimplyFortran. Updated
the compiler section to have summary details of standard conformance. Added
a new book and added 2018 to the book title section. Major update to the
J3 and WG5 entries in the standard section to bring up to date with recent
changes.
• April 2018, updated the Nag entry to have details of the 6.2 release. Add a
compiler entry for Arm. Added 2 new books. Updated the plusFORT entry.
3
• March 2017, updated the Oracle entry to have details of the 12.6 beta.
• December 2016, updated the gfortran entry to add details about using the
Windows subsystem for Linux option. Thanks to Paul Richard Thomas for the
post to comp.lang.fortran about this.
• June 2016, updated the Pathscale compiler entry and added details of their
Dogfood IDE in the IDE section
• May 2016, added entries for Nag Fortran Builder for the Windows and Apple
Mac operating systems.
• May 2016, added some entries to the Fortran History section, in Other Web
Links.
• April 2016, Updated the Nag and Oracle compiler entries. Added a new book.
Added a new course under the NAG entry.
• July 2015. Updated the Cray compiler entry - Thanks to Bill Long for pro-
viding up to date information. Changed various entries in the course section.
Most notable were adding an entry for Sourcery Inc and the Archer service
at Edinburgh, and deleting the Hector entry. Added Doctran (cross-platform
documentation generation tool for the Fortran) to the Tools section.
• June 2015. Added coverage of free compilers, compilers free for personal use, and
Intel’s free compiler offer for educational users. Added Chivers and Sleightholme
third edition, due 14 August 2015
• 9 March 2015. Added an entry for coarray.org in the Coarray section of the
parallel programming entry. Editorial changes: page size; long urls split over
two lines; minor setting corrections.
• 30 January 2015. Added an entry for Microsoft Visual Studio 2013 Commu-
nity Edition. This free version is equivalent to Microsoft Visual Studio 2013
Professional. Updated the Nag entry in the Tools section to provide details of
the capability of the Nag compiler. The compiler can now produce call graphs,
do a dependency analysis, produce interface modules and pretty print or polish
Fortran code.
4
• 3 September 2014, Added entries for two ides, Code::Blocks and geany. The
information came from an interchange on linkedin.
• 10 February 2014, Added an errata entry for the The Fortran 2003 Handbook
and an index entry for the same book. Thanks to Dick Hendrickson and John
Harper for posting to comp-fortran-90 about these items.
• February 2014, Checked various entries and web links. Missed some urls with
leading and trailing spaces in an earlier update, and these have now been fixed.
Corrected some spelling.
• November 29 2013. Added one new book entry and updated an existing book
entry.
• August 6 2013 Minor changes to the IDE chapter. Also corrected urls that have
leading spaces after the opening brace.
Contents
1 Books 13
1.1 Fortran 2003, 2008 and 2018 - English . . . . . . . . . . . . . . . . . 14
1.2 Fortran 95 - English . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3 Fortran 90 - English . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.4 English books on related topics . . . . . . . . . . . . . . . . . . . . . 18
1.5 Chinese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.6 Dutch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.7 Finnish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.8 French . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.9 German . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.10 Italian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.11 Japanese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.12 Russian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.13 Swedish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2 Compilers 23
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.1.1 Free compilers for general use . . . . . . . . . . . . . . . . . . 24
2.1.2 Free for personal use . . . . . . . . . . . . . . . . . . . . . . . 25
2.1.3 Free for educational use . . . . . . . . . . . . . . . . . . . . . 25
2.2 Standards conformance . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.1 Fortran 90 and 95 conformance . . . . . . . . . . . . . . . . . 26
2.2.2 Fortran 2003 conformance . . . . . . . . . . . . . . . . . . . . 26
2.2.3 Fortran 2008 conformance . . . . . . . . . . . . . . . . . . . . 27
2.3 Absoft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.4 Arm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.5 Cray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.6 Flang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.7 Fortran Company . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.8 Fujitsu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.9 Gnu Fortran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.10 g95 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.11 Hewlett Packard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.12 IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.13 Intel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5
6 CONTENTS
2.14 Lahey/Fujitsu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.15 Lahey/GNU Shasta Compiler . . . . . . . . . . . . . . . . . . . . . . 33
2.16 NAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.17 NEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.18 OpenUH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.19 Oracle - originally Sun . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.19.1 Mixed-Language Development . . . . . . . . . . . . . . . . . . 34
2.19.2 Application Analytics . . . . . . . . . . . . . . . . . . . . . . . 35
2.19.3 IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.20 PGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.21 Silverfrost, nee Salford Software . . . . . . . . . . . . . . . . . . . . . 35
2.22 SimplyFortran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.23 Sun - see Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.24 No longer available . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.24.1 Apogee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.24.2 Compaq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.24.3 EPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.24.4 NA Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.24.5 Nocturnal Aviation Software . . . . . . . . . . . . . . . . . . . 37
2.24.6 PathScale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.24.7 SGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3 Debuggers 39
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2 Absoft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.3 DDT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.4 gnu gdb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.5 Intel IDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.6 LLDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.7 Microsoft Visual Studio Debugger . . . . . . . . . . . . . . . . . . . . 41
3.8 totalview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.9 Valgrind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.10 WinDbg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5 Commercial Courses 51
5.1 Archer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.2 Ian Chivers and Jane Sleightholme . . . . . . . . . . . . . . . . . . . 52
5.3 Cranfield University . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.4 The Fortran Company . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.5 Lahey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
8 CONTENTS
7.12.1 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 64
7.12.2 Worked examples . . . . . . . . . . . . . . . . . . . . . . . . . 64
7.13 Microsoft Windows graphics programming . . . . . . . . . . . . . . . 64
7.13.1 Lahey/Fujitsu . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
7.13.2 Salford Software . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8 Parallel Programming 67
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
8.1.1 Books . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
8.2 Automatic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
8.3 Coarray Fortran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
8.3.1 opencoarrays.org . . . . . . . . . . . . . . . . . . . . . . . . . 69
8.4 HPF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
8.5 MPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
8.5.1 Books . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
8.5.2 Courses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
8.5.3 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
8.6 OpenMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
8.6.1 Books . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.6.2 Courses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.6.3 Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.6.4 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.7 Posix Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.8 Notes on the table below . . . . . . . . . . . . . . . . . . . . . . . . . 72
8.9 Table of compilers and supported parallel options . . . . . . . . . . . 74
8.10 Parallelisation Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
8.10.1 Crescent Bay Software . . . . . . . . . . . . . . . . . . . . . . 75
8.10.2 Parallel Software Products . . . . . . . . . . . . . . . . . . . . 75
8.11 Compiler and MPI combinations . . . . . . . . . . . . . . . . . . . . . 76
8.11.1 IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
8.11.2 Apple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
8.11.3 Nag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
8.11.4 PGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
8.11.5 Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
8.11.6 Intel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
9.9 photran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
9.10 plusFORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
9.11 VAST/77to90 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
9.12 Visustin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
12 Fortran History 93
12.1 Fortran up to the first standard . . . . . . . . . . . . . . . . . . . . . 93
12.1.1 John Backus, 1957 . . . . . . . . . . . . . . . . . . . . . . . . 93
12.1.2 Two early text books on Fortran II . . . . . . . . . . . . . . . 93
12.1.3 History of FORTRAN and FORTRAN II . . . . . . . . . . . . 93
12.1.4 A brief history of FORTRAN-Fortran . . . . . . . . . . . . . . 94
12.1.5 Annals of the History of Computing, Volume 6, Number 1,
January - March, 1984 . . . . . . . . . . . . . . . . . . . . . . 94
CONTENTS 11
Books
• Version 1.21, August 2019; Added ISBN’s to several books and corrected several
entries using the British Library catalogue and Abebooks.
• Version 1.20, June 2019; Added ISBN’s to several books and corrected several
entries using the British Library catalogue.
• Version 1.19, March 2019; Added a section on the early history of Fortran.
• Version 1.18, December 2018; Added details of several new books, posted to
comp.lang.fortran by beliavsky - thanks for the heads up on these books.
• version 1.17, October 2018; Added details of Chivers and Sleightholme fourth
edition and corrected Chivers and Sleightholme, third edition entry.
• version 1.16, April 2018; Added details of the new MRC book.
• Version 1.15, April 2018; Added the Curcic book; Updated the Chapman entry.
• Version 1.14, April 2016; Added the latest Walt Brainerd book.
• Version 1.13, June 2015; Added the latest Chivers and Sleightholme book.
• Version 1.12, 10 February 2014; Updated the Fortran 2003 Handbook entry.
• Version 1.10, November 2013;Added an entry for the Hanson and Hopkins book.
Also updated the entry on Adams, Brainerd et al, which is now available from
Springer as an ebook in PDF format.
• Version 1.9, May 2013; An errata list for Modern Fortran Explained, Metcalf,
Reid and Cohen is now available.
• Version 1.8, January 2013; Added Section 1.1, Metcalf, Reid, Cohen; Thanks
to Anton Shterenlikht for pointing out this omission!
13
14 CHAPTER 1. BOOKS
• Version 1.7, August 2012; Added Section 1.1, Chivers; Added Section 1.1,
Markus;
• Version 1.5, October 2011;Added Section 1.1 Chivers; Added Section 1.1 Cler-
man;Added Section 1.1 Gnu Fortran; Added Section 1.1 Rouson;Added Section
1.2 Lakshmivarahan;
• Version 1.4, July 2010;Added Section 1.1 Brainerd; Added Section 1.1 McCor-
mmack;Added Section 1.1 Ray; Added Section 1.2 Rajaram;Added Section 1.3
Barlow et al; Added Section 1.4 Chandra et al;Added Section 1.4 Chapman et
al;
• Version 1.3, June 2009;Removed invalid web address in Morgan and Schonfelder
entry; Corrected spelling in Chinese entry;
• Version 1.2, September 2008;Added Section 1.1, Adams et al; Added Section
1.10, Ciaburro;
• Version 1.1, September 2007;Added Section 1.1, Chapman; Added Section 1.2,
Lemmon;
• Chapman S.J., Fortran For Scientists and Engineers, 4th edition, 2018, McGraw-
Hill.ISBN-10: 0073385891 ISBN-13: 978-0073385891
1.1. FORTRAN 2003, 2008 AND 2018 - ENGLISH 15
• Chapman S.J., Fortran 95/2003 For Scientists and Engineers, 2007, McGraw-
Hill. ISBN 978-0073191577, ISBN 0073191574
• Clerman N.S., Spector W., Modern Fortran: Style and Usage Cambridge Uni-
versity Press, 2011. ISBN-10: 052173052X ISBN-13: 978-0521730525
• Gnu Fortran Team, Using Gnu Fortran: Manual For Gcc Version 4.3.3, Cre-
ateSpace. ISBN-10: 1441412662 ISBN-13: 978-1441412669, 2009
• McCormack D., Scientific Software Development with Fortran, 2009, ISBN 978-
1-4452-5445-6
• Metcalf M., Reid J. and Cohen M., Modern Fortran Explained, second edi-
tion, Oxford University Press. 2018. ISBN 9780198811893 (hardback); ISBN
9780198811886 (paperback)
16 CHAPTER 1. BOOKS
• Metcalf M., Reid J. and Cohen M., Modern Fortran Explained, 2011, Oxford
University Press. ISBN 978-0-19-960141-7, ISBN 978-0-19-960142-4. Errata list
is available at
ftp://ftp.numerical.rl.ac.uk/pub/MRandC/edits.pdf
• Metcalf M., Reid J. and Cohen M., Fortran 95/2003 Explained, 2004, Oxford
University Press. ISBN 0-19-852693-8, ISBN 0-19-852692-X
• Ray S., A Textbook on Fortran 2003, 2009, Alpha Science International, ISBN
978-1-84265-479-8
• Rouson D., Xia J., Xu X., Scientific Software Design: The Object-Oriented
Way Cambridge University Press, 2011. ISBN-10: 0521888131 ISBN-13: 978-
0521888134
• Rouson D., Filippone S., Shende S., Modern Fortran: Tricks of the Software
Engineering Trade, Taylor and Francis, July 2019, ISBN 10: 1138051918, ISBN
13: 9781138051911
• Trapp M., chsner A., Computational Plasticity for Finite Elements: A Fortran-
Based Introduction, Springer, 2018, ISBN 978-3-319-77206-6
• Metcalf M., Reid J., Fortran 90/95 Explained, 1999 Oxford University Press.
ISBN 0-19-850558-2
• Rajaram V., Computer Programming in Fortran 90 and 95, 2004, Prentice Hall,
ISBN 978-8120311817
• Adams J.C., Brainerd W.S., Martin J.T., Smith B.T.and Wagener J.L., Fortran
90 Handbook, 1992, McGraw Hill. ISBN 0-07-000406-4.
• Brainerd W.S., Goldberg C.H., and Adams J.C., Programmers Guide to Fortran
90, 1996, Springer ISBN 0-387-94570-9.
• Brainerd, Goldberg and Adams., Programmers Guide to Fortran 90, 1994, Uni-
comp. ISBN 0-07-000248-7
• Brooks D.R., Problem solving with Fortran 90: for scientists and engineers,
1997, Springer. ISBN 0-387-98229-9.
• Chivers I.D., Sleightholme J., Introducing Fortran 90, 1995, Springer. ISBN
3-540-19940-3
• Ellis T.M.R., Philips I.R., Lahey T.M., Fortran 90 Programming, 1994, Addison
Wesley, ISBN 0-201-54446-6.
18 CHAPTER 1. BOOKS
• Hahn D.B., Fortran 90 for Scientists and Engineers, 1994, Edward Arnold ISBN
0-340-60034-9.
• Huddleston J.V., Fortran 90, 1996, Exchange Publ. Div., ISBN 0-945261-07-1.
• Metcalf M., Reid J., Fortran 90 Explained, 1990 Oxford University Press, ISBN
0-19-853772-7
• Morgan J.S.& Schonfelder J.L., Programming in Fortran 90, 1993, Alfred Waller.
ISBN 1-872474-06-3
• Nyhoff L., Leestma S., Fortran 90 for Engineers and Scientists1, 1996, Prentice
Hall, ISBN 0-13-519729-5.
• Nyhoff L., Leestma S., An introduction to Fortran 90 for Engineers and Scien-
tists, 1996, Prentice Hall, ISBN 0-13-505215-7.
• Schick W., Silverman G., Fortran 90 and Engineering Computation, 1994, John
Wiley, ISBN 0-471-58512-2.
1.5 Chinese
• Introduction to Programming with Fortran, with coverage of Fortran 90, 95,
2003 and 77. Ian Chivers and Jane Sleightholme. Posts and Telecom Press
and Springer-Verlag London. 2009. ISBN 978-7-115-21227-6. (A translation of
Introduction to Programming in Fortran).
1.6 Dutch
• Fortran 90 - W.S. Brainerd, Ch.H. Goldberg, and J.C. Adams, translated by
J.M. den Haan, Academic Service, 1991, ISBN 90 6233 722 8.
1.7 Finnish
• Fortran 90/95 - Juha Haataja, Jussi Rahola and Juha Ruokolainen. Center for
Scientific Computing (Finland), 2001, 339 pages, 3rd edition, ISBN 952-9821-
60-3. WWW version:
http://www.csc.fi/oppaat/f95/
1.8 French
• Fortran 90; Approche par la Pratique - P. Lignelet, Srie Informatique ditions,
Menton, 1993, ISBN 2-909615-01-4.
• Traitement des donnes numriques avec Fortran 90, M. Olagnon, Masson ditions,
1996, ISBN 2-225-85259-6.
1.9 German
• Fortran 90 Lehrbuch D. Rabenstein, Hanser, 1995, ISBN 3-446-18235-7.
1.10 Italian
• Titolo: Programmare con Fortran versioni 90952003 Autore: Ciaburro Giuseppe
http://www.ibs.it/code/9788882336882/ciaburro-giuseppe/programmare-con-fortran.html
More information can be found here.
1.11 Japanese
• Fortran 90 Explained - Metcalf and Reid, translated by H. Nisimura, H. Wada,
K. Nishimura, M. Takata, Kyoritsu Shuppan Co., Ltd., 1993, ISSN 0385-6984.
• Interactive Fortran 77, A Hands On Approach - I.D. Chivers and Malcom Clark.
Ellis Horwood, 1984. Keigaku Publishing Company, Tokyo.
1.12 Russian
• An Explanation of the Fortran 90 Programming Language (translation of For-
tran 90 Explained - Metcalf and Reid), translated P. Gorbounov, Mir, Moscow,
1995, ISBN 5-03-001426-8. Available also from [email protected].
1.13 Swedish
• Fortran 90 - en introduktion - Blom, Studentlitteratur, Lund, 1994, ISBN 91-
44-47881-X.
22 CHAPTER 1. BOOKS
Chapter 2
Compilers
• Version 1.16 September 2019. Updated the Arm and NEC entries in the Fortran
2003 compiler conformance table.
• Version 1.15 August 2019. Moved several compilers to the discontinued section.
Updated the Fortran 2003 compiler standard conformance data.
• Version 1.14 November 2018. Updated the Fortran 2008 compiler standard
conformance data.
• version 1.13 October 2018. Added an Flang entry. Added details of PGI Com-
munity Edition under free compilers. Added details of Flang under free com-
pilers. Updated the Oracle entry. Corrected compiler conformance details for
some of the compilers. Moved Pathscale to no longer available.
• Version 1.12, April 2018. Added an entry for SimplyFortran. Updated the
compiler section to have summary details of standard conformance.
• Version 1.11, April 2018. Updated the Nag entry. Added the Arm entry.
• Version 1.10, March 2017. Updated to have details of the Oracle 12.6 beta
version.
• Version 1.9, December 2016; Updated the gfortran entry to include details of us-
ing the Windows subsystem for Linux option. Thanks to Paul Richard Thomas
for the post to comp.lang.fortran bringing this to our attention
• Version 1.17, May 2016; Minor edits, added the Oracle 12.5 beta.
• Version 1.16, April 2016, Updated the NAG and Oracle entries.
• Version 1.14, June 2015. Added coverage of free compilers, compilers free for
personal use, and Intel’s free compiler offer for educational users.
23
24 CHAPTER 2. COMPILERS
• Version 1.13, May 2013. Added an entry for Lahey GNU Shasta compiler.
Thanks to Polyhedron Software for this information.
• Version 1.12, January 2013. Added entry for OpenUH. Minor editorial changes.
Thanks to Anton Shterenlikht for these updates and corrections.
• Version 1.11, January 2013. Added entry for Nocturnal Aviation Software.
• Version 1.10, August 2012. Updated Nag entry. 5.3 release supports OpenMP.
Also updated product availability entry.
• Version 1.8, July 2010. Updated Sun to reflect takeover by Oracle. Updated
Salford to reflect Silverfrost rebranding.
• Version 1.7, June 2009. Updated the Cray and Intel entries. Added a new
section on compilers that are no longer available. This has involved moving the
entries on Apogee, Compaq and NA Software into this section. For historical
completeness we’ve also added an entry for EPC to this section.
• Version 1.6, September 2008. Updated the NAG entry with more details of the
Fortran Builder IDE.
• Version 1.5, September 2007. Updated Absoft Entry, Compaq, Fortran Com-
pany, Fujitsu, Gnu Fortran 95, G95, IBM, Intel, Lahey/Fujitsu, NAG, NA
Software, NEC, Pathscale, PGI, Salford/Silverfrost, SGI, Sun.
2.1 Introduction
The following is a list of companies and organisations that provide Fortran compilers
that conform to the Fortran 90, 95, 2003 and 2008 standards. Fortran Forum has
a more or less standing table on compilers that support features from the 2003 and
2008 standards and TS
• g95 - G95 is a stable, production Fortran 95 compiler available for multiple cpu
architectures and operating systems. Innovations and optimizations continue to
be worked on. Parts of the F2003 and F2008 standards have been implemented
in g95.
• gfortran - Gfortran is the name of the GNU Fortran project, developing a free
Fortran 95/2003/2008 compiler for GCC, the GNU Compiler Collection.
• Oracle Developer Studio 12.6; High performance C, C++ and Fortran compilers
optimized for SPARC and x86 platforms. Provides perpetual no-cost license for
production use and the development of commercial applications.
Visit
https://www.oracle.com/technetwork/server-storage/developerstudio/overview/index.html
• Silverfrost - Silverfrost FTN95 can now be used free for personal use. It is
strictly for personal use or evaluation purposes. You can use it at home on your
own personal projects. You can use it to evaluate FTN95 with the intention
of purchasing it later. Any applications you create with it will display a ban-
ner announcing that it is the personal edition. T his product is not directly
supported but you can post questions in our forums.
Absoft Arm Cray Fujitsu gfortran IBM Intel Nag NEC Oracle PGI
Yes 12 28 69 27 50 54 82 55 52 10 33
Y Notes 1 0 0 1 2 0 0 0 0 0 1
No 35 46 0 38 12 26 0 12 18 59 35
N Notes 0 0 0 0 2 0 0 0 0 0 0
Partial 0 0 0 3 1 0 0 0 0 0 0
P Notes 0 6 0 0 3 1 0 0 0 0 1
Unknown 34 2 13 12 12 1 0 15 12 13 12
Total 82 82 82 81 82 82 82 82 82 82 82
Absoft Arm Cray Fujitsu gfortran IBM Intel Nag NEC Oracle PGI
shows that Intel is fully compliant and that Cray, Nag, IBM, NEC and gfortran
have substantial support. The information has been taken from our compiler confor-
mance tables.
2.3 Absoft
http://www.absoft.com/
Here are some details taken from the Absoft site.
Absoft’s Pro Fortran tool suite automates building extremely fast parallel code
on multi-core systems. Compiler features include: APO, IPO, PGFDO optimizers
and auto vectorization, Absoft’s exclusive Dynamic AP load balancing technology -
performance increases up to 20% on multi-core systems, SMP graphical code analyzer
and OpenMP 3.0 support, Absoft Window Environment (AWE), External Libraries
and Tools Plug-in, expanded F2003 & F2008 support and enhanced Fx3 graphical
debugger.
Available for Windows, Linux, MacOS Intel and PPC.
2.4 Arm
Visit
https://www.arm.com/products/development-tools/hpc-tools/allinea-studio/fortran-compiler
for more details.
Here are some details from their site.
We work with many Arm hardware vendors to ensure that Arm Fortran compiler
generates optimal code utilizing the salient features of the hardware, allowing you to
get best performance out-of-the-box.
Arm Fortran Compiler provides full support for Fortran 2003 and prior standards.
It also has partial support for Fortran 2008 with a plan to add more support in the
future.
Our commercial compiler is based on two community-driven projects LLVM for
overall compiler infrastructure and Flang for Fortran front end. This allows our users
28 CHAPTER 2. COMPILERS
to benefit from advances from these projects in addition to specific tuning by Arm
for our architecture.
Arm Fortran Compiler supports: Fortran 2003 and prior standards; Partial sup-
port for Fortran 2008; OpenMP 3.1; 64-bit Arm platforms including Cavium Thun-
derX2 and Qualcomm Centriq; Full support for SVE, an Arm architecture extension
suited for HPC; Leading Linux distributions including Red Hat 7.3+, SLES 12+ and
Ubuntu 16.04+.
2.5 Cray
http://www.cray.com/
Cray has a fully optimizing Fortran 2008 compiler available for Cray XE, XK, and
XC systems. The compiler supports OpenMP, OpenACC, and the enhanced features
for inter-operating with C described in TS 29113.
2.6 Flang
Flang is a Fortran compiler targeting LLVM.
https://github.com/flang-compiler/flang
Flang was announced in 2015. In 2017, the source code was released on GitHub.
Flang is a Fortran language front-end designed for integration with LLVM and
the LLVM optimizer.
Flang+LLVM is a production-quality Fortran solution designed to be co-installed
and is fully interoperable with Clang C++.
Flang single-core and OpenMP performance is now on par with GNU Fortran.
Flang has implemented Fortran 2003 and has a near full implementation of OpenMP
through version 4.5 targeting multicore CPUs.
The goals of Flang are:
• Enable multicore CPU and GPU programming with a robust and performant
implementation of OpenMP
• Create a source base that can be readily re-hosted and re-targeted to future
systems as easily as Clang and LLVM
• Create a source base in which researchers and developers can ramp up and be
productive quickly
2.7. FORTRAN COMPANY 29
2.8 Fujitsu
http://www.fujitsu.com/global/
Fortran 95 (Solaris) A powerful, updated development system used for FORTRAN
productive applications Current version: Sun Studio 9
The ISO Fortran 95 Standard is fully supported, additionally there are enhance-
ments for Fortran77 such as pointers/structures, binary/octal/hexadecimal constants,
etc. High optimization includes automatic parallelization and OpenMP support. A
30 CHAPTER 2. COMPILERS
Fortran runtime system optimized for UltraSPARC is now also included in the pack-
age. The development environment consists of the following components:
Workbench: An integral development environment for the C/C++ and Fortran
compilers, for compiler control, program execution, debugging, performance analysis,
coverage etc. with a Motif-based graphical user interface (GUI).
Visual Analyzer: A development and migration tool for C/C++ and Fortran
programs. The enclosed Source Analyzer allows the static program structure and the
global data relations to be visualized. It contains a class browser, cross references
and a calling graph viewer.
Parallel Analyser: Consists of an integrated development environment for the
OpenMP programming. It contains a manager, a debugger and a profiler.
Fujitsu also has a Fortran 95 compiler for Linux and a highly optimized, native
Fortran 95 compiler, Fortran/VPP and HPF, for its VPP supercomputers.
2.10 g95
http://www.g95.org/
g95 is a stable, production Fortran 95 compiler available for multiple cpu architec-
tures and operating systems. Innovations and optimizations continue to be worked
on. Parts of the F2003 standard have been implemented in g95.
HP’s Fortran products are available for multiple platforms: Windows, Tru64 UNIX
AlphaServer systems, Linux AlphaServer systems, and HP OpenVMS (Alpha / VAX).
Visual Fortran for Windows
Fortran for Linux Alpha
Fortran for Tru64 UNIX Alpha
Fortran for HP OpenVMS Alpha
Fortran for HP OpenVMS Integrity
Fortran for HP OpenVMS VAX
Fortran for HP-UX
The Windows product, Compaq Visual Fortran, includes the Microsoft Developer
Studio IDE which can be shared with Microsoft Visual C++. Parallel execution using
OpenMP-directed decomposition or HPF is included on the Tru64 UNIX platform.
On Windows NT, SMP parallel execution using directed decomposition is available
through Visual. Compaq Fortran for Linux Alpha Systems is available as a free
download under a Technology Enthusiast license for non-commercial use. All Com-
paq Fortran 95 products include the Compaq Extended Math Library of optimized
scientific subroutines and the allocatable array extensions.
2.12 IBM
http://www-306.ibm.com/software/awdtools/fortran/
http://www-306.ibm.com/software/awdtools/fortran/xlfortran/features/f2003.html
XL Fortran Enterprise Edition for AIX XL Fortran Enterprise Edition for AIX
provides industry-leading code optimization and tuning features, a full implemen-
tation of the OpenMP API Version 2.5, Symmetric Multiprocessing (SMP) APIs,
direct manipulation of the floating-point status and control register, 64-bit enable-
ment, asynchronous I/O, debug memory routines, and many other features.
XL Fortran Advanced Edition for Blue Gene XL Fortran Advanced Edition for
Blue Gene is the latest addition to our XL Fortran compiler family. It expands our
proven XL Fortran compiler technology to exploit the capabilities of the PowerPC
440 and 440d processors used in IBM Blue Gene/L supercomputers.
XL Fortran Advanced Edition for Linux XL Fortran Advanced Edition for Linux
supports your choice of RHEL4, SLES9, and Y-HPC Linux distributions. Advanced
optimization technology and VMX support help you create high-performance 32-bit
and 64-bit applications that run efficiently on a variety of processor architectures,
including IBM’s newest POWER5+ and PowerPC 970 processors, and Apple Power
Mac G5 and Xserve G5 systems.
VS FORTRAN VS FORTRAN contains features geared to help Fortran program-
mers develop applications more easily and efficiently, while using the full power of
IBM’s large systems.
The second web link has details of Fortran 2003 support.
32 CHAPTER 2. COMPILERS
2.13 Intel
http://software.intel.com/en-us/intel-compilers/
Intel Fortran Compilers
Performance without compromise on Windows*, Linux* and OS X* Broad support
for current and previous Fortran standards, plus popular extensions Intel Math Kernel
Library included in suites Optional Rogue Wave* IMSL* Fortran Numerical Library
on Windows
Intel Parallel Studio XE 2015
Deliver top C++ and Fortran application performance with less effort Faster code:
Boost applications performance that scales on todays and next-gen processors Create
code faster: Utilize a toolset that simplifies creating fast, reliable parallel code
Available for Windows, Linux and OS/X.
Students, educators, academic researchers, and open source contributors may
qualify for Free Software Tools.
Academic Researcher - For unfunded research (research not funded by grants).
Academic researchers doing unfunded research (research not funded by grants) and
are in the United States with an *.edu email address.
Student - For current students at degree-granting institutions. Matriculated stu-
dents of a higher education institution defined as a public or private vocational school,
correspondence school, junior college, college, or university. Students cannot be paid
and/or compensated for software development. The products below are currently free
for your use under the terms of the Non-Commercial License.
Educator - For use in teaching curriculum. Professors and educators teaching par-
allelism and high performance computing techniques to students at degree-granting
institutions.
Open Source Contributor - For developers actively contributing to open source
projects Developers must be actively contributing to an open source project (e.g.
GitHub). Agree to terms and conditions of the Intel Non-Commercial License.
2.14 Lahey/Fujitsu
http://www.lahey.com/
Lahey/Fujitsu Fortran 95 is produced by the Lahey/Fujitsu alliance. LF95 is
available in three Windows configurations: Express, Standard, and PRO, and two
Linux configurations: Express and PRO. All configurations feature: VAX, IBM, and
POSIX language extensions, allocatable array enhancements, etc. The Windows and
Linux Express version is command line only and features the compiler, linker and
debugger. PRO for Windows adds a Fortran-smart Windows editor, a debugger,
an AUTOMAKE make utility, and an enhanced Winteracter Starter kit (WiSK) for
creating true Windows programs with Fortran, and a Coverage Analysis Tool that
detects unexecuted code and performs range of operation checking. The PRO is
compatible with Visual C++, Visual Basic, and Delphi and also includes Fujitsu’s
SSL2 Math Library and Visual Analyzer (see below). The PRO Linux version offers
2.15. LAHEY/GNU SHASTA COMPILER 33
2.16 NAG
http://www.nag.co.uk/nagware.asp
The following is taken from the Nag site.
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.
Cleaner code = fewer mistakes
My programs are much cleaner thanks to the new features in the NAG Fortran
Compiler. This may seem like a minor issue, but there are literally hundreds of
routines in my programs which pass arrays between them, and simpler interfaces
lead to fewer mistakes. It’s also useful to be able to write subroutines which decide
the size of their return arrays internally, and to have allocatable arrays as structure
components. Ian Thompson, Research Associate at Loughborough University
OpenMP 3.1 and an integrated suite of tools its all in there
The NAG Fortran Compiler provides support for Fortran 2008 (almost all), For-
tran 2003 (complete), Fortran 95 and 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.
It is available on Linux, Microsoft Windows and Mac OS X platforms. For users
preferring an Integrated Development Environment (IDE) on Microsoft Windows or
Apple Mac, NAG has developed NAG Fortran Builder.
http://www.nag.co.uk/nagware/np/fortranbuilder.asp
34 CHAPTER 2. COMPILERS
2.17 NEC
http://www.nec.com/
NEC has a native, optimizing Fortran 95 compiler, FORTRAN90/SX, with an
automatic vectorization and parallelization capability, for its supercomputer SX se-
ries. HPF/SX V2 provides functions conforming to the specification of HPF1.1 and
HPF2.0 and can be used with vector processing functions in SX Fortran and with
parallel processing functions using microtasking.
2.18 OpenUH
http://www2.cs.uh.edu/~openuh/
The following is taken from their site.
OpenUH is an open source, optimizing compiler suite for C, C++ and Fortran
95. It supports a variety of architectures including IA-32, X86 64, IA-64. To achieve
portability, OpenUH is able to emit optimized C or Fortran 77 code that may be
compiled by a native compiler on other platforms. The supporting runtime libraries
are also portable - the OpenMP runtime library is based on the portable Pthreads in-
terface while the Coarray Fortran runtime library is based, optionally, on the portable
GASNet or ARMCI communications interfaces. OpenUH includes support for a new
version of the Dragon tool that gathers and displays static and dynamic information
about a user’s application.
• Fortran Compiler
Optimizes compute-intensive application performance
• Debugger
Ensures application stability with event handling and multi-thread support
• Performance Library
Maximizes compute-intensive application performance using advanced numeri-
cal solver libraries
2.20. PGI 35
• Code Analyzer
Protects your application from security vulnerabilities, and includes SPARC
Software in Silicon support to secure your application at record speeds
• Thread Analyzer
Detects hard to pinpoint race and deadlock conditions in multi-threaded appli-
cations
2.19.3 IDE
• Oracle Developer Studio IDE
Extensible, full-featured, and simplifies cloud development for C, C++ and
mixed C++/Java applications
Download from:
https://www.oracle.com/technetwork/server-storage/developerstudio/downloads/index.html
2.20 PGI
http://www.pgroup.com/
High-performance Optimizing Parallel Compilers For multi-core 64-bit x64 and
32-bit x86 processor-based Linux, Mac OS X and Windows workstations, servers and
clusters. PGI Workstation includes a single seat license for PGI’s suite of compilers
and tools. Also available with a multi-user network floating license (PGI Server).
The PGI CDK Cluster Development Kit includes all the software for building and
programming a turn-key Linux cluster. PGI Visual Fortran fully integrates PGI
parallel Fortran into Microsoft Windows using Microsoft Visual Studio 2005.
Now has free Community Edition.
FTN95 for Win32 and, optionally, with Microsoft Visual Studio for .NET. A low-cost,
fully-featured personal edition is also available.
2.22 SimplyFortran
The following has been taken from the SimplyFortran site.
http://simplyfortran.com/
Simply Fortran - A modern Fortran development environment for Microsoft Win-
dows, Apple macOS, and GNU/Linux systems.
Windows package includes a complete Fortran compiler, a graphical interface li-
brary, and an integrated debugger for fast and easy installation
Simply Fortran has been designed from the start with GNU Fortran integration as
the primary goal. Installing the development environment is as simple as downloading
and running the installer; no additional download or user configuration is necessary.
2.24.2 Compaq
This compiler is no longer under development. This ceased when Intel bought out
the technology from HP. Still widely used with legacy software. Copies for sale can
be found on Ebay and similar sites.
2.24. NO LONGER AVAILABLE 37
2.24.3 EPC
Edinburgh Portable Compilers was an early vendor to produce a Fortran 90 compila-
tion system. A report by Adam Marshall from Liverpool University has a comparison
of several early Fortran 90 compilers. It can be found at the address below.
http://www.liv.ac.uk/HPC/FortranCompilerStudyHTML/FortranCompilerStudyHTML.html
2.24.4 NA Software
http://www.nasoftware.co.uk/home.html
No longer available.
2.24.6 PathScale
https://en.wikipedia.org/wiki/PathScale
The following was taken from the Pathscale site.
PathScale’s goal is to make it easier to develop and deploy 64-bit applications
into clustered environments. PathScale has developed one of the industry’s highest-
performance C, C++, and Fortran compilers for 64-bit Linux based systems.
They offer 4 products. The content and descriptions are taken from the Pathscale
site.
• ENZO 2015 - a complete GPGPU and multi-core solution, which tightly cou-
ples the best programming models with highly optimizing code generation for
NVIDIA Tesla and AMD FirePro discrete GPU.
• DF IDE - DogFood (DF), the intelligent C++/Fortran IDE that delivers pro-
ductivity without getting in the way of writing, reading and navigating code.
DF is not afraid to break the rules and attempt to raise the bar on what an
IDE should be. The engineers who work on DF are the engineers who also use
DF.
2.24.7 SGI
http://www.sgi.com/products/software/irix/tools/fortran.html
The following is taken from the SGI site.
• WORKSHARE directive
The full Fortran 2.0 specification can obtained from the OpenMP Web site at:
http://www.openmp.org
For more information, read about the MIPSpro compilers.
No longer available.
Chapter 3
Debuggers
• Version 1 January 2013. Thanks to Anton Shterenlikht for the initial request
for a section on debuggers. Thanks to Wood Lotz, Van Snyder, Bill Long and
Tobias Burnus for their contributions.
3.1 Introduction
A number of contributors have mentioned the simple inclusion of print statements in
your code - which is of course simple and very effective.
3.2 Absoft
The following information was provided by Wood Lotz.
Absoft Fx3 debugger
It supports Fortran, C and assm and has been evolving over the past 15 years.
During that period it has supported and or sold with, a wide variety of compilers
though currently we offer it only as a component bundled with the Absoft Pro Fortran
products for Windows, Linux and Mac.
Product overview
http://www.absoft.com/Absoft_FxDebugger.htm
3.3 DDT
http://www.allinea.com/products/ddt/
The following information is taken from the above site.
Allinea DDT is the most advanced debugging tool available for scalar, multi-
threaded and large-scale parallel applications. It debugs code on:
workstations GPUs clusters, and... the very largest supercomputers. Comprehen-
sive and easy-to-use Allinea DDT has many features that are missing from ordinary
debuggers — such as memory debugging and data visualization. With an acclaimed
39
40 CHAPTER 3. DEBUGGERS
user interface that wins praise for ease-of-use and capability, it is quite simply an
integral part of efficient software development.
Simplifying debugging at scale. For multi-threaded or OpenMP development,
Allinea DDT enables threads to be controlled individually and collectively with ad-
vanced capabilities for comparing data across threads.
The Parallel Stack Viewer is a unique way to see the program state of all processes
and threads at a glance. You can easily spot rogue processes or threads and even
using it to define new control groups, making massive parallel programs far easier to
manage. The Allinea DDT interface scales amazingly to provide the same clarity of
information at thousands of processes as at a handful. It highlights commonality and
differences using summary views and data comparisons to focus your attention.
Allinea DDT has been proven at scale on the most powerful systems - including
debugging applications at over 200,000 cores simultaneously. Allinea DDT puts you in
control of your application, whether you are working with a workstation or a thousand
processor, high-performance cluster.
Debug code on the CPU and GPU from a single tool This powerful combination
gives you all the advanced debugging features of Allinea DDT but with the enhanced
ability to debug CUDA code. With a single tool, you can debug hybrid MPI, OpenMP
and CUDA applications on a single workstation or GPU cluster. Features such as
the detection of invalid memory accesses, the visualization of GPU data, and GPU
thread control have been designed to help you find the GPU porting bugs quickly and
easily.
Allinea DDT supports the NVIDIA CUDA Toolkit and is fully compatible with
NVIDIA’s Fermi architecture.
is the default in GCC with/since 4.8 but requires GDB 7.5, Valgrind 3.8 and elftools
0.154. GCC also supports (since 4.7) a GNU extension (supported by GDB 7.4,
proposed for DWARF5) ”entry value”/ ”call site” which allows - with restrictions
- to debug function calls where the argument has been passed in registers. (For
completeness: DWARF4 is supported - optionally - since GCC 4.6.)
3.9 Valgrind
Visit
http://valgrind.org/
for more information. Here is an extract taken from that site.
Valgrind is an instrumentation framework for building dynamic analysis tools.
There are Valgrind tools that can automatically detect many memory management
and threading bugs, and profile your programs in detail. You can also use Valgrind
to build new tools.
The Valgrind distribution currently includes six production-quality tools: a mem-
ory error detector, two thread error detectors, a cache and branch-prediction profiler,
a call-graph generating cache and branch-prediction profiler, and a heap profiler. It
also includes three experimental tools: a heap/stack/global array overrun detector, a
second heap profiler that examines how heap blocks are used, and a SimPoint basic
block vector generator. It runs on the following platforms:
• X86/Linux,
• AMD64/Linux,
• ARM/Linux,
• PPC32/Linux,
• PPC64/Linux,
• S390X/Linux,
• MIPS/Linux,
3.10. WINDBG 43
• X86/Darwin and
• AMD64/Darwin
Valgrind is Open Source and or Free Software, and is freely available under the
GNU General Public License, version 2.
Here is an extract from the Wikipedia entry on Valgrind.
Valgrind is a GPL licensed programming tool for memory debugging, memory
leak detection, and profiling. It is named after the main entrance to Valhalla in
Norse mythology. Valgrind was originally designed to be a free memory debugging
tool for Linux on x86, but has since evolved to become a generic framework for cre-
ating dynamic analysis tools such as checkers and profilers. It is used by a number of
Linux-based projects.[3] Since version 3.5, Valgrind also works on Mac OS X. The orig-
inal author of Valgrind is Julian Seward, who in 2006 won a Google-O’Reilly Open
Source Award for his work on Valgrind. Several others have also made significant
contributions, including Cerion Armour-Brown, Jeremy Fitzhardinge, Tom Hughes,
Nicholas Nethercote, Paul Mackerras, Dirk Mueller, Bart Van Assche, Josef Weiden-
dorfer and Robert Walsh. Valgrind is in essence a virtual machine using just-in-time
(JIT) compilation techniques, including dynamic recompilation. Nothing from the
original program ever gets run directly on the host processor. Instead, Valgrind first
translates the program into a temporary, simpler form called Intermediate Represen-
tation (IR), which is a processor-neutral, SSA-based form. After the conversion, a
tool (see below) is free to do whatever transformations it would like on the IR, before
Valgrind translates the IR back into machine code and lets the host processor run it.
Even though it could use dynamic translation (that is, the host and target processors
are from different architectures), it doesn’t. Valgrind recompiles binary code to run
on host and target (or simulated) CPUs of the same architecture.
3.10 WinDbg
Van
I had been using totalview. With Lahey and Fujitsu 6.20e on Linux, it was the
only debugger that understood their defective debugging tables – including the Fujitsu
debugger.
But... the license for totalview is expensive. So when we switched from LF95 to
Intel, and Intel provided idb, we started using idb.
I wish we still had totalview. idb is difficult to use, especially to view arrays. It’s
also rather slow.
Bill
44 CHAPTER 3. DEBUGGERS
• Version 1.9, June 2016; Added an entry for the Pathscale Dogfood IDE for
Linux
• Version 1.8, May 2016. Added an entry for Nag Fortran Builder for the Apple
Mac and Windows operating systems.
• Version 1.7, January 2015. Added Microsoft Visual Studio 2013 Community
Edition.
4.1 Windows
4.1.1 Absoft Editor (ae)
http://www.absoft.com
4.1.2 Code::Blocks
http://www.codeblocks.org/
4.1.3 CRiSP
www.crisp.com http://www.crisp.demon.co.uk
45
46 CHAPTER 4. FORTRAN AWARE EDITORS AND IDES
4.1.5 editeur
www.studioware.com
4.1.9 geany
http://www.geany.org/
4.1.13 lahey ed
http://www.lahey.com/
Any individual developer can use Visual Studio Community to create their
own free or paid apps.
Heres how Visual Studio Community can be used in organizations: An
unlimited number of users within an organization can use Visual Studio
Community for the following scenarios: in a classroom learning environ-
ment, for academic research, or for contributing to open source projects.
4.1.18 ntemacs
http://www.gnu.org/software/emacs/windows/ntemacs.html
4.1.19 photran
http://www.eclipse.org/photran/
Photran is an IDE and refactoring tool for Fortran based on Eclipse and the CDT.
Photran is a component of the Eclipse Parallel Tools Platform (PTP).
4.1.21 UltraEdit
www.ultraedit.com
4.2 Linux/Unix
4.2.1 Code::Blocks
http://www.codeblocks.org/
4.2.2 CRiSP
www.crisp.com http://www.crisp.demon.co.uk
4.2.4 emacs/xemacs
http://www.gnu.org/software/emacs/emacs.html
4.2.5 geany
http://www.geany.org/
4.2.7 nedit
http://www.nedit.org/
4.2.9 photran
http://www.eclipse.org/photran/
Photran is an IDE and refactoring tool for Fortran based on Eclipse and the CDT.
Photran is a component of the Eclipse Parallel Tools Platform (PTP).
Requires a Java run time.
4.3 Apple OS X
4.3.1 Absoft Editor
http://www.absoft.com/
4.3.2 BBEdit
http://www.apple.com/downloads/macosx/productivity_tools/bbedit.html
4.3.3 codeblocks
http://www.codeblocks.org/
4.3.4 emacs/xemacs
pre-installed
4.3.6 Photran
www.photran.org/
4.3.7 Smultron
http://smultron.sourceforge.net/
50 CHAPTER 4. FORTRAN AWARE EDITORS AND IDES
4.3.8 TextMate
http://macromates.com/
4.3.9 TextWrangler
http://www.apple.com/downloads/macosx/productivity_tools/textwrangler.html
4.3.10 Vim
Pre-installed
4.3.11 Xcode
http://developer.apple.com/
4.3.12 xemacs/emacs
pre-installed
Chapter 5
Commercial Courses
• Version 1.7, October 2018. Added details of a new course from Sorcery Inc,
Writing Fortran 2018 Today: Object-Oriented Parallel Programming.
• Version 1.5, July 2015. Deleted John Reid entry. Corrected Mike Metcalf entry.
Added Sourcery, Inc entry. Deleted Hector entry, added Archer entry. Updated
the Cranfield entry.
5.1 Archer
Archer is the UK National Supercomputing Service.
http://www.archer.ac.uk/
The following list is taken from their web site.
51
52 CHAPTER 5. COMMERCIAL COURSES
Advanced OpenMP
Efficient Parallel IO on ARCHER
Performance Programming
PGAS Programming
Programming the Xeon Phi
5.5 Lahey
http://www.lahey.com/
The Fortran 95 Workshop is a six-session, hands-on, Fortran 95 workshop led by
Thomas M. Lahey, CEO, Lahey Computer Systems, Inc.
5.6. MICHAEL METCALF 53
or
Manfred von Richthofen
Straße 15,
Berlin,
Germany,
+0049.30.78952573.
• Modern Fortran standards and how to write optimised and efficient Fortran;
Literate programming
Programming by contract
Object-Oriented Analysis, Design, and Programming
Best practices in Object-Oriented Design (patterns)
Register at http://bit.ly/writing-fortran-2018
The course will comprise roughly equal proportions of lecture, live coding demonstra-
tions, and hands-on exercises. Attendees will work on their own computers inside
Linux virtual machines containing the latest GNU Fortran, C, and C++ compilers;
the OpenCoarrays parallel runtime library, and other open-source tools supporting
a modern software-development workflow: porting a modern software-development
workflow:
Attendees will also gain exposure to several agile development practices, including
test-driven development, continuous integration, and pair programming.
Attendees receive a paperback of Scientific Software Design: The Object-Oriented
Way by Rouson, Xia, and Xu (Cambridge Univ. Press, 2011)
Attendees will work on their own computers inside the Sourcery Institute Lubuntu
Linux virtual machine available for free in the Sourcery Institute Store
56 CHAPTER 5. COMMERCIAL COURSES
5.11 France
Simulog, attn.
Mr. E. Plestan,
1 rue James Joule,
F-78286
Guyancourt Cedex,
France
Tel: +33 1 30 12 27 80
fax: +33 1 30 12 27 27
5.12 Japan
5.12.1 Nihon NAG, Numerical Algorithms Group Japan
Offers a Fortran Introduction course and Fortran consultancy. Their top page is
http://www.nag-j.co.jp/
They also have online material for their Fortran Introduction course, starting from
http://www.nag-j.co.jp/fortran/index.html
A Japanese company offering courses and conversion consultancy is SofTek Sys-
tems, Inc. (see above).
Chapter 6
• Version 1.1 August 2012. Removed Edinburgh entry - no longer available. Re-
moved Manchester entry - no longer available.
6.1 CERN
http://wwwinfo.cern.ch/asdoc/f90.html
6.5 French
Support de cours Fortran 90 IDRIS - Corde & Delouis
www.idris.fr/data/cours/lang/fortran/choix_doc.html
57
58 CHAPTER 6. ON LINE TRAINING MATERIAL
Chapter 7
7.1 Introduction
This can be broken down into
7.2 dislin
DISLIN is a high-level plotting library for displaying data as curves, polar plots, bar
graphs, pie charts, 3D-color plots, surfaces, contours and maps.
http://www.dislin.de/
http://www.mps.mpg.de/dislin/
http://www.mps.mpg.de/dislin/contents.html
59
60 CHAPTER 7. GRAPHICS AND WINDOWS PROGRAMMING
7.3 gino
GINO is a suite of high-end development tools for creating complex 2D and 3D
graphics and GUI applications. The products are ideally suited for aerospace, de-
fense, utilities and other leading engineering organizations. The GINO products are
available for Fortran, C/C++, VB, Delphi and .NET programming environments.
http://www.gino-graphics.com
http://www.polyhedron.co.uk/
http://www.polyhedron.com/gino-ginomain0html
7.3.1 Documentation
The software is supplied with on-line manuals in a variety of formats de-
pending on the environment it is running (Windows Help, HTMLHelp,
HTMLHelp2, PDF) and Printed Manuals are available at an additional
cost. http://www.gino-graphics.com/downloads/manuals.htm
7.4 ginomenu
GINOMENU is a subroutine toolkit for developing GUI applications under Windows.
It provides extensive window and widget building modules allowing professional user-
interfaces to be created under Windows 9x/NT/2000/XP without the need to get
involved in MFC, API or mixed-language programming.
http://www.gino-graphics.com/support.html
http://www.polyhedron.co.uk/
http://www.polyhedron.com/gino-ginomain0html
7.4.1 Documentation
Windows HTML Help, PDF and printed documentation
http://www.gino-graphics.com/support.html
7.5 GTK+
http://www.gtk.org/
The following is taken from their site.
7.6. INTERACTER 61
7.6 interacter
http://www.polyhedron.co.uk/
INTERACTER is our original multi-platform user-interface and graphics subrou-
tine library for Fortran 77/9x developers.
7.6.1 Documentation
None
7.7 opengl
OpenGL is the premier environment for developing portable, interactive 2D and 3D
graphics applications. Since its introduction in 1992, OpenGL has become the indus-
try’s most widely used and supported 2D and 3D graphics application programming
interface (API), bringing thousands of applications to a wide variety of computer
platforms. OpenGL fosters innovation and speeds application development by incor-
porating a broad set of rendering, texture mapping, special effects, and other powerful
visualization functions. Developers can leverage the power of OpenGL across all pop-
ular desktop and workstation platforms, ensuring wide application deployment.
http://www.opengl.org/
7.7.1 Documentation
None
7.7.3 Documentation
http://math.nist.gov/f90gl/documentation.html
7.8 pgplot
http://www.astro.caltech.edu/~tjp/pgplot/
The following is taken from the pgplot site.
The PGPLOT Graphics Subroutine Library is a Fortran- or C-callable, device-
independent graphics package for making simple scientific graphs. It is intended for
making graphical images of publication quality with minimum effort on the part of
the user. For most applications, the program can be device-independent, and the
output can be directed to the appropriate device at run time.
The PGPLOT library consists of two major parts: a device-independent part and a
set of device-dependent “device handler” subroutines for output on various terminals,
image displays, dot-matrix printers, laser printers, and pen plotters. Common file
formats supported include Postscript and GIF.
PGPLOT itself is written mostly in standard Fortran-77, with a few non-standard,
system-dependent subroutines. PGPLOT subroutines can be called directly from a
Fortran-77 or Fortran-90 program. A C binding library (cpgplot) and header file (cpg-
plot.h) are provided that allow PGPLOT to be called from a C or C++ program; the
binding library handles conversion between C and Fortran argument-passing conven-
tions.
PGPLOT has been tested with UNIX (most varieties, including Linux, SunOS,
Solaris, HPUX, AIX, Irix, and MacOS X/Darwin) and OpenVMS operating systems.
I am unable to provide support for DOS, Microsoft Windows, but I do distribute code
provided by users for use with these operating systems.
7.9. PLPLOT 63
7.9 PLplot
http://plplot.sourceforge.net/
The following is taken from the PLplot site.
PLplot is a cross-platform software package for creating scientific plots whose
(UTF-8) plot symbols and text are limited in practice only by what Unicode-aware
system fonts are installed on a user’s computer. The PLplot software, which is pri-
marily licensed under the LGPL, has a clean architecture that is organized as a core C
library, separate language bindings for that library, and separate device drivers that
are dynamically loaded by the core library which control how the plots are presented
in noninteractive and interactive plotting contexts.
The PLplot core library can be used to create standard x-y plots, semi-log plots,
log-log plots, contour plots, 3D surface plots, mesh plots, bar charts and pie charts.
Multiple graphs (of the same or different sizes) may be placed on a single page, and
multiple pages are allowed for those device formats that support them.
PLplot has core library support for plot symbols and text specified by the user in
the UTF-8 encoding of Unicode. This means for our many Unicode-aware devices that
plot symbols and text are only limited by the collection of glyphs normally available
via installed system fonts. Furthermore, a large subset of our Unicode-aware devices
also support complex text layout (CTL) languages such as Arabic, Hebrew, and Indic
and Indic-derived CTL scripts such as Devanagari, Thai, Lao, and Tibetan. Thus,
for these PLplot devices essentially any language that is supported by Unicode and
installed system fonts can be used to label plots.
7.9.1 Documentation
http://plplot.sourceforge.net/documentation.php
7.10 realwin
RealWin lets a Fortran programmer create full-featured applications for Microsoft
32-bit Windows platforms.
http://www.indowsway.com/home.htm
http://www.indowsway.com/
7.10.1 Documentation
Visit
http://plplot.sourceforge.net/documentation.php
64 CHAPTER 7. GRAPHICS AND WINDOWS PROGRAMMING
7.11 toolmaster
http://www.avs.com/software/soft_t/toolm.html
Toolmaster agX is a cross-platform graphics library. For FORTRAN program-
mers, AVS offers FGL/AGL, which provides equivalent functionality to the agX C
library.
7.11.1 Documentation
None
7.12 winteracter
http://www.polyhedron.co.uk/
Winteracter is a modern GUI toolset for the Fortran 90/95 programming language.
It consists of various visual development tools and a substantial subroutine library.
Versions are available for most Fortran 9x compilers.
7.12.1 Documentation
None
It is also possible to develop the visual interface using Visual Basic and call fortran
dlls.
If you have Compaq Visual Fortran then the on-line Programmers Guide has
coverage of mixed language programming with examples.
The following compilers offer integrated support for Windows programming under
.NET.
7.13.1 Lahey/Fujitsu
http://www.lahey.com/
PRO for Windows adds a Fortran-smart Windows editor, a debugger, an AU-
TOMAKE make utility, and an enhanced Winteracter Starter kit (WiSK) for creat-
ing true Windows programs with Fortran, and a Coverage Analysis Tool that detects
unexecuted code and performs range of operation checking. The PRO is compatible
with Visual C++, Visual Basic, and Delphi and also includes Fujitsu’s SSL2 Math
Library and Visual Analyzer (see below).
Parallel Programming
• Version 1.9, March 2015, added entry for the opencoarray project
• Version 1.8, January 2013. Minor updates pointed out by Anton Shterenlikht
• Version 1.6, August 2012; Updated several entries; Added several books;
• Version 1.5, October 2011; Updated gfortran mpi entry; updated Intel coarray
entry; updated NAG openmp entry
• Version 1.4, August 2010; Updated coarray, mpi and openmp entries.
• Version 1.3, July 2010; Added g95 entry. Modified gfortran entry.
• Version 1.2, June 2009; Corrected and updated several web addresses.
8.1 Introduction
The Fortran language has been standardised a number of times
• Fortran 66
• Fortran 77
• Fortran 90
• Fortran 95
• Fortran 2003
• Fortran 2008
67
68 CHAPTER 8. PARALLEL PROGRAMMING
• HPF
• MPI
• OpenMP
• Posix Threads
8.1.1 Books
• Rainer Keller (Editor), David Kramer (Editor), Jan-Philipp Weiss (Editor),
Facing the Multicore-Challenge II: Aspects of New Paradigms and Technolo-
gies in Parallel Computing (Lecture Notes in Computer Science / Theoretical
Computer Science and General Issues) Springer, 2012, ISBN-10: 364230396X,
ISBN-13: 978-3642303968
• Kristjn Jnasson (Editor), Applied Parallel and Scientific Computing: 10th Inter-
national Conference, PARA 2010, 2012, Springer, ISBN-10: 3642281508, ISBN-
13: 978-3642281501
8.2 Automatic
By this is meant automatic parallelisation of the code without source code modifica-
tion.
8.3.1 opencoarrays.org
The following
http://www.opencoarrays.org/
provides details of an open-source software project for developing, porting and
tuning transport layers that support coarray Fortran compilers.
The current developer version of GNU Fortran (GFortran), which is part of GCC
5, is OpenCoarrays-compatible.
8.4 HPF
The High Performance Fortran Forum (HPFF), a coalition of industry, academic
and laboratory representatives, works to define a set of extensions to Fortran 90
known collectively as High Performance Fortran (HPF). HPF extensions provide ac-
cess to high-performance architecture features while maintaining portability across
platforms.
Harvey Richardson has provided a historical perspective on HPF. Visit
http://www.zeenty.com/HPF/HPF-intro.pdf
8.5 MPI
MPI is a library specification for message-passing, proposed as a standard by a broadly
based committee of vendors, implementers, and users.
http://www-unix.mcs.anl.gov/mpi/
http://www-unix.mcs.anl.gov/mpi/mpich/
http://en.wikipedia.org/wiki/Message_Passing_Interface
70 CHAPTER 8. PARALLEL PROGRAMMING
8.5.1 Books
• Aoyama, Yukiya; Nakano, Jun (1999) RS/6000 SP: Practical MPI Program-
ming, ITSO. Available as a pdf.
http://www.redbooks.ibm.com/abstracts/sg245380.html
• Gropp, William; Lusk, Ewing; Skjellum, Anthony (1999a). Using MPI, 2nd
Edition: Portable Parallel Programming with the Message Passing Interface.
Cambridge, MA, USA: MIT Press Scientific And Engineering Computation Se-
ries. ISBN 978-0-262-57132-6.
• Pacheco, Peter S. (1997) Parallel Programming with MPI.[1] 500 pp. Morgan
Kaufmann ISBN 1558603395.
• Yiannis Cotronis (Editor), Anthony Danalis (Editor), Dimitris Nikolopoulos
(Editor), Jack Dongarra (Editor) Recent Advances in the Message Passing In-
terface: 18th European MPI Users’ Group Meeting, EuroMPI 2011, Santorini,
Greece, September 18-21, 2011. ... / Programming and Software Engineering),
2011, Springer,ISBN-10: 3642244483, ISBN-13: 978-3642244483
8.5.2 Courses
In the UK the Hector service
http://www.hector.ac.uk/
provide various parallel programming courses. Details of their courses can be
found at
http://www.hector.ac.uk/cse/training/
Cambridge University provide an MPI Course, offered by Nick Maclaren. See
http://www-uxsup.csx.cam.ac.uk/courses/MPI/
8.5.3 Requirements
Requires the installation of the MPI library (some compiler companies offer a bundle
of compiler and MPI library) and source code modification.
8.6 OpenMP
The OpenMP Application Program Interface (API) supports multi-platform shared-
memory parallel programming in C/C++ and Fortran on all architectures, including
Unix platforms and Windows NT platforms. Jointly defined by a group of major
computer hardware and software vendors, OpenMP is a portable, scalable model
that gives shared-memory parallel programmers a simple and flexible interface for
developing parallel applications for platforms ranging from the desktop to the super-
computer.
http://www.openmp.org/
http://en.wikipedia.org/wiki/OpenMP
8.7. POSIX THREADS 71
8.6.1 Books
• R. Chandra, R. Menon, L. Dagum, D. Kohr, D. Maydan, J. McDonald, Parallel
Programming in OpenMP. Morgan Kaufmann, 2000. ISBN 1558606718
• B. Chapman, G. Jost, R. van der Pas, D.J. Kuck (foreword), Using OpenMP:
Portable Shared Memory Parallel Programming. The MIT Press (October 31,
2007). ISBN 0262533022
8.6.2 Courses
In the UK the Hector service
http://www.hector.ac.uk/
provide various parallel programming courses. Details of their courses can be
found at
http://www.hector.ac.uk/cse/training/
8.6.3 Resources
http://www.openmp.org/wp/resources/
http://www.openmp.org/wp/resources/openmp-compilers
http://openmp.org/wp/openmp-specifications/
8.6.4 Requirements
Requires source code modification.
http://www.llnl.gov/computing/tutorials/pthreads/
Requires the installation of a threading library. Many operating systems come
with a threading library pre-installed.
Also requires source code modification.
http://www.llnl.gov/computing/tutorials/pthreads/
BEGIN QUOTE
>>
>>Erik Schnetter wrote:
>>
>>>
>>>Since MPI and threads are implemented as libraries, they
>>>work with
>>>every compiler. They are on a rather low level.
>>>HPF and OpenMP are,
>>>in a way, language extensions that are translated into
>>>MPI or threads
>>>by the compiler.
>>>
>>>
>>>
>>Perhaps a bit simplistic to say
>>"they work with every compiler".
>>Whether MPI or threads (and what kind of threads) work
>>is generally
>>independent of the compiler, but not of the
>>operating system. HPF,
>>OpenMP, and some forms of automatic parallelization
>>often involve
>>compiler generated calls to library routines, but
>>not necessarily to MPI or POSIX threads
>>library routines.
>>A vendor might opt for something more efficient.
>>
>>For many of the entries in Ian’s list, there is an
>>implied combination of compiler, OS, and hardware.
8.8. NOTES ON THE TABLE BELOW 73
BEGIN QUOTE
>>
>>Erik Schnetter said:
>>> The IBM Fortran compiler supports Posix threads:
>>
>>As I suspect do most. Certainly the NAG compiler does.
>>
>>Cheers,
>>--
>>...........................
>>Malcolm Cohen, Nihon NAG, Tokyo, Japan.
>>([email protected])
>>
END QUOTE
In the light of these comments I’ve added a ’C’ category which means that you
will need to check your
• hardware
• compiler version
Absoft
Y Y C
Cray
PVP Y Y Y C
T3E Y Y C
X1 Y Y Y C
Fujitsu
Sparc C Y C
g95
gfortran
P Y Y
HP
HP-UX C Y C
Tru64 Unix Y C Y C
Openvms
Alpha C C
Openvms
Integrity C C
Openvms
VAX C C
CVF
Windows C C
IBM
XL Y C Y Y
Intel
Y Y C Y C
Lahey/Fujitsu
Pro Linux Y C Y C
NAG
Apple C Y C
HP PA-RISC 1.1 C C
IBM Power AIX C C
IBM Z9 Linux C C
IBM Z9
Open Edition C C
Linux x86-32 C Y C
8.10. PARALLELISATION TOOLS 75
Linux64 C Y C
Sun SPARC Solaris C C
Sun SPARC Solaris C C
x86 and x86-64
Windows C Y C
NEC
SX Y C C
Pathscale
Y Y Y C
Portland Group
Y Y C Y C
SGI
IRIX Y C Y C
SUN
Y Y Y C
Please see the following for up to date details of compiler conformance to the
Fortran 2003 and 2008 standards, and hence support for coarrays.
http://www.fortranplus.co.uk/resources/fortran_2003_2008_compiler_support.pdf
http://www.parallelsp.com/index.htm
The tool can generate either MPI calls or OpenMP calls.
8.11.1 IBM
hardware: IBM Power4 64-bit systems or compatible
operating system: AIX v5.3 or compatible
Fortran compiler: XL Fortran v9.1 or compatible
MPI: IBM Parallel Operating Environment
v4.1.1 or compatible
8.11.2 Apple
hardware: Apple G4/G5 Power Macintosh
operating system: Mac OS X 10.3.9, Mac OS X 10.4.5
Fortran compiler: GNU g77 3.4.5
(needs linker found in cctools-528.5.dmg or later
see ftp://gcc.gnu.org/pub/gcc/infrastructure/)
C compiler: Apple bundled gcc compiler (4.0.0 or 3.3)
or FSF gcc 3.4.5 or FSF gcc 4.0.2
or IBM XLC compiler 6.0
and compatible compilers
MPI: MPICH2 version 1.0.3 compatible
8.11.3 Nag
hardware: AMD64
operating system: 64-bit Linux
Fortran compiler: NAGWare f95 Release 5.0 and compatible
C compiler: gcc 3.3 and compatible
MPI: MPICH 1.2.6 and compatible
8.11.4 PGI
hardware: AMD64
operating system: 64-bit Linux
Fortran compiler: Portland Group pgf77 6.0-5 and compatible
C compiler: Portland Group pgcc 6.0-5 and compatible
MPI: MPICH 1.2.6 and compatible
8.11. COMPILER AND MPI COMBINATIONS 77
8.11.5 Oracle
hardware: Sun Fire V890+, UltraSPARC IV+,
1500MHz, 24 cores
operating system: Solaris 10 Update 3
Fortran compiler: Sun Studio 11 Fortran 95 8.2
compiler options: -fsimple=1 -xvector=no -ftrap=%none
-KPIC -xarch=v9a -dalign -stackvar -O4
C compiler: Sun Studio 11 C Compiler 5.8
compiler options: -DAdd_ -xarch=v9a -KPIC -O
MPI: Sun ClusterTools 7
BLAS: Sun Studio 11 Sun Performance Library
8.11.6 Intel
hardware: Intel EM64T systems and compatible
(including AMD64)
operating system: Linux for x86-64 with glibc-2.5 and compatible
Fortran compiler: Intel(R) Fortran Intel(R) 64 Compiler
Version 11.0 and compatible
C compiler: Intel(R) C Intel(R) 64 Compiler
Version 11.0 and compatible
MPI: Intel(R) MPI Library 3.2 for Linux
ScaLAPACK: Intel(R) Math Kernel Library 10.1 for Linux
BLAS/LAPACK: Intel(R) Math Kernel Library 10.1 for Linux
78 CHAPTER 8. PARALLEL PROGRAMMING
Chapter 9
9.1 Refactoring
Wikipedia has a detailed coverage of code refactoring that is a good place to start.
Have a look at
http://en.wikipedia.org/wiki/Code_refactoring
Here is their first paragraph.
Code refactoring is disciplined technique for restructuring an existing body of code,
altering its internal structure without changing its external behavior, undertaken in
order to improve some of the nonfunctional attributes of the software. Typically, this
is done by applying series of refactorings, each of which is a (usually) tiny change in
a computer program’s source code that does not modify its functional requirements.
Advantages include improved code readability and reduced complexity to improve the
maintainability of the source code, as well as a more expressive internal architecture
or object model to improve extensibility.
79
80 CHAPTER 9. FORTRAN SOFTWARE TOOLS
9.2 Convert
Fortran 77 to Fortran 90 converter by Mike Metcalf.
http://www.nag.co.uk/nagware/Examples/convert.f90
9.3 Doctran
The following is taken from their web site.
Doctran is a cross-platform documentation generation tool for the Fortran pro-
gramming language. It’s purpose is to take free-format Fortran files, and produce a
collection of linked html files documenting their contents.
Doctran can currently create documentation from source codes that contain con-
structs from the Fortran 95 standard and object oriented constructs from the Fortran
2003 standard.
http://www.doctran.co.uk/
9.4 Forcheck
A Fortran analyzer and programming aid, here is an extract describing the product.
• is the oldest and most comprehensive Fortran verifier on the market. It performs
a full static analysis of an entire Fortran program or a separate analysis of one or
more subprograms. detects more anomalies in your program than the compiler.
Because it locates bugs as early in the development phase as possible, it saves
you time and helps you to produce more reliable programs.
• is ideally suited to get a fast insight in existing and legacy programs. It composes
optimal documentation with a call-tree and cross-reference tables both on the
program-unit as on the program level.
• can be used as a software engineering tool in the various stages of the develop-
ment process.
• can verify the conformance to the Fortran standards. Moreover it supports many
language extensions of all popular compilers. FORCHECK is fully configurable
so you can tune the analysis and output to your needs.
9.7 Fortran90-lint
For Fortran 90 program analysis
http://www.cleanscape.net/products/downloads/ftpflint.html
9.8 NAG
The Nagware tools provided users with the ability to analyse and transform Fortran
77 and Fortran 95 code. They have been withdrawn as an individual product and the
functionality is being added to the compiler.
The following options are currently supported:
• =callgraph - Produce a callgraph of the Fortran routines in the source files.
• =depend - Produce a dependency analysis of the Fortran source files.
• =interfaces - Produce a module or include file containing procedure interfaces.
• =polish - Pretty-print (polish) the Fortran source files.
http://www.nag.co.uk/
9.9 photran
Photran is an Integrated Development Environment (IDE) for Fortran 77, 90, 95, and
2003 based on Eclipse and the CDT. The project is maintained by the University of
Illinois at Urbana-Champaign and IBM.
http://www.eclipse.org/photran/
82 CHAPTER 9. FORTRAN SOFTWARE TOOLS
9.10 plusFORT
Version 7.2 released, January 2018.
plusFORT now includes an additional new tool:
HyperKWIC is a tool for generating software documentation that combines the in-
stant connectivity of hypertext with the analytical strengths of KeyWord In Context.
It produces HTML documents that provide a fully interactive alternative to tradi-
tional documentation. HyperKWIC may be used to document source code written in
Fortran, C, C++, Delphi or any other mainstream language.
You can interact with sample HyperKWIC reports for large Fortran and C pro-
grams by clicking here and here. HyperKWIC reports can be viewed on any system
with a reasonably capable web browser, including tablets and smart-phones.
The following is taken from their web site.
plusFORT, from Polyhedron Software, is a multi-purpose suite of tools for ana-
lyzing and improving Fortran programs. It combines restructuring and reformatting
with global static analysis, dynamic analysis and many other features in a single pow-
erful package. plusFORT is a one-stop solution for programmers, project managers,
and quality assurance engineers working with Fortran source code.
SPAG - Fortran source code restructuring, Quality Assurance using plusFORT,
GXCHK - Global Static Analysis, Dynamic Analysis, Coverage Analysis.
http://www.polyhedron.com/
9.11 VAST/77to90
Fortran 77 to Fortran 90 translator
http://www.crescentbaysoftware.com/vast_77to90.html
9.12 Visustin
Automated flowcharting software. The following is taken from their web site.
Visustin is an automated flow chart program for software developers and docu-
ment writers. Save documentation efforts with automatic code visualization. Visustin
reverse engineers your source code to flow charts or UML Activity Diagrams. Vis-
ustin reads the if and else statements, loops and jumps and builds a diagram fully
automated.
No manual drawing is required. Visustin flowcharts ABAP, ActionScript, Ada,
ASP, several assembly languages, BASIC, .bat files, C, C++, C Sharp, Clipper,
COBOL, ColdFusion, Delphi, Fortran, Java, JavaScript, JCL (MVS), JavaServer
Pages, LotusScript, Matlab, MXML, Pascal, Perl, PHP, PL/I, PL/SQL, PowerBuilder
PowerScript, PureBasic, Python, QB, REALbasic, REXX, Ruby, SAS, Unix shell
script (bash, csh, tcsh, ksh, sh), Tcl, TSQL, VB, VBA, VBScript, VB.Net, Visual
FoxPro and XSLT.
http://www.aivosto.com/visustin.html
Chapter 10
10.1 comp-fortran-90
Jiscmail hosted. Restricted to questions about Fortran since the publication of the
Fortran 90 standard. Can either browse on-line or subscribe and get postings via
email. Postings are archived and go back to 1997.
http://www.jiscmail.ac.uk/lists/comp-fortran-90.html
10.2 comp.lang.fortran
Usenet news hosted Fortran list. Covers all aspects of Fortran.
Usenet is a worldwide distributed Internet discussion system. Users read and
post messages (called articles or posts, and collectively termed news) to one or more
categories, known as newsgroups. Discussions are generally threaded with modern
news reader software.
Usenet is distributed amongst a large, changing set of servers that store and
forward messages to one another in so-called news feeds. Individual users may read
messages from and post messages to a local server operated by their Internet service
provider, university, or employer.
Newsreader clients
Newsgroups are typically accessed with special client software that connects to a
news server. Newsreader clients are available for all major operating systems.
Web accessible newsgroups
Web front ends to newsgroups mean that many people now no longer need to use
download and install or configure a news reader client Google Groups is one such web
based front end and web browsers can access Google Groups.
83
84 CHAPTER 10. FORTRAN ELECTRONIC LISTS
10.3 LinkedIn
LinkedIn is a social networking website for people in professional occupations. As of
June 2012, LinkedIn reports more than 175 million registered users in more than 200
countries and territories.
http://www.linkedin.com/
The Fortran Programmers Group has 1697 members as of August 2012.
The site is available in English, French, German, Italian, Portuguese, Spanish,
Dutch, Swedish, Romanian, Russian, Turkish, Japanese, Czech, Polish, Korean, Ba-
hasa Indonesia, and Bahasa Malaysia.
10.4.1 Absoft
http://forums.absoft.com/
10.4.2 Apogee
[email protected]
10.4.3 Compaq
10.4.4 Cray
10.4. COMPILER SPECIFIC 85
10.4.6 Fujitsu
10.4.8 G95
http://groups.google.com/group/gg95
10.4.10 IBM
Requires registration.
10.4.11 Intel
Requires registration.
https://premier.intel.com/WhatsNew.aspx
10.4.13 NAG
Requires registration.
[email protected]
86 CHAPTER 10. FORTRAN ELECTRONIC LISTS
10.4.14 NA Software
10.4.15 NEC
http://www.nec.com/global/support/index.html
10.4.16 Pathscale
Requires registration.
http://pathscale.com/support.html
10.4.17 PGI
Various offerings.
http://www.pgroup.com/support/index.htm
10.4.19 SGI
Various options.
http://www.sgi.com/support/customerservice.html
10.4.20 SUN
http://forums.sun.com/category.jspa?categoryID=113
Chapter 11
• Version 1.2, April 2018. Major update to the WG5 and J3 entries to bring them
up to date.
• Version 1.1, August 2012; Updated J3 entry to reflect organisation within the
US
11.1 Introduction
There are two main Fortran standards bodies and these are WG5 and PL22.3 (for-
merly J3). Each is covered in turn below.
11.2 WG5
Their home page is:-
https://wg5-fortran.org/
Here are some details about the people involved.
87
88 CHAPTER 11. FORTRAN STANDARD BODIES
• John Reid (UK) was WG5 Convenor from 1999 through 2017. From 1995 until
1999, the Convenor of WG5 was Miles Ellis (UK). His predecessor was Jeanne
Martin (USA), who was Convenor from 1982 until 1994.
• Prior to that Jeanne Adams (USA) was Convenor of WG5 and its predecessor,
the Fortran Experts Group, from the creation of the latter in 1978 until 1982.
• The editor of the Fortran 2003 Standard (ISO/IEC 1539-1:2004(E)) was Richard
Maine (USA).
• The editor of the Fortran 90 Standard (IS 1539:1991) was Lloyd Campbell
(USA) during most of its development and Mike Metcalf (CERN) during the
final stages.
11.3 PL22.3
Task Group PL22.3 (formerly J3) is responsible for the development and interpre-
tation of the United State and International standards for Programming Language
Fortran.
This technical committee is the U.S. TAG to ISO/IEC JTC1 SC22/WG5
Group participants (April 2018) include
Corbett
Cray Inc
Hendrickson
IBM Corporation
Intel Corporation
Jet Propulsion Laboratory
Kernelyze LLC
Lawrence Berkeley National Laboratory
Lionel
Maine
NASA
NVidia Corporation
National Center for Atmospheric Research (NCAR)
United States Dept of Energy
http://standards.incits.org/a/public/group/pl22.3
The PL22.3 - J3 home page is:-
http://www.j3-fortran.org/
Their list of members (April 2018) is given below.
11.3. PL22.3 89
Voting Principals
Bryce Adelstein-Lelbach
Lawrence Berkeley National Laboratory
Daniel Chen
IBM Corp.
Thomas Clune
NASA GSFC
Robert Corbett
Robert Corbett (self)
Thomas Knox Kernelyze
LLC
Gary Klimowicz
Nvidia Corporation
Steve Lionel
Steve Lionel (Self) WG5 Convenor
William Long
Cray Inc.
Lorri Menard
Intel Corporation
Karla Morris
Sandia National Laboratories
Dan Nagle
Chair J3, National Center for Atmospheric Research
Craig E Rasmussen
Van Snyder
Jet Propulsion Laboratory
Voting alternatives
Malcolm Cohen
Craig Rasmussen
Brian Friesen
Bryce Adelstein-Lebach
Andrew Gontarek
William Long
Henry Jin
Tom Clune
Mark LeAir
Gary Klimowicz
Kelvin Li
Daniel Chen
Raghu Maddhipatla
Lorri Menard
Divya Mangudi
Lorri Menard
Toon Moene
Karla Morris
90 CHAPTER 11. FORTRAN STANDARD BODIES
John K. Reid
Dan Nagle
Damian Rouson
Karla Morris
Dr Anton Shterenlikht
Thomas Knox
Jon Steide
Lorri Menard
Dr. John Wallin
Dan Nagle
Rafik Zurob
Daniel Chen
Visit
https://j3-fortran.org/members.php
for up to date information.
Their version of the working draft is at the J3 site.
https://j3-fortran.org/doc/year/18/18-007.pdf
The following 4 publications are the current Fortran standards available from the
ISO site.
https://www.iso.org/standard/72320.html
Fortran 2018.
https://www.iso.org/standard/26934.html
Varying length character strings.
https://www.iso.org/standard/45136.html
Further interoperability of Fortran with C.
https://www.iso.org/standard/62702.html
Additional Parallel Features in Fortran.
The status of some of these will be reviewed at the next standards meeting in
Japan in August 2019.
92 CHAPTER 11. FORTRAN STANDARD BODIES
Chapter 12
Fortran History
• August 2019. Updated to have the publication dates of all ISO Fortran stan-
dards.
• version 1.2, June 2019. Added ISBN details for most of the book entries. Added
a link to the British Library catalogue. The catalogue was used to determine
the ISBN numbers where available.
• Version 1.1, March 2019. Updated with additional material, especially what is
available on line at the IEEE and ACM.
• Version 1.0, January 2019. There is now a separate chapter on Fortran’s history.
The goal of this project is to preserve source code, design documents, and
other materials concerning the original IBM 704 FORTRAN/FORTRAN
93
94 CHAPTER 12. FORTRAN HISTORY
http://www.softwarepreservation.org/projects/FORTRAN/
https://ieeexplore.ieee.org/xpl/tocresult.jsp?isnumber=4392944
The McPherson, Bright and Leeson contributions are only available to IEEE mem-
bers. The rest are available as a free pdf download.
96 CHAPTER 12. FORTRAN HISTORY
The speaker on Fortran for the second session of the conference was John Backus.
His paper is entitled The History of FORTRAN I, II and III
The Backus paper has coverage of
• Transcript of presentation
• Transcript of discussants remarks
• Transcript of Q and A session
• Full text of all questions submitted
Visit
https://dl.acm.org/citation.cfm?id=800025
https://dl.acm.org/citation.cfm?id=960118
https://en.wikipedia.org/wiki/The_Forsyte_Saga
• 1 The progressives: those who wanted to very greatly modernise the language
(mostly users).
• 2 The traditionalists: those who wanted to freeze the language, or perhaps just
adopt extremely minor extensions (mostly vendors).
• 3 The moderates: those who wanted to modernise the language, but not by as
much as the first group (some users, some vendors).
After the end of the public consultation period in 1987, these three groups could
not agree on how to proceed. The traditionalists were saying that the proposed new
language could not be implemented. Each moderate was saying that the proposed
language was too complicated, and besides was missing his favourite feature (a dif-
ferent one for each person). The progressives were saying that the others just wanted
98 CHAPTER 12. FORTRAN HISTORY
to ruin the new language by taking away the good bits. (Note: In reality it was a
good deal more complicated than this, but this is a reasonable simplification which
gives some idea of the problem at the time.)
The issue came to a head in the middle of 1988, at the meeting in Paris of the
ISO working group on Fortran (this committee rejoices in the name of ISO/IEC
JTC1/SC22/WG5). This working group has the responsibility for revising the Fortran
standard, though then as now the technical work was essentially delegated to the
American committee. Due to the impasse on the American committee, WG5 decided
that it was its responsibility to decide what should be in the new language, and
therefore discussed the competing proposals.
In response to the traditionalists’ claim that the language was so complex and
unwieldy that it could never be implemented, at this meeting Julian Tilbury of Salford
Software and myself presented a front-end for Fortran 8x (the working name for the
language revision) suitable for building software tools or indeed a compiler. It was
significant that this demonstration (which analysed the complete, supposedly non-
implementable, language) had taken only 3 months to write from scratch. (The
demonstration did not quite go without a hitch, because the keyboard was French
but the software treated it as English. So when typing in examples I had to close my
eyes - or stare fixedly at the screen - and type where I remembered the keys ought to
be instead of looking at the keyboard.)
In the event, WG5 decided on a relatively progressive modernisation of the lan-
guage which would address the concerns expressed by the international community,
and specified what new features the language should contain. In more hope than ex-
pectation that the work could be quickly done WG5 suggested that the new language
be called Fortran 88, and this then became Fortran 90 after the work took longer
than hoped.
NAG has built its reputation on a number of fine products, but by far the most
important in terms of customers was its numerical library in Fortran. It was clear to
NAG that Fortran continued to offer the best facilities for writing numerical software,
and that NAG had an interest in Fortran maintaining its market share. It was also
believed that Fortran would simply wither away if it were not quickly modernised,
which is why NAG supported the efforts of the standards committees by attending
these meetings (and also in helping to produce the demonstration in Paris ’88).
NAG needed to have early access to Fortran 90 compilers, so that it could develop
its products ready for when the compilers became widely available. Furthermore,
having made extensive successful use of Fortran (66, then 77) software tools in the
development and quality assurance of its Fortran (66/77) library, it wanted also to
have access to Fortran 90 software tools. It was also thought that NAG producing
a compiler would act as a spur to the other compiler vendors, and also ensure that
even if a native vendor compiler was not available for some particular machine, we
would have our own that we could use.
It was in the late spring of 1990, in conversation with one of the directors of
NAG about the future of Fortran, that it was suggested that I might be able to
write a compiler for the new language. I replied that naturally I thought I could do
such a thing, having had a long-standing interest in programming language design
12.2. THE RUN UP TO THE FORTRAN 90 STANDARD 99
and implementation, and indeed had designed a language of my own and written
a compiler for it while I was at college (a much smaller language than Fortran 90,
though!).
Perhaps I should not have been surprised at the turn of events ... first my manager
asked me how long I thought it would take me to write a compiler (I answered
”definitely more than a year; say about fifteen months?”). The next thing I knew
was that had become my assigned task and I had a deadline set at fifteen months!
Needless to say, during that development period I worked harder and longer than ever
before on a single product.
The first decisions to be taken were the target machine or language, and the
implementation language. I decided both to write the compiler in C, and to produce
C (as a portable assembler). Some of the reasons being
• I could use the C compiler optimiser, reducing the amount of optimisation that
the Fortran compiler needed to do itself.
Most of the Fortran 90 features were familiar to me, as I had encountered similar
features in other programming languages. One problem was simply the number of
features and their interactions. It is possible to put on an extra burst of energy to
reach the top of a hill that is within sight, but maintaining that level of output when
climbing a mountain is not so easy. One gets to the top of one peak, only to be
greeted with the sight of additional vistas opening before you.
The largest feature that I was relatively unfamiliar with was the array syntax and
the whole array operations. Since for the first release in particular, correctness was
a much more important goal than performance, I took a very simple approach to
handling array expressions. Since I was unsure exactly how to evaluate a whole array
expression at once, but knew how to evaluate any single array operation, every array
expression was broken down into single operations producing a temporary array result.
This approach was very successful in guaranteeing the right answer, but unfortunately
also quite successful in not providing good performance. (This is why, in release 2.0
a couple of years later, the array expression handling was completely rewritten.)
Another major problem was that of testing the compiler. For the subset that was
in Fortran 77 there were existing test suites we could (and did) use. For numerical
accuracy we had our own tests and library. But for all the new features there was, of
course, virtually no code in existence - just a few examples in the standard itself and
in books such as Mike Metcalf and John Reid’s ”Fortran 90 Explained” (we found
this book so clear in its explanations of the new language that we decided to use it
as the compiler manual).
I wrote many individual feature test programs myself during development, but
this was not sufficient to ensure that features would work when used together. We
100 CHAPTER 12. FORTRAN HISTORY
knew that Brian Smith and others were writing a test suite, so in exchange for use
of the prototype compiler to test their test programs, we got bug reports back when
the compiler went wrong. This proved to be invaluable, and doubtless without this it
would have taken many months longer to bring the compiler to a releasable quality.
By the spring of 1991 I found that I needed a break from doing the compiler all
day, so in the evenings I decided to build a car (a Caterham Super Seven). It seems
that cars must be simpler than compilers though, as I finished the (high performance)
car first!
And so, after many trials and tribulations, the compiler was finally released (as
the world’s first Fortran 90 compiler) in September 1991, at virtually the same time
that the standard saw publication.
For all my hard work in producing the compiler I was rewarded with the tasks
not only of supporting and maintaining it, but to extend and enhance it to encom-
pass new language standards (HPF, then Fortran 95 and now Fortran 2003), user
requests for extensions (many, mostly historical ”dusty-deck” style language), greater
performance, and even more facilities for detecting errors in programs both at com-
pile time and execution time. As I write, the current release of the compiler already
includes a substantial number of Fortran 2003 features, and work is underway on
further improvements.
Yes there was DEC VAX/VMS, and later DEC Alpha OpenVMS. We also
did DEC Alpha Unix.
The VMS support stopped before 2002, but release 4.2 still supported
DEC Alpha Unix, DEC Alpha Linux, HP 9000/700, IBM RS6000, SGI
Irix 5 and 6, Itanium Linux, Sun 4.0 and 5.x, IBM OS/390 Open Edition,
Linux x86, FreeBSD x86, and very basic support for Windows (no gui or
debugger, command line only).
12.3. ISO FORTRAN STANDARDISATION HISTORY 101
http://journal.info.unlp.edu.ar/journal/journal30/papers/JCST-Apr11-1.pdf
• Version 1.1, June 2019. Renamed the chapter and added links to the IEEE,
ACM and British Library
• Version 1.0, January 2019. The chapter on other links has been split into 2.
Visit
https://www.acm.org/
for more information.
Visit
https://dl.acm.org/
for access to their digital library.
Here is a quote from that site.
105
106 CHAPTER 13. USEFUL ONLINE RESOURCES
• Online
• Books
• OO Resources by Language
– C-Based Languages
– Common Lisp
– Erlang
– F#
– Fortran
– Go
– Java
– JavaScript
– PHP
– Python
– Ruby
– Smalltalk
http://www.whoishostingthis.com/resources/oo-programming/
13.6 Programming
13.6.1 Calling FORTRAN and C from Java
http://www.csharp.com/javacfort.html