PROGRAMMIERKURS FORTRAN

Ähnliche Dokumente
Grundlagen der Fortran Sprache

Schmitt, Günter (1996): Fortran 90 Kurs technisch orientiert, R. Oldenbourg Verlag, München

Computergrundlagen Programmieren Fortran77/90

ATIK ORMAT SINFO HAFTS WIRT. Swetlana Konovalov Seminar Programmiersprachen Westfälische Wilhelms-Universität Münster

Funktionen in JavaScript

Syntax der Sprache PASCAL

Übung 01 Harmonischer Oszillator

2.2 Einfache Datenstrukturen

Programmentwicklung. 4. allgemein (modularer Aufbau, Unterprogramme universell einsetzbar)

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

C-Grundlagen. zur Programmierung des MicroControllersystems MiCoWi

Informatik I - Übung 2 Programmieren in Eclipse

FORTRAN77. eine höllische Programmiersprache. Christian Sternecker. Sommersemester TU-München

Funktionen in JavaScript

Grundlagen wissenschaftlichen Arbeitens (ws /05)

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

Der Aufbau einer Quelltext-Datei. Anweisungen. - Header /Kopfzeile...program main

Variablen und Konstanten

3. Methodik der Programmerstellung

Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Um mit dem Computer über ein Programm in Kontakt treten zu können braucht man sogenannte Ein- und Ausgabebefehle.

2. Programmierung in C

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

4.Grundsätzliche Programmentwicklungsmethoden

Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung

Vorkurs C++ Programmierung

Variablen, Konstanten und Datentypen

Herzlich willkommen!

Grundlagen der Programmierung

Anleitung für zwei Fortran-Openmp-Beispiele auf der NWZSuperdome

C++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue

Informatik I Übung, Woche 38

5. Übung - Kanalkodierung/Programmierung

Grundlagen und Konzepte von C Datenstrukturen

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

2. Programmierung in C

Algorithmen und ihre Programmierung -Teil 2-

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

1.3 Handhabung eines Programmiersystems

Programmsteuerung. Mittel zur Programmverzweigung:

Informatik I Übung, Woche 38

2 Eine einfache Programmiersprache

Algorithmen und ihre Programmierung

Programmieren mit PASCAL

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

INFORMATIK TEIL: VBA. Infromatik WS 17/18 Teil: VBA. Allgemeines: - 4 Übungen á 3 Stunden

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Programmieren mit statistischer Software

2. Programmierung in C

(Aufgaben zu Wertzuweisungen siehe Vorlesungsbeilage S. 49)

Eine JAVA Einführung ... Quellcode:... COMA Übung 3. T.Bosse. A.Griewank. Vorschau JAVA Programme Sprachen Kate

2. Programmierung in C

WS2018/ Oktober 2018

Programmierung mit C Zeiger

Tag 4 Repetitorium Informatik (Java)

2 Eine einfache Programmiersprache

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Informatik für Schüler, Foliensatz 2 Ausdrücke, Variablen, Datentypen, Ein- und Ausgabe

Programmierpraktikum

Einführung in die Programmierung mit VBA

Inhaltsverzeichnis. Vorwort.11

Programmiertechnik Kontrollstrukturen

Schleifenprogrammierung in C/C++, Fortran und Pascal

Funktionen. mehrfach benötigte Programmteile nur einmal zu schreiben und mehrfach aufzurufen

Zeichenketten. Beispiel: Gegeben sind text1 = Hallo und text2= Welt. Dann wird in der Variablen text3 die Zeichenkette HalloWelt abgespeichert.

Informatik I. Übung 2 : Programmieren in Eclipse. 5. März Daniel Hentzen

PROFAN 6.6 FREEWARE, ANLEITUNG TEIL 1

Programmieren I + II Regeln der Code-Formatierung

Funktionen in Matlab. Nutzerdefinierte Funktionen können in.m-datei gespeichert werden

Programmieren in Fortran

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen

WS2018/ Oktober 2018

Einführung in die Programmierung

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 1

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Abschnitt 5. Grundlagen der funktionalen & imperativen Programmierung

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Kontrollstrukturen

WS2017/ Oktober 2017

4.4 Imperative Algorithmen Verzweigung und Iteration

Pseudo-Programmiersprache

Einstieg in die Informatik mit Java

Fachhochschule Südwestfalen Wir geben Impulse. Kontrollstrukturen und Schleifen in Octave

PIC16 Programmierung in HITECH-C

DFÜ-Skript-Befehlssprache Zur Unterstützung bei der Skripterstellung für das DFÜ-Netzwerk

Einführung in die Programmiersprache Julia Vorlesung Computerphysik Sommersemester 2018 Ralf Bulla Universität zu Köln

VHDL Grundelemente. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Python Intro. Vorsemesterkurs Informatik Praktischer Teil WS2012/13. 2.Oktober Vorkurs Informatik - WS 2012/13

Transkript:

Literaturempfehlung: Vorlesungsskript von Heidrun Kolinsky zu FORTRAN 90/95: http://www.rz.uni-bayreuth.de/lehre/fortran90/vorlesung/index.html Schmitt, Günter (1996): Fortran 90 Kurs technisch orientiert, R. Oldenbourg Verlag, München Brainerd, W., C. Goldberg and J. Adams (1996): Programme s Guide to Fortran 90, Springer Verlag

EINFÜHRUNG program hallo Programmcode (Quellcode) character(len=50) :: input write(*,*)'bitte Namen eingeben:' read(*,*)input write(*,*)'hallo ',input end program hallo Compilieren Umwandlung des Programmcode in Binärcode (vom Computer lesbar). Ausführen evtl. Eingabedaten read(*,*)input Ausgabedaten write(*,*) Hallo,input WS 2006/07 1

DIE PROGRAMMSTRUKTUR Ein Fortran Programm besteht aus vier Programmteilen: Programmkopf Deklarationsteil Anweisungsteil Programmende program hallo character(len=50) :: input write(*,*) Bitte Namen eingeben: read(*,*)input write(*,*) Hallo,input end program hallo WS 2006/07 2

PROGRAMMKOPF UND ENDE Allgemeine Definition: program <Programmname> end program <Programmname> <Programmname> muss der Fortran Namenssyntax genügen. Fortran Namenssyntax: Ein Name darf in Fortran bis zu 31 Zeichen lang sein. Der Name muss mit einem Buchstaben beginnen. Für die auf das erste Zeichen folgenden Zeichen dürfen alle alphanumerischen Zeichen sowie Unterstriche verwendet werden. Groß- und Kleinschreibung kann eingesetzt werden, bleibt aber vom Compiler unberücksichtigt. Es dürfen keine Schlüsselwörter (z.b. program, integer, real, do, if, else,... ) verwendet werden. WS 2006/07 3

DEKLARATIONSTEIL Allgemeine Definition: Der Deklarationsteil besteht aus einer Reihe von Konstanten und Variablenvereinbarungen. Variablenvereinbarung: <Variablentyp> :: <Variable> Konstantenvereinbarung: parameter (<Variable>=<Variablenwert>,...) <Variable> muss der Fortran Namenssyntax genügen und im Programm eindeutig sein. WS 2006/07 4

Variablentypen und wertebereiche: Datentyp Erw. Erläuterung Wertebereich logical logische Werte.true.,.false. integer *1 ganze Zahlen 2 7 + 1 bis 2 7 1 *2 ganze Zahlen 2 15 + 1 bis 2 15 1 *3 ( ) ganze Zahlen 2 31 + 1 bis 2 31 1 real *4 ( ) reelle Zahlen 10 38,53 bis 10 38,53 *8 reelle Zahlen 10 308,25 bis 10 308,25 character ( ) einzelnes Zeichen alle möglichen Zeichen (LEN=x) Zeichenkette der Länge x alle möglichen Zeichen ( ) : Standardeinstellung; ohne Erweiterung gilt diese Einstellung. WS 2006/07 5

Die Bedeutung von implicit : In Fortran sind Variablen grundsätzlich als integer vordefiniert. Diese Definition führt jedoch häufig zu Programmierfehlern, da man sich während der Programmierung nicht immer dieser Vordefinition bewusst ist. Guter Programmierstil erfordert deshalb die Verwendung des Befehls implicit none. Durch diesen Befehl müssen alle benutzten Variablen explizit definiert werden. Es besteht allerdings auch die Möglichkeit, die Vordefinition von Variablen zu ändern. Dies geschieht mit dem Befehl implicit <Variablentyp> <Variablenbereich>. Beim <Variablenbereich> beschränkt man sich üblicherweise auf die Anfangsbuchstaben der Variablennamen. Beispiele: implicit real*8 (A-F) implicit character(len=20) (H-I,L-N) WS 2006/07 6

ANWEISUNGSTEIL Der Anweisungsteil ist eine strikte Aneinanderreihung von auszuführenden Befehlen. Dieses Vorgehen kann mit Hilfe von Flussdiagrammen modelliert werden. lese Zahl i ein (1) initialisiere j=1, summe=0 (2) summe=summe+j j=j+1 (2) ist j > i? nein (3) ja gebe summe aus (1) WS 2006/07 7

(1) Lesen und Schreiben Befehle: read(*,*)<variable> write(*,*)<variable> write(*,*) <Text> write(*, (f6.3) )<Variable> Liest den vom Benutzer einzugebenden Wert der <Variable> von der Konsole ein. Schreibt den Wert der <Variable> unformatiert auf die Konsole. Schreibt den eingegebenen <Text> auf die Konsole. Schreibt den Wert der <Variable> im Format f6.3 auf die Konsole. WS 2006/07 8

Formatierungsbefehle: i4 a7 Integerzahl mit maximal 4 Stellen. Character mit maximal 7 Stellen. f6.3 Realzahl mit insgesamt 6 Stellen (inkl. Trennzeichen) und 3 Nachkommastellen. 3x 3 Leerzeichen Mehrere Formatierungsbefehle hintereinander werden durch Kommas getrennt. Beispiel: Befehl: write(*, (a5,2x,2(f4.2,2x),a3,i2) ) Hallo,123.456,1.544, hallo,12 Ausgabe: Hallo--****--1.54--hAL12 WS 2006/07 9

(2) Wertzuweisungen Befehl: <Variable>=<Variablenwert> Der <Variablenwert> muss nicht unbedingt eine feste Zahl/Zeichenkette sein. Er kann sich genauso aus der Verknüpfung mehrerer anderer Variablen zusammensetzen. Beispiele: a=6 a=0.5*a+1 (nun hat a den Wert 4(=0.5*6+1) und nicht 2.) a=b+c c=exp(x)+c**2*sqrt(x) l=max(a,b)*sign(-3,1)/mod(9,5)+abs(l) WS 2006/07 10

program array implicit none integer :: a,j,g real*8 :: Cons(0:120,2005:2100,0:1) DO a=0,120! Alter DO j=2005,2100! Jahre DO g=0,1! Geschlecht 0=Mann; 1=Frau Cons(ia,ij,ig)=0.0D0 ENDDO ENDDO ENDDO! Gleichbedeutend mit obigen DO Schleifen waere: Cons=0.0D0! Die ganze Matrix wird auf Null gesetzt Cons(:,:,1)=2.0! Allen Frauen wird ein Konsum von! 2.0 zugewiesen. WS 2006/07 11

Cons(25:61,2005:2010,1)=2.5! Allen Frauen zwischen 25 und 61! in den Jahren 2005 bis 2010! wird ein Konsum von 2.5 zugewiesen. Cons(:,2011:2100,1)=3.0! Allen Frauen wird in den Jahren von! 2011 bis 2100 ein Konsum von 3.0! zugewiesen. write(*,*)cons(50,2008,:)! Der Konsum von 50jaehrigen Maennern! und Frauen im Jahr 2008 wird! auf den Bildschirm geschrieben. end program array WS 2006/07 12

(3) Kontrollstrukturen 1. Schleifen: Sollen Anweisungen mehrmals wiederholt werden, so lässt sich dies mit Hilfe einer do Schleife realisieren. Befehle: do <Laufindex>=<von>,<bis>(,<Schrittweite>) <Anweisungsblock> enddo Standardmäßig ist als Schrittweite 1 eingestellt. Beispiele: do i=2,6 write(*,*)i enddo do j=10,2,-2 write(*,*)j,j**2 enddo WS 2006/07 13

2. Verzweigungen: Sollen Anweisungen nur unter einer Bestimmten Bedingung ausgeführt werden, so können diese Anweisungen in ein if Statement geschrieben werden. Befehle: if(<bedingung1>)then <Anweisungsblock1> alternativ: if(<bedingung>)<anweisung> (elseif(<bedingung2>)then <Anweisungsblock2>) (else <Anweisungsblock3>) endif WS 2006/07 14

Beispiele: if(i.ge.0)then sign=1 else sign=-1 endif j=1 ; summe=0 do summe=summe+j ; j=j+1 if(j.gt.i)exit enddo WS 2006/07 15

FUNKTIONEN Funktionen dienen in FORTRAN zur Berechnung eines Wertes. An eine Funktion können mehrere Werte übergegeben werden, die zur Bestimmung des Funktionswerts benötigt werden. Befehl: <Variablentyp> function <Funktionsname>((<Variable1>,...)) <Variablendeklaration> <Werteberechnung> end function <Funktionsname> In der <Variablendeklaration> müssen alle eingegebenen Variablen deklariert werden. <Variablentyp> legt den Variablentyp des Rückgabewerts der Funktion fest. WS 2006/07 16

Beispiel: integer function summe(a,b) integer :: a,b summe=a+b end function summe real function logsumme(c,d) real :: c,d if(c.le.0.or.d.le.0)then write(*,*) logsumme nicht definiert else logsumme=log(c)+log(d) endif end function logsumme WS 2006/07 17

Beispiele für den Aufruf von Funtionen: integer :: wert1,wert2,erg1 real :: wert3,wert4,erg2 erg1=summe(3,6) erg2=logsumme(2.45,1.0) wert1=5 wert2=19 wert3=-1.45 wert4=4.67 erg1=summe(wert1,wert2) erg2=logsumme(wert3,wert4) WS 2006/07 18

SUBROUTINEN Mit Subroutinen können in FORTRAN Programmabschnitte definiert werden, die in einem Programm mehrmals in gleicher Form verwendet werden können. Auch hier ist die Übergabe von Variablen möglich. Eine Subroutine besitzt jedoch keinen Rückgabewert. Befehl: subroutine <Subroutinenname>((<Variable1>,...)) <Variablendeklaration> <Programmabschnitt> end subroutine <Subroutinenname> WS 2006/07 19

Beispiele: subroutine output(a) real*8 :: a write(*, (a14,1x,f8.3) ) Variablenwert:,a end subroutine output subroutine summen(a,b,c,d,summe,logsumme) integer :: a,b,summe real :: c,d,logsumme summe=a+b if(c.le.0.or.d.le.0)then write(*,*) logsumme nicht definiert else logsumme=log(c)+log(d) endif end subroutine summen WS 2006/07 20

Beispiele für den Aufruf von Subroutinen: real*8 :: wert integer :: wert1,wert2,erg1 real :: wert3,wert4,erg2 call output(23.126723) call summen(3,6,2.34,1.23,erg1,erg2) wert=121.2343 wert1=5 wert2=19 wert3=-1.45 wert4=4.67 call output(wert) call summen(wert1,wert2,wert3,wert4,erg1,erg2) WS 2006/07 21