Update on Fortran lecture series

This is an update to the discussion about an “open access” lecture series for Fortran I mentioned a while back (Language Marketing for Julia compared to Fortran - #79 by gnikit). I am meeting with people from Imperial’s Graduate School early next week to discuss the idea, its feasibility (and everything else). My original proposition was to make a lecture series that would be available to the wider public, not just Imperial College Researchers, about the language’s modern features. Specifically, I provisionally proposed the following:

  • OOP
  • Co-arrays
  • usage of the standardised library
  • package managers

Additional suggestions

  • Fortran/C interoperability
  • OpenMP
  • Generated documentation
  • MPI

I understand that this is relatively short notice but I would be keen to get other people’s opinion on what the lecture series should contain.

Also I would be interested in exploring the idea of the lecture series being made by Fortran-Lang and not just a random person (i.e. me), thus giving some credence to the lecture series and making the organisation more public.

Hopefully, I will have a real updates on the matter soon!


NOTE:

If you want to get in contact with me but do not want/cannot post on this thread please send me a private message

5 Likes

Sounds really interesting, thanks for sharing this with the community. If there is an option for contributing let us know.


For my current activities with Fortran, I’m usually most concerned with

  • package management / distribution
  • Fortran/C interop.
  • OpenMP
  • (generated) documentation
3 Likes

Thanks @awvwgk I will add them to the list (especially the interoperability with C is a must know).

As for the contribution aspect that would be ideal for me as well, to get Fortran-lang vetted members to participate either by reviewing slides or presenting themselves. I suspect the latter might be a tough sell but I will bring it up.

What I was hoping we could get out of this is lecture slides produced and approved by the Fortran Language Organisation and taught by the Graduate School of Imperial College. Although, for a number of reasons that might not be feasible and we will have to pivot.

Another thing that is important IMO is MPI although teaching that is a nightmare. For the MSc students in the college we teach 2.5 weeks, 5 days a week of 3h lectures 3h practicals on C++ MPI and we still just brush the surface.

2 Likes

Hi @gnikit , I would add

  1. How to use the fpm
  2. How to deal with large precision numbers and accuracy (I feel this is needed especially in academic and research circles)
  3. Explain things like “segmentation faults”, and why they happen.
  4. Design patterns that can be implemented in Fortran (This is also important).
  5. When is it a good idea to make your program modular (ie. splitting pieces of it into functions and subroutines) vs when it’s not.
  6. This may be optional, how to use or pass data to visualization packages (ie. Gnuplot, gtk-fortran, matplotlib, etc)

Looking forward to the lecture series :slight_smile:

6 Likes

Also, it would be great to add and explain

“when to use OOP and when not to use OOP”.

That is should array intensive parts be implemented using OOP in Fortran or just procedures in Fortran work perfectly? Some examples will be great to understand such things.

5 Likes

Who is the target audience?

What I personally like and use the most from Fortran is just pure procedural style, everything in arguments using multidimensional arrays. So examples how to solve problems and how to design and develop solvers for various problems: fluid dynamics, molecular dynamics, electronic structure, ODE and PDE solvers (finite difference, elements and volumes; 1D, 2D and 3D), etc. How to use MPI and OpenMP to parallelize. One can get very very far with this approach, often that is all that is needed to create production grade, high performance code. For large multiphysics codes, one then typically needs to do all kinds of “accounting” where OOP features can be helpful (also if 3rd party frameworks are used, such as AMReX).

5 Likes

I’d certainly be keen to lend support this from the position of the BCS Fortran SG. These are the kinds of talks that we have done in the past but, largely due to lack of resources, we have tended to concentrate all our talks into one day (pre-covid era). We have people from academia, industry, compiler companies (like Intel & NAG) plus ARM etc. We also have WG5 people to talk about standards development.

2 Likes