Tu bom prikazal standardne posebnosti v Fortranu, ki jih boste s pridom uporabili pri programiranju. Priporoca se tipkanje programa z malimi crkami, saj je tako kodiran program bolj citljiv.
Ce zelimo interpretirati (parsing) vhodne podatke ki imajo (na)kljucne besede skupaj s stevilcnim parametrom je potrebno najprej prebrati celotno vrstico kot niz znakov in ga nato interpretirati glede na vrsto kljucne besede. Naslednji primer programa prebere standardno vhodno enoto (tipkovnica) in izpise parameter, ce je na zacetku vrstice vtipkana kljucna beseda pipes.
program stringReadDemo C demonstrira uporabo branja iz ene vrstice C in primerjanje klju\v{c}ne besede z parametrom character*80 line read(*,'(A)') line if(line(1:5) .eq. 'pipes') then read(line(6:80), '(I10)') pipes print *, 'Pipes=', pipes endif stop end
Navedeni primer vsebuje formatne stavke vkljucene kar v ukaz read, kar je ugodno, ce imamo male formatne stavke. Podobno bi lahko napisali formatni stavek za ukaz read/write:
character ime*65 write(*, '('' Ime vhodne datoteke: '',$)') read(*,'(A)') ime
Datoteke delimo na tekstne in binarne datokeke. Direktna datoteka je poseben primer binarne datoteke, ki ima fiksno dolzino zapisa (record). Fortran omogoca branje/pisanje v prostem formatu (*), uporabniskem formatu (format()) in brez formata (samo v binarne datoteke). Neformatirano direktno datoteko z dolzino enega zapisa 58 bytov se odpre z ukazom
open(1, 'results.bin', status='NEW', * access='DIRECT', form='UNFORMATTED', * recl=58)
Dolzina enega zapisa RECL se doloca z maksimalno velikostjo zapisa v datoteki. Zapisi imajo lahko razlicne vsebine podatkov, dolzina zapisa pa je fiksna zaradi hitrejsega dolocanja pozicije datotecnega kazalca. Doloci se jo s sestevkom dolzine vseh spremenljivk in upostevanjem, da zavzame realna spremenljivka 4 byte, celostevilcna 2, znakovna pa toliko, kolikor znakov ima rezerviranih.
Za branje in pisanje enote se uporablja standardni read/write stavek brez podatka o formatu.
write(1, rec=2) cev,x,y,z,Q,v read(1, rec=2) cev,x,y,z,Q,v
Pri vseh branjih in pisanjih se lahko testira napaka ob konverziji ali napaka na vhodno/izhodno enoti s parametrom err. Primer:
... read(line(6:80), '(I10)', err=102) pipes ... return 102 stop 'Napaka pri branju parametra pipes!' end
Celoten program za izracun mreze bi lahko vseboval sledece zaporedje podprogramov: