PROGRAM EPSILON IMPLICIT NONE REAL :: A, B, C, D, E A = 1.0/3.0 B = 4.0*A - 1.0 C = 3.0*B - 1.0 D = 0.5*C E = ABS(D) WRITE(*,*) ' my = ', E END PROGRAM EPSILONProgrammet är som synes skrivet med stora bokstäver (VERSALER), vilket är det vanligaste vid Fortran, men det går numera oftast lika bra att använda små bokstäver (gemena). Processorn gör ingen skillnad mellan små och stora bokstäver, utom vid in- och utmatning.
Första raden ger namnet på programmet, den andra är en mycket bra sats som kommer att diskuteras senare. I den tredje raden talar vi om för systemet att de fem namnen A, B, C, D och E svarar mot flyttal.
Notera att en tredjedel måste skrivas som 1.0/3.0, för att tala om för systemet att det är fråga om flyttal och inte om heltal. De fyra räknesätten anges med + - * respektive /. Notera att i matematik användes ofta en punkt, ett kryss, eller ingenting för att markera multiplikation, som 2·3, a×b, eller 5c, men i Fortran måste asterisken * användas för att markera multiplikation. Tilldelning sker med ett likhetstecken =, varvid storheten till vänster får värdet av det till höger, något kolon lika med som i Algol eller Pascal finns inte. Radslut behöver normalt inte markeras.
Eftersom storheten D kan bli negativ tar vi bort tecknet med hjälp av den inbyggda funktionen ABS.
Utmatningen sker med WRITE-satsen, här utnyttjande standardenheten för utmatning och standardformatet att skriva ut (markerat med de båda asteriskerna). Texten inom apostroferna skrivs ut, följt av värdet på storheten E. Resultatet blir på ett vanligt system (Sun, DEC station, IBM PC eller VAX/VMS)
my = 5.9604645E-08och på ett ovanligt system (nämligen Cray)
my = 7.105427357601E-15Den sista raden med END talar om för systemet att programmet slutar där.
Programmet skall nu kompileras, länkas och köras. Detta sker i två steg, först kompilering och länkning med kommandot
f90 epsilon.f90och sedan körning med
a.outResultatet finns ovan. Notera att UNIX skiljer på kommandon och filnamn givna med små eller stora bokstäver. Vid användning av Cray (och andra maskiner där PATH inte är satt på normalt sätt) bör aktuell filkatalog anges, varför körning sker med
./a.out
Programmet skall nu kompileras, länkas och köras. Detta sker i tre steg, först kompilering med kommandot
for epsilonoch länkning med
lin epsilonoch sedan körning med
run epsilonOvanstående använder Fortran 77 och förutsätter att programmet finns på filen EPSILON.FOR. Programmet måste då ha justerats till Fortran 77. Programmet ovan kräver då fyra mycket små justeringar, rad 2 skall tas bort, i rad 3 skall dubbelkolon :: tas bort, och samtliga rader skall vara inskjutna åt höger minst till position 7. Dessutom skall PROGRAM EPSILON tas bort i den sista raden. En version av programmet i Fortran 77 finns i filen epsilon.f. Resultatet med Fortran 77 blir samma som för de vanliga UNIX-maskinerna. Jag har tyvärr ännu inte tillgång till någon VAX med Fortran 90. Notera att VAX/VMS ej skiljer på kommandon och filnamn givna med små eller stora bokstäver.
Programmet skall nu kompileras, länkas och köras. Detta kan ske i ett steg vid användning av Fortran 90 från NAG. Först måste man dock ha startat ett hjälpsystem med namnet DBOS, vilket sker med kommandot DBOS (Detta hjälpsystem följer med vid köpet av kompilatorn). Därefter ger man kommandot
ftn90 epsilon /lgoResultatet blir det gamla vanliga. Hjälpsystemet DBOS är ej kompatibelt med alla andra system under MS-DOS, bland annat går det ej att starta Windows när DBOS är aktivt. Man måste därför ibland stänga det med kommandot KILL_DBOS. Man kan däremot starta DBOS när man kör DOS-promptern från Windows. Notera att MS-DOS ej skiljer på kommandon och filnamn givna med små eller stora bokstäver.