Introduction to Fortran 95

18-19 August 2014, Culham Centre for Fusion Energy (CCFE), Abingdon, Oxfordshire

By Leanne Wake, SSI Fellow and Anniversary Research Fellow, Department of Geography, Northumbria University

Highlights

  • Instructor began with ‘We want software engineers, not hackers
  • Course teaching contained themes of sustainability of code - good news for the institute!
  • Extensive, clear course notes
  • Relaxed learning atmosphere

Event report

The Introduction to F95 course was attended by about 12 people and was run by Mr Adrian Jackson of EPCC, Edinburgh.  Attendees were mainly employees of CCFE Culham with some background in physics/maths/engineering and whose participation in the course was mainly mandatory for their terms of employment.

I attended this course from a pedagogic angle: How do you teach someone Fortran (or any other coding language for that matter?)

The basics of Fortran programming were covered: Input and output, data types, array formation and declaration, procedures (e.g. subroutines and functions) migrating on to modules and derived types – e.g. methods which increase the portability of a code.

The format of the day is described here: https://www.archer.ac.uk/training/courses/f95intro.php

And course materials can be viewed at: https://www.archer.ac.uk/training/course-material/2014/08/F95_CCFE/

A maximum of one hour was provided to complete the exercises related to the previous lecture. Because learners work at different paces, this was generally not enough time to complete all the exercises but certainly enough for all to complete the moderately difficult questions and thus have a good footing in Fortran by the end of the two-day course.

The course was advertised as an introduction but the exercises and problems were there to push those more able students.

Lecturing about Fortran, or any code is generally a thankless and fruitless task so the slides were kept to a minimum and AV equipment was mainly used to write the codes ‘live’. All in all, I think that if I had been taught Fortran in this sort of environment as an undergraduate, I don’t think I would have ended up with half as many bad habits as I have now!

This is some of the good practice I will take from the workshop and incorporate in any future courses I reach related to modelling and programming:

Good:

  • Friendly atmosphere where learners were not afraid to ask what could be perceived as ‘simple’ questions.
  • Terminology was explained in ‘plain English’ (see my blog post)
  • Small group teaching
  • Supportive environment
  • The questions each helped to build up the complexity and portability of the code you created from an initial  ‘hello world’ example
  • Course notes were non-domain specific
  • Interactive coding on the lecture screen: every line and its purpose explained clearly to the class as a whole. This is a good teaching method for large groups, rather than running between participants and answering the same question a dozen times – sometimes with different or confusing interpretations.
  • Laptops were provided ( I do forget that not everyone has one )

For future notice:

  • There were some issues getting on to the ARCHER servers, although many had access to their own servers with Linux and Fortran already installed.
  • Integrating the code generation with version control, like Github, would further enhance the sustainability aspect of programming.
  • Logistics: to those unfamiliar with Oxford the bus and rail links to CCFE Culham are very poor.
  • Although no prior knowledge of Fortran was expected, all attendees had some knowledge of Linux command line programming – this tells me that anyone willing to learn Fortran should ideally have some competence in another command line language
  • An extra helper would have been useful.
  • A short section on common Fortran error messages would have been welcomed. In my teaching material I intend to supply bugged code for students to diagnose and rectify. This is a method which helped me to learn the basics of programming.