Kirjoittaja: Antti Laaksonen (08.12.2009)
Fortran on 1950-luvun puolivälissä alkunsa saanut ohjelmointikieli, joka soveltuu erityisesti runsaasti laskentaa sisältäviin matemaattisiin ohjelmiin. Fortran oli ensimmäisiä korkean tason ohjelmointikieliä, jotka helpottivat ohjelmoijan työtä konekieleen verrattuna.
Tämän esittelyn esimerkkiohjelmat seuraavat Fortran 90 -standardia.
Seuraava ohjelma tulostaa rivin tekstiä:
PROGRAM tulostus WRITE (*,*) 'Hauskaa joulua!' END PROGRAM tulostus
Seuraava ohjelma tulostaa Fibonaccin luvut, jotka ovat alle 100:
PROGRAM fibolista INTEGER :: a, b, c a = 0 b = 1 DO WHILE (a < 100) WRITE (*,*) a c = a + b a = b b = c END DO END PROGRAM fibolista
Seuraava ohjelma esittelee taulukon käsittelyä Fortranissa:
PROGRAM taulukko INTEGER, DIMENSION(50) :: t t(1:50) = (/ (i * i, i = 1, 50) /) WRITE (*,*) 'Lukujen 1-50 neliöt:' WRITE (*,'(10I5)') t t = t * 2 + 5 WRITE (*,*) 'Muunnettu taulukko:' WRITE (*,'(10I5)') t WRITE (*,*) 'Taulukon lukujen summa:' WRITE (*,*) SUM(t) END PROGRAM taulukko
Ohjelman tulostus on seuraava:
Lukujen 1-50 neliöt: 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 441 484 529 576 625 676 729 784 841 900 961 1024 1089 1156 1225 1296 1369 1444 1521 1600 1681 1764 1849 1936 2025 2116 2209 2304 2401 2500 Muunnettu taulukko: 7 13 23 37 55 77 103 133 167 205 247 293 343 397 455 517 583 653 727 805 887 973 1063 1157 1255 1357 1463 1573 1687 1805 1927 2053 2183 2317 2455 2597 2743 2893 3047 3205 3367 3533 3703 3877 4055 4237 4423 4613 4807 5005 Taulukon lukujen summa: 86100
Ohjelma laskee ensin taulukkoon lukujen 1–50 neliöt ja kertoo sitten kunkin luvun kahdella ja lisää siihen viisi. Taulukon tulostuksessa joka rivillä on kymmenen lukua ja kentän leveys on viisi merkkiä. Lopuksi ohjelma laskee taulukon lukujen summan.
Vuosien saatossa Fortran ei ole kerännyt vain ihailevia lausuntoja. Edsger W. Dijkstra totesi seuraavaa vuonna 1975:
"Vanhaan hyvään aikaan fyysikot toistivat toistensa kokeita ollakseen varmoja asioista. Nykyään he käyttävät Fortrania voidakseen välittää ohjelmia toisilleen – ja niiden bugeja."