Tässä kappaleessa annetaan ohjeita Unixeissa Fortranilla ohjelmoiville. Fortran-ohjelmointikielen joutuu opettelemaan muualta. Fortraniin liittyvää tietoa (mm. Fortran-77-standardi ja useita oppikirjantapaisia esityksiä Fortranista) löytyy dokumentin Tietoa Fortran-ohjelmointikielestä Internetistä kautta.
Fortran-ohjelmatiedostot nimetään niin, että nimi loppuu
merkkeihin .f
(piste ja pieni f-kirjain). Tämä on tarpeen,
jotta kääntäjä käsittelisi tiedoston oikein. Lisäksi siitä on
se etu, että käytettäessä
Emacsia
editori osaa asettua
ns. Fortran-moodiin, mikä merkitsee mm. seuraavaa:
DO
- tai IF
-rakenteen sisällä editori sisentää lauseet
automaattisesti (kolmen merkin verran). Se ei kuitenkaan tunnista
kyseisten rakenteiden loppumista, vaan käyttäjän täytyy tarvittaessa
poistaa liiat blankot.
Unixissa voi Fortran-ohjelmassa käyttää isoja tai pieniä kirjaimia
tai molempia: voi kirjoittaa CONTINUE
tai continue
tai Continue
tai vaikka cOnTINue
. Huomaa, että sama ei koske Unixin komentoja eikä
tiedostonnimiä - niissä isojen ja pienten kirjainten ero on merkitsevä!
Tavallisinta lienee käyttää pieniä kirjaimia; jos ohjelma on siirretty muusta ympäristöstä ja on kirjoitettu isoin kirjaimin, voi olla hyvä idea pitää alkuperäinen koodi isokirjaimisena mutta tehdä muutokset ja lisäykset pienikirjaimisina.
Unix-koneissa mahdollisesti olevilla Fortran-kääntäjillä on eroa, mutta yhteisiä piirteitä ovat yleensä seuraavat:
ohj.f
f77
tai f90
, ja
usein nämä käynnistävät saman kääntäjän eri tilaan;
kääntäjää käytetään seuraavaan tapaan:f77 ohj.f
a.out
, mutta
tälle tiedostolle saa haluamansa nimen kääntäjän -o
-valitsimella, esim.f77 -o ohj ohj.f
ohj
man f77
Jos Fortran-ohjelma on yhdessä tiedostossa, se voidaan kääntää komennolla
f77
nimi
missä nimi on ohjelmatiedoston nimi (jonka on syytä
loppua merkkeihin .f
). Usein kannattaa kuitenkin antaa
komennossa yksi tai useampia optioita.
Tämä komento myös lataa ohjelman tuottaen ajokelpoisen
ohjelman a.out
-nimiseen tiedostoon. Tämän jälkeen
ohjelma voidaan käynnistää komennolla a.out
edellyttäen,
että voimassa ovat sopivat ympäristömäärittelyt. (Yleisessä
käytössä olevissa koneissa tällaiset määrittelyt ovat yleensä
automaattisesti voimassa. Jos näin ei ole, voidaan käyttää
komentoa ./a.out
tai yleisemmin ./
x, missä
x on ajokelpoisen ohjelman nimi.)
f77
-komennossa
erottaen niiden nimet välilyönneillä, esim.
f77 paa.f ali1.f ali2.f ali3.f
Jos käännös menee läpi virheittä, syntyy ajokelpoinen ohjelma
tiedostoon a.out
.
Tämä on kuitenkin usein epäkäytännöllistä ohjelmankehittelyssä, koska aina ei ole tarpeen kääntää uudestaan kaikkia ohjelmatiedostoja. Voidaan menetellä niin, että käännetään kerralla vain yksi tai muutama ohjelmatiedosto esim. seuraavaan tapaan:
f77 -c ali1.f ali2.f f77 -c ali3.f f77 paa.f ali1.o ali2.o ali3.oTällöin ensimmäisessä vaiheessa syntyvät käännöstiedostot (objektikooditiedostot)
ali1.o
ja ali2.o
ja toisessa vaiheessa ali3.o
.
Viimeisessä vaiheessa sitten käännetään vain tiedosto paa.f
,
mutta myös aiemmin muodostetut käännöstiedostot on mainittava
f77
-komennossa. Viimeisessä vaiheessa syntyy taas
ajokelpoinen ohjelma a.out
.
Edellä esitetyissä komennoissa optio -c
ilmoittaa, että ohjelmaa ei pidä
yrittääkään vielä ladata. Jos unohdat kirjoittaa option -c
, saat
ilmoituksia, jotka johtuvat siitä, että käännettävät tiedostot eivät
muodosta kokonaista ohjelmaa (esim. pääohjelma puuttuu). Ilmoitukset
näyttävät virheilmoituksilta
(ERROR: Unresolved or undefined symbols detected
),
mutta ne eivät ole mitenkään vakavia, vaan voit jatkaa
normaalisti.
Jos ohjelmatiedostoja on paljon, kannattaa opetella käyttämään
make
-komentoa (ks. kohtaa 6
Ohjelmien hallinta).
Fortran-kääntäjillä on lukuisia optioita (valitsimia), jotka ovat usein
varsin hyödyllisiä. Optiot annetaan kääntäjän nimen f77
ja
tiedostonnimien välissä, ja kukin optio alkaa yhdysviivalla (-
).
Esimerkiksi IBM:n Unix-toteutuksen (Aix) Fortran-kääntäjän optioista mainittakoon seuraavat:
-qsource
f
:n merkeillä lst
.
-u
IMPLICIT
-lauseen perusteella).
Tämä vastaa sitä, että jokaisessa ohjelmayksikössä
olisi lause IMPLICIT NONE
. Option avulla voidaan
usein havaita kirjoitusvirheistä johtuvia ongelmia.
-O
-lmsaa
-o
-qrndsngl
-g
ohj.f
.Ohjelman kehittelyvaiheessa:
f77 -qsource -u -g -lmsaa ohj.f
Tehtäessä ohjelmasta "tuotantoversio":
f77 -o ohj -O -lmsaa ohj.f