<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://update.proggen.org/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://update.proggen.org/feed.php">
        <title>proggen.org fortran</title>
        <description></description>
        <link>http://update.proggen.org/</link>
        <image rdf:resource="http://update.proggen.org/lib/tpl/proggenY/images/favicon.ico" />
       <dc:date>2026-04-19T13:56:59+0200</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=fortran:array&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=fortran:branching&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=fortran:commandline&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=fortran:dynaminc_memory&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=fortran:file&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=fortran:format&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=fortran:functionvar&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=fortran:inoutput&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=fortran:iteration&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=fortran:openmp&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=fortran:pointer&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=fortran:setup&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=fortran:start&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=fortran:string&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=fortran:struct&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=fortran:structure&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=fortran:subroutine&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=fortran:variable&amp;rev=1663868366"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=fortran:why&amp;rev=1663868366"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://update.proggen.org/lib/tpl/proggenY/images/favicon.ico">
        <title>proggen.org</title>
        <link>http://update.proggen.org/</link>
        <url>http://update.proggen.org/lib/tpl/proggenY/images/favicon.ico</url>
    </image>
    <item rdf:about="http://update.proggen.org/doku.php?id=fortran:array&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fortran:array</title>
        <link>http://update.proggen.org/doku.php?id=fortran:array&amp;rev=1663868366</link>
        <description>Felder / Arrays / Matrizen

Felder sind in Programmiersprachen nützlich um viele Daten des gleichen Typs speichern zu können. Außerdem können so Vektoren oder Matrizen dargestellt werden, sodass ein einfacher Zugriff auf die Daten möglich wird.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=fortran:branching&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fortran:branching</title>
        <link>http://update.proggen.org/doku.php?id=fortran:branching&amp;rev=1663868366</link>
        <description>Verzweigungen

Verzweigungen und Schleifen sind Grundbestandteil eines jeden Programms. Durch Verzweigungen ist es möglich den Programmlauf anhand von Werten von Variablen zu steuern, mit Schleifen ist es möglich Teile des Programms mehrmals auszuführen.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=fortran:commandline&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fortran:commandline</title>
        <link>http://update.proggen.org/doku.php?id=fortran:commandline&amp;rev=1663868366</link>
        <description>Abfrage von Kommandozeilenparameter

In komplexeren Anwendungen ist es üblich Parameter dem Programm beim Start zu übermitteln. Dh. es muss nicht während des Programmlaufs gestoppt werden, um eine Nutzereingabe zu erhalten, sondern die Parameter können beim Programmstart als Kommandozeilenparameter angegeben werden, die dann während des Programmlaufs interpretiert werden.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=fortran:dynaminc_memory&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fortran:dynaminc_memory</title>
        <link>http://update.proggen.org/doku.php?id=fortran:dynaminc_memory&amp;rev=1663868366</link>
        <description>Dynamische Speicherverwaltung

In Fortran müssen alle Variablen vor der ersten Anweisung eines Blocks definiert werden. Dh. der Compiler kann bereits beim Start eines Unterprogramms Speicherplatz für die Variablen anfordern, und muss sich während der Laufzeit keine Gedanken machen. Dieses Verhalten bringt aber das Problem mit sich, dass Felder nicht dynamisch alloziert werden können, dh. dass nur Felder fester Größe vereinbart werden können.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=fortran:file&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fortran:file</title>
        <link>http://update.proggen.org/doku.php?id=fortran:file&amp;rev=1663868366</link>
        <description>Umgang mit Dateien

Der Umgang mit Dateien ist in vielen Programmen unerlässlich, sei es um Ausgabedaten festzuhalten oder Eingabedaten komfortabel einzulesen oder um Konfigurationdaten zu speichern.

Dateien müssen in Fortran grundsätzlich zunächst geöffnet werden, dann kann je nachdem was beim Öffnen angegeben wurde, gelesen und / oder geschrieben werden, und wenn die Datei nicht mehr benötigt wird, sollte die Datei wieder geschlossen werden. Beim Öffnen wird eine Unit-Nr mit der Datei verknüp…</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=fortran:format&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fortran:format</title>
        <link>http://update.proggen.org/doku.php?id=fortran:format&amp;rev=1663868366</link>
        <description>Formatstrings

Formatstrings dienen dazu die Ausgabe / Eingabe zu formatieren. So kann bspw. bei Eingaben angegeben werden, welche Datentypen erwartet werden, oder bei Ausgaben, welche Datentypen wie ausgegeben werden (bspw. hexadezimal, etc).

Angabe von Formatstrings</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=fortran:functionvar&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fortran:functionvar</title>
        <link>http://update.proggen.org/doku.php?id=fortran:functionvar&amp;rev=1663868366</link>
        <description>Funktionen als Parameter

Bei einigen Anwendungen kann es notwendig sein, Funktionen als Parameter einer anderen Funktion zu übergeben. Beispielsweise, wenn Sie eine Funktion implementieren wollen, die eine mathematische Funktion integriert. Es ist zwar möglich die mathematische Funktion fest einzubauen, jedoch muss bei jeder Änderung das Programm neu übersetzt werden und eine Eingabe von Funktionen durch den Nutzer ist überhaupt nicht möglich.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=fortran:inoutput&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fortran:inoutput</title>
        <link>http://update.proggen.org/doku.php?id=fortran:inoutput&amp;rev=1663868366</link>
        <description>Ein- und Ausgabe

Ein- und Ausgabe ist eine sehr wichtige Aufgabe der meisten Programme, schließlich wollen wir Ergebnisse von Berechnungen auch am Bildschirm sehen. Wir beginnen bei den einfachen Ein- und Ausgabeoperationen, danach werden wir weitere Parameter an die Ein- bzw. Ausgabe stellen.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=fortran:iteration&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fortran:iteration</title>
        <link>http://update.proggen.org/doku.php?id=fortran:iteration&amp;rev=1663868366</link>
        <description>Schleifen

Schleifen (Iterationen) werden dazu verwendet Quellcode mehrfach hintereinander auszuführen. Abhängig von einer Bedingung kann Code also wiederholt werden.

Klassisches Fortran

In klassichem Fortran wird gibt es eine Zählschleife:


      DO &lt;m&gt; k = &lt;kvon&gt;, &lt;kbis&gt; [, &lt;kstep&gt;]
c       Anweisungscode
&lt;m&gt;   CONTINUE ! oder andere Anweisung</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=fortran:openmp&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fortran:openmp</title>
        <link>http://update.proggen.org/doku.php?id=fortran:openmp&amp;rev=1663868366</link>
        <description>OpenMP in Fortran

OpenMP stellt eine einfache Möglichkeiten dar, Code zu parallelisieren. Dabei parallelisiert der Compiler automatisch Schleifen etc, mithilfe von mehreren Threads. 

Parallel Do

Eine Do-Schleife (also eine Zählschleife) lässt sich durch OpenMP parallelisieren, wenn die Zählvariable im Schleifenkörper nicht verändert wird. Bspw. ist es möglich folgende Schleife zu parallelisieren:</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=fortran:pointer&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fortran:pointer</title>
        <link>http://update.proggen.org/doku.php?id=fortran:pointer&amp;rev=1663868366</link>
        <description>Zeiger

Zeiger in Fortran agieren wie Zeiger in C. Sie werden durch das Attribut POINTER deklariert, und zeigen ab dann auf andere Zeiger oder mittels TARGET deklarierte Variablen. Außerdem ist es möglich Zeigern dynamisch Speicherplatz zuzuordnen.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=fortran:setup&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fortran:setup</title>
        <link>http://update.proggen.org/doku.php?id=fortran:setup&amp;rev=1663868366</link>
        <description>Fortran einrichten

Auf einem heutigen System wird für Fortran lediglich ein Compiler benötigt. In diesem Tutorial wird der gfortran-Compiler aus der GNU Compiler Collection verwendet. 

Windows

FIXME

Linux (Ubuntu)

Unter Linux installieren Sie einfach das Paket</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=fortran:start&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fortran:start</title>
        <link>http://update.proggen.org/doku.php?id=fortran:start&amp;rev=1663868366</link>
        <description>Fortran
 The sooner we can forget that FORTRAN has ever existed, the better, 
for as a vehicle of thought it is no longer adequate: 
it wastes our brainpower, is too risky and therefore too expensive to use. 
FORTRAN's tragic fate has been its wide acceptance,</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=fortran:string&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fortran:string</title>
        <link>http://update.proggen.org/doku.php?id=fortran:string&amp;rev=1663868366</link>
        <description>Zeichenketten

Zeichenketten in Fortran haben eine Art Sonderstellung. Die Sprache war nicht dafür gedacht mit Zeichenketten umzugehen, was sich später ändern musste, da viele Anwender nicht mehr an der Lösung einer mathematischen Aufgabe interessiert waren, sondern Programme bedienen wollten.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=fortran:struct&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fortran:struct</title>
        <link>http://update.proggen.org/doku.php?id=fortran:struct&amp;rev=1663868366</link>
        <description>Zusammengesetzte Datentypen

In vielen Programmiersprachen gibt es die Möglichkeit mehrere Variablen unterschiedlichen oder gleichen Typs zu einem Verbund zusammenzufügen. Dabei wird dem neuen Konstrukt ein Namen vergeben, unter dem neue Variablen deklariert werden können. Das ist auch in Fortran möglich, mit dem Schlüsselwort</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=fortran:structure&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fortran:structure</title>
        <link>http://update.proggen.org/doku.php?id=fortran:structure&amp;rev=1663868366</link>
        <description>Programmstruktur

Schauen wir uns das Hello-World Programm einmal genauer an, so bemerken wir, dass die Anweisungen eingerückt sind. Das ist dadurch bedingt, dass dieser Quellcode im Fixed-Form-Zeilenformat geschrieben ist. 


	PROGRAM HELLO_WORLD
		write (*,*) &quot;Hello World&quot;
	END</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=fortran:subroutine&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fortran:subroutine</title>
        <link>http://update.proggen.org/doku.php?id=fortran:subroutine&amp;rev=1663868366</link>
        <description>Unterprogramme und Funktionen

Unterprogramme sind oft benutze Quellcode-Stellen, die problemlos aus einem Projekt entfernt werden könnten und in anderen wieder Verwendung finden könnten. 

Beachten Sie, dass bei der Parameterdeklaration im Unterprogramm die gleichen Datentypen anzugeben sind, wie Sie für die Variablen im rufenden Programm verwendet haben. Übergibt man aus dem Hauptprogramm bspw. einen Integerwert, hat im Unterprogramm für den Parameter aber Real festgelegt, wird der Compiler ni…</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=fortran:variable&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fortran:variable</title>
        <link>http://update.proggen.org/doku.php?id=fortran:variable&amp;rev=1663868366</link>
        <description>Variablen in Fortran

In diesem Kapitel geht es um die Verwendung von Variablen in Fortran. 

Datentypen

In Fortran existieren folgende Datentypen:

	*  INTEGER (Ganzzahlen)
	*  REAL (Fließkommazahlen)
	*  DOUBLEPRECISION (Fließkommazahlen doppelter Genauigkeit (mehr dazu unten))</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=fortran:why&amp;rev=1663868366">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:26+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fortran:why</title>
        <link>http://update.proggen.org/doku.php?id=fortran:why&amp;rev=1663868366</link>
        <description>Warum Fortran lernen?

Fortran (Formula Translator) ist eine der ältesten Programmiersprachen und diente ursprünglich dazu Formeln „bequem“ in den Computer eingeben zu können und nicht mühselig jede Berechnung in Maschinencode eingeben zu müssen. Der eigentliche Übersetzungsvorgang von Fortran-Code in Maschinencode wird von einem Compiler übernommen.</description>
    </item>
</rdf:RDF>
