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
Read the Docs
v: latest
Versions
latest
Downloads
pdf
htmlzip
epub
On Read the Docs
Project Home
Builds
Free document hosting provided by
Read the Docs
.