Bei der Erprobung verschiedener Verfahren haben Sie als Benutzer die Möglichkeit, Funktionen selbst zu definieren oder Verfahrensparameter einzugeben. Da die im Hintergrund laufenden Programme alle auf Standard-f77 mit den Erweiterungen des MILSTD1753 basieren, müssen Sie einige einfache Regeln beachten, damit der Compiler Ihre Eingaben akzeptiert. Wenn nichts anderes gesagt ist, sind alle Eingabewerte reell oder ganzzahlig.
Ganze Zahlen geben Sie ein, wie Sie sie mit Schreibmaschine schreiben würden.
Zur Darstellung reeller Zahlen ist zu beachten: f77 benutzt die Darstellung mit Dezimalpunkt und Exponentialteil (wie Sie sie vielleicht schon von Ihrem Taschenrechner kennen). Da wir einen c-Parser verwenden, muß die Eingabe von reellen Zahlen folgende Form haben: z.B. können Sie die Zahl -0.01 eingeben wie folgt: -0.01, -.01, -0.1E-1 , -1E-2 etc. Das "E" steht dabei für "exponential part". Leider ist das "doppelt genaue" Format z.B. 3.14159D0 in Eingabefeldern für Konstanten nicht erlaubt, weil einige tools, die wir benutzen, dies nicht verstehen. Also hier Vorsicht.Ausnahme:eigene Funktionen Wenn Sie in eingegebenen selbstdefinierten Funktionen die spezifischen Namen von Standardfunktionen benutzen und z.B. Wurzel(2) haben wollen, dann muessen Sie dsqrt(2.0D0) schreiben, denn dqsrt(2.0) liefert eine Fehlermeldung (dsqrt erwartet ein double precision Argument) und sqrt(2.0) liefert nur wurzel(2) auf 7, nicht auf 16 Stellen. In Fortran ist single precision der Default bei Konstanten, im Gegensatz zu C.
Wenn Sie Formeln von Funktionen eingeben, ist zu beachten, daß der Variablenname einer Funktion nicht frei wählbar ist (weil Ihre Formelzeile in einen vorbereiteten Text hineinkopiert wird). Die Funktionsvariable ist aus den vorgefertigten Texten jeder Anwendung zu entnehmen. In der Regel ist es das "x" bei Funktionen von einer Veränderlichen und "x(1), x(2), x(5) ,,," bei Funktionen mehrerer Veränderlicher. Die arithmetischen Verknüpfungen sind "+", "-", "*", "/", "**" (für die Exponentiation). Sie können beliebig Klammern setzen "(", ")". Bei der Exponentiation sind auch reelle Exponenten erlaubt. Dann muß die Basis aber positiv sein. Also z.B.
(x+0.1)**2.3 ist zulässig für x > -0.1
(-1.1)**2.0 ist nicht erlaubt,
(-1.1)**2 ist natürlich erlaubt.Sie können ferner die üblichen Funktionen benutzen wie dsin(), dcos(), dtan() (Tangens), dexp(). dlog() ist der natürliche Logarithmus und dlog10() der dekadische. datan, dasin, dacos sind die Inversen zu dtan(), dsin(), dcos(). dtanh(), datanh(), dsinh(), dasinh() sind auch bekannt. Es gibt dsqrt() für die Wurzel und dabs() für den Absolutbetrag. Dies sind sogenannte spezifische intrinsics für die doppelt genaue Rechnung. Da Sie manchmal diese spezifischen Namen benutzen müssen, sollten Sie sie immer benutzen, obwohl der FORTRAN-Compiler auch die "generischen" (ohne das führende d) kennt
Manche Programme erlauben Ihnen die Benutzung voreingestellter Konstanten wie pi, e, sqrt2 (für sqrt(2)), aber nicht alle, dies ist jeweils angegeben.
Achtung:Die einzige "Falle" ist die Darstellung von Konstanten in arithmetischen Ausdrücken. Sie sollten sich angewöhnen, in der Definition von Funktionen stets die reelle Darstellung mit dem Dezimalpunkt zu benutzen, weil z.B. 1/3 zu 0 ausgewertet wird, eben dem ganzzahligen Anteil von 1/3, (Der Compiler entnimmt aus der Darstellung, daß die Operanden ganzzahlig sind und führt die Rechnung deshalb in den ganzen Zahlen aus).
Wenn Sie sich vertippen, indem Sie z.B. eine Klammer ) vergessen, wird sich der Compiler beschweren (Sie erhalten die Compiler-Standard-Ausgabe zurück). Leider sind die Fehlermeldungen nicht immer so leicht verständlich wie in diesem Fall (missing parenthesis).Aber bei etwas Sorgfalt wird diese Eingabe keine Hürde für Sie sein.
Bei einigen Anwendungen ist für eine Funktion oder eine Transformationsformel nur eine Eingabezeile (kein Fenster) vorgesehen. Denken Sie daran, daß die gesamte Zeilenlänge 72 Zeichen nicht überschreiten darf, wovon bereits 6 Zeichen plus die bereits vorgegebenen (aus dem Text ersichtlichen) abgehen. Wenn Sie hier etwas falsch machen, wird sich der Compiler beschweren, z.B. "missing parentheses", "missing quotes supplied", "unrecognizable statement". Dafür brauchen Sie dann hier nicht an die 6 führenden Leerzeichen zu denken.
Achtung: Einige dieser Anwendungen erfordern eigentlich auch die Bereitstellung von partiellen Ableitungen. (Insbesondere die Optimierungsprogramme). In den meisten Fällen haben wir dafür numerische Ableitungen oder die Methode der automatischen Differentiation (das ist ein Präprozessor, der ein Programmstück für eine Funktion in eines für Funktion und partielle Ableitungen umwandelt) benutzt. In letzterem Fall müssen Sie die Funktionsnamen der Standardfunktionen in der spezifischen Form , also dsin, dcos, dsqrt, datan, dlog, dlog10, dexp, dabs verwenden. Die Erweiterungen dtan, dasin, dacos, dtanh, dsinh, datanh, dasinh sind dann nicht erlaubt. Wenn Sie sie dennoch benutzen, erhalten Sie die Fehlermeldung "unrecognized keyword"
Wenn Sie einen Text eingeben z.B. für einen Abbildungstitel, darf der kein "blank" enthalten. Sie benutzen am besten "underscore" statt "blank" in diesem Fall.
Viel Spaß!
02.12.2005