1 / 23

Elementy programu w języku FORTRAN

Elementy programu w języku FORTRAN. Elementy segmentów w języku FORTRAN. Instrukcje czynne Instrukcja przypisania (arytmetyczna, logiczna, ASSIGN) Instrukcje wejścia/wyjścia (READ, WRITE, operacje na plikach) Instrukcja warunkowa (prosta IF i złożona IF..THEN…ELSE…ENDIF)

ervin
Download Presentation

Elementy programu w języku FORTRAN

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Elementy programu w języku FORTRAN

  2. Elementy segmentów w języku FORTRAN • Instrukcje czynne • Instrukcja przypisania (arytmetyczna, logiczna, ASSIGN) • Instrukcje wejścia/wyjścia (READ, WRITE, operacje na plikach) • Instrukcja warunkowa (prosta IF i złożona IF..THEN…ELSE…ENDIF) • Instrukcje skoku (zwykła, obliczona i wyznaczona GO TO) • Instrukcje pętli (DO, DO…WHILE, DO…WHERE) • Instrukcja wyboru (CASE, tylko Fortran 95) • Instrukcja odwołania do podprogramu (CALL) • Instrukcja zakończenia (STOP) • Instrukcja powrotu z podprogramu (RETURN)

  3. Deklaracje (instrukcje bierne, dyrektywy) • Deklaracja typu (INTEGER, REAL, LOGICAL, COMPLEX, CHARACTER) • Deklaracja stałych (PARAMETER) • Deklaracja obszaru wspólnego (COMMON) • Deklaracja etykiety • Dyrektywa reguł nazw typów zmiennych (IMPLICIT) • Deklaracja (dyrektywa) FORMAT • Dyrektywa inicjalizacji (DATA) • Dyrektywa uwspólniania tablic (EQUIVALENCE)

  4. Komentarze Komentarzem jest tekst nieinterpretowalny przez kompilator, stanowiący informację dla użytkownika. Zarówno w Fortranie 77 jak i Fortranie 95 rozpoczyna się od wykrzyknika, np. ! To jest komentarz a=0.0 ! Zeruję zmienną a W Fortranie 77 komentarz stanowi również tekst w linii zaczynającej się od C lub c w pierwszej kolumnie (w niższych wersjach Fortranu była to jedyna możliwość), albo gwiazdką w pierwszej kolumnie, np.: C Dalej leci tekst programu * To jest inny komentarz

  5. Zapis źródła programu w Fortranie 77 i niższych

  6. Uwaga! W większości kompilatorów Fortranu 77 na ogół istnieje opcja rozszerzająca pole tekstu instrukcji do 132 kolumny. Fragment programu w Fortranie 77 program fit implicit real*8 (a-h,o-z) parameter (nmax=200) C Tekst wycięty 10 rmsd=sqrt(sum/(npoint-n)) do i=1,n std(i)=rmsd*sqrt(a1(i,i)) enddo do i=1,n write (iout,'(2hx(,i2,2h)=,1pe15.5,2h (,1pe15.5,1h))') & i,x(i),std(i) enddo

  7. Zapis źródła programu w Fortranie 95 (swobodny format linii) <etykieta> tekst instrukcji Nie ma żadnych ograniczeń co do długości linii <etykieta> część tekstu instrukcji & kontynuacja tekstu & … koniec tekstu instrukcji

  8. Fragment programu w Fortranie 95 use vparam use generic_ran_num implicit none integer :: i,isample,iseed real(kind(0d0)) :: x,y,z character(3) :: liczba write (*,'(a,$)') 'iseed ',iseed read (*,*) iseed call vrndst(-iabs(iseed)) do isample=1,1000 do i=1,130 x=ran_number(0.0d0,20.0d0) y=ran_number(0.0d0,20.0d0) z=ran_number(0.0d0,20.0d0) write (liczba,'(bz,i3.3)') i write (11,10) 1,'C'//liczba(3:3), ' ',i,x,y,z enddo write (11,'(a)') 'TER' enddo 10 format('ATOM',I7,2x,a3,1x,A3,I6,4X,3F8.3) stop end

  9. Rodzaje znaków w Fortranie • Fortran używa znaków ASCII • Litery: [A-Z] i [a-z] oraz $. Można używać dużych i małych liter ale duże litery są nieodróżnialne od małych, z wyjątkiem łańcuchów tekstowych. • Cyfry: [0-9] (uwaga: w reprezentacji szestnastkowej do cyfr zalicza się też [A-E] • Pozostałe znaki łącznie z odstępem, znakiem nowej linii, itp.

  10. Elementy tekstu kodu źródłowego w Fortranie • Słowa kluczowe (np. REAL, IF, DO) • Literały: ciągi znaków reprezentujące wartości typów prostych (np. 1, 3.05e+5, .TRUE., “Ala ma kota”) • Operatory (np. +, -, .AND.) • Identyfikatory typów, stałych i zmiennych: dowlone ciągi liter i cyfr zaczynające się od litery.

  11. Typy danych: • Proste • Złożone (definiowane przez użytkownika; rozszerzenia Fortranu 77 i Fortran 95. • Proste typy danych: • INTEGER (całkowity) • REAL (rzeczywisty) • COMPLEX (zespolony) • LOGICAL (logiczny) • CHARACTER (znakowy)

  12. Typ INTEGER Pogrubienie wskazuje domyślny rodzaj typu INTEGER W Fortranie 95 “KIND=“ można pominąć i pisać np. INTEGER(2)

  13. Zapis liczb typu INTEGER Dziesiętny: np. 1235, -23987 Dwójkowy: np. B”10001001”, -B’111100011’ Ósemkowy: np. O’7777777’, -O’4442777777’ Szesnastkowy: np. Z’EEEA01’, -Z’123E’

  14. Typ REAL Jeżeli liczba jest co do modułu większa od HUGE, zastępowana jest przez stałą ±Inf a jeżeli jest mniejsza od TINY, jest zastępowana zerem.

  15. Reprezentacja maszynowa liczb rzeczywistych s – bit znaku e – bity cechy f – bity mantysy liczba = s manstysa * 2cecha

  16. Zapis liczb rzeczywistych Stałopozycyjny: np. 1234.5, -2345.5677 Zmiennopozycyjny: np. 1.235E+12, -.235E-20 0.2345D-20

  17. Typ COMPLEX

  18. Reprezentacja i zapis liczb typu COMPLEX Liczby typu COMPLEX składają się z częśći rzeczywistej i urojonej; do każdej z nich stosują się reguły reprezentacji i zapisu liczb rzeczywistych. Tak zapisujemy liczby typów COMPLEX w Fortranie: a+ib=(a,b) Np. 2.0+i*3.5=(2.0E0,3.5E0)

  19. Typ LOGICAL Zapis: .TRUE., .FALSE. albo T, F.

  20. Typ CHARACTER

  21. Deklaracje typów zmiennych lub stałych <typ> nazwa_zmiennej1,nazwa_zmiennej2,… np. INTEGER i,j,k,l,n_atoms DOUBLE PRECISION promien CHARACTER*16 nazwa_pliku Zmiennym można nadawać wartości początkowe przy ich deklaracji: INTEGER n_atoms /100/,n_molekul /3/ CHARACTER*16 nazwa_pliku /’moj_plik.txt’/

  22. Deklaracje stałych PARAMETER (nazwa1=wartość1,nazwa2=wartość2,…) Np. PARAMETER (max_number_of_atoms=1000) PARAMETER (stala_plancka=6.626D-34)

  23. Reguła pierwszej litery Jeżeli zmienna lub stała nie jest zadeklarowana bezpośrednio, to obowiązuje reguła pierwszej litery nazwy: Nazwy zaczynające się od I,J,K,L,M,N: INTEGER Pozostałe: REAL Można to zmienić przy pomocy dyrektywy IMPLICIT (musi być pierwszą dyrektywą programu lub segmentu): IMPLICIT NONE – anulowanie reguły pierwszej litery; deklarujemy wszystko IMPLICIT REAL*8 (A-H,O-Z) – domyślnym typem zmiennych lub stałych zaczynających się od tej litery jest typ podwójnej precyzji

More Related