Fortran
Fortran is the oldest programming language still in widespread use. The language has evolved considerably since it was first released in 1957. Fortran was original developed for scientific and engineering applications, and remains especially suited to numeric computation and scientific computing. By convention, versions before Fortran 90 are spelled with all uppercase letters (e.g. FORTRAN IV, FORTRAN 66, FORTRAN 77), while starting with Fortran 90, the mixed case spelling is used (i.e. Fortran 90, Fortran 95, Fortran 2003 and Fortran 2008). The most recent standard is Fortran 2018 (ISO/IEC 1539-1:2018).
FORTRAN 77, being quite old, lacks almost everything one expects from a modern programming language. It uses a fixed-length line and column oriented line format which was motivated by punch cards. Due to its age, and since FORTRAN compilers generally gave very good performance for numerical code, a lot of code, especially scientific code, was written in FORTRAN. Also, for quite a while there was no free Fortran 90 compiler, which also caused a lot of FORTRAN 77 code to be written even quite some time after Fortran 90 was standardized. Because of the large body of code written in FORTRAN 77 it remains relevant today. Indeed, every modern Fortran compiler still accepts FORTRAN 77 code.
Fortran 90 was a major revision of the language. It introduced a new free-form source code format, modern programming language features like modules, pointers and user-defined types, an improved type system for built-in types and superiour built-in array handling. Newer Fortran standards (Fortran 2003 and Fortran 2008) added further modern features, like support for object oriented programming, inheritance, polymorphism, parallel processing, and interoperability with the C programming language.
Tasks
- 100 doors
- 15 Puzzle Game
- 15 puzzle solver
- 2048
- 24 game
- 24 game/Solve
- 4-rings or 4-squares puzzle
- A+B
- ABC Problem
- AKS test for primes
- Abstract type
- Abundant, deficient and perfect number classifications
- Accumulator factory
- Ackermann function
- Address of a variable
- Align columns
- Aliquot sequence classifications
- Amicable pairs
- Angle difference between two bearings
- Animate a pendulum
- Anonymous recursion
- Append a record to the end of a text file
- Apply a callback to an array
- Arbitrary-precision integers (included)
- Arena storage pool
- Arithmetic-geometric mean
- Arithmetic/Complex
- Arithmetic/Integer
- Arithmetic/Rational
- Array concatenation
- Array length
- Arrays
- Assertions in design by contract
- Averages/Arithmetic mean
- Averages/Mean angle
- Averages/Mean time of day
- Averages/Median
- Averages/Mode
- Averages/Pythagorean means
- Averages/Root mean square
- Averages/Simple moving average
- Babbage problem
- Balanced brackets
- Barnsley fern
- Benford's law
- Binary digits
- Binary search
- Bitmap/Bézier curves/Cubic
- Bitmap/Bézier curves/Quadratic
- Bitmap/Flood fill
- Bitmap/Histogram
- Bitmap/Midpoint circle algorithm
- Bitmap/Read a PPM file
- Bitmap/Write a PPM file
- Bitwise operations
- Boolean values
- Box the compass
- Bresenham's Line Algorithm
- Brownian tree
- Bulls and cows
- Bulls and cows/Player
- CRC-32
- CSV to HTML translation
- CUSIP
- Caesar cipher
- Calculating the value of e
- Calendar
- Call a foreign-language function
- Call a function
- Call a function in a shared library
- Call an object method
- Carmichael 3 strong pseudoprimes
- Case-sensitivity of identifiers
- Catalan numbers
- Catamorphism
- Chaos game
- Character codes
- Check that file exists
- Cholesky decomposition
- Circles of given radius through two points
- Classes
- Closest-pair problem
- Collections
- Combinations
- Combinations with repetitions
- Comma quibbling
- Command-line arguments
- Comments
- Compare a list of strings
- Compile-time calculation
- Compound data type
- Concurrent computing
- Conditional structures
- Conjugate transpose
- Constrained genericity
- Constrained random points on a circle
- Continued fraction
- Convert decimal number to rational
- Convert seconds to compound duration
- Copy a string
- Count in factors
- Count in octal
- Count occurrences of a substring
- Cramer's rule
- Create a file
- Create a file on magnetic tape
- Create a two-dimensional array at runtime
- Create an HTML table
- Cumulative standard deviation
- Damm algorithm
- Date format
- Day of the week
- Decimal floating point number to binary
- Deconvolution/1D
- Define a primitive data type
- Delete a file
- Department Numbers
- Detect division by zero
- Determinant and permanent
- Determine if a string is numeric
- Digital root
- Digital root/Multiplicative digital root
- Discordian date
- Documentation
- Dot product
- Doubly-linked list/Definition
- Doubly-linked list/Element definition
- Doubly-linked list/Element insertion
- Doubly-linked list/Traversal
- Draw a clock
- Dutch national flag problem
- Element-wise operations
- Emirp primes
- Empty program
- Empty string
- Enforced immutability
- Entropy
- Enumerations
- Environment variables
- Equilibrium index
- Ethiopian multiplication
- Euler method
- Euler's sum of powers conjecture
- Evaluate binomial coefficients
- Even or odd
- Evolutionary algorithm
- Execute Brainfuck
- Execute HQ9+
- Execute a system command
- Exponentiation operator
- Exponentiation order
- Extend your language
- Extensible prime generator
- Extract file extension
- Extreme floating point values
- Factorial
- Factors of a Mersenne number
- Fast Fourier transform
- Feigenbaum constant calculation
- Fibonacci n-step number sequences
- Fibonacci sequence
- Filter
- Find first and last set bit of a long integer
- Find largest left truncatable prime in a given base
- Find limit of recursion
- Find the intersection of two lines
- Find the last Sunday of each month
- Find the missing permutation
- Five weekends
- FizzBuzz
- Flatten a list
- Flipping bits game
- Flow-control structures
- Floyd's triangle
- Forest fire
- Formatted numeric output
- Forward difference
- Four bit adder
- Fractran
- Function composition
- Function definition
- Gamma function
- Gaussian elimination
- Generate Chess960 starting position
- Generate lower case ASCII alphabet
- Generic swap
- Globally replace text in several files
- Gray code
- Grayscale image
- Greatest common divisor
- Greatest element of a list
- Greatest subsequential sum
- Guess the number
- Guess the number/With feedback
- Guess the number/With feedback (player)
- HTTPS
- Hailstone sequence
- Hamming numbers
- Happy numbers
- Harshad or Niven series
- Haversine formula
- Hello world!
- Hello world/Graphical
- Hello world/Line printer
- Hello world/Newbie
- Hello world/Newline omission
- Hello world/Standard error
- Hello world/Text
- Hello world/Web server
- Here document
- Heronian triangles
- Hickerson series of almost integers
- Higher-order functions
- Hofstadter Q sequence
- Hofstadter-Conway $10,000 sequence
- Holidays related to Easter
- Horizontal sundial calculations
- Horner's rule for polynomial evaluation
- Host introspection
- Hostname
- Huffman coding
- I before E except after C
- IBAN
- Identity matrix
- Include a file
- Increment a numerical string
- Infinity
- Inheritance/Single
- Input loop
- Input/Output for Pairs of Numbers
- Integer comparison
- Integer overflow
- Integer sequence
- Inverted syntax
- JSON
- Jensen's Device
- Josephus problem
- Jump anywhere
- K-means++ clustering
- Kahan summation
- Kaprekar numbers
- Keyboard input/Obtain a Y or N response
- Knapsack problem/Continuous
- Knapsack problem/Unbounded
- Knuth shuffle
- Kronecker product
- LU decomposition
- Langton's ant
- Largest int from concatenated ints
- Last Friday of each month
- Leap year
- Least common multiple
- Left factorials
- Leonardo numbers
- Letter frequency
- Linear congruential generator
- Linux CPU utilization
- List comprehensions
- Literals/Floating point
- Literals/Integer
- Literals/String
- Logical operations
- Long multiplication
- Longest common subsequence
- Look-and-say sequence
- Loop over multiple arrays simultaneously
- Loops/Break
- Loops/Continue
- Loops/Do-while
- Loops/Downward for
- Loops/For
- Loops/For with a specified step
- Loops/Foreach
- Loops/Increment loop index within loop body
- Loops/Infinite
- Loops/N plus one half
- Loops/Nested
- Loops/While
- Lucas-Lehmer test
- Ludic numbers
- Luhn test of credit card numbers
- Lychrel numbers
- MD5
- Mad Libs
- Magic squares of odd order
- Man or boy test
- Mandelbrot set
- Map range
- Matrix chain multiplication
- Matrix multiplication
- Matrix transposition
- Matrix-exponentiation operator
- Memory allocation
- Memory layout of a data structure
- Menu
- Middle three digits
- Miller–Rabin primality test
- Monte Carlo methods
- Monty Hall problem
- Multi-dimensional array
- Multifactorial
- Multiple distinct objects
- Multiple regression
- Multiplication tables
- Munchausen numbers
- Mutual recursion
- N'th
- N-body problem
- N-queens problem
- Named parameters
- Naming conventions
- Natural sorting
- Nested function
- Non-decimal radices/Convert
- Non-decimal radices/Input
- Non-decimal radices/Output
- Nth root
- Number names
- Number reversal game
- Numeric error propagation
- Numerical integration
- Numerical integration/Gauss-Legendre Quadrature
- Odd word problem
- Old Russian measure of length
- Old lady swallowed a fly
- One-dimensional cellular automata
- Operator precedence
- Optional parameters
- Ordered words
- Palindrome detection
- Pangram checker
- Parallel calculations
- Parametric polymorphism
- Parsing/RPN calculator algorithm
- Parsing/Shunting-yard algorithm
- Pascal matrix generation
- Pascal's triangle
- Pathological floating point problems
- Percentage difference between images
- Percolation/Mean run density
- Percolation/Site percolation
- Perfect numbers
- Permutations
- Pernicious numbers
- Phrase reversals
- Pi
- Pick random element
- Playing cards
- Pointers and references
- Polymorphic copy
- Polymorphism
- Polynomial long division
- Polynomial regression
- Population count
- Price fraction
- Primality by trial division
- Prime conspiracy
- Prime decomposition
- Primorial numbers
- Priority queue
- Probabilistic choice
- Problem of Apollonius
- Program name
- Program termination
- Proper divisors
- Pythagorean triples
- Quaternion type
- Queue/Definition
- Queue/Usage
- Quickselect algorithm
- Quine
- Random number generator (device)
- Random number generator (included)
- Random numbers
- Range expansion
- Range extraction
- Rate counter
- Ray-casting algorithm
- Read a configuration file
- Read a file line by line
- Read a specific line from a file
- Read entire file
- Real constants and functions
- Reduced row echelon form
- Reflection/List properties
- Remove duplicate elements
- Remove lines from a file
- Rename a file
- Repeat a string
- Return multiple values
- Reverse a string
- Reverse words in a string
- Rock-paper-scissors
- Roman numerals/Decode
- Roman numerals/Encode
- Roots of a function
- Roots of a quadratic function
- Roots of unity
- Rot-13
- Run-length encoding
- Runge-Kutta method
- SEDOLs
- SHA-1
- SHA-256
- Search a list
- Search a list of records
- Secure temporary file
- Selective File Copy
- Semordnilap
- Send email
- Sequence of non-squares
- Sequence of primes by trial division
- Sequence of primorial primes
- Seven-sided dice from five-sided dice
- Shell one-liner
- Shoelace formula for polygonal area
- Short-circuit evaluation
- Show the epoch
- Sierpinski carpet
- Sierpinski triangle
- Sieve of Eratosthenes
- Singly-linked list/Element definition
- Singly-linked list/Element insertion
- Singly-linked list/Element removal
- Singly-linked list/Traversal
- Sleep
- Smith numbers
- Sort an array of composite structures
- Sort an integer array
- Sort disjoint sublist
- Sort stability
- Sort three variables
- Sort using a custom comparator
- Sorting Algorithms/Circle Sort
- Sorting algorithms/Bead sort
- Sorting algorithms/Bogosort
- Sorting algorithms/Bubble sort
- Sorting algorithms/Cocktail sort
- Sorting algorithms/Comb sort
- Sorting algorithms/Counting sort
- Sorting algorithms/Gnome sort
- Sorting algorithms/Heapsort
- Sorting algorithms/Insertion sort
- Sorting algorithms/Merge sort
- Sorting algorithms/Pancake sort
- Sorting algorithms/Quicksort
- Sorting algorithms/Radix sort
- Sorting algorithms/Selection sort
- Sorting algorithms/Shell sort
- Sorting algorithms/Sleep sort
- Sorting algorithms/Stooge sort
- Special characters
- Special variables
- Spiral matrix
- Split a character string based on change of character
- Stack
- Stack traces
- Stair-climbing puzzle
- Statistics/Basic
- Statistics/Normal distribution
- Stem-and-leaf plot
- Stern-Brocot sequence
- Stream Merge
- String append
- String case
- String comparison
- String concatenation
- String interpolation (included)
- String length
- String matching
- String prepend
- Strip a set of characters from a string
- Strip block comments
- Strip comments from a string
- Strip control codes and extended characters from a string
- Strip whitespace from a string/Top and tail
- Subleq
- Substitution Cipher
- Substring
- Substring/Top and tail
- Subtractive generator
- Sudoku
- Sum digits of an integer
- Sum multiples of 3 and 5
- Sum of a series
- Sum of squares
- Sum to 100
- Sutherland-Hodgman polygon clipping
- Symmetric difference
- System time
- Temperature conversion
- Terminal control/Clear the screen
- Terminal control/Coloured text
- Terminal control/Cursor positioning
- Ternary logic
- Test a function
- Test integerness
- Text processing/1
- Text processing/2
- The Twelve Days of Christmas
- Thue-Morse
- Tic-tac-toe
- Time a function
- Tokenize a string
- Tokenize a string with escaping
- Top rank per group
- Topological sort
- Topswops
- Trabb Pardo–Knuth algorithm
- Tree traversal
- Trigonometric functions
- Truncatable primes
- Truncate a file
- Two Sum
- Ulam spiral (for primes)
- Unbias a random generator
- Undefined values
- Universal Turing machine
- Unix/ls
- Update a configuration file
- Validate International Securities Identification Number
- Van der Corput sequence
- Variable size/Get
- Variable size/Set
- Variables
- Variadic function
- Vector products
- Verify distribution uniformity/Chi-squared test
- Verify distribution uniformity/Naive
- Vigenère cipher
- Welch's t-test
- Wireworld
- Word wrap
- Write entire file
- Write float arrays to a text file
- XML/Input
- Zeckendorf number representation
- Zero to the zero power
- Zhang-Suen thinning algorithm
- Zig-zag matrix