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.
Formatne stavke vkljucene lahko vkljucimo v ukaz read ali write: {
character ime*65 write(*, '('' Ime vhodne datoteke: '', $)' ) read(*,'(A)') imeDatoteke delimo na tekstovne in binarne. 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, 'materiali.bin', status='UNKNOWN', * 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) naziv, k_mat read(1, rec=2) naziv, k_mat
Pri vseh branjih in pisanjih se lahko testira napaka ob konverziji ali napaka na vhodno/izhodno enoti s parametrom err. Primer:
integer cona character*80 line ... read(2, '(A)') line if (line(1:4) .eq. 'cona') then read(line(5:80), '(I10)', err=102) cona end if ... return 102 stop 'Napacen podatek za temperaturno cono!' end
Fortran omogoca pisanje in branje v svoje interne enote v obliki character polja. To nam omogoca pretvarjanje numericnih spremenljivk v znakovne. Najveckrat se to uporablja za podprograme, ki zahtevajo kot parameter znakovno spremenljivko, na voljo pa imamo le numericno spremenljivko. Tipicen primer uporabe je izpis teksta v jeziku GKS. Primer:
character cnode*3 integer node ... write(cnode, '(I3)') node call gtx(x, y, cnode) end