Jednou z předností, jimiž si Fortran rychle po svém vzniku získal takovou popularitu, bylo v té době nevídaně komplexní ovládání vstupů a výstupů.
Základním pojmem je zde soubor. Některé prameny jej definují jako "cokoli, k čemu se dá přistupovat pomocí příkazů READ a WRITE" (což zhruba odpovídá ``datovým proudům'' v C++).
Interní soubory proto nejsou nic jiného než dočasné proměnné a pole, existující pouze za běhu programu. Přes příkazy READ a WRITE k nim přistupujeme, když požadujeme formátovaný vstup nebo výstup.
Externími soubory potom rozumíme kromě skutečných datových souborů na disku také veškeré periferie jako terminály, tiskárny, a podobně Protože při překladu programu nemusíme vědět nic o jejich existenci, případně stavu, máme pro ně k dispozici ještě další příkaz INQUIRE.
Dalším důležitým pojmem je I/O jednotka. Jedná se o virtuální kanál, označený celým číslem od nuly do limitu daného systémem (zpravidla minimálně 99). Před použitím musí být externí soubor připojen příkazem OPEN k I/O jednotce, pomocí jejíhož čísla je pak jednoznačně identifikován ostatníni příkazy. Například
OPEN( UNIT=1, FILE='b:\vstup.dat', STATUS='OLD' ) OPEN( UNIT=9, FILE='PRINTOUT', STATUS='NEW' )Tím je soubor připojen až do té doby, než nastane jedna ze tří situací:
WRITE(*,*) ' Hello World !!! 'resp.
READ(*,*) CISLOkde druhá hvězdička označuje opět standardní, předdefinovaný formát, který lze změnit příkazem FORMAT.
Kromě dělení na formátovaný a neformátoavný, rozlišujeme přístup k souborům ještě na přímý (disky apod.) a sekvenční (např. tiskárny). Posledně jmenovaný způsob zpracování usnadňují příkazy REWIND a BACKSPACE.