o_Fortranie95.pdf

(100 KB) Pobierz
261926627 UNPDF
KomputeroweSymulacjeNumeryczne
Fortran95
MaciejZadora,MariuszZaj¸ac
http://fatcat.ftj.agh.edu.pl/˜ernesto/paper.htm
TableofContents
1 Wprowadzenie
3
2 Typy danych
4
2.1 Typ calkowity . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.2 Typ rzeczywisty . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.3 Typ zespolony . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.4 Typ znakowy . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.5 Typ logiczny . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.6 Typ definiowany . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
3 Kontrola programu
6
3.1 Blok IF-THEN-ELSE . . . . . . . . . . . . . . . . . . . . . . . .
6
3.2 Blok SELECT CASE . . . . . . . . . . . . . . . . . . . . . . . . .
6
3.3 Petla DO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
4 Podstawowe struktury programu 8
4.1 Procedury . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.2 Funkcje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.3 Interfejsy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.4 Moduly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5 Operacje na tablicach 11
5.1 Deklaracja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.2 Wypelnianie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.3 Podstawowe operacje . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.4 Tablice wielowymiarowe . . . . . . . . . . . . . . . . . . . . . . . 12
6 Wskazniki 14
6.1 Podstawy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6.2 Przypisanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6.3 Zagrozenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
6.4 Ciekawe zastosowanie . . . . . . . . . . . . . . . . . . . . . . . . 16
7 Operacje wejscia-wyjscia 17
7.1 Formatowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
7.2 Operacje na plikach . . . . . . . . . . . . . . . . . . . . . . . . . 18
1Wprowadzenie
Niniejsza praca powstala jako jedna z form zaliczenia przedmiotu Komput-
erowe Symulacje Numeryczne. Ze wzgledu na ograniczony czas jak i objetosc
dokumentu praca ta nie powinna byc traktowana jako kurs jezyka Fortran 95,
lecz jedynie jako wprowadzenie. Przedstawilismy tutaj tylko ogolny zarys i pod-
stawy jezyka. Opracowanie to powinno byc uzyteczne dla kogos kto chcialby
poznac Fortran 95, ale nie jest jeszcze przekonany czy warto.
W ogolnosci Fortran 95 jest proba dostosowania do rosnacych potrzeb, znanego
standardu FORTRAN77. Tak jak swoj pierwowzor wersja 95 jest dostosowana
scisle do potrzeb naukowych. Posiada ona wiele rozwiazan uzytecznych dla
fizykow, inzynierow, itp. Dla ktorych wazne jest uzyskanie dokladnych wynikow
w jak najkrotszym czasie i przy uzyciu jak najmniejszych nakladow pracy.
W dalszej czesci dokumentu bedziemy uzywac okreslenia Fortran w odniesie-
niu do wersji Fortran 95.
Krakow, 15 styczen 2005
2Typydanych
W Fortranie istnieje piec podstawowy typow, danych oraz jeden definiowany.
Ograniczymy sie tutaj tylko do przedstawienia, sposobu deklaracji. Wiecej
szczegolow i sposobow uzycia, mozna bedzie znalezc w nastepnych rozdzialach.
2.1 Typ calkowity
INTEGER :: i =1
Atrybut PARAMETER oznacz ze zmienna nie moze byc zmieniana.
INTEGER, PARAMETER :: N =100
2.2 Typ rzeczywisty
REAL :: var = selected real num(9, 99)
Co najmniej 9-cio cyfrowa dokladnosc i zasieg od 10ˆ-99 do 10ˆ99.
2.3 Typ zespolony
Ten typ danych jest zbudowany z dwoch calkowitych albo rzeczywistych
skladnikow
COMPLEX :: z =(1.0, 2.0) ! 1+i2
2.4 Typ znakowy
CHARACTER (len=5) :: word =´tekst´
2.5 Typ logiczny
Typ uzywany w konstrukcjach petli i zapytan.
LOGICAL :: Prawda
Prawda = .TRUE. ! lub .FALSE.
261926627.001.png
2.6 Typ definiowany
Fortran dopuszcza tworzenie wlasnych typow, w nastepujacy sposob:
TYPE person
CHARACTER(10) :: name
REAL :: age
END TYPE person
nastepnie tworzymy strukture tego typu:
TYPE(person) you, me
Do wybrania skladnikow, uzywamy:
you%age
Zgłoś jeśli naruszono regulamin