Course Overview

What this Fortran course covers, how to use it, prerequisites.

A self-contained, hands-on course covering modern Fortran (Fortran 90 through Fortran 2023) with notes on legacy FORTRAN 77: program structure, types and kinds, arrays, procedures, modules, derived types, pointers, file I/O, object-oriented programming, generic programming, C/Python interoperability, parallel programming (OpenMP, MPI, coarrays, do concurrent, GPUs), numerical libraries, performance, testing, and modern tooling (fpm, CMake, LFortran). Every chapter has runnable examples and exercises.

Course Map

Part I — Foundations Introduction to Fortran Compilers, Installation & Tooling Program Structure & Your First Program Variables, Data Types & Kinds Constants, Literals & Parameters Operators & Expressions Basic Input/Output Part II — Core Language Array Operations & Intrinsics Procedures: Functions & Subroutines Advanced Procedure Features Pointers & Dynamic Data Structures File Input/Output Formatted I/O in Depth

Legacy FORTRAN 77 Features & Modernization Part III — Advanced Fortran

Generic Programming & Operator Overloading Parameterized Derived Types & Submodules Interoperability with C Fortran & Python (f2py, ctypes, others) IEEE Arithmetic & Numerical Precision Parallel Programming with OpenMP Distributed Memory with MPI Coarrays & do concurrent

GPU Programming: OpenACC, OpenMP Offload, CUDA Fortran Numerical Libraries: BLAS, LAPACK, FFTW, stdlib Debugging, Testing & Documentation Build Systems: Make, CMake, fpm Fortran 2018 & 2023 Features

Part IV — Applications & Real-World Fortran Numerical Methods in Fortran Scientific Computing Case Studies Best Practices & Style

Appendices: Cheat Sheet, Keywords, Intrinsics, Resources, Study Plan