Tartalomjegyzék

< Fortran

Fortran

Bevezetés

Fortran 95 fordító Debian rendszeren:

apt-get install gfortran

Windowson:

A nyelv nem különbözteti meg a kis- és nagybetűket.

A leírásban Fortran95 fordítót és nyelvet írom le. Egy fortran95 forrás kiterjesztése:

  .f95

Helló Világ

main.f95

main.f95
program main
 
 
write (*,*) 'Helló Világ'
 
read (*,*)
 
stop
 
end

Fordítás:

f95 -o main main.c

A program és a stop utasítás csak formai, a fordító nem követeli meg, de hozzátartozik a szerkezethez. A write és a read utáni (*,*) karakterek fájl írás/olvasáshoz és formátumozott kivitelhez tartoznak. Az első „*” karakter jelen esetben arra utal, hogy a monitor eszközre szeretnénk írni. A második „*” karakter pedig arra, hogy az alapértelmezett formában írunk a képernyőre, vagyis nincs formázás.

Fortran program felépítése

program neve      
  deklarációk      
  utasítások/parancsok
stop
end

Megjegyzések

A megjegyzéseket egy sorosak lehetnek, és felkiáltó jellel vezetjük be őket:

! megjegyzés egy sora

Korábbi Fortan fordítók nem felkiáltó jelet használtak, hanem egy „c” karaktert (comment)

Változók használata

A változókat nem kötelező deklarálni, de van rá lehetőség. Ha nem deklaráljuk a fordító egész és valós számként is kezelheti, attól függően mi az első karaktere. Ha az első karakter i és n közzé esik az ábécében, akkor egész számként kezeli, egyébként valósként.

main.f95
program elso
 
write (*,*) "Helló Világ!"
read (*,*) n
write (*,*) n
read (*,*)
 
stop
end

A programban az n változó egészként lesz kezelve. Ha a változó nevét átnevezem például o-ra akkor már valós számként kezeli a fordító.

Típus Jelentés
integer egész
real valós
double precision pontosabb valós szám
complex komplex pl.: (3.0,-1.5) az első a valós szám a második a képzetes rész
logical logikai
character karakter

Komplex számok

program elso
complex szam
write (*,*) "Komplex szam: "
read (*,*) szam
write (*,*) szam
read (*,*)
stop
end

Beírunk egy komplex számot a következő formában:

(3.0,-1.5)

Kimenet:

 (  3.0000000    , -1.5000000    )

Szelekció

a = 3

if (a < 10) then
    write (*, *) "Kisebb"
end if

end

Ha csak egy soros if szerkezetünk van, akkor is le kell zárni end if szavakkal.

Egy else ág megvalósítása:

a = 15

if (a < 10) then
    write (*, *) "Kisebb"
else
    write (*, *) "Nagyobb"
end if

end

Iteráció

Növekményes ciklus

do  i = 1, 6, 2
    write (*, *) i
end do

Az i a ciklusváltozó. Az egyenlőség jel jobb oldalán sorra:

Amíg ciklus

i = 1
do while (i < 6)
    write (*, *) i
    i = i + 1
end do