Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Reelle Zahlen Variablen, die grundsätzlich reelle Werte annehmen können oder in Ausdrücken erscheinen, die einen reelllen Wert liefern, sollten vom Typ.

Ähnliche Präsentationen


Präsentation zum Thema: "Reelle Zahlen Variablen, die grundsätzlich reelle Werte annehmen können oder in Ausdrücken erscheinen, die einen reelllen Wert liefern, sollten vom Typ."—  Präsentation transkript:

1 Reelle Zahlen Variablen, die grundsätzlich reelle Werte annehmen können oder in Ausdrücken erscheinen, die einen reelllen Wert liefern, sollten vom Typ REAL sein.

2 Division ganzer Zahlen Betrachte die Auswertung der Anweisung a = b*c/d, wobei b eine reelle Variable mit dem Wert ist, während c und d ganze Zahlen mit den Werten 9 und 10 sind. –b*c wird zuerst ausgewertet, wobei c zunächst in den reellen Wert 9.0 umgewandelt wird. –Danach wird der Wert von d in seinen reellen Gegenwert umgewandelt, bevor die Division ausgeführt wird. Ellis et al. (1994), S. 48

3 Division ganzer Zahlen Was passiert, wenn der Ausdruck in der folgenden, mathematisch gleichwertigen Form geschrieben worden wäre: a = c/d*b ? –In der ersten Operation sind beide Operanden ganze Zahlen, so dass der Unterausdruck c/d als ganzzahlige Operation ausgeführt wird. –Das mathematische Ergebnis (0.9) wird abgeschnitten und liefert ein Zwischenergebnis von Null. Ellis et al. (1994), S. 49

4 Literaturhinweis Ellis, T.M.R., Phillips, Ivor R., and Lahey, Thomas M.: Fortran 90 Programming, Addison-Wesley Publishing Company, M. Schulz

5 Mathematical Operations Deg_C = 5.0 * (Deg_F ­ 32.0) / 9.0 The expression on the RHS is evaluated and assigned to the REAL variable Deg_C * is the multiplication operator, ­ is the subtraction operator, / is the division operator, ** is the exponentiation, and = is the assignment operator. M. Schulz

6 Important Built-In Functions ABS(x)Absolute value LOG(x)Natural logarithm LOG10(x)Base-10 logarithm EXP(x)Natural exponential SQRT(x)Square root SIN(x)Sine (x in radians!) COS(x)Cosine TAN(x)Tangent ASIN(x)Arcsine ACOS(x)Arccosine ATAN(x)Arctangent INT(x)Convert real to integer, truncation (7.8 7) NINT(x)Convert real to integer, rounding (7.8 8) REAL(i)Convert integer to real (1 1.0)

7 Unix-Tipp Wenn das aktuelle Verzeichnis. nicht im Suchpfad enthalten ist, dann kann man ein Programm a.exe mit dem Befehl./a.exe starten.

8 Tipps zur Fehlersuche PRINT-Anweisungen einbauen, um den Wert bestimmter Variablen zu überprüfen Spezielle Compileroptionen wählen, um zum Beispiel Feldbereichsüberschrei- tungen anzuzeigen

9 OptionBedeutung g95 --help g95 --target-help g95 –fbounds-check Prüfe Feld- und Zeichenkettengrenzen G95-Optionen

10 Fortran- Links –http://www.g95.org/G95Manual.pdf –http://de.wikibooks.org/wiki/Fortran:_Fortran_ 95 –http://de.wikibooks.org/wiki/Fortran:_G95

11 Vergleichsoperatoren VergleichsoperatorBedeutung < kleiner <= kleiner oder gleich == gleich /= ungleich > größer >= größer oder gleich

12 Energiebilanzmodell (Aufgabe 4) Projektübung Klimamodellierung ( ) – A. Paul

13 Punktmodell der Strahlungsbilanz (Stocker 2004, Abschnitt 2.2) Gewöhnliche, nichtlineare Differentialgleichung erster Ordnung für die unbekannte, zeitabhängige Variable T(t)

14 R6371kmErdradius h8.3kmSkalenhöhe 1.2kg m -3 Luftdichte C1000J kg -1 K -1 Spezifische Wärme von Luft TKTemperatur 0.3Planetare Albedo S1367W m -2 Solarkonstante 0.6 Emissions- vermögen 5.67x10 -8 W m -2 K -4 Stefan-Boltzmann- Konstante

15 Gleichgewichtstemperatur des globalen Energiebilanzmodells: Die aus Messungen bestimmte mittlere Oberflächentemperatur beträgt 14°C (fett ausgezogen).

16 Eis-Albedo-Rückkopplung Die Eis-Albedo-Rückkopplung soll durch folgende Abschätzung der Elbedo parameterisiert werden:

17 T(t) in eine Taylorreihe entwickeln: t = n t, n=0,1,2,… Nach der ersten Ableitung auflösen: Euler-Schema Diskretisierung

18 Ersetzen von t durch - t und addieren: Schema der zentrierten Differenzen

19 Das Euler-Verfahren ist das einfachste, aber auch ungenaueste Verfahren zur Lösung der gewöhnlichen Differentialgleichung erster Ordnung mit der Anfangsbedingung Im Fall des Energiebilanzmodells ist

20 Das Euler-Verfahren wertet die Ableitung nur an den Stellen x und x+ x aus. Dies entspricht der Linearisierung der langwelligen Ausstrahlung. Genauere Verfahren vom Typ Runge- Kutta k-ter Ordnung verwenden weitere Stützstellen im Intervall [x, x+ x]

21 Runge-Kutta-Verfahren k-ter Ordnung Durch die Auswertung von f(x,y) an weiteren Stützstellen im Intervall [x, x+ x] und eine geschickte Linearkombination kann der Fehler von O( x) auf O[( x) k ] reduziert werden

22 Stocker (2004), S. 33 Die Vorschrift für das klassische Runge-Kutta-Verfahren 4. Ordung lautet:

23 Parameterisierte REAL -Variablen REAL -Variablen (reelle Zahlen) sind parameterisiert. Der kind- Typparameter legt die Anforderungen an die minimale Genauigkeit und den Bereich des Exponenten fest.

24 ! Parameter declarations ! Symbolic name for a real kind type with at least ! 15 decimal digits of precision and an exponent range ! from 10**300 to 10**(-300) (double precision) INTEGER, PARAMETER :: dp=SELECTED_REAL_KIND(P=15,R=300) ! Symbolic name for a real kind type with at least ! 6 decimal digits of precision and an exponent range ! from 10**30 to 10**(-30) (single precision) INTEGER, PARAMETER :: sp=SELECTED_REAL_KIND(P=6,R=30) ! Symbolic name for a default real kind type INTEGER, PARAMETER :: q=dp ! Variable declarations REAL(KIND=q) :: dpress REAL(KIND=q), DIMENSION(1:km) :: p

25 FUNCTION- und SUBROUTINE- Unterprogramme FUNCTION- Unterprogramme berechnen einen einzigen Wert, der an der Aufrufstelle eingesetzt wird. SUBROUTINE- Unterprogramme gestatten die gleichzeizige Berechnung mehrerer Werte.

26 SUBROUTINE rk4(y,dx,yp) IMPLICIT NONE ! Dummy arguments REAL(KIND=q), INTENT(IN) :: y,dx REAL(KIND=q), INTENT(OUT) :: yp ! Local variables ! dy1, dy2, dy3, dy4 = correspond to K1, K2, K3, K4 in ! fourth-order Runge-Kutta formula REAL(KIND=q) :: dy1,dy2,dy3,dy4 dy1 = f(y) dy2 = f(y + dx/2.0_q*dy1) dy3 = f(y + dx/2.0_q*dy2) dy4 = f(y + dx*dy3) yp = (dy _q*dy _q*dy3 + dy4)/6.0 END SUBROUTINE rk4 FUNCTION- und SUBROUTINE- Unterprogramme

27 Block IF -Struktur ! Variable declarations ! tol = criteria of convergence (K) REAL(KIND=q) :: tol [..] ! Initializations tol = 1.0E-03_q [..] ! Time loop DO itt=1,ittmax [..] ! Test for convergence IF (ABS(tf – ti) < tol) THEN EXIT END IF END DO


Herunterladen ppt "Reelle Zahlen Variablen, die grundsätzlich reelle Werte annehmen können oder in Ausdrücken erscheinen, die einen reelllen Wert liefern, sollten vom Typ."

Ähnliche Präsentationen


Google-Anzeigen