# Literature for Modern Fortran Lectures

**URL:** <https://fortran-lang.discourse.group/t/literature-for-modern-fortran-lectures/3084>\
**Category:** Help\
**Created:** [March 31, 2022, 9:56am UTC](https://fortran-lang.discourse.group/t/literature-for-modern-fortran-lectures/3084 "2022-03-31T09:56:47Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Carltoffel](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/carltoffel/32/1680_2.png) [@Carltoffel](https://fortran-lang.discourse.group/u/Carltoffel)\
**Post date:** [March 31, 2022, 9:56am UTC](https://fortran-lang.discourse.group/t/literature-for-modern-fortran-lectures/3084/1 "2022-03-31T09:56:47Z")

</div>

I already mentioned it in some comments:  
**I am going to take over the Fortran lecture at my local university** (Fachhochschule Aachen, Germany).

It will be my first own lecture and since I’m 25 years old, I would consider me to be rather inexperienced, therefore I could use some help!

First of all some more details about the course:

- It was and will be a so called “Blockkurs” (block course) which means the lessons will not be stretched over a whole semester. Instead it will be a compact course that takes **approx. 2-3 weeks with 4-5 h each day**.
- The course consisted of **lectures and hands-on exercises** (~50/50)
- It was a **German** course and I tend to keep it in German at the beginning, because I’m way more confident in my native language
- I can overtake the lecture notes and slides, which are basically the same! They “grew” from 199x and I definitely want to **start over with new lecture notes** , but since I don’t have that much time during my work (\< 1 day/week), I plan to do it **step by step** and use the old lecture notes as fallback.

My ideas for the new lecture notes:

- I want to do it in **LaTeX**
- I want them to be “ **open source** ”, which means people can **collaborate** and/or use the slides for their own lectures
- I want a **modular structure** to be able to easily adopt the lectures for specific target audience. E.g. there should be one or a few modules for the basics, and then there are exchangeable advanced modules which build on top of them, e.g. parallel programming. Maybe these modules dependencies can build a “Fortran skill tree”.

Now to my first question (there will be more in the future, for sure):  
To build the new lecture notes, I need **literature for inspiration** for the structure of the course and to be able to **reference** them.

I know there are some authors in this community, which is perfect!  
I think I want to buy and read two or three books, depending on how much they overlap.  
**Which books would you suggest me to buy and in which order should I read them?**

_Any suggestions for the course in general are welcome, too!_

---

<div class="post-metadata">

**Author:** ![vmagnin](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/vmagnin/32/28_2.png) [@vmagnin](https://fortran-lang.discourse.group/u/vmagnin)\
**Post date:** [March 31, 2022, 10:09am UTC](https://fortran-lang.discourse.group/t/literature-for-modern-fortran-lectures/3084/2 "2022-03-31T10:09:07Z")

</div>

- Curcic, M.\* . 2020. [**Modern Fortran: Building Efficient Parallel Applications**](https://www.manning.com/books/modern-fortran). 1st ed. Shelter Island, NY. Manning Publications
- Metcalf, M., Reid, J. and Cohen, M.\* . 2018. [**Modern Fortran Explained**](https://global.oup.com/academic/product/modern-fortran-explained-9780198811893). 5th ed. Oxford, UK. Oxford University Press
- Markus, A.\* . 2012. [**Modern Fortran in Practice**](https://www.cambridge.org/core/books/modern-fortran-in-practice/BC5BD23B2E478B4D457C5D6265BA9363). 1st ed. Cambridge, UK. Cambridge University Press

The first one is very pedagogical, the second the best reference book, the third brings practical information for scientists.

I also like this one for style advices:

- Clerman, N. S. and Spector, W.\* . 2011. [**Modern Fortran: Style and Usage**](https://doi.org/10.1017/CBO9781139027687). 1st ed. Cambridge. Cambridge University Press

More books here: [Learn Fortran - Fortran Programming Language](https://fortran-lang.org/learn/)

---

<div class="post-metadata">

**Author:** ![msz59](https://avatars.discourse-cdn.com/v4/letter/m/3d9bf3/32.png) [@msz59](https://fortran-lang.discourse.group/u/msz59)\
**Post date:** [March 31, 2022, 10:14am UTC](https://fortran-lang.discourse.group/t/literature-for-modern-fortran-lectures/3084/3 "2022-03-31T10:14:12Z")

</div>

> [@Carltoffel](#):
>
> Instead it will be a compact course that takes **approx. 2-3 weeks with 4-5 h each day**.

This sums up to more or less 60 hours, equivalent to a typical 1-semester course. I have been teaching Fortran for (too) many years within such a 60h (30/30 lecture/exercise lab) and my experience is such that while it was more than enough for a Fortran 77 course back in 1990s, it is definitely too short to put the whole Modern Fortran. So you’ll have to carefully choose what to include and what to omit.

---

<div class="post-metadata">

**Author:** ![alozada](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/alozada/32/298_2.png) [@alozada](https://fortran-lang.discourse.group/u/alozada)\
**Post date:** [March 31, 2022, 10:14am UTC](https://fortran-lang.discourse.group/t/literature-for-modern-fortran-lectures/3084/4 "2022-03-31T10:14:29Z")

</div>

> [@Carltoffel](#):
>
> Any suggestions for the course in general are welcome, too!

You could talk about Fortran Package Manager

> **[GitHub - fortran-lang/fpm: Fortran Package Manager (fpm)](https://github.com/fortran-lang/fpm)**
>
> Fortran Package Manager (fpm). Contribute to fortran-lang/fpm development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![vmagnin](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/vmagnin/32/28_2.png) [@vmagnin](https://fortran-lang.discourse.group/u/vmagnin)\
**Post date:** [March 31, 2022, 10:18am UTC](https://fortran-lang.discourse.group/t/literature-for-modern-fortran-lectures/3084/5 "2022-03-31T10:18:16Z")

</div>

> [@alozada](#):
>
> You could talk about Fortran Package Manager

And there is a German translation of the doc: [Fortran-Paketmanager (fpm) — Fortran Package Manager](https://fpm.fortran-lang.org/de/index.html)

---

<div class="post-metadata">

**Author:** ![Carltoffel](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/carltoffel/32/1680_2.png) [@Carltoffel](https://fortran-lang.discourse.group/u/Carltoffel)\
**Post date:** [March 31, 2022, 10:18am UTC](https://fortran-lang.discourse.group/t/literature-for-modern-fortran-lectures/3084/6 "2022-03-31T10:18:27Z")

</div>

> [@alozada](#):
>
> You could talk about Fortran Package Manager

I will! We had a discussion about it a few days ago. I think this will be the first thing the students will learn in practice.

---

<div class="post-metadata">

**Author:** ![msz59](https://avatars.discourse-cdn.com/v4/letter/m/3d9bf3/32.png) [@msz59](https://fortran-lang.discourse.group/u/msz59)\
**Post date:** [March 31, 2022, 10:46am UTC](https://fortran-lang.discourse.group/t/literature-for-modern-fortran-lectures/3084/7 "2022-03-31T10:46:55Z")

</div>

There is also  
_Chapman, S. J._ . 2018. [**Fortran for Scientists and Engineers**](https://www.mheducation.com/highered/product/fortran-scientists-engineers-chapman/M9780073385891.html). 4th ed. New York. McGraw-Hill Education  
with plethora of code samples (downloadable from the [book page](https://highered.mheducation.com/sites/0073385891/student_view0/source_codes_and_data_files.html)), _Good programming practice_ and _Programming pitfalls_ boxes, chapter summaries, exercises, quizzes. According to preface, the book is accompanied by an Instructor’s Manual, containing the solutions to all end-of-chapter exercises. I tried to find that Manual, to no success. Maybe you have to purchase the book as an instructor to get it.

---

<div class="post-metadata">

**Author:** ![alozada](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/alozada/32/298_2.png) [@alozada](https://fortran-lang.discourse.group/u/alozada)\
**Post date:** [March 31, 2022, 11:14am UTC](https://fortran-lang.discourse.group/t/literature-for-modern-fortran-lectures/3084/8 "2022-03-31T11:14:30Z")

</div>

For

> [@Carltoffel](#):
>
> - I want to do it in **LaTeX**
> - I want them to be “ **open source** ”, which means people can **collaborate** and/or use the slides for their own lectures

The `latex-github-collab` template by Laurence @lkedward

> **[GitHub - LKedward/latex-github-collab: A Github template for writing LaTeX...](https://github.com/LKedward/latex-github-collab)**
>
> A Github template for writing LaTeX documents collaboratively with automatic rendering using Github actions. - GitHub - LKedward/latex-github-collab: A Github template for writing LaTeX documents c...

---

<div class="post-metadata">

**Author:** ![Carltoffel](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/carltoffel/32/1680_2.png) [@Carltoffel](https://fortran-lang.discourse.group/u/Carltoffel)\
**Post date:** [March 31, 2022, 11:26am UTC](https://fortran-lang.discourse.group/t/literature-for-modern-fortran-lectures/3084/9 "2022-03-31T11:26:34Z")

</div>

Thank you very much for this one.  
Maybe I have to overthink if LaTeX is still the best choice, because it would be very nice to have more options for the output format, e.g. html to host it on a website.  
At least it might be very useful for other projects.

---

<div class="post-metadata">

**Author:** ![vmagnin](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/vmagnin/32/28_2.png) [@vmagnin](https://fortran-lang.discourse.group/u/vmagnin)\
**Post date:** [March 31, 2022, 12:16pm UTC](https://fortran-lang.discourse.group/t/literature-for-modern-fortran-lectures/3084/10 "2022-03-31T12:16:44Z")

</div>

> [@Carltoffel](#):
>
> Maybe I have to overthink if LaTeX is still the best choice, because it would be very nice to have more options for the output format, e.g. html to host it on a website.

Maybe pandoc can help:

> **[LaTeX to HTML via Pandoc — Dan W Joyce](https://www.danwjoyce.com/data-blog/2018/2/20/latex-to-html-via-pandoc)**
>
> Further along a path to avoid all Microsoft products in any workflow ... A post mainly to remind myself of how to do this in the future, maybe of use to others. So I write pretty much everything in LaTeX now - it gracefully handles everything...

---

<div class="post-metadata">

**Author:** ![Beliavsky](https://avatars.discourse-cdn.com/v4/letter/b/ba8739/32.png) [@Beliavsky](https://fortran-lang.discourse.group/u/Beliavsky)\
**Post date:** [March 31, 2022, 12:55pm UTC](https://fortran-lang.discourse.group/t/literature-for-modern-fortran-lectures/3084/11 "2022-03-31T12:55:08Z")

</div>

The Fortran Wiki has lists of [courses](https://fortranwiki.org/fortran/show/Fortran+Courses) and [tutorials](https://fortranwiki.org/fortran/show/Tutorials). You mentioned that your course will be in German, at least to start. When your notes are ready could you please link to them at the [Non-English Resources](https://fortranwiki.org/fortran/show/Non-English+Resources) page, which is currently sparse?

---

<div class="post-metadata">

**Author:** ![everythingfunctional](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/everythingfunctional/32/176_2.png) [@everythingfunctional](https://fortran-lang.discourse.group/u/everythingfunctional)\
**Post date:** [March 31, 2022, 4:05pm UTC](https://fortran-lang.discourse.group/t/literature-for-modern-fortran-lectures/3084/12 "2022-03-31T16:05:16Z")

</div>

When you have your materials prepared, I’d recommend submitting a paper to the [Journal of Open Source Education](https://jose.theoj.org/) to publicize it.

---

<div class="post-metadata">

**Author:** ![vmagnin](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/vmagnin/32/28_2.png) [@vmagnin](https://fortran-lang.discourse.group/u/vmagnin)\
**Post date:** [March 31, 2022, 4:53pm UTC](https://fortran-lang.discourse.group/t/literature-for-modern-fortran-lectures/3084/13 "2022-03-31T16:53:26Z")

</div>

> When you have your materials prepared, I’d recommend submitting a paper to the [Journal of Open Source Education](https://jose.theoj.org/) to publicize it.

Do you think they can accept a paper (in English) about educational material in German (or of course any other non-English language)? I have searched an answer in [https://jose.theoj.org/about](https://jose.theoj.org/about) but found no clue.

---

<div class="post-metadata">

**Author:** ![MarDie](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/mardie/32/54_2.png) [@MarDie](https://fortran-lang.discourse.group/u/MarDie)\
**Post date:** [March 31, 2022, 6:17pm UTC](https://fortran-lang.discourse.group/t/literature-for-modern-fortran-lectures/3084/14 "2022-03-31T18:17:36Z")

</div>

You can try to get the slides from hlrs Stuttgart. They have excellent courses

---

<div class="post-metadata">

**Author:** ![rwmsu](https://avatars.discourse-cdn.com/v4/letter/r/48db29/32.png) [@rwmsu](https://fortran-lang.discourse.group/u/rwmsu)\
**Post date:** [March 31, 2022, 7:59pm UTC](https://fortran-lang.discourse.group/t/literature-for-modern-fortran-lectures/3084/15 "2022-03-31T19:59:16Z")

</div>

There are lots of tutorials etc on the Web most in F95 though. Check

[Tutorials in Fortran Wiki](https://fortranwiki.org/fortran/show/Tutorials)

Also, I found the material from the following two short courses at the  
UK Archer center to be helpful

> **[ARCHER » Modern Fortran](https://www.archer.ac.uk/training/course-material/2017/07/mfortran_camb/index.php)**
>
> ARCHER is a Cray XC30 system providing HPC facilities for UK researchers.

> **[ARCHER » Object-oriented Programming with Fortran](https://www.archer.ac.uk/training/course-material/2018/02/oofortran-daresbury/index.php)**
>
> ARCHER is a Cray XC30 system providing HPC facilities for UK researchers.

Along with the LRZ short course material at

[https://doku.lrz.de/display/PUBLIC/Programming+with+Fortran](https://doku.lrz.de/display/PUBLIC/Programming+with+Fortran)

Edit

If I were asked to teach a Fortran class to undergraduates as a first programming language, I would probably chose Chapman’s book as the required text or primary reference. I think it’s structure, exercises, examples etc are more in line with a college course text than some of the other Fortran books mentioned which I consider excellent references for people that already know Fortran 77/90 and want to learn new features but not what I would use to teach undergraduates. Just my humble opinion.

---

<div class="post-metadata">

**Author:** ![everythingfunctional](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/everythingfunctional/32/176_2.png) [@everythingfunctional](https://fortran-lang.discourse.group/u/everythingfunctional)\
**Post date:** [March 31, 2022, 8:35pm UTC](https://fortran-lang.discourse.group/t/literature-for-modern-fortran-lectures/3084/16 "2022-03-31T20:35:39Z")

</div>

I’m not sure. Would be worth asking though.

---

<div class="post-metadata">

**Author:** ![FortranFan](https://avatars.discourse-cdn.com/v4/letter/f/96bed5/32.png) [@FortranFan](https://fortran-lang.discourse.group/u/FortranFan)\
**Post date:** [April 1, 2022, 12:01am UTC](https://fortran-lang.discourse.group/t/literature-for-modern-fortran-lectures/3084/17 "2022-04-01T00:01:31Z")

</div>

> [@rwmsu](#):
>
> If I were asked to teach a Fortran class to undergraduates as a first programming language, I would probably chose Chapman’s book as the required text or primary reference

+1

---

<div class="post-metadata">

**Author:** ![CRquantum](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/crquantum/32/730_2.png) [@CRquantum](https://fortran-lang.discourse.group/u/CRquantum)\
**Post date:** [April 1, 2022, 5:05am UTC](https://fortran-lang.discourse.group/t/literature-for-modern-fortran-lectures/3084/18 "2022-04-01T05:05:41Z")

</div>

+1. If I remember correctly when I first post questions here, @FortranFan suggested me to read a Fortran book. Although I was slightly bothered at that time, I bought Chapman’s book which is a very comprehensive book which covered F2008 and some F2015. The only draw back is that it does not cover F2018. However even F2008 and some F2015 in many cases perhaps are more than enough.

My criterion is very simple, the book needs to cover modern Fortran and it has to be as thick as possible, LOL. Besides the content, I would like to talk about the quality of Chapman’s book itself. I did not buy the US version, I bought new soft cover international version on abebooks at around $40. To my great surprise, the quality of the international version is extremely good! The paper quality is super decent and the glue is super thick.

 ![thumbnail_IMG_1015](https://global.discourse-cdn.com/free1/uploads/fortran_lang/original/2X/f/f2bc7c7aa42513d1276199a663531f6218e357fb.jpeg)

Definitely truly printed from McGraw Hill Education and can last perhaps forever, and way much better than those Amazon’ printed books (you know those printed at San Bernardino or Las Vegas, you know those books which are ‘print as needed’ which means they are printed after you ordered them ).

---

<div class="post-metadata">

**Author:** ![Carltoffel](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/carltoffel/32/1680_2.png) [@Carltoffel](https://fortran-lang.discourse.group/u/Carltoffel)\
**Post date:** [April 1, 2022, 6:20am UTC](https://fortran-lang.discourse.group/t/literature-for-modern-fortran-lectures/3084/19 "2022-04-01T06:20:22Z")

</div>

I forgot a very important piece of information:

When attending the course, the students have learned at least to program with Java, C/C++ and Python.  
But it would be still good to have parts/modules in the lecture notes that cover basic programming skills in order to make them accessible for programming newbies.

---

<div class="post-metadata">

**Author:** ![rwmsu](https://avatars.discourse-cdn.com/v4/letter/r/48db29/32.png) [@rwmsu](https://fortran-lang.discourse.group/u/rwmsu)\
**Post date:** [April 1, 2022, 1:39pm UTC](https://fortran-lang.discourse.group/t/literature-for-modern-fortran-lectures/3084/20 "2022-04-01T13:39:41Z")

</div>

I also should have added another LRZ link

[https://doku.lrz.de/display/PUBLIC/PRACE+Course%3A+Advanced+Fortran+Topics](https://doku.lrz.de/display/PUBLIC/PRACE+Course%3A+Advanced+Fortran+Topics)

Looks like the material there does a good job of covering CAF.

[Next page](https://fortran-lang.discourse.group/t/literature-for-modern-fortran-lectures/3084.md?page=2)
