21st Century Fortran
latest
  • Introduction
  • Getting started
  • Structuring your code
  • Input and output
  • Controlling the code flow
  • Working with arrays
  • Bad practices
  • Good practices
  • Parallelization
  • Performance
  • Debugging
  • What else is there
21st Century Fortran
  • Docs »
  • Modern Fortran for Modern People
  • Edit on GitHub

Modern Fortran for Modern PeopleΒΆ

  • Introduction
  • Getting started
    • Before you start
    • Compiling a hello world program
    • Building portable Fortran code with CMake
    • Fixed or free form
  • Structuring your code
    • Subroutines
    • Functions
    • Modules
    • Organizing larger projects
    • Passing information within the code
  • Input and output
    • Writing to the screen/stdout
    • Writing/reading to/from the disk
  • Controlling the code flow
    • Branching with if/else
    • Branching with case
    • Loops
  • Working with arrays
    • Static arrays
    • Dynamic arrays
    • Custom dynamic allocation schemes
    • Passing arrays to functions/subroutines
    • Friendly advice
  • Bad practices
    • Common blocks
    • implicit.h
    • SIXLTR variables
    • Fixed-form
    • Large static arrays
    • Long subroutines
    • Functional programming features
    • Elemental functions
    • Pure functions
  • Good practices
    • Version control
    • implicit none
    • Implementation hiding
    • Module names match file names
    • File suffix
    • Explicitly list all data and methods used from a module
    • Good comments
    • Object-oriented programming features
    • Private and public methods and data
  • Parallelization
    • MPI
    • OpenMP
    • CUDA
  • Performance
    • Premature optimization
    • Profiling
    • Optimization aspects
    • Using math libraries
  • Debugging
    • Ye olde print statement debugging
    • Gdb
    • Valgrind
  • What else is there
    • Intrinsic functions and subroutines
    • Kinds
    • Interoperability with other languages
Next

© Copyright 2014, Radovan Bast. Revision f21a12e3.

Built with Sphinx using a theme provided by Read the Docs.