Workspace

Fortran

scientific computing numerical simulation and legacy HPC code

Definition first

What Fortran means

Fortran is a programming language for writing exact instructions, often used for scientific computing numerical simulation and legacy HPC code. Start with one mental model: input goes through steps and becomes output.

Minimum run factsFile main.f90Run gfortran main.f90 && ./a.outHabit Check array dimensions and numeric precision before optimizing
Program

An ordered set of instructions. It reads input, follows rules, and produces output.

Value and variable

A value is data. A variable is the name you use to hold and reuse that data.

Function

A named piece of work. It takes input, does one job, and can return a result.

Runtime

gfortran is the place that actually runs code from main.f90.

First readable code

Program output

entry point output syntax print
print *, 42
Output 42

Language lineage

Fortran family tree

See where Fortran comes from, which languages feel close, and what to learn next.

roots
mathematical notationearly compilers
currentFortranScientific legacy family
familyScientific legacy family
best used for

numerical computing, HPC, and long lived scientific code

Zero base path

1Read one rule2Predict output3Type from memory4Run checklist5Repeat with one change

Question bank

Search before practice

Pick a stage or search across the open programming bank. Jump straight to the matching drill.

18 matching questions
Q 1ChoiceStage 1 definitions

Fortran practice 1

Fortran question 1. Choose the statement that matches printing a value.

Q 2ChoiceStage 1 definitions

Fortran practice 2

Fortran question 2. Choose the statement that matches naming a value.

Q 3ChoiceStage 1 definitions

Fortran practice 3

Fortran question 3. Choose the statement that matches reusable function.

Q 4ChoiceStage 1 definitions

Fortran practice 4

Fortran question 4. Choose the statement that matches basic collection.

Q 5ChoiceStage 1 definitions

Fortran practice 5

Fortran question 5. Choose the statement that matches printing a value.

Q 6ChoiceStage 1 definitions

Fortran practice 6

Fortran question 6. Choose the statement that matches naming a value.

Q 7ChoiceStage 1 definitions

Fortran practice 7

Fortran question 7. Choose the statement that matches reusable function.

Q 8ChoiceStage 1 definitions

Fortran practice 8

Fortran question 8. Choose the statement that matches basic collection.

Q 9ChoiceStage 1 definitions

Fortran practice 9

Fortran question 9. Choose the statement that matches printing a value.

Q 10ChoiceStage 1 definitions

Fortran practice 10

Fortran question 10. Choose the statement that matches naming a value.

Q 11ChoiceStage 1 definitions

Fortran practice 11

Fortran question 11. Choose the statement that matches reusable function.

Q 12ChoiceStage 1 definitions

Fortran practice 12

Fortran question 12. Choose the statement that matches basic collection.

Q 13ChoiceStage 1 definitions

Fortran practice 13

Fortran question 13. Choose the statement that matches printing a value.

Q 14ChoiceStage 1 definitions

Fortran practice 14

Fortran question 14. Choose the statement that matches naming a value.

Q 15ChoiceStage 1 definitions

Fortran practice 15

Fortran question 15. Choose the statement that matches reusable function.

Q 16ChoiceStage 1 definitions

Fortran practice 16

Fortran question 16. Choose the statement that matches basic collection.

Q 17ChoiceStage 1 definitions

Fortran practice 17

Fortran question 17. Choose the statement that matches printing a value.

Q 18ChoiceStage 1 definitions

Fortran practice 18

Fortran question 18. Choose the statement that matches naming a value.

Multiple choice

Fortran practice 1

Q 1Choicenew

Fortran question 1. Choose the statement that matches printing a value.

print *, 42

Reference

Patterns for main.f90

gfortrangfortran main.f90 && ./a.out
Recall from memoryRead a small point then write it back without looking
Trace the codeWrite variable values line by line before you run the answer
Type it yourselfCopy less type more and fix one small error at a time

entry point output syntax print

Program output

print *, 42
  • Run the smallest file first
  • Print one known value
  • Check the output before adding more code

variables assignment types integer

Values and names

integer :: total
total = 42
print *, total
  • Give values readable names
  • Keep one idea per line while learning
  • Trace the value before changing it

function collection Array

Functions and collections

integer function add(a, b)
  integer, intent(in) :: a, b
  add = a + b
end function

integer :: scores(2) = (/40, 2/)
print *, size(scores)
  • Keep functions small
  • Return useful values
  • Use the common collection before reaching for frameworks