Clicky

Fortran Wiki
Guide Index View

Wiki Entries applied to a Fortran Guide

Items on the Fortran Wiki are not directed towards comprising a single document describing Fortran. Given that, organizing a subset of the local entries according to an index outlining a hypothetical book for teaching Fortran provides

  • logical groupings of materials
  • a perspective on what common topics are not yet covered
  • a structure to investigate using AI to generate a subject guide

Writing missing sections and reorganizing this index is encouraged. In addition, it is proposed AI be leveraged to initially create many of the missing topics, which is an interesting exercise in itself.

AI may ultimately replace the need for User manuals by producing personalized responses to queries or by writing code itself, but that time is not fully yet.

Feel free to pick a missing topic and create pertinent files with or without AI; as well as improve the local entries.

Part I – Introduction and Foundations

Chapter 1: Why Fortran Matters

  • History and evolution of Fortran
  • Fortran’s role in scientific and high-performance computing
  • Fortran vs. other scientific languages (C, Matlab, S/R, Matlab/Octave, Python, Julia, Rust, D, …)
  • Overview of modern Fortran standards (circa 1990–2023)

Chapter 2: Getting Started

Chapter 3: Variables, Types, and Expressions

Part II – Core Programming Concepts

Chapter 4: Control Flow

Chapter 5: Arrays and Array Operations

Chapter 6: Input and Output

Chapter 7: Further interaction with the System Environment

Part III – Modular and Structured Programming

Chapter 8: Procedures

  • proceduress. subroutines)
  • Argument passing and intent
  • Recursion and elemental procedures
  • Interfaces and explicit typing
  • Fortran intrinsic procedures reference?(Intrinsic+procedures.markdownMML)

Chapter 9: Modules and Code Organization

Chapter 10: Derived Types and Object-Oriented Features

Chapter 11: Creating Data Structures

Part IV – Modern Fortran and Performance

Chapter 12: Memory Management

Chapter 13: Parallelism and Performance

Chapter 14: Performance

  • Performance tuning and profiling -Timing * Timing * timer

Chapter 15: Interfacing with Other Languages

Part V – Practical Applications

Chapter 16: Numerical Methods in Fortran

  • Solving linear systems
  • Numerical integration and differentiation
  • Random numbers and Monte Carlo methods

Chapter 17: Scientific and Engineering Case Studies

  • Physics simulation example
  • Climate or fluid modeling example
  • Data analysis workflows

Chapter 18: Working with Legacy Fortran Code

  • Understanding Fortran 77 code
  • Modernizing old programs
  • Common pitfalls and refactoring strategies

Part VI – Best Practices and the Future

Chapter 19: Debugging, Testing, and Documentation

Chapter 20: Additional tools

  • fpm – Fortran package manager
  • git, github, gitlab, hg, …
  • CD/CI testing
  • Tools

Chapter 21: Coding Standards and Style

Chapter 22: Sub-Topics

Chapter 23: The Future of Fortran

  • Upcoming standards and features
  • Proposals?
  • Community and open-source ecosystem
  • Learning resources and next steps

Appendices