Affiliate disclosure

Book titles on this page link to Amazon. As an Amazon Associate, DataField.Dev earns from qualifying purchases — at no additional cost to you.

Further Reading: Derived Types

Where to deepen your grasp of derived types, type-bound procedures, and the design instincts that turn them into good data structures. Sources are tagged Tier 1 (works we are confident exist and recommend) and Tier 2 (real and worth seeking, but confirm the current edition/URL yourself). The object-oriented features that build on this chapter get their own reading list in Chapter 10.

The canonical books

  • Metcalf, Reid, and Cohen, Modern Fortran Explained (Oxford University Press). The authoritative reference for the exact rules of derived types, type-bound procedures, parameterized derived types, and allocatable components. When you need to know precisely what the standard guarantees about deep-copy or the passed object, this is the book. Tier 1.
  • Milan Curcic, Modern Fortran: Building Efficient Parallel Applications (Manning). Project-driven and written in the same modern-style spirit as this book; its worked types and methods are excellent models for designing your own. Tier 1.
  • Stephen Chapman, Fortran for Scientists and Engineers (McGraw-Hill). The widely adopted teaching text; its derived-type chapters give a gentler, example-heavy on-ramp if you want a second explanation. Tier 1.

Design wisdom (language-agnostic, directly applicable)

  • Frederick P. Brooks, Jr., The Mythical Man-Month (Addison-Wesley). The source of this chapter's epigraph ("show me your tables…"). Its argument that data structure is primary and algorithm secondary is the whole justification for spending a chapter on how to shape your data. Tier 1.
  • The "Array-of-Structures vs Structure-of-Arrays" discussion in HPC literature and vendor optimization guides. Search the term; Intel's and NVIDIA's optimization guides, and many HPC course notes, treat the layout trade this chapter previews. Ground for the performance intuition you will formalize in Part VII. Tier 2.

Free and online

  • fortran-lang.org — the "Derived Types" and "Type-Bound Procedures" learning pages. Concise, runnable, and current; the quickest way to see alternative examples of exactly what this chapter teaches. Tier 1.
  • The GCC / gfortran documentation, "Compiler Characteristics" and Fortran 2003/2008 status pages. The honest place to check what is and is not supported — especially relevant for parameterized derived types, whose support has historically lagged. If a PDT example misbehaves, start here. Tier 1.
  • The Fortran Discourse (fortran-lang.discourse.group). Search it for real-world threads on allocatable-vs-pointer components and on PDT compiler bugs; the discussion is candid and practical. Tier 1.

Primary source

  • ISO/IEC 1539-1:2018 (the Fortran 2018 standard), the clauses on derived types and type-bound procedures. Dense, but the final word on the rules — the passed-object requirement, structure constructors, and the semantics of allocatable components are all defined here. Consult it when a secondary source is ambiguous. Tier 1.

Tools

  • Compiler Explorer (godbolt.org), with gfortran selected. Paste a type-bound-procedure call and see that, without polymorphism, it compiles to a direct, inlined call — concrete evidence for the Performance Note in §9.2 that methods are free here. Tier 1.

Suggested order

  1. Skim the fortran-lang.org derived-types and type-bound-procedure pages now, for a second set of examples beside this chapter's.
  2. Keep Metcalf/Reid/Cohen at hand for the exact rule whenever you are unsure (start with the allocatable-component semantics — the deep-copy guarantee is worth reading in the standard's own words).
  3. Read the gfortran status pages before you invest in parameterized derived types, so the compiler's limits are no surprise.
  4. Read Brooks once — a few pages — to understand why getting the data structure right is the leverage point, not a detail.
  5. Save the AoS/SoA material for when you reach Part VII; you will have measured the effect by then, and it will read very differently.