Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

FORTRAN 77.

Ähnliche Präsentationen


Präsentation zum Thema: "FORTRAN 77."—  Präsentation transkript:

1 FORTRAN 77

2 Allgemeines Nicht mehr als 70 Zeichen pro Zeile
Mindestens die ersten 7 Zeichen müssen leer bleiben Komentare mit vorgestelltem C

3 Die erste Zeile Allgemeine Deffinition
implicit double precision (a-h,o-z) wenig schreibarbeit man kann keine Deffinitionen vergessen man kann nicht alle Variablennamen verwenden (z.B. mü, nü,...) Spezielle Deffinition integer a, b real c, d double precision e, f character g, h Variablennamen beliebig wählbar man muß die Definition ändern, wenn man im Programm was ändert Zwei Variablen dürfen nie den gleichen Namen haben!

4 Die Grundrechnungsarten
Addition, Subtraktion, Multiplikation, Division: a = b + c a = b – c a = b * c a = b / c Potenzen und Wurzeln a = b**c a = sqrt(b) = a = b**(1/c) = sonstige Funktionen: cos, sin,... Achtung Fortran rechnet in Radians also: z.B. sin(45) schreibt man in Fortran: sin(45*/180) Logarithmus inverse Funktionen Informationen im Web:

5 Ein-, Ausgeben & Die letzte Zeile
read*, a, b, c print*, a, b, c stop end muß immer am Ende stehen!

6 und schon kanns los gehen!
Fortran Compiler für Windows: z.B. Force 8 für Linux: g77 –o programm –O programm.f

7 Beispiel Das Programm soll mit zwei angegebene Zahlen alle Grundrechnungsarten durchführen...

8 Einlesen aus einem File
Aus einem Textfile Zahlen einlesen: open(unit=11, file='zahlen.txt', status='old') read(11,*) b, c close(11) Das File zahlen.txt muß zuerst angelegt werden Leerzeichen trennen die Einträge

9 Schreiben in ein File Ergebnisse in ein Textfile schreiben:
open(unit=12, file='ergebnis.txt', status='unknown') write(12,*) a, a1, a2 close(12)

10 mehrere Zeilen lesen bzw. schreiben
open(unit=11, file='zahlen.txt', status='old') open(unit=12, file=‚ergebnis.txt', status=‚unknown') read(11,*) b, c read(11,*) b1, c1 read(11,*) b2, c2 Usw... write(12,*) a, a1, a2 write(12,*) aa, aa1, aa2 close(11) close(12)

11 Und jetzt das gleiche Bsp...
Diesesmal wollen wir mehrere Zahlen eingeben, mit denen die gleichen bzw. verschiedene Rechenoperationen durchgeführt werden sollen...

12 Do - Schleifen implicit double precision (a-h,o-z)
open(unit=11, file='zahlen.txt', status='old') open(unit=12, file=‘ergebnis.txt', status=‘unknown') do 100 n=1, 4 read(11,*) b, c a=b+c write(12,*) a 100 continue close(11) close(12) stop end

13 nur einlesen dimension b(10), c(10) do 100 n=1,7
read(11,*,end=200) b(n), c(n) 100 continue 200 stop end damit lassen sich beliebig viele Zahlen einlesen und z.B. in do – Schleifen verwenden end= beendet die do – schleife wenn die letzte Zeile eingelesen ist Die Marken (z.B. 100, 200) müssen gleich am Anfang einer Zeile stehen

14 nocheinmal das gleiche Bsp.
Diesmal wollen wir die Zahlen mit Hilfe einer do – Schleife einlesen bzw. auch rausschreiben...

15 If - Abfrage z.B. bei mehreren Befehlen: if(a.gt.0) write(12,*) a
if(a.gt.0) then write... b=c+d usw. endif

16 mögliche if – Abfragen (a.eq.0) ... ist gleich (a.gt.0) ... größer als
(a.lt.0) ... kleiner als (a.ge.0) ... größer oder gleich (a.le.0) ... kleiner oder gleich

17 Kombinationen von if - Abfragen
Bedingung: a<b und c>d if(a.lt.b.and.c.gt.d) then.... Bedingung: a<b oder c<d if(a.lt.b.or.c.lt.d) then...

18 if - else z.B. else if(a.gt.0) then write(12,*) a else write(12,*) b
end if z.B. else if if(a.gt.0) then write(12,*) a else if(a.lt.-5) write(12,*) b end if

19 ein letztes Mal das gleiche Beispiel
Wir wollen jetzt nur die Zahlen > 0 in das ergebnis – file geschrieben haben...

20 der goto - Befehl nicht gerne gesehen, aber trotzdem recht nützlich:
Anwendung: goto Referenz z.B.: goto 300 das Programm springt dann sofort zu der Marke 300

21 bei grösseren Programmen
kann es sehr sinnvoll sein Unterprogramme zu verwenden: ein Beispiel aus einem LIE – Integrator Programm:

22 Unterprogramme – Bsp. 1 CALL PARAM C....EINLESEN DER PARAMETER
SUBROUTINE PARAM TINV = 1 / T READ(11,*) STP,PRT read(11,*) xlim READ(11,*) INI READ(11,*) N READ(11,*) NM,NML READ(11,*) LOGEPS READ(11,*) SWMINI READ(11,*) SWSUM,NSTEP RETURN END

23 Unterprogramme – Bsp. 2 call TRUAN C MEAN ANOMALY ---> TRUE ANOMALY
SUBROUTINE TRUAN(EKAR,T) IMPLICIT REAL(A-H,O-Z) IMPLICIT INTEGER (I-N) Q=(1.-EKAR)/(1.+EKAR) SQ=SQRT(Q) RSQ=1./SQ T=T*PI/180 RETURN END


Herunterladen ppt "FORTRAN 77."

Ähnliche Präsentationen


Google-Anzeigen