
/chapter</ii<Ohjelmien siirto> Craylle>

Seuraavassa on lyhyt muistilista muutamista oleellisista asioista,
jotka on syyt{ muistaa siirrett{ess{ </sc fortran>-ohjelmia
Craylle muilta laitteistoilta.  Useimmat ongelmat ovat
johtuneet juuri n{iden s{{nt|jen laiminly|misest{.

/beginitems

/entry
Varmista ensimm{iseksi, ett{ ohjelma on standardin mukaista
</sc fortran 77> -koodia. T{m{n voit tehd{ esimerkiksi VAXilla
k{{nt{m{ll{ ohjelman komennolla

/itemitem<>
</tt for //standard=syntax prog.for>

/item<>
Jos k{{nt{j{ antaa varoituksia, tarkista, onko kysymyksess{
standardin laajennus, jonka my|s Cray hyv{ksyy.
Korjattavaa l|ytynee ainakin muuttujien m{{rittelyst{:
tyypit </tt real*8>, </tt real*4>, </tt integer*2> jne.
eiv{t kuulu standardiin eik{ niit{ saa k{ytt{{.

/entry
</sc Unix>issa isot ja pienet kirjaimet ovat eri merkkej{.
Tiedostojen nimet kirjoitetaan yleens{ pienill{ kirjaimilla.
Tarkista </tt/ii<include>>- ja </tt/ii<open>>-lauseissa esiintyv{t
tiedostojen nimet; niiden pit{{ todenn{k|isesti olla
pienill{ kirjaimilla.

/entry
Muista, ett{ Crayll{ muuttuja vie yleens{ aina yhden sanan,
kun taas useimmilla muilla koneilla tilaa kuluu muuttujan
tyypist{ riippuen yksi tai useampia tavuja.
Jos </tt/ii<equivalence>>-lauseella on samaistettu erimittaisia
muuttujia, ohjelma ei todenn{k|isesti toimi Crayll{.
Yleens{kin </tt equivalence>-lausetta pit{isi v{ltt{{.

/entry
/iii<muuttujien tilavaraus>
Aivan liian monissa ohjelmissa luotetaan, ett{ aliohjelmien
paikalliset muuttujat s{ilyv{t aliohjelmakutsusta toiseen.
Crayll{ n{in ei k{y, ja sit{paitsi kysymyksess{ on
standardin vastainen piirre. Talleta s{ilytett{viksi
tarkoitetut muuttujat </tt/ii<common>>ille, alusta ne
</tt/ii<data>>-lauseella tai talleta ne </tt/ii<save>>-lauseella.
Jos ohjelma toimii (ainakin jotenkuten) k{{nnett{ess{ se
optiolla </tt -a static>, mutta kaatuu muulloin,
t{m{ on hyvin todenn{k|inen syy.

/entry
/iii<alustamattomat muuttujat>
Aliohjelmien paikallisten muuttujien arvot ovat satunnaisia
aliohjelmaan tultaessa. Ennen kuin k{yt{t niit{ yht{{n
mihink{{n, muista sijoittaa niille kunnolliset alkuarvot.
Alustamattomien muuttujien l|yt{misess{ on hy|ty{
k{{nt{j{n optiosta </tt -eI>. Se alustaa paikalliset
muuttujat kelvottomiksi olioiksi, joiden k{ytt{minen
saa ohjelman suorituksen p{{ttym{{n virheeseen.

/enditems



