INLEDNING

Programspråket FORTRAN är det helt dominerande språket för tekniskt vetenskapliga beräkningar. Det utvecklades ursprungligen vid IBM år 1954 under ledning av John Backus.

John Backus i New Mexico, 1976

Redan 1958 utvidgades språket till FORTRAN II. Så småningom kom även andra tillverkare med Fortran kompilatorer för sina maskiner, och år 1962 lanserade IBM det ytterligare utvidgade FORTRAN IV, som utgjorde grunden för den 1966 fastställda standarden, ANSI X3.9-1966. Den internationella standardiseringskommissionen ISO fastställde i ISO 1539-1972 tre olika nivåer av FORTRAN.

I april 1978 fastställde den amerikanska standardiseringskommissionen ANSI en reviderad standard för programspråket Fortran. Denna är känd under smeknamnet Fortran 77 för att tydligt skilja den då nya standarden ANSI X3.9-1978 från den gamla ANSI X3.9-1966, som numera med fördel kallas Fortran 66.

Den internationella standardiseringskommissionen antog Fortran 77 som standard med dokumentet ISO 1539-1980. Nu finns en HTML version av Fortran 77 standarden tillgänglig!

Fortran har undergått ytterligare revisioner, till Fortran 90, Fortran 95 och Fortran 2003. Den nya standarden är Fortran 2008 ISO/IEC 1539-1:2010 (sök efter "ISO Number" 1539) och utkom 2010. De båda senaste standardena diskuteras i ett eget kapitel här, men är för övrigt ännu ej inkluderade i denna bok.

Syftet med arbetet på den nya standarden Fortran 90 var att göra Fortran till ett användbart och effektivt språk för den tekniskt vetenskapliga databehandlingen även i fortsättningen. Den nya versionen av språket innehåller nyheter för vektor- och matrishantering (bra på vektorprocessorer och parallella datorer) samt flera nya metoder att specificera precisionen, möjlighet att fråga efter miljöparametrar, fler inbyggda funktioner, interna procedurer samt nya specifikationer för lagring och gränssnitt. Dessutom finns en ny förbättrad form för källkoden.

Ingenting togs bort, varför Fortran 90 innehåller både moderna och omoderna metoder för egentligen samma uppgift. Detta innebär att språket är stort. Kommittén har därför valt att ange vissa begrepp i Fortran 90 som ålderdomliga eller utdöende, för att eventuellt tas bort vid nästa revision.

Ett tillägg om varierande längd på textsträngar antogs 1994 och reviderades 2000, ISO 1539:2-2000. Ett tillägg om villkorlig kompilering antogs 1999, ISO 1539:3-1999. För officiell information gå till ISO:s webbplats enligt ovan.

Notera att vid standardiseringen 1977-78 lade man in en del nytt men tog bort en del, varför det finns enstaka program som uppfyller Fortran 66 men ej uppfyller Fortran 77. De saker som togs bort ur standarden 1978 finns i en del implementationer av Fortran 77 och Fortran 90, utvidgningar är tillåtna om de kan flaggas av systemet som avvikelser från standarden.

Ett mycket viktigt krav vid införandet av en ny programspråksstandard är numera att språket skall klara effektiv kompilering och exekvering, inte bara på konventionella datorer utan även på parallella och massivt parallella system. Något förenklat kan man säga att Fortran 90 effektivt klarar konventionella datorer och vektorprocessorer, men är mindre effektivt på parallella processorer. Jag behandlar därför kortfattat en utvidgning av Fortran kallad HPF (High Performance Fortran eller Hög-Prestanda Fortran).

Denna bok är avsedd som en fullständig lärobok i Fortran 95. Förståelsen underlättas väsentligt om läsaren löser de givna övningarna, och läsaren bör därför ha tillgång till ett Fortran 90/95 system. För att göra boken fullständig finns information inte bara om Fortran, utan även hur man skriver och utnyttjar Fortran på de vanligaste datorsystemen. Boken skall även kunna användas som uppslagsbok, helst tillsammans med ett exemplar av standarden.

Jag använder en bokstil (Times) för den löpande texten i denna bok, men en skrivmaskinsliknande stil (Courier) för alla Fortran-ord och alla programexempel. Syftet med detta är naturligtvis att underlätta för läsaren.

Jag utgår från att läsaren har en viss erfarenhet av programmering, men några förkunskaper i exempelvis Fortran 77 förutsättes ej. De första kapitlen består av mycket enkla program, och tjänar som en inledning till hur Fortran är uppbyggt. I de därpå följande kapitlen sker en systematisk genomgång av de olika kommandona i Fortran.

De olika kommandona i Fortran är ganska kopplade till varandra, varför det inte är så pedagogiskt med en rent systematisk genomgång. Efter de två enkla inledande kapitlen ger jag därför grunderna i kapitel 3, och bygger sedan på med en förhoppningsvis systematisk genomgång av de mer komplicerade delarna av Fortran.

Förord Innehållsförteckning Ett första program


Senast modifierad: 14 juli 2011
boein@nsc.liu.se