A Fortran programszegmens kifejezések sorozata, END kifejezéssel lezárva. A program sorokból áll, aminek bizonyos struktúrát kell követnie ahhoz, hogy abból egy futtatható program álljon elő. Minden programszegmens egy főprogram vagy egy alprogram.
A futtatható (vagy annak szánt) programnak főprogramnak kell lennie. Az alprogramnak három fő típusa van: eljárás, függvény vagy adatszegmens. Az eljárásokat és függvényeket más programok vagy a főprogram hívják meg. Az adatszegmenseket a programbetöltő (loader) kezeli.
A kifejezések állhatnak (ezek száma nulla is lehet) kulcsszavakból, szimbólumokból, konstans litertálokból, kifejezések címkéiből, operátorokból és speciális karakterekből. Az előbb felsorolt elemek a FORTRAN karakterkészletben lévő lexikális elemekből állnak:
Néhány speciális karakter:
Karakterek | Használat |
szóköz | csak karakter konstansokban használható |
= | egyenlőségvizsgálat |
+ - * / | matematikai műveletek |
( ) | zárójelezés |
, | szeparátor (adatok, kifejezések, argumentumok stb.) |
. | elhatároló (logikai konstansok, operátorok, rekordmezők) |
' | karakter konstansok |
" | karakter konstansok, oktális konstansok |
$ | namelist input, direktívák |
! | kommentek |
: | tömbdeklarációk, részsztringek |
% | speciális függvények (%REF, %VAL, %LOC stb.) |
\ | escape karakterek előtt |
A beolvasási és írási műveletekre jellemző, hogy formátumot kell megadni minden read vagy write utasításhoz.
A nyelv tervezésének idején a programok számítógépbe vitelére a legelterjedtebb eszköz a lyukkártya volt, ezért a nyelvnek több érdekes formai szabálya van. A programozó a FORTRAN programok kódolásához egy előregyártott formanyomtatványt kapott, amit ki kellett tölteni a forráskóddal, majd ezt a kódlapot leadta lyukasztásra, és egy kódlap után annyi lapos lyukkártyacsomagot kapott, ahány soros lett a kitöltött kódlapja. Az eljárásból következő speciális formai megkötések a kódra:
Ezeknek a megkötéseknek megfelelően egy példa egy beolvasó utasításra:
A * mondja meg, hogy a billentyűzetről várjuk az adatot, a FORMAT pedig a kért input formátumát adja meg. Az I3 jelentése, hogy 3 karakter hosszú egész. Az egészek hossza maximum 8 lehet, és ebben az előjel is benne van.
Beolvasás: READ (eszköz, [formátum címke]) [változók] Kiírás: WRITE (eszköz, [formátum címke]) [változók] Formátummegadás: FORMAT (formátumleíró lista)
Példa egy egész szám belolvasására, majd kiírására:
12345.
-1234.
Tehát a legkisebb ábrázolható szám a -9999, a legnagyobb a 99999.
123.456
-23.12
1.234
Azaz a pont jelen esetben mindig a negyedik helyre kerül. Tehát a legkisebb ábrázolható szám a -99.999, a legnagyobb a 999.999.
.123456E+002 = 12,3456
.120000E-001 = 0,012
Ha az e után pl. 12.4 állna, akkor
.1234E+00002 = 12,34
.1200E-00001 = 0,012
Természetesen az ábrázolható értékek végesek, ezért ügyelni kell, hogy hány helyiértékkel akarjuk a pontot eltolni. Kiírásnál ez a veszély nem áll fenn.
Ezek a formátumok nem csak beolvasásnál szükségesek, hanem kiírásnál is. Például:
Írásnál még egy formátum lehet szükséges. Szöveget a következő módon lehet kiírni:
Itt az 1x az elhatároló karakterek számát jelöli. A két kiírás egyébként kombinálható, tehát írhatunk például ilyet:
Itt A egy korábban definiált egész, amit 3 hosszon akarunk kiírni. Az 1x jelentése, hogy nem akarunk szóközt, a 2x jelentése 1 szóköz, stb.
A formátumoknak meg nem feleltethető olvasások és írások futási időben okoznak hibát!