Über Einträge in der Modulsteuerdatei …ARC_EGMOMODUL.STE können einem Modul Parameter, Steuergrößen oder sonstige Werte zugeordnet werden. Dazu ist, analog dem Beispiel in Abbildung 8.4‑1, ein Block in der Steuerdatei einzurichten. Dieser Block sollte mit einem eindeutigen Steuerwort wie dem Modulnamen eingeleitet werden. Die eigentliche Steuerinformation, hier ein Faktor zur Skalierung des Rückgangsverhaltens des Abflusses, wird über ein Schlüsselwort definiert.
Q_ELS RUECKGANGSFAKTOR 0.002
Abbildung 8.4‑1: Auszug aus der Modulsteuerdatei
Tabelle 8.4‑1: Routinen zur Modulsteuerung
Name der Funktion | Übergabewerte | Bedeutung |
FdModul | (void) | FILE-Pointer auf die Datei MODUL.STE |
FdPara | (int rb, char* access, char* fname) | FILE-Pointer auf eine Parameterdatei <RB><fname> im para-Verzeichnis der akt. Berechnungsvariante, access <wt|rt>, rb <EFL|KAS|TG|GEB|REG|FGW> |
ZModulSteuerInfo | (modulname, key, zeile) | gibt komplette Zeile aus dem über modulname definierten Block zur eigenen Weiterverwendung |
ModulAnswer | (modulname, key) | Wertet Ja/Nein-Anworten in der Modulsteuerdatei aus |
IModulSteuerInfo | (modulname, key, val, default) | Gibt INT-Wert aus Steuerdatei zurück, Blockdefinition über Modulname, Zeilendefinition über key |
DModulSteuerInfo | (modulname, key, val, default) | Gibt Double-Wert aus Steuerdatei zurück, Blockdefinition über Modulname, Zeilendefinition über key |
CmodulSteuerInfo | (modulname, key, val, default) | Gibt Zeichenkette aus Steuerdatei zurück, Blockdefinition über Modulname, Zeilendefinition über key |
ModulTestDruck | (modulname) | Rueckgabe 1, wenn Testdruck aktiviert wurde, d.h. Zeichenkette „Testdruck“ in der MODUL.STE gefunden wurde |
Für den Zugriff auf die Steuerinformationen vom Programm aus stehen eine Reihe von Routinen zur Verfügung, die in Tabelle 8.4‑1 aufgelistet sind und die detaillierter (mit Prototypen) im Kapitel „Schnittstellen“ dokumentiert sind.
Der kleine Programmauszug aus Q_ELS.C in Abbildung 8.4‑2 zeigt beispielhaft die Nutzung dieser Routinen. Über den Modulnamen „q_els“ und das Schlüsselwort „RUECKGANGSFAKTOR“ wird der gewünschte Eintrag selektiert und der Wert von 0.002 auf die double-Variable kfak geschrieben. Wurde der angegebene Eintrag nicht gefunden, liefert die Routine als Rückgabewert „0“, so dass dann gemäß dem Vergleich im Beispiel kfak mit einem Standardwert (hier 0.1) belegt wird.
DModulSteuerInfo(„q_els“,“RUECKGANGSFAKTOR“,&kfak, 0.1); |