Jump to my Home Page Send me a message Check out stuff on GitHub Check out my photography on Instagram Check out my profile on LinkedIn Check out my profile on reddit Check me out on Facebook

Mitch Richling: Example Fortran Programs

Author: Mitch Richling
Updated: 2024-05-29

Table of Contents

1. Introduction

These small programs illustrate some of the new features in Fortran 90, 95, 2003, and 2008 from the perspective of a FORTRAN 77 programmer.

Get it all on github: https://github.com/richmit/ex-f90ish/

2. Variable Declarations & Types

variable_decl.f90
Variable specification (declaration)
real_kinds.f90
How to select single and floating point KINDS for real numbers
real_kinds_2008.f90
Better way to select floating point KINDS with Fortran 2008
real_kinds_ieee.f90
How to select KINDS for IEEE floating point numbers
int_kind.f90
How to select various integer KINDS
int_kind_c.f90
How to select fixed size integers via C inter-op
int_kind_2008.f90
Better way to select integer point KINDS with Fortran 2008

3. Various Array Topics

array_dynamic.f90
Dynamic array allocation, use, and de-allocation
array_init1995.f90
Array assignment and declaration in Fortran 95
array_init2003.f90
Array assignment and declaration in Fortran 2003
array_linear_alg.f90
Some linear algebra related techniques
array_sections.f90
Array sections
array_reduction.f90
Array reduction (arithmetic and logical)
array_elemental.f90
ELEMENTAL functions and subroutines.

4. I/O

no_advance_print.f90
How to do non-advancing I/O
format.f90
Format statements

5. Orderless loops

loop_forall.f90
FORALL construct
loopless_where.f90
WHERE construct

6. Program Structure

prog_struct.f90
Typical program structure
mod_struct.f90
Typical module structure
overloading.f90
Function overloading
func_opt_arg.f90
Function optional arguments
func_recursive.f90
Direct recursion with a function

7. Control Structures

case_statement.f90
SWITCH CASE construct
loop_do.f90
DO loop construct

8. Process Environment

proc_args.f90
Command Line Arguments
proc_env.f90
Environment Variables

9. Misc

pointers_linked_list.f90
Pointers: Linked List