Alle Programmkomponenten besitzen Bibliotheksfunktionen und damit „offene Schnittstellen“, die vom Modellentwickler bei der Integration eigener Modelle in das System genutzt werden können. In den folgenden Tabellen sind diese Funktionen komplett aufgelistet.
Tabelle 9.1‑2: Daten ohne Raumbezug 3
Tabelle 9.1‑5: Zeit-Routinen 6
Tabelle 9.1‑6: Ergebnisgrößen der Vertikalprozessebenen 6
Tabelle 9.1‑9: Gesamtabflussmodul 8
Tabelle 9.1‑10: Abflussbildungsmodul 8
Tabelle 9.1‑11: Direktabflussmodul 9
Tabelle 9.1‑12: Grundwasserabflussmodul 9
Tabelle 9.1‑13: Hydrotopklassen 10
Tabelle 9.1‑14: Gesamtgebiet 10
Tabelle 9.1‑15: Teileinzugsgebiete 11
Tabelle 9.1‑16: Kaskadensegmente 11
Tabelle 9.1‑17: Elementarflächen 12
Tabelle 9.1‑18: Gewässerabschnitte 14
Tabelle 9.1‑1: Module
Funktionstyp | Name der Funktion | Übergabewerte | Bedeutung |
char* | ModulName | (int me) | Name des Moduls, das der über me (ABI, RD, GW oder Q) definierten Modellebene zugeodnet ist |
double | ModulDT | (int me) | Zeitschrittweite dieses Moduls |
FILE* | FdModul | (void) | FILE-Pointer auf die Datei MODUL.STE |
int | ZModulSteuerInfo | (char* modulname, char* key, char* zeile) | gibt komplette Zeile aus dem über modulname definierten Block zur eigenen Weiterverwendung |
int | ModulAnswer | (char* modulname, char* key) | Wertet Ja/Nein-Anworten in der Modulsteuerdatei aus |
int | IModulSteuerInfo | (char* modulname, char* key, int* val) | Gibt INT-Wert aus Steuerdatei zurück, Blockdefinition über Modulname, Zeilendefinition über key |
int | DModulSteuerInfo | (char* modulname, char* key, double* val) | Gibt Double-Wert aus Steuerdatei zurück, Blockdefinition über Modulname, Zeilendefinition über key |
int | CModulSteuerInfo | (char* modulname, char* key, char* val) | GibtZeichenkette aus Steuerdatei zurück, Blockdefinition über Modulname, Zeilendefinition über key |
int | DummyI1 | (int) | DummyI1-Routine |
int | DummyI2 | (int, int) | DummyI2-Routine |
Tabelle 9.1‑2: Daten ohne Raumbezug
Funktionstyp | Name der Funktion | Übergabewerte | Bedeutung |
int | Efl_AnzNutzClass | (void) | Anzahl der Klassen bzw. Einträge in der Landnutzungstabelle |
int | Efl_AnzBodClass | (void) | Anzahl der Klassen bzw. Einträge in der Bodenformentabelle |
int | AnzBodenSchichten | (int i_bod) | Anzahl der Schichten im Boden i_bod |
int | BodenArtInSchicht | (int i_bod, int i_schicht) | Bodenart boartder über i_schicht festgelegten Bodenschicht |
int | LagerungsdichteInSchicht | (int i_bod, int i_schicht) | Lagerungsdichte ld der über i_schicht festgelegten Bodenschicht |
int | DickeDerSchicht | (int i_bod, int i_schicht) | Mächtigkeit [mm] der über i_schicht festgelegten Bodenschicht |
double* | KfWert | (int boart, int ld) | Kf der Bodenart boart bei einer Lagerungsdichte ld |
double* | NutzbareFeldkapazitaet | (int boart, int ld) | nfk der Bodenart boart bei einer Lagerungsdichte ld |
double* | Sickerwasserkapazitaet | (int boart, int ld) | lk der Bodenart boart bei einer Lagerungsdichte ld |
Funktionstyp | Name der Funktion | Übergabewerte | Bedeutung |
int* | Raumbezug | (int modellebene) | Zeiger auf Raumbezug der angebenen Modellebene (z.B. liefert *Raumbezug(ABI) den gewählten Raumbezug für die Modellierung der Abflussbildung) |
Mögliche Angaben für Modellebenen sind: | |||
MET – Meteorologie | |||
ABI – Abflussbildung | |||
RD – Direktabflusskonzentration | |||
GW – Grundwasserabflusskonzentration | |||
Q – Gesamt- oder Gewässerabflusskonzentration | |||
int* | I_Area | (int cover) | Zeiger auf das sich aktuell in Bearbeitung befindende Raumelement des angegebenden Covers (z.B. EFL) |
Mögliche Angaben für Cover sind: | |||
FGW – Fließgewässersystem | |||
GEB – Gesamtgebiet (PseudoCover) | |||
GWG – Grundwassergebiete (PseudoCover) | |||
TG – Teileinzugsgebiete | |||
KAS – Kaskadensegmente | |||
EFL – Elementarflächen | |||
HYD – Hydrotopklassen (PseudoCover) | |||
FE – Fenite Elemente (PseudoCover – Angabe für Modellebene GW, wenn extern berechnete GW-Zuflüsse dem Gewässernetz zugeordnet werden sollen) | |||
int | N_Area | (int cover) | Anzahl der Raumelemente des angegebenden Covers (z.B. EFL) |
int | db_raum | (char* cover) | wandelt Zeichenkette in INT-Wert um (z.B. „EFL“ in EFL) |
Funktionstyp | Name der Funktion | Übergabewerte | Bedeutung |
char* | ProjectDir | (void) | Zeichenkette mit kompletten Pfad des Projektverzeichnisses |
char* | GisDir | (void) | Zeichenkette mit kompletten Pfad des GIS-Verzeichnisses im Projekt |
char* | ZeitDir | (void) | Zeichenkette mit kompletten Pfad zu den Zeitdaten im Projekt |
char* | ResDir | (void) | Zeichenkette mit kompletten Pfad zu den Ergebnissen im Projekt |
char* | ModDir | (void) | Zeichenkette mit kompletten Pfad zum Modell-Verzeichnis im Projekt (i.A. …ARC_EGMO) |
char* | Dir2Level | (char* dir1level, int 2level) | Zeichenkette auf das über 2level angegeben Verzeichnis innerhalb des 1level-Verzeichnisses. Das 1level-Verzeichnis kann z.B. über GisDir() erhalten werden. 2level sollte über eine der folgenden Angaben definiert werden |
– DIR_SEL für „Select“ | |||
– DIR_DES für „Describe“ | |||
– DIR_PAR für „Para“ | |||
– DIR_HYD für „Hyd_Data“ | |||
– DIR_MET für „Met_Data“ | |||
– DIR_GW für „GW_Data“ | |||
– DIR_REL für „ASCII.REL“ | |||
– DIR_PAT für „ASCII.PAT“ | |||
int | dprintf | (char* format, …) | analog printf-Routine in C |
void | PrintTest | (char* format, …) | analog printf-Routine in C, aber Ausgabe in die Protokolldatei |
int | RETURN_ERR | (int fehlernummer, char* fehlerbeschreibung“), | Ausgabe der Fehlerbeschreibung auf Bildschirm und in die |
Protokolldatei und definiertes Programmende mit exit(fehlernummer) |
Funktionstyp | Name der Funktion | Übergabewerte | Bedeutung |
int | AktMonat | (void) | aktuelle Monatsnummer |
int | YearDay | (void) | aktuelle Tagesnummer innerhalb des Jahres (1 bis 365) |
double | Met_DTd | (void) | Zeitdiskretisierung der meteorologischen Daten [Minuten] |
fpos_t | Met_n_dtd | (void) | Anzahl der Berechnungszeitschrittweite |
double* | DTb | (void) | aktuelle Berechnungszeitschrittweite [Minuten] |
fpos_t | N_Minutes | (void) | Simulationszeitraum in Minuten |
fpos_t | T_Time | (void) | aktuelle Zeitschrittnummer |
Tabelle 9.1‑6: Ergebnisgrößen der Vertikalprozessebenen
Funktionstyp | Name der Funktion | Übergabewerte | Bedeutung |
double* | Met_KorNiederschlag | (void) | |
double* | Met_PotVerdunstung | (void) | liefert Verweis auf die angegebene Größe |
double* | Abi_Effektivniederschlag | (void) | es ist automatisch realisiert, daß die angegebene Größe dem aktuellen Raumelement zugeordnet ist |
double* | Abi_Grundwasserneubildung | (void) | (wenn z.B. die Abflussbildung der Elementarfläche 15 berechnet werden soll, wird bei einer Raumgliederung in |
double* | Abi_HypodermischerAbfluss | (void) | Teileinzugsgebieten für die Modellebene Meteorologie über Res_KorNiederschlag() der Niederschlag des |
double* | Abi_Landoberflaechenabfluss | (void) | Teilgebietes bereitgestellt, in dem sich die Elementarfläche 15 befindet) |
double* | Abi_RealeVerdunstung | (void) | |
double* | Abi_BodenfeuchteAbs | (void) | Summe aller Bodenkapillarspeicherfüllungen (sofern eine Vertikaluntergliederung erfolgt) |
double* | Abi_BodenfeuchteDef | (void) | 1. – Res_BodenfeuchteAbs / Bodenkapillarwasserspeicherkapazität |
Funktionstyp | Name der Funktion | Übergabewerte | Bedeutung |
int* | Rb_id | (int rbe, int rb) | |
double | RbAimp | (int rbe, int rb) | Ermittlung der angegebenen Größe (hier versiegelter Flächenanteil) für den über rbe und rb |
double* | RbFlaeche | (int rbe, int rb) | definierten Raumbezug |
double | RbFliessgewaesserlaenge | (int rbe, int rb) | * rbe ist Raumbezugstyp (z.B. TG, KAS …) |
double | RbGefaelle | (int rbe, int rb) | * rb ist das aktuelle Geometrieelement (z.B. Teilgebiet 15) |
double | RbRauhigkeit | (int rbe, int rb) | |
double | RbX | (int rbe, int rb, double* area) | Schätzung der X, Y und Z-Koordinaten für den über rbe und rb definierten Raumbezug aus den |
double | RbY | (int rbe, int rb, double* area) | Koordinaten der internen Elementarflächen, |
double | RbHoehe | (int rbe, int rb, double* area) | * area ist die Fläche des aktuellen Geometrieelement (z.B. Teilgebiet 15) [m**2] |
Tabelle 9.1‑8: EGMO
Funktionstyp | Name der Funktion | Übergabewerte | Bedeutung |
double* | Hyd_Gmn | (int i_hyd) | EGMO-Parameter |
double* | Hyd_Gmx | (int i_hyd) | EGMO-Parameter |
double* | Hyd_Hmx | (int i_hyd) | EGMO-Parameter |
double* | Hyd_Hsc | (int i_hyd) | EGMO-Parameter |
double* | Hyd_Sna | (int i_hyd) | EGMO-Parameter |
double* | Hyd_Snm | (int i_hyd) | EGMO-Parameter |
double* | Hyd_WH_D1 | (int i_hyd) | EGMO-Parameter |
double* | Hyd_Hlff | () | EGMO-Parameter |
Tabelle 9.1‑9: Gesamtabflussmodul
Funktionstyp | Name der Funktion | Übergabewerte | Bedeutung |
double* | Q_Abfluss | (int rb) | s. Name |
double* | Q_Direktzufluss | (int rb) | s. Name |
double* | Q_Eigengebietszufluss | (int rb) | s. Name |
double* | Q_Externzufluss | (int rb) | s. Name |
double* | Q_Grundwasserzufluss | (int rb) | s. Name |
double* | Q_Inhalt | (int rb) | s. Name |
double | Q_Input | (int rb) | s. Name |
double* | Q_Oberliegerzufluss | (int rb) | s. Name |
double* | Q_VorlandInhalt | (int rb) | s. Name |
double* | Q_Wasserstand | (int rb) | s. Name |
double* | Q_DTakt | (void) | aktuelle Berechnungszeitschrittweite [Minuten] bei der Gesamtabflussgenerierung |
Tabelle 9.1‑10: Abflussbildungsmodul
Funktionstyp | Name der Funktion | Übergabewerte | Bedeutung |
double* | Abi_Interzeptionsfuellung | (int rb) | Interzeptionsspeicherfüllung für den Raumbezug rb |
double* | Abi_Muldenspeicherfuellung | (int rb) | Muldenspeicherfüllung für den Raumbezug rb |
double* | Abi_Bodenspeicherfuellung | (int rb, int nr) | Bodensystemwert nr (0 bis 3) für den Raumbezug rb (Systemwert kann in Abhängigkeit vom Modul eine Speicherfüllung oder ein Schichtabstand oder ähnliches sein) |
double* | Vorgeschichte | (void) | Meteorologische Vorgeschichte (eingelesener Wert) (0 … 1) |
double* | ZeitFaktor | (void) | DTb/Met_DTd |
double* | ZeitFaktor_Kf | (void) | Skalierung des Kf-Wertes bei langen Met_DTd (eingelesener Wert) (0 … 1) |
Tabelle 9.1‑11: Direktabflussmodul
Funktionstyp | Name der Funktion | Übergabewerte | Bedeutung |
double* | Rd_Abfluss | (int rb) | aktueller Inhalt im Element rb |
double* | Rd_Inhalt | (int rb) | aktueller Abfluss aus dem Element rb |
double* | Rd_Oberliegerzufluss | (int rb) | aktueller Zufluss zum Element rb |
double | RdFliessweg | (int rb) | Fließweg [m] bis zum Unterlieger (kann Gewässerabschnitt oder Kaskadensegment sein) |
int | Find_DT_RdMod | () | Liefert die aus numerischen Stabilitätsgründen benötigte Zeitdiskretisierung [Minuten] |
Tabelle 9.1‑12: Grundwasserabflussmodul
Funktionstyp | Name der Funktion | Übergabewerte | Bedeutung |
double* | Gw_SpeicherInput | (int rb, int hyd_typ) | dient der Aufsummierung aller Grundwasserneubildungen für den Hydrotoptyp hyd_typ innerhalb des Raumbezugs rb |
double* | Els_Input | (int rb, int els) | aktueller Input [mm] des Einzellinearspeichers els im Raumbezug rb |
double* | Gw_Output | (int t_akt, int rb) | Summe aller Grundwasserabflüsse (z.B. aller Einzellinearspeicher) des Raumelements rb zum Zeitpunkt t_akt |
Tabelle 9.1‑13: Hydrotopklassen
Funktionstyp | Name der Funktion | Übergabewerte | Bedeutung |
int* | Hyd_Raumbezug | () | Raumbezugsebene vzw. Cover, auf die sich die Hydrotopeinteilung bezieht, z.B. TG |
int | Hyd_n_hyd | () | Gesamtanzahl aller Hydrotopklassen, z.B. in allen TG’s |
int | Hyd_n_typ | () | Anzahl der definierten Hydrotoptypen, z.B. Agw oder AW |
int* | Hyd_Rb | (int i_hyd) | Raumbezug der Hydrotopklasse i_hyd, z.B. das übergeordnete Teileinzugsgebiet |
int* | Hyd_id | (int i_hyd) | ID bzw. laufende Nummer der Hydrotopklasse (1 bis Hyd_n_hyd()) |
int* | Hyd_Typ | (int i_hyd) | Nummer des Hydrotoptyps (1 bis Hyd_n_typ()) |
char* | Hyd_Name | (int i_hyd) | Name des Hydrotoptyps (1 bis Hyd_n_typ()) |
int | Hyd_Grundwassernah | (int i_hyd) | gw_nah=1, gw_fern=0, |
double* | Hyd_Flaeche | (int i_hyd) | Fläche der Hydrotopklasse [m**2] |
double* | Hyd_VersiegelterAnteil | (int i_hyd) | s. Name |
double* | Hyd_Interzeptionsspeicherkap | (int i_hyd) | s. Name |
double* | Hyd_Muldenspeicherkapazitaet | (int i_hyd) | s. Name |
Tabelle 9.1‑14: Gesamtgebiet
Funktionstyp | Name der Funktion | Übergabewerte | Bedeutung |
double* | Geb_Flaeche | (int dummy) | Flaeche des Gesamtgebietes [m**2] |
double* | Geb_hoehe | (int dummy) | mittlere Höhe [m] (flächengewichtetes Mittel aller Elementarflächenhöhen) |
double* | Geb_X | (int dummy) | mittlere X-Koordinate [m] (flächengewichtetes Mittel aller Elementarflächenkoordinaten) |
double* | Geb_Y | (int dummy) | mittlere Y-Koordinate [m] (flächengewichtetes Mittel aller Elementarflächenkoordinaten) |
Tabelle 9.1‑15: Teileinzugsgebiete
Funktionstyp | Name der Funktion | Übergabewerte | Bedeutung |
int | Tg_n_tg | (void) | Anzahl der Teileinzugsgebiete |
int* | Tg_id | (int i_tg) | ID des aktuellen Teileinzugsgebietes |
double* | Tg_Flaeche | (int i_tg) | Fläche des aktuellen Teileinzugsgebietes |
int* | Tg_gwg_id | (int i_tg) | ID des zugeordneten Grundwasserteilgebietes |
double* | Tg_Fliessgewaesserlaenge | (int i_tg) | Summe aller Fließgewässerlängen innerhalb des aktuellen Teileinzugsgebietes (entweder Attribut der TG-Tabelle oder intern aus FGW abgeleitet) |
int* | Tg_GeoId | (int i_tg) | Verweis auf Geologische Formation |
double* | Tg_GeoKennwertKf | (int i_tg) | Verweis auf den sich aus der Geologischen Formation ergebenen Kf-Wert |
double* | Tg_KumEinzugsgebiet | (int i_tg) | Kumulatives Einzugsgebiet bis zum Gebietsauslaß des aktuellen Einzugsgebietes |
int* | Tg_LastFgw | (int i_tg) | Verweis auf den letzten (untersten) Gewässerabschnitt im aktuellen Teileinzugsgebiet |
int* | Tg_ulieger | (int i_tg) | Verweis auf das dem aktuellen Teileinzugsgebiet unterliegende Teileinzugsgebiet |
Tabelle 9.1‑16: Kaskadensegmente
Funktionstyp | Name der Funktion | Übergabewerte | Bedeutung |
int | Kas_n_kas | (void) | Anzahl der Kaskadensegmente |
int* | Kas_id | (int i_kas) | ID des aktuellen Kaskadensegments |
double* | Kas_Flaeche | (int i_kas) | Fläche [m**2] des aktuellen Kaskadensegments |
int* | Kas_tg_id | (int i_kas) | ID des übergeordneten Teileinzugsgebietes |
int* | Kas_fgw_id | (int i_kas) | ID des zugeorneten Gewässerabschnittes |
int* | Kas_gwg_id | (int i_kas) | ID des zugeorneten Grundwasserteilgebietes |
int* | Kas_ulieger | (int i_kas) | ID des UnterliegerKaskadensegments (wenn =0, Entwässerung in Kas_fgw_id) |
int | Kas_seite | (int i_kas) | rechts=0, links=1, Zwickel=2 |
Tabelle 9.1‑17: Elementarflächen
Funktionstyp | Name der Funktion | Übergabewerte | Bedeutung |
int | Efl_n_efl | (void) | Anzahl der Elementarflächen |
int* | Efl_id | (int i_efl) | ID der aktuellen Elementarfläche i_efl |
double* | Efl_Flaeche | (int i_efl) | Fläche [m*2] |
int* | Efl_tg_id | (int i_efl) | Verweis auf übergeordnetes Einzugsgebiet |
int* | Efl_kas_id | (int i_efl) | Verweis auf übergeordnetes Kaskadensegment |
int* | Efl_gwg_id | (int i_efl) | Verweis auf übergeordnetes Grundwassergebiet |
int* | Efl_hyd_id | (int i_efl) | Zuordnung zu einem Hydrotoptyp |
int | Efl_ew_tg | (int i_efl) | Zuordnung zu einem Entwässerungsteilgebiet bzw. zu einem kanalisierten Teilgebiet |
int | Efl_halden_id | (int i_efl) | Zuordnung einer Sonderstruktur |
int | Efl_boden_id | (int i_efl) | Verweis auf eine Bodenform |
int | Efl_lntz_id | (int i_efl) | Verweis auf eine Landnutzung |
int | Efl_flurab | (int i_efl) | Verweis auf einen Grundwasserflurabstand |
int | Efl_gef | (int i_efl) | Gefälle [%] |
int | Efl_expo | (int i_efl) | Exposition [%] |
int | Efl_melio | (int i_efl) | Verweis auf eine Melioration |
int | Efl_topi_id | (int i_efl) | Verweis auf einen Topographischen Index |
double* | Efl_Grundwasserflurabstand_Max | (int i_efl) | Max. Grundwasserflurabstand (Max. Wert der Relatetabelle) |
double* | Efl_Grundwasserflurabstand_Rep | (int i_efl) | Repräsentativer Grundwasserflurabstand (Rep. Wert der Relatetabelle) |
double* | Efl_Interzeptionskapazitaet | (int i_efl) | Interzeptionsspeicherkapazität |
double* | Efl_Bodenmaechtigkeit | (int i_efl) | Minimum aus max. Wurzeltiefe und Bodenmächtigkeit |
double* | Efl_KfRepraesentativ | (int i_efl) | Repräsentativer Kf-Wert |
double* | Efl_Bedeckungsgrad | (int i_efl) | Vegetationsbedeckungsgrad |
double* | Efl_MaxWurzeltiefe | (int i_efl) | Max. Wurzeltiefe |
double* | Efl_MinWurzeltiefe | (int i_efl) | Min. Wurzeltiefe |
double* | Efl_Muldenspeicherkapazitaet | (int i_efl) | Muldenspeicherkapazität |
double* | Efl_NutzbareFeldkapazitaetRep | (int i_efl) | repräsentative nutzbare Feldkapazität (profilgemittelter Wert) |
double* | Efl_Rauhigkeit | (int i_efl) | Oberflächenrauhigkeit (abhängig von Landnutzung) |
double* | Efl_SickerwasserkapazitaetRep | (int i_efl) | repräsentative Sickerwasserkapazität (GPV-FK) (profilgemittelter Wert) |
double* | Efl_TanBeta_Rep | (int i_efl) | tan(BETA) –> s. Top-Modell |
double* | Efl_TopAE_Mit | (int i_efl) | angeschlossenes Einzugsgebiet |
double* | Efl_TopIndex_Max | (int i_efl) | max. Top-Index |
double* | Efl_Versiegelungsgrad | (int i_efl) | Versieglungsgrad |
double* | Efl_X | (int i_efl) | X-Koordinate der Elementarfläche bzw. des Labelpunktes |
double* | Efl_Y | (int i_efl) | Y-Koordinate der Elementarfläche bzw. des Labelpunktes |
double* | Efl_hoehe | (int i_efl) | Z-Koordinate der Elementarfläche bzw. des Labelpunktes |
Tabelle 9.1‑18: Gewässerabschnitte
Funktionstyp | Name der Funktion | Übergabewerte | Bedeutung |
int | Fgw_n_fgw | (void) | Anzahl der Gewässerabschnitte |
int* | Fgw_id | (int i_fgw) | ID des aktuellen Gewässerabschnittes |
double* | Fgw_Laenge | (int i_fgw) | Länge [m] des aktuellen Gewässerabschnittes |
int* | Fgw_tg_id | (int i_fgw) | Verweis auf zu- bzw. übergeordnetes Teileinzugsgebiet |
int* | Fgw_gwg_id | (int i_fgw) | Verweis auf zu- bzw. übergeordnetes Grundwasserteileinzugsgebiet |
int* | Fgw_baseflow_id | (int i_fgw) | Verweis auf BaseFlow-ID |
int* | Fgw_ulieger | (int i_fgw) | Verweis auf Unterlieger |
int | Fgw_typ_id | (int i_fgw) | Verweis auf Gewässertyp |
int | Fgw_geo_id | (int i_fgw) | Verweis auf Geologie |
int | Fgw_prof_id | (int i_fgw) | Verweis auf Profildaten |
double* | Fgw_Eigeneinzugsgebiet | (int i_fgw) | Eigeneinzugsgebiet [m**2] des Gewässerabschnitts |
double* | Fgw_KumEinzugsgebiet | (int i_fgw) | kumulatives Einzugsgebiet [m**2] des Gewässerabschnitts |
double* | Fgw_Hoehe_o | (int i_fgw) | Hoehe [m] des unteren Knotes des Gewässerabschnitts |
double* | Fgw_Hoehe_u | (int i_fgw) | Hoehe [m] des oberen Knotes des Gewässerabschnitts |