What lives here

Fifty short lessons, one unbroken chain: every page ends with a link to the next one, so you can read the course start to finish without ever wondering where to click. Each lesson teaches one idea with standard-conforming Fortran examples, from the first program to parallel coarrays:

  1. Start here: What is Fortran and where it runs — then follow the chain through lesson 50.
  2. Language core, lessons 2-20: install, first program, structure, types, kinds, operators, conditions, loops, arrays, sections, strings, IO, files, procedures, modules, USE, INTENT, OPTIONAL, interfaces.
  3. Design and parallelism, lessons 21-33: derived types, type-bound procedures, OOP, overloading, finalization, allocatables, pointers, DO CONCURRENT, coarrays, OpenMP, namelists, IEEE arithmetic, intrinsics.
  4. Practice and tooling, lessons 34-46: random numbers, strings, CLI args, environment, error stop, testing, builds, debugging, C interop, fixed-form migration, numeric models, performance, the modern Fortran tour.
  5. Finish, lessons 47-50: two capstones (stats tool and 1D heat equation), the style guide, and the hero roadmap with every lesson on one page.

How to use this course

Type every example, do not just read it. Compile each program with gfortran -Wall -Wextra before moving on - the course assumes your hands remember lesson 3 by the time lesson 16 arrives.

Two rules carry the whole course: implicit none in every unit, and intent on every dummy argument.

Search this site

Channel @aofeed Chat @aofeedchat

Contacts and cooperation:
I recommend our hosting beget.com
Write to info@aredel.com if you:
1. Want to write an article for our site or translate an article into your native language.
2. Want to place thematically relevant ads on the site.
3. Ads on my site pass maximum censorship. If you see an ad block unsuitable for school-age children, shocking or misleading - please contact us by e-mail
4. Found a mistake, inaccuracy, bug, etc. on the site. ... .......
5. Articles can be shared on social media by clicking a network icon: