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
- Intrinsic data types (integer, real, complex, logical, character)
- iso_varying_string
- Kind parameters and precision
- Constants and parameters
- Operators and expressions
- IEEE standard conformance
Part II – Core Programming Concepts
Chapter 4: Control Flow
Chapter 5: Arrays and Array Operations
- Declaring and allocating arrays
- Array slicing and intrinsic operations
- Whole-array expressions
- Performance implications of array usage
- array constructors
- Formatted and unformatted I/O
- Reading and writing files
- Error handling in I/O
- Unicode
- Special I/O
Chapter 7: Further interaction with the System Environment
- Environment variables
- Command Line arguments
- Command Line parsing
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
-
Creating and using modules
-
Encapsulation and visibility
-
Building multi-file projects
- Build tools
- Build dynamic-link libraries (DLLs)
- Build static libraries
-
Reusability and libraries
Chapter 10: Derived Types and Object-Oriented Features
- Defining derived types
- Type-bound procedures
- Inheritance and polymorphism
- When and when not to use OOP in Fortran
- Design Patterns
- Design patterns
- More on Object-Oriented Programming
Chapter 11: Creating Data Structures
Chapter 12: Memory Management
-
Allocatable arrays and pointers
-
Automatic vs. dynamic memory
-
Common memory errors and debugging tips
-
Using transfer(3) in lieu of a void pointer
- Parallelization
- do concurrent and SIMD
- Coarrays for parallel programming
- Message Passing with OpenMP and MPI
- POSIX Threads
- Fork
- Performance tuning and profiling -Timing * Timing * timer
Chapter 15: Interfacing with Other Languages
- Interoperability
- C interoperability
- C++ interoperability
- Csharp interoperability
- Calling Fortran from Python
- Mixed-language projects
- Julia interoperability
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
- Debugging tools and compiler flags
- Unit testing frameworks for Fortran
- Coverage reports on test suites
- Writing maintainable documentation
- fpm – Fortran package manager
- git, github, gitlab, hg, …
- CD/CI testing
- Tools
Chapter 21: Coding Standards and Style
- Naming conventions
- Code formatting
- Writing readable and maintainable Fortran
Chapter 22: Sub-Topics
- STEM code repositories and resources
- preprocessors
- Operator overloading –opover - extend_dble
- Converting between strings and other types
- Sorting
- Date and Time
- Sleep
- POSIX interfaces
- graphics
- Threads
- Editors and IDEs
- Code Generation?
- AI as used for code generation, discovery, documentation and testing
- Code generation
- Inter-Process Communication
- Numerical Linear Algebra
- GUI and TUI User Interfaces and terminal display control
- STEM File exchange formats
- HDF5
- netCDF
- CSV, TOML, YAML, JSON, …
- XML
- Web Applications
- Embeddable Languages
- software licenses
- Choosing a license
- How licenses are indicated in the code
- Commonly used licenses
Chapter 23: The Future of Fortran
- Upcoming standards and features
- Proposals?
- Community and open-source ecosystem
- Learning resources and next steps
Appendices
- B: Common compiler options
- C: Fortran vs. C/Python syntax comparison
- D: Sample projects and exercises
- E: FAQ
- F: External resources
Revised on December 24, 2025 15:51:05
by
urbanjost
(73.214.44.198)
(12038 characters / 5.0 pages)